AgentSight
基于 eBPF 的系统级 AI Agent 可观测性工具,无需 SDK 或代理即可看清 Agent 在你机器上的真实行为。
证据显示该工具是本地优先的系统级观测器:eBPF 探测需要 root,但文档明确说明被监控代理仍以普通用户运行、只有探测提权,且无 sudo 时回退到进程快照与本地会话文件(least_privilege=2);数据流向在 FAQ 中详细交代(当前目录 SQLite、~/.agentsight/monitor、本地 web 127.0.0.1:7395),透明度高(=3);但捕获内容包含明文 TLS LLM 载荷、提示词、头与网络目标,文档仅提示“视为敏感”,未见脱敏、加密或用户确认机制,monitor 可安装后台常驻服务而无明显确认/回滚流程说明(user_confirmation=1,sensitive_data_handling=2,rollback=1)。依赖方面 CI 使用 lockfile 与 vendor,但无审计/漏洞扫描证据(=1)。可选 OTLP 导出为明示功能,外发效应可控(=2)。MIT 许可、eunomia-bpf 署名、arXiv 论文链接,来源归属清晰(=2)。扣除点:敏感数据保护仅停留在提示层面,无确认/卸载细节。
README、CI 与测试文件相互一致:命令示例(top/record/report/vis)、字段名与测试断言的事件模型吻合(self_consistency=3);依赖(cargo/crates.io、npm、Chromium/FFmpeg)在文档与 CI 中均有着落但存在外部可用性风险(GIF 导出需本机 Chromium,=2);FAQ 提供“tracing 失败应检查什么”的排查指引,测试对内核差异采用 WARN/SKIP 软失败(failure_messages=2)。未发现文档与代码矛盾之处,扣分在于失败路径主要靠 FAQ 覆盖,非系统性错误码/恢复说明。
明确面向 Claude Code、Codex、Gemini CLI、OpenCode 等多代理及任意命令,并区分 eBPF 路径与 agent-native 会话路径(audience_and_scenarios=3);能力边界罕见地诚实:Cursor IDE 无法 eBPF 追踪、静态链接 SSL 的捕获限制、内核 4.1+/5.0+ 要求均有明示(capability_boundaries=3);自动发现二进制与 SSL 库降低使用门槛,但触发/过滤精度依赖 -p/--session 等参数,默认全量模式需用户自选(trigger_precision=2);覆盖 Linux/macOS/Windows(部分)与 Docker,环境适配说明充分(environment_fit=3)。
文档结构清晰:Quick Start、Usage、FAQ、Contributing、License 分层合理,docs/ 子文档索引完整(information_architecture=3);安装覆盖 cargo、Homebrew、二进制、Docker、源码构建,并区分平台差异(install_notes=3);示例丰富且与命令表一致,FAQ 直面权限/性能/数据去向/失败排查(examples_and_faq=3);已知限制(Cursor、静态 SSL、Windows 资产未发布)明示(known_limitations=3);MIT LICENSE 文件与徽章一致(license=3);命名基本稳定(agentsight/agentpprof),但 unsuffixed 资产为“兼容别名”稍显含糊(=2);版本由 CI 自动化 semver 管理,但快照提交会 force-push master,changelog 依赖 GitHub 自动生成说明(versioning_changelog=2);维护主体为 eunomia-bpf org,CI 中有维护流程,但未验证发布者身份(maintenance_responsibility=2)。
输出可用性强:top 实时视图、web 仪表盘、report JSON/SQLite 查询、OTel 标准导出、pprof 兼容火焰图,多形态可用(output_usability=3);相对 LangSmith/Langfuse 等应用层工具,补足系统边界观测与零 SDK 接入,边际价值明确且差异化论述到位(marginal_value=3);宣称 <3% CPU 开销并附论文,但该数字无法在静态评审中复现,且 eBPF+root+特权 Docker 的运维成本对普通用户不低(cost_benefit=2)。
关键声明大多可追溯到源内材料:<3% 开销指向 arXiv 论文与 DOI,安装/构建指向 docs 文件,CI 步骤与测试可对应仓库路径(claim_traceability=2);README、CI 工作流、bpf 测试三处对事件模型与命令行为相互印证(cross_source_corroboration=2);事实与推断基本分离,但部分营销化表述(“The Future of AI Observability”等)与性能数字之间的证据强度未在文内区分标注(fact_inference_separation=2)。扣分点:无仓库内基准数据支撑性能声明,静态评审无法核实。
- 捕获数据包含明文 TLS 载荷、提示词、文件路径与网络目标,默认落盘为当前目录 SQLite 文件,请按敏感数据处理并避免提交到版本库或共享目录。
- eBPF 模式需要 root/特权容器;monitor 可安装后台常驻服务,部署前请确认其采集范围与开机自启行为,并了解如何卸载。
- 性能声明(<3% CPU 开销)来自项目自述论文,未经本次评审执行验证,请以自身工作负载实测为准。
- 发布者身份未经企业注册库验证,且发布流程会对 master 强推版本快照,生产采用前建议自行审计发布链。
这个 Agent 能做什么,适合哪些场景?
AgentSight 是一个本地优先的 top/strace 式观测工具,专为 AI Agent 设计,将提示词、模型调用和工具决策关联到它们对系统的实际影响。它通过 eBPF 内核探针和 TLS 流量追踪工作,即使被观测对象是闭源 CLI(如 Claude Code)也无需集成 SDK、代理或厂商支持。`agentsight top` 提供按健康度、token 用量、工具调用等排序的实时会话视图;`agentsight record` 将会话保存为 SQLite 数据库;`agentsight report` 支持结构化查询;`agentsight vis` 可生成仓库文件操作回放的动画 GIF;`agentpprof` 可离线生成 pprof 风格的语义火焰图。项目以 MIT 协议开源,可通过 Cargo、Homebrew、发布二进制或 Docker 安装,并支持将捕获的 LLM 调用导出为 OpenTelemetry GenAI span。
AgentSight 用 eBPF 探针和 SSL/TLS 调用点抓取来观测现有二进制和 CLI Agent,无需进程内插桩。agentsight top 提供实时排名视图,展示活动会话、进程、模型与工具调用、文件和网络活动;sudo agentsight record -- <command> 自动发现二进制、SSL 库和容器进程,捕获明文 LLM 载荷、子进程执行、文件操作和资源使用,并将数据存入 agentsight-*.db SQLite 文件;agentsight report 提供汇总、token 用量(可按工作目录分组)、审计 JSON、Web UI(report serve,端口 7395)及导出快照等查询;agentsight vis 扫描本地 Claude/Codex/Gemini 会话并生成 agent-nebula 回放动画;agentpprof 将本地 Codex/Claude 会话按项目、模型、token 类型聚合为 pprof 火焰图;debug trace --otel 可将 LLM 调用导出为 OTLP/HTTP 的 GenAI span。
- 排查 Claude Code 或 Codex 运行失败或卡住的开发者,想将提示词与实际报错、子进程行为关联起来。
- 团队审计安全敏感影响:确认 Agent 访问了哪些远程服务、修改了哪些文件。
- 需要分析 token 成本分布(按项目、模型、会话)的工程负责人,用 agentpprof 的 token 火焰图定位重开销会话。
- 想回放理解某个编码 Agent 在仓库中读写删除文件全过程的维护者,使用
agentsight vis生成回放动画。 - 已有 LangSmith/Langfuse 等应用层观测、但看不到进程与文件层行为的团队,将 AgentSight 作为系统边界补充,并可导出 OTel span 接入现有后端。
这个 Agent 有哪些优点和局限?
- 零 SDK/零代理设计:通过 eBPF 和 TLS 调用点抓取观测闭源 CLI(如 Claude Code、Gemini CLI),无需改应用代码。
- 内核级事件独立于应用日志,可捕获绕过插桩的子进程执行、文件操作和明文 LLM 载荷。
- 评估显示典型工作负载 CPU 开销低于 3%,且支持 OpenTelemetry GenAI 标准导出。
- 提供丰富的分析形态:实时 top 视图、SQLite 持久化、Web UI、回放动画和 pprof 火焰图。
- 实时 eBPF 捕获需要 Linux 与 root 权限(sudo 或 CAP_BPF/CAP_SYS_ADMIN),macOS/Windows 仅支持非 eBPF 的会话文件路径。
- 静态链接 SSL 的应用(Claude/Bun 的 BoringSSL、所有 Node.js 的 OpenSSL)默认无法被 sslsniff 挂钩,需依赖自动发现或
--binary-path。 - IDE 类 Agent(如 Cursor)无法通过 eBPF 追踪:Electron 应用、TLS 在剥离的二进制内、流量为 protobuf。
- 捕获的数据包含提示词、响应、路径、头部和网络目标,日志和 DB 属于敏感数据,需自行妥善管理。
如何安装或部署这个 Agent?
安装方式:
- cargo install agentsight
- 或下载发布二进制:wget https://github.com/eunomia-bpf/agentsight/releases/latest/download/agentsight && chmod +x agentsight
- Linux 上可用 Homebrew:brew tap eunomia-bpf/tap && brew install eunomia-bpf/tap/agentsight
- 也可用 Docker(需特权主机访问)或从源码构建(见 docs/build.md)。
eBPF 实时捕获需要 Linux 内核 4.1+(推荐 5.0+)及 sudo;top、bind、vis、report 可在不依赖 eBPF 的情况下使用 Agent 原生会话文件。
如何使用这个 Agent?
基本命令:
- agentsight top —— 实时排名视图(有 sudo 时自动启用 eBPF)
- sudo agentsight record -- claude —— 记录一条命令(也支持 gemini、kimi、grok、-c python、-c node --binary-path docker://openclaw 等)
- agentsight report / report list / report token --group-by dir / report audit -- —— 查询已保存的会话
- agentsight vis —— 在 Git 工作树中生成会话回放(GIF 需本机 Chromium 和 FFmpeg,HTML 导出则不需要)
- 访问 http://127.0.0.1:7395 查看时间线、进程树、事件日志和指标
- sudo ./agentsight debug trace --otel --otel-endpoint http://localhost:4318 导出 OpenTelemetry
源码构建后可用 make test 运行测试。
这个 Agent 与同类方案有什么区别?
README 将 AgentSight 与 LangSmith、Langfuse、Phoenix 等应用层观测工具,以及 Helicone 等网关/代理工具对比:这些工具需要 SDK、回调或网关集成,适合拥有应用代码的场景;AgentSight 则从系统边界外部观测现有二进制,捕获子进程执行、TLS 调用点的明文 LLM 载荷、文件操作和跨边界行为,是二者互补而非替代。
常见问题
需要什么权限?
top 在有 sudo 或已缓存 sudo 时使用实时 eBPF 捕获,否则回退到进程快照和本地 Agent 会话文件。record -- <command> 下被监控 Agent 仍以普通用户运行,只有探针需要提权。性能影响有多大?
数据存到哪里?
record 默认在当前目录生成 agentsight-*.db SQLite 文件;monitor 在 ~/.agentsight/monitor 下按周存储;top 只显示实时会话。数据包含提示词、响应、路径等,应视为敏感。为什么抓不到 Claude Code 或 Node.js 的流量?
record -- <command> 自动发现二进制,或用 --binary-path 处理。能追踪 Cursor 这类 IDE Agent 吗?
agentsight top 读取其本地会话,无需 sudo)。