agentsight
eBPF 零侵入监控 AI 智能体:关联 LLM 语义意图与系统行为,填补 AI 可观测性语义鸿沟
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
eBPF 零侵入监控 AI 智能体:关联 LLM 语义意图与系统行为,填补 AI 可观测性语义鸿沟
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
GitHub: eunomia-bpf/agentsight ⭐ 510 | 语言: C / Rust / TypeScript | License: MIT
想象这样一个场景:你给 Claude Code 下了一个「帮我优化数据库查询」的任务,然后去倒了杯咖啡。回来时发现它不仅改了 SQL,还新建了三个你没见过的文件、访问了外部 API、甚至写了一个你没授权的脚本——但你完全不知道整个过程是怎么发生的。
这就是当前 AI 智能体监控面临的根本困境:我们能看到 AI「想」做什么(LLM Prompt/Response),也能看到系统层面的原始事件(系统调用、网络包),但这两者之间存在一道语义鸿沟——我们不知道 AI 的「意图」和它的「行动」之间的因果关联。
AgentSight 的诞生正是为了填补这道鸿沟。它是 eunomia-bpf 团队(国内知名的 eBPF 开源组织)打造的系统级 AI 智能体可观测性工具,通过 eBPF 在内核层面捕获 AI 智能体的行为,再与 LLM 流量做因果关联。
现有的 AI 可观测性工具大致分为两类:
应用层工具(LangSmith、Langfuse、Phoenix)要求在应用代码中集成 SDK 或回调函数,通过框架层面捕获 Prompt/Response 和 Token 用量。这类工具的局限在于:它只能看到应用主动暴露的内容,无法追踪闭源 CLI 工具(如 Claude Code)的内部行为,也无法关联到底层的系统调用。
代理层工具(Helicone、Bisco、OpenRouter)通过劫持 LLM 提供商流量来记录请求,但同样止步于 API 边界,看不到 AI 实际执行了什么命令、操作了哪些文件、访问了哪些网络地址。
AgentSight 的核心创新在于边界追踪(Boundary Tracing)——在 AI 智能体与操作系统交互的系统边界处部署 eBPF 探针,同时捕获高层的 LLM 语义意图(通过 SSL/TLS 劫持获取明文请求/响应)和低层的系统行为(进程树、文件 I/O、网络连接),再通过实时关联引擎将两条数据流串联起来,生成完整的因果链。
这个方向得到了学术界的认可:AgentSight 的论文《AgentSight: System-Level Observability for AI Agents Using eBPF》已被 ACM 收录发表(DOI: 10.1145/3766882.3767169),并发布在 arXiv(2508.02736)上。
AgentSight 支持监控 Claude Code、Codex、OpenCode、OpenClaw、Gemini CLI 等主流 AI 编程工具,以及任意 Python AI 脚本。捕获内容覆盖四个维度:
1. 进程与命令维度
通过 eBPF tracepoint 追踪目标进程的完整生命周期,包括:进程 PID/PPID、命令行参数(argv)、工作目录(CWD)、退出状态码、执行耗时,以及所有子进程。这解决了传统监控工具容易遗漏 AI 在后台 fork 新进程执行命令的问题。
2. 文件活动维度
记录文件创建、写入、截断、重命名和删除操作,精确到每个事件的进程归属。用户可以清晰看到 AI 创建了哪些文件、修改了哪些配置——这对安全审计和合规检查尤为关键。
3. 网络活动维度
捕获 AI 智能体访问的所有网络目标地址和端口。用户可以发现 AI 是否访问了未经授权的外部服务、是否泄露了敏感数据,这在当前 AI 助手权限日益扩大的背景下尤为重要。
4. LLM 语义维度(核心亮点)
通过 uprobes 挂载到 OpenSSL/BoringSSL 的 SSL_read/SSL_write 函数,在 TLS 解密层直接获取 LLM API 调用的明文内容。AgentSight 能够提取:Prompt 文本、Response 文本、模型名称、Token 用量、工具调用意图(tool_use)以及工具执行结果。这是在无需代理、无需 SDK、纯内核级的前提下实现的。
AgentSight 的技术栈分为四层:
第一层:eBPF 内核程序(bpf/)
核心包含三个 C 语言 eBPF 程序:
sslsniff.bpf.c:通过 uprobes 挂载到 OpenSSL 的加解密函数,从 SSL_read/SSL_write 的参数中提取明文 HTTP 流量,再解析出 LLM API 请求/响应(支持 OpenAI HTTP 和 Streamable HTTP 格式)。process.bpf.c:通过 tracepoints 追踪进程生命周期事件(fork/exec/exit),输出进程的父子关系树。stdiocap.bpf.c:捕获进程的 stdin/stdout/stderr 内容,用于分析 AI 与命令行工具的交互输出。所有 eBPF 程序通过 bpf/jsonl.h 将事件序列化为 JSONL 格式输出到标准输出。
第二层:Rust Runner 执行层(collector/src/runners/)
Runner 层负责启动 eBPF 程序二进制并解析其 JSONL 输出。主要包括:
BinaryRunner:执行预编译的 eBPF 程序;ProcessRunner:在指定命令外层包装 eBPF 追踪;AgentRunner:专门针对 Claude/Codex 等智能体工具,自动读取其本地 session 日志并与 eBPF 数据关联;SystemRunner:全系统范围的追踪模式。第三层:Analyzer 链式处理器(collector/src/analyzers/)
Analyzer 层对原始事件流进行逐级处理,每个 Analyzer 都是一个异步 Stream 转换器:
SSLFilter:过滤非 LLM 流量的 SSL 数据;HTTPParser:从 HTTP body 中提取 LLM API 的 JSON 结构;SSEProcessor:处理 Server-Sent Events 流式响应;AuthHeaderRemover:自动剥离 API 认证头,避免敏感信息泄露;TimestampNormalizer:将 eBPF 的 boot 时间戳转换为墙钟时间;MaterializingAnalyzer:将事件投影到物化视图(LLM 调用行、进程节点等)。第四层:数据存储与输出
分析结果可通过多种方式输出:
agentsight-*.db 文件,支持事后查询;--debug trace --otel);top 的实时交互视图。第五层:AI Agent Skills(skills/)
项目还内置了一套面向 AI 智能体本身的分析 Skill:
agentpprof-flamegraph:将 Token 用量可视化为语义火焰图,帮助分析 Token 预算消耗;agent-interaction-insights:分析对话记录,减少纠正次数、提升信任度、终止循环;agentsight-system-friction:分析系统数据以发现资源浪费、重试过多、清理不彻底等问题。方式一:下载预编译二进制(最简单)
wget https://github.com/eunomia-bpf/agentsight/releases/latest/download/agentsight
chmod +x agentsight
sudo ./agentsight top
约 5 分钟即可运行。系统会启动 TUI 界面,实时展示本地 AI 智能体活动的进程树、文件操作和网络连接。
方式二:Docker 容器(隔离环境)
docker run --privileged --pid=host --network=host \
-v /sys:/sys:ro -v /usr:/usr:ro -v /lib:/lib:ro \
ghcr.io/eunomia-bpf/agentsight:latest \
record --comm claude
Docker 方式需要 --privileged 权限以访问 eBPF 能力,--pid=host 以监控宿主机进程,--network=host 保留原始网络行为。
方式三:源码构建(完整功能)
需要 Rust 1.87+、Node.js 18+、clang、llvm、libelf-dev,通过 make build 一次构建 eBPF 程序、Rust Collector 和 Next.js 前端。
核心门槛:eBPF 依赖 Linux 4.1+ 内核(推荐 5.0+),且需要 sudo 权限。AgentSight 不支持 macOS 和 Windows——这是 eBPF 技术的固有限制。
AgentSight 代表了一种重要的技术趋势:将系统级基础设施能力(eBPF)与新兴 AI 应用场景深度结合。它的出现让 AI 安全审计、成本控制和行为分析从「黑盒猜测」变成了「白盒观测」。
不过,作为新生事物,AgentSight 也面临一些挑战:
--binary-path 参数来指定二进制路径以绕过静态链接问题,但并非所有情况都能覆盖;AgentSight 于 2025 年 7 月创建,短短一年内已积累 510 star、71 fork、23 个活跃 issue。项目已发表顶会论文,并被 eBPF Foundation 列入 Fellowship 研究方向,生态影响力正在扩大。
对于 AI 开发者而言,AgentSight 提供了一种无需改造代码、无需引入依赖的监控方式,是现有应用层可观测性工具的有力补充。对于 AI 安全研究者,它提供了在系统层面观察 AI 行为的第一手数据源。对于 ML Ops 团队,它可以帮助监控 Token 消耗、识别异常 API 调用行为。
在 eBPF 和 AI 深度融合的大趋势下,AgentSight 是一个值得关注的技术方向。