2026年7月17日 2 分钟阅读

AI Agent 在系统里干了什么?AgentSight 用 eBPF 零侵入追踪每一行命令

tinyash 0 条评论

你运行 claudecodex 之后,Agent 到底在系统里做了什么?它执行了哪些 shell 命令?创建了哪些文件?向哪些服务器发送了请求?如果你回答不了这些问题,你并不孤单——这是几乎所有 AI 编码 Agent 用户的共同盲区。

问题:Agent 的行为是个黑盒

Claude Code、Codex、Gemini CLI 这类 Agent 在终端中跑得飞快,但它们在系统层面做了什么是不可见的。你看到的只是终端的输出流,但背后:

  • Agent 可能启动了子进程(编译、测试、git 操作),但你不知道每次调用的具体参数
  • Agent 可能创建或修改了大量文件,但你没有统一的变更记录
  • Agent 向 LLM API 发送了请求,但你不清楚每次请求的 token 消耗
  • 如果 Agent 行为异常(删除了不该删的文件、访问了不该访问的网络),你只能在事后凭日志猜测

传统方案不是没有——你可以用 strace 跟踪系统调用、用 top 看资源占用、用 tcpdump 抓网络包。但问题是:这些工具各自为政,没有关联性,而且需要大量手动操作。更关键的是,对于 Claude Code 这类闭源 CLI,你无法插入 SDK 或代理来获取应用层信息。

AgentSight 是什么

AgentSight(532⭐,MIT 许可证)是一个系统级 AI Agent 性能分析和监控工具。它使用 eBPF(Extended Berkeley Packet Filter)在内核层面零侵入地追踪 Agent 的所有系统行为——进程创建、文件操作、网络连接、LLM API 流量——然后关联到一个统一的视图中。

核心亮点是:不需要 SDK、不需要代理、不需要修改 Agent 代码。AgentSight 在 Linux 内核层面工作(eBPF + TLS 流量追踪),因此对 Claude Code、Codex、Gemini CLI 等闭源 CLI 同样有效。

快速上手

安装

cargo install agentsight

wget https://github.com/eunomia-bpf/agentsight/releases/latest/download/agentsight
chmod +x agentsight

系统要求:Linux 内核 4.1+(推荐 5.0+),部分功能需要 sudo 权限。

实时监控:看一眼 Agent 在做什么

最简单的用法是 agentsight top——它提供一个交互式终端界面,实时显示当前系统中 AI Agent 的活跃会话:

agentsight top

你会看到一个按模型、会话 Token、健康状态、进程族、工具调用、文件和网络活动排序的实时视图。这相当于给 Agent 装了一个 top 命令——瞬间你就知道它在忙什么。

录制一个完整的 Agent 会话

要录制 Agent 的完整行为记录,使用 record 子命令:

sudo agentsight record -- claude

sudo agentsight record -- codex

sudo agentsight record -- npm test

录制的会话自动保存为 agentsight-*.db SQLite 文件,即使 Agent 退出后仍然可以查询。

查询历史会话

录制完成后,用 agentsight report 系列命令查询数据:

agentsight report

agentsight report token

agentsight report token --group-by dir

agentsight report audit --json

agentsight report export -o snapshot.json

Web 可视化界面

AgentSight 还提供了一个 Web UI,可以在浏览器中直观查看:

agentsight report serve

访问 http://127.0.0.1:7395,可以查看时间线视图(Timeline)、进程树(Process Tree)、事件日志(Event Log)和指标(Metrics)。对复杂的 Agent 会话来说,图形化界面比终端命令更容易理解整体行为。

为什么 eBPF 方案优于传统监控

AgentSight 的 eBPF 方案与传统应用层监控方案有本质区别:

监控维度传统方案(strace/top/tcpdump)AgentSight 方案
SDK 集成需要应用代码修改或代理零侵入,从外部追踪
闭源 CLI无法插入 SDKeBPF 内核层面追踪,直接生效
进程与文件关联各工具独立,手动关联统一 SQLite 数据库,自动关联
TLS LLM 流量需要代理解密在 SSL/TLS 调用处捕获明文
子进程追踪需手动 -f 参数自动追踪全部子进程
历史查询日志文件散落SQLite 数据库统一查询

对于生产环境中的 AI 编码 Agent,AgentSight 提供了一个独立于 Agent 自身的监控层——即使 Agent 本身被篡改或行为异常,内核层面的记录是不可绕过的。

高级功能:Token 分析、火焰图和 OpenTelemetry

Token 用量分析

AI Agent 的 Token 消耗是成本中心。AgentSight 的 report token 命令可以让你精确知道每个会话、每个项目的 Token 使用情况:

agentsight report token

agentsight report token --group-by dir

离线火焰图(agentpprof)

AgentSight 包含一个独立的 agentpprof 子工具,可以生成 Agent 行为的离线火焰图——这对于分析”为什么这个任务花了这么多 Token”非常有用:

cargo run --manifest-path agentpprof/Cargo.toml -- \
  --project-root . \
  --view tokens \
  -o agent.pb.gz

go tool pprof -top agent.pb.gz

tokens 视图按项目、Agent、会话标签、模型和 Token 类型聚合实际开发会话的数据,是成本分析的首选火焰图。

OpenTelemetry 导出

如果你已经在使用 OpenTelemetry 基础设施,AgentSight 可以将捕获的 LLM 调用以 OpenTelemetry GenAI Span 格式导出:

sudo agentsight debug trace --otel --otel-endpoint http://localhost:4318

这让 AgentSight 可以无缝融入你已有的可观测性体系——所有 Agent 的 LLM 调用都以标准的 gen_ai.* Span 出现在你的监控仪表盘中。

注意事项

  • sudo 权限:eBPF 探针需要 root 权限,录制命令需要用 sudo 运行
  • Linux only:AgentSight 依赖于 Linux eBPF 内核特性,macOS 和 Windows 上无法使用
  • SQLite 存储敏感数据:录制的会话包含 LLM 请求/响应、路径、网络目标等信息,请妥善保管生成的 .db 文件
  • 静态链接的 SSL:Claude Code 和 Gemini CLI 使用静态链接的 BoringSSL/OpenSSL,AgentSight 的 record -- 会自动发现二进制文件路径并处理

总结

AI 编码 Agent 的行为可观测性是保障开发质量和安全的基础。AgentSight 用 eBPF 技术提供了一种零侵入、跨 Agent 的系统级监控方案——不管你的 Agent 是 Claude Code、Codex、Gemini CLI 还是 OpenCode,都能在一个统一的视图中看到它的系统行为、Token 消耗和文件操作。

对于正在大规模使用 AI 编码 Agent 的团队来说,AgentSight 是一个值得加入工具链的监控组件——它不是替代现有的 APM 工具,而是填补了「Agent 在操作系统层面做了什么」这一关键盲区。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。