Skip to main content
2025arXiv 2508.02736

AgentSight: 基于 eBPF 的 AI Agent 系统级可观测性框架

AgentSight: System-Level Observability for AI Agents Using eBPF

AgentSight 提出了边界追踪 (boundary tracing) 这一全新的 AI Agent 可观测性范式,利用 eBPF 在系统层面无侵入地截获 TLS 加密的 LLM 通信意图与内核系统调用动作,并通过混合关联引擎将两者因果关联。实验表明该框架在不到 3% 的性能开销下能有效检测 prompt injection 攻击、推理死循环和多 Agent 协调瓶颈。

Yusheng Zheng (UC Santa Cruz), Yanpeng Hu (ShanghaiTech University), Tong Yu (eunomia-bpf Community), Andi Quinn (UC Santa Cruz)
AI解读Agent 规范与安全Agent 架构设计AgentOpseBPFRuntime Security

论文概览

随着 Claude Code、Cursor Agent、Gemini-CLI 等 AI 编程助手大规模进入生产环境,我们正在面对一个前所未有的运维挑战:如何监控一个非确定性的 AI 系统?传统软件的行为由源码头决定,而 AI Agent 的"源代码"是运行时由 LLM 动态生成的,没有静态分析工具能预测它会做什么。

这篇来自 UC Santa Cruz 和上海科技大学的论文提出了 AgentSight —— 一个基于 eBPF 的 AI Agent 系统级可观测性框架。其核心思想是 边界追踪 (boundary tracing):与其尝试在易变的 Agent 框架代码内部做 instrumentation,不如在稳定且不可避免的系统边界(内核系统调用接口 + 网络 TLS 层)进行外部监控。AgentSight 实现了 6,000 行 Rust/C 用户态守护进程 + 3,000 行 TypeScript 前端,已在 GitHub 开源。

核心创新

1. Boundary Tracing: 从外部看 Agent

论文提出的 边界追踪 方法有一个清晰的动机:Agent 框架迭代极快(LangChain、AutoGen、Claude Code 等 API 频繁变更),但所有 Agent 与世界的交互最终都要经过两个稳定接口——内核的系统调用和网络的 TLS 通信。与其在每个框架里插桩,不如在这两个边界统一设点。

这种方法天然具备三个优势:

  • 框架无关:无论 Agent 用的是 LangChain 还是 Claude Code,系统调用和 TLS 的模式不变
  • 非侵入:Agent 代码零修改,运行时零感知
  • API 变更免疫:框架升级不会导致监控失效

2. 双流混合关联引擎

AgentSight 的核心引擎分为两阶段:

Stage 1 — 实时启发式关联:从 eBPF 环形缓冲区消费原始事件,通过三种信号建立因果关联:

  • 进程族谱 (Process Lineage):追踪 fork/execve 构建完整进程树,将子进程动作归因到父 Agent
  • 时间邻近 (Temporal Proximity):在 LLM 响应后 100-500ms 窗口内发生的事件自动关联
  • 参数匹配 (Argument Matching):直接比对 LLM 输出中的文件名、URL、命令与后续系统调用的参数

Stage 2 — 辅助 LLM 语义分析:将关联后的事件轨迹构造成结构化日志,输入一个辅助的"观察者"LLM,让它充当安全分析师角色——输出置信度评分 + 自然语言威胁解释。这种 "AI 监督 AI" 的设计避免了规则库的脆弱性。

AgentSight 架构图
AgentSight 架构图

3. eBPF 探针设计

意图捕获方面,AgentSight 使用 uprobe 挂载到 OpenSSL 的 SSL_read/SSL_write,在 TLS 解密后的明文层截获 LLM 通信,避免了网络层抓包或代理方案的开销与复杂性。动作捕获方面,使用稳定的 tracepoint(如 sched_process_exec)和 kprobeopenat2connectexecve)监控系统级行为。内核态内置了激进的动态过滤——只有来自目标 Agent 进程及其子进程的事件才会传递到用户态,大幅降低了数据量。

实验评估

性能开销

在 Ubuntu 22.04 (Linux 6.14.0) 上,使用 Claude Code 1.0.62 执行三类标准开发任务,评估结果如下:

