AgentSight
基于 eBPF 的系统级 AI Agent 可观测性工具,无需 SDK 或代理即可看清 Agent 在你机器上的真实行为。
- Star 数
- ★ 754
- 最近更新
- 18 天前
- License
- MIT
- 主语言
- C
- FA 评分
- 77/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude CodeCodex(部分支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 排查 Claude Code 或 Codex 运行失败或卡住的开发者,想将提示词与实际报错、子进程行为关联起来。
- 不适合
- 需要完全离线、无 root 权限的团队:实时 eBPF 采集要求 Linux 与 sudo/CAP_BPF
- 以 macOS 或 Windows 为主、需要完整实时追踪的用户:非 Linux 平台只能读取会话文件
- 需要追踪 Cursor 等 Electron IDE 智能体的团队:eBPF 无法捕获其 TLS 与 protobuf 流量
- 源码审查
- 77/100 · 存在缺口
这个 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?
安装方式:
- 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 有哪些优点和局限?
- 零 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 与同类方案有什么区别?
README 将 AgentSight 与 LangSmith、Langfuse、Phoenix 等应用层观测工具,以及 Helicone 等网关/代理工具对比:这些工具需要 SDK、回调或网关集成,适合拥有应用代码的场景;AgentSight 则从系统边界外部观测现有二进制,捕获子进程执行、TLS 调用点的明文 LLM 载荷、文件操作和跨边界行为,是二者互补而非替代。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| AgentSight 当前 | 77 · 存在缺口 | 命令行工具免费 | ★ 754 | 18 天前 | C | Claude Code |
| DataBuff | 41 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 710 | 16 天前 | Java | OpenAI API |
| ClawMetry | 81 · 表现良好 | 命令行工具免费版 + 付费版 | ★ 436 | 2 天前 | Python | Codex · Claude Code |
| OpenInference | 71 · 存在缺口 | 代码库 / SDK免费 | ★ 1.3k | 1 天前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 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 强推版本快照,生产采用前建议自行审计发布链。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * Restore SSL readiness, exact bytes, HPACK safety, and listener evidence by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/226 * Complete process probe liveness, file paths, and listener fields by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/234 * Extract generic media-kind evidence from HTTP metadata by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/223 Full Changelog: https://github.com/eunomia-bpf/agentsight/compare/v1.0.33...v1.0.34在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix: load process probes on newer kernels and isolate root test fixtures by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/231 * feat(bpf): extend process probe inbound socket evidence by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/229 * chore(devcontainer): match CI Rust and Node toolchains by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/230 Full Changelog: https://github.com/eunomia-bpf/agentsight/compare/v1.0.32...v1.0.33在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * Add CodeBuddy CLI support and fix Codex rustls plaintext capture by @sungw666 in https://github.com/eunomia-bpf/agentsight/pull/212 * feat(bpf): trace resolved file access in process probe by @yunwei37 in https://github.com/eunomia-bpf/agentsight/pull/227 New Contributors * @sungw666 made their first contribution in https://github.com/eunomia-bpf/agentsight/pull/212 Full Changelog: https://github.com/eunomia-bpf/agentsight/compare/v1.0.31...v1.0.32在 GitHub 查看 ↗
常见问题
需要什么权限?
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)。