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 捕获调用事件,再统一上报到审计服务,是一种轻量、清晰、可扩展的实现方式。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