
AI Agent 正在从“对话助手”变成“执行系统”。它不只生成文本还会调用工具、访问接口、读写文件、触发业务流程。当 Agent 开始执行真实动作后我们就需要一套审计日志回答一个最基础的问题它到底做了什么1. 什么是 Agent 审计日志Agent 审计日志记录的是 Agent 的关键行为而不是完整聊天内容。记录内容建议工具调用记录Skill 调用记录调用状态记录调用时间记录调用耗时记录Prompt 原文不记录工具参数原文不记录工具返回原文不记录审计日志的重点是“动作事实”Agent 在什么时间调用了什么能力调用结果如何。它不是对话存档也不应该成为敏感信息的新存储点。2. 为什么需要审计日志Agent 一旦接入业务系统就会涉及安全、合规和排障问题。场景审计日志的作用安全追溯出现异常操作时可以回看相关调用合规留痕关键动作有记录便于审查问题排障工具调用失败、超时、被拦截时更容易定位权限治理判断 Agent 是否调用了超出范围的能力质量分析统计高频失败、慢调用和异常链路没有审计日志Agent 的行为很容易变成黑盒。问题发生后只能从零散日志、用户反馈和业务结果中反推成本高也不可靠。3. 基本实现思路Agent 审计日志可以从 Tool Call 入手。工具调用通常代表一次真实动作比完整对话更适合作为审计对象。Agent Runtime → ✅ 产生工具调用 审计插件 → ✅ 捕获调用元信息 → ✅ 过滤不需要审计的内容 → ✅ 上报结构化事件 审计服务 → ✅ 接收并保存事件 → ✅ 提供查询能力 审计页面 → ✅ 按会话、Agent、工具、状态查看记录实现上要把握三个原则原则说明少采集不保存 Prompt、参数原文、返回原文可追溯保留会话、工具、状态、时间等基础信息可查询支持按 Agent、会话、工具、结果筛选4. Hermes 中的实现方式Hermes 可以通过 Hook 机制接入审计。插件在工具调用前后感知事件然后生成审计记录。在实际使用中Hermes 里的 Tool 可以理解为 Agent 可调用的外部能力例如Tool 类型示例状态查询工具查询当前 Agent、插件或运行环境状态文件工具读取、搜索、写入本地文件终端工具执行命令、运行脚本、启动任务业务工具调用业务系统接口、查询业务对象、提交操作通知工具发送消息、创建提醒、触发外部通知简化流程Hermes 会话开始 → ✅ 建立会话上下文 工具调用前 → ✅ 记录即将调用的 Tool 类型和名称 工具调用后 → ✅ 记录调用成功、失败或超时 审计上报 → ✅ 发送到审计服务这种方式对 Agent 主流程影响较小。审计逻辑主要放在插件中Runtime 继续负责执行任务审计服务负责保存和查询。5. OpenClaw 中的实现方式OpenClaw 也可以通过工具调用相关 Hook 实现类似能力。插件关注工具调用前后的事件把调用动作转换成统一审计日志。OpenClaw 中的 Tool 通常来自插件注册或运行时内置能力例如Tool 类型示例插件工具插件提供的安装、状态检查、签名、验签等能力开发工具文件读写、代码修改、命令执行、测试运行浏览工具页面访问、内容读取、信息检索集成工具调用外部服务、平台 API 或内部系统Agent 辅助工具任务规划、上下文查询、会话状态检查简化流程OpenClaw 运行会话 → ✅ 获取当前运行上下文 工具调用前 → ✅ 捕获 Tool 名称、来源和调用上下文 工具调用后 → ✅ 获取调用结果和耗时 审计上报 → ✅ 写入统一审计服务需要注意的是工具注册成功不一定等于 Agent 实际可调用。OpenClaw 中可能存在工具配置、权限范围、运行模式等限制。审计接入时除了确认插件加载成功也要确认目标工具真的进入了 Agent 可用工具集。总结Agent 审计日志的价值在于把 Agent 的关键动作从黑盒中拿出来。它不需要记录完整对话也不应该保存敏感原文。围绕 Tool Call 建立审计链路在 Hermes、OpenClaw 中通过插件和 Hook 捕获调用事件再统一上报到审计服务是一种轻量、清晰、可扩展的实现方式。