AI Agent审计日志:Agent干了什么,一查就知道

📘 AI教程 💬 🔥 Trending

🩺 摘要

Agent莫名其妙删了一个文件——谁让它删的?什么时候删的?为什么删的?审计日志告诉你一切。

📝 详情

一个真实的案例:某公司的Agent在生产环境执行了一个清理脚本,清掉了三天的业务数据。花了整整两天才从审计日志里查清楚——是有人给Agent发了一条"帮我清理一下"的消息。

审计日志记录什么

{
  "timestamp": "2026-07-16T10:30:00Z",
  "user": "user_123",
  "action": "tool_call",
  "tool": "delete_file",
  "params": {"path": "/data/orders_20260713.csv"},
  "result": "success",
  "agent_reasoning": "用户要求清理旧数据文件"
}

不可篡改

审计日志不能删、不能改。建议: - 用append-only的日志文件 - 定期备份到对象存储(S3/COS) - 设置保留周期(至少90天)

谁需要看审计日志

  • 安全团队 — 有没有异常操作
  • 开发团队 — Agent为什么做出了这个操作
  • 合规团队 — 是否符合监管要求

总结

审计日志不是给Agent看的,是给人看了安心的。Agent操作了什么、为什么操作、结果如何——全有记录。

日志格式标准化

import logging, json

audit_logger = logging.getLogger('audit')
handler = logging.FileHandler('/var/log/agent/audit.log')
handler.setFormatter(logging.Formatter('%(message)s'))
audit_logger.addHandler(handler)

def log_audit(action, user, tool, params, result):
    record = {
        "timestamp": datetime.utcnow().isoformat(),
        "action": action,
        "user": user,
        "tool": tool,
        "params": sanitize(params),
        "result": result,
    }
    audit_logger.info(json.dumps(record))

审计日志要定期归档(建议90天),不能只增不删。