普通日志谁都能改。给每次工具调用开一张签名的回执,再把回执串成链,事后就能检查有没有被动过。
先记住这几点
- 问题:审计员问'日志没被改过,怎么证明?'普通日志、云日志、数据库日志都得靠信任某个人。
- 回执:一段 JSON,记录 Agent 做了什么,再用私钥签名,别人用公钥可离线验证。
- 规范化编码:保证同样内容算出同样的字节,签名才稳定。
- 哈希链:每张回执带上前一张的哈希,删掉或调换顺序会断链。
- 三个保证:这把钥匙签过、内容没变、在这条链里的先后顺序。
展开说说
它证明什么,不证明什么。 能证明:这条记录是这把钥匙签的,内容没被改过,顺序没乱。不能证明:这把钥匙的主人是谁(需要另外可信的绑定),也不能单靠链本身发现'被截掉末尾'或者签名方自己重写历史,那需要外部固定的链头、独立见证的检查点,或经过认证的完整性承诺。
怎么做一张回执。 取出这次调用的关键信息:谁、什么时候、调了哪个工具、参数摘要、结果摘要、上一张回执的哈希。按统一规则规范化,再签名,一起存起来。验证时离线重算哈希、核对签名、检查链。
用在哪。 受监管的行业(金融、医疗)和需要给第三方审计的场景。小团队内部使用,先把普通日志做规范,往往已经够用。
动手试试
设计一张回执的字段清单:至少包含时间、动作、参数摘要、结果摘要、前一张的哈希,并想想要不要放敏感内容。
让 Agent 带你学
把下面这段交给你的 Agent(Claude Code、ChatGPT、Gemini 都行),它会像导师一样一步步带你。
参考
- 内容改写自 microsoft/ai-agents-for-beginners 的第 18 课(
18-securing-ai-agents),原项目为 MIT 许可证。 - 想看原版和完整代码:18-securing-ai-agents
- 全部课程见 Agent 课程路线图


评论(0)
还没有评论,来说第一句。