AIGC标识 从 untrusted 内容到拒绝写操作:AgentLock 首次运行回读清单

如果一个 Agent 会读取网页、邮件或检索文档,再执行发信、写文件、改成员这类动作,首跑应该围绕“来源如何改变授权”设计,而不是围绕一段漂亮的攻击字符串设计。

AgentLock upstream README 的最小模型是:用户请求属于 authoritative,系统派生数据属于 derived,第三方可影响的内容属于 untrusted。安装后先不要接入生产工具,建一个临时 session,注册一个高风险的 send_email 或 delete_file 假工具,然后按下面顺序回读。

python -m pip install agentlock
python -m pip show agentlock

回读清单:

  1. 记录实际版本和 commit/包来源。Doramagic manual 的 v1.2.1 快照与当前 upstream README 的 v1.5.0 说明存在时间差;
  2. 只写入一条用户指令,记录 session ID 和上下文来源;
  3. 对同一个工具、同一组参数执行一次授权,保存 verdict;
  4. 让一段网页或邮件内容进入 session,再执行完全相同的工具调用;
  5. 检查 session write-gate、parameter lineage 或 deferred commit 哪一层改变了结果;
  6. 对 ALLOW、DENY、DEFER 分别保存 receipt、reason 和异常类型;
  7. 清理临时 session,确认 receipt 仍能在不改写原始上下文的情况下验证。

这个测试能发现三个经常被忽略的问题。第一,工具调用文本不变,不代表授权上下文不变;第二,write-gate 只能处理工具动作,无法阻止模型单纯在文本里说服用户,也不能自动消除读操作风险;第三,选择性 action-class gating 需要先审计工具注册,不能由调用方临时声明“这是 value-carrying write”。

AgentLock 的结果最好写成一条可复核记录:version + policy hash + session source + tool + decision + receipt + cleanup result。只截图一个“blocked”日志,无法证明阻断发生在正确的策略层。

来源:

posted @ 2026-07-22 10:05  weigangwin  阅读(9)  评论(0)    收藏  举报