任务类型无 AgentSight (s)有 AgentSight (s)开销
仓库理解 (/init)127.98132.33+3.4%
代码编写 (bpftrace)22.5423.64+4.9%
仓库编译 (并行构建)92.4092.72+0.4%
平均+2.9%

编译场景开销几乎为零(0.4%),因为大部分时间花在 gcc 而非 Agent 决策上。代码编写场景开销最高(4.9%),但仍在可接受范围内。整体 < 3% 的开销对于生产环境部署而言是一个亮眼指标。

性能开销对比
性能开销对比

三个案例研究

三个案例研究
三个案例研究

Case 1 — Prompt Injection 检测:构造了一个间接注入攻击:项目的 README 中隐藏了恶意指令,引导 Agent 访问某 URL,进而诱使 Agent 执行 curl 读取 /etc/passwd 并回传。AgentSight 捕获了完整的攻击链——从 URL 到网络外泄共 521 个原始事件,经关联引擎压缩为 37 个关键事件。观察者 LLM 给出高置信度攻击评分,并指出 Agent 的动作与其声明的任务目标逻辑矛盾。

Case 2 — 推理死循环检测:用 CrewAI + GPT-4o-mini 构建研究 Agent,令其反复以错误参数调用 web search 工具,陷入经典的"尝试-失败-重新推理"循环而无法从工具输出中学习。AgentSight 的实时监控检测到了异常的资源消耗模式,观察者 LLM 准确识别出根因为"持久化工具调用错误"。

Case 3 — 多 Agent 协调监控:监控了一个由 6 个 Claude Code subagent 组成的协作开发团队,共捕获 3,153 个关联事件。分析发现前端 Agent 和测试 Agent 因文件锁竞争和串行依赖造成了大量等待,清晰的角色分离可将总运行时间和 token 消耗大幅降低。这是应用层监控完全无法跨进程边界观察到的动态。

启示与思考

与 AARM 框架的契合

AgentSight 的 eBPF 探针方案与 AARM 框架中的 AgentSight(同名工具,注意区分) 高度互补。论文中的 AgentSight 提供的是基础设施层的"传感器",而 AARM 框架中的 AgentMonitor + AgentMoss 可以将其原始事件作为规则匹配和血统追踪的输入源。如果说 AgentMoss 是"大脑"(规则引擎 + 检测逻辑),AgentSight 这篇论文的方案就是"神经系统"(事件采集 + 因果关联)。

Boundary Tracing 的方法论意义

这篇论文最值得关注的并非具体实现,而是 边界追踪 这一方法论本身。它揭示了一个原则:不要追踪 Agent 的内部状态(状态空间爆炸 + 框架绑定),而应该追踪它的外部效应(系统调用 = 行为的必然副作用)。这与安全领域的入侵检测思路一脉相承——与其试图理解攻击者的意图,不如监控其不可避免的系统交互。

局限性

论文篇幅较短(6 页),存在几个值得关注的局限:

  1. 评估规模较小:案例研究是单机构造的,缺乏大规模真实生产环境的验证
  2. eBPF 平台依赖:当前仅支持 Linux,Windows 的 eBPF 支持仍在早期阶段
  3. 观察者 LLM 的成本与延迟:论文提到通过异步处理缓解,但未给出具体的 token 消耗和推理延迟数据
  4. 语义鸿沟并未完全消失:辅助 LLM 的分析仍然受限于其理解能力,agentic interpretability 的可靠性理论框架尚待建立

后续研究方向

AgentSight 的设计为以下方向打开了空间:

  • eBPF + AgentMoss 的深度集成:将 AgentSight 的内核事件流作为 AgentMoss 双模式检测(实时单会话 + 跨会话全局关联)的数据源
  • 主动防御:在检测到可疑行为时,利用 eBPF 的 bpf_override_return 能力实时阻断系统调用
  • 跨节点追踪:在多 Agent 跨主机协作场景中,通过 eBPF 网络层探针实现分布式因果追踪

总的来说,这篇论文精准地捕捉了 AI Agent 可观测性的核心矛盾——语义鸿沟,并给出了一个工程上优雅、方法论上深刻的解决方案。它不属于那种"提出一个新模型 SOTA 提升 0.x%"的工作,而属于那种"定义一个新领域的问题与方法"的基础性贡献。

参考链接