
最近,随着大型语言模型(LLM)Agent(列如 Claude Code、Gemini-CLI 等)越来越被用于自动化运维、代码生成、脚本执行等场景,一个问题变得日益突出:**我们究竟能用什么方式深入、真实地观察这些 AI Agent 在系统层面上的行为?**传统的监控往往只能看到应用层日志或者代理 SDK,但这些方式很容易被隐藏、绕过,甚至被恶意操控。为了解决这个问题,一个名为 AgentSight 的开源项目横空出世,它基于 eBPF 技术,实现了零侵入(zero-instrumentation)地捕获 Agent 的网络与系统行为,让我们能够以更安全、更可靠的方式监控 AI Agent。今天,这就是本期的 GitHub 精选。
一、为什么 AgentSight 是一个值得关注的项目
在 AI Agent 逐渐担当系统“执行者”角色的时候,我们对它们的信任越来越高,但同样需要更强的监控能力。想象一下这样的场景:
- 你的 Agent 接收到一个恶意 prompt,被诱导后执行危险操作;
- Agent 在内部开一个逻辑死循环,持续调用接口,刷预算;
- 多个 Agent 协作时,它们之间发生了资源争用或异常交互;
- Agent 执行了子进程操作、文件读写、系统命令,却没有任何日志可查。
如果只靠应用级别的监控工具(例如 SDK、代理、日志框架),监控者很可能被“蒙蔽”或绕过。应用级监控可以看到 Agent 在说什么(prompt、调用 API),却很难保证它到底在做什么。另一方面,传统的系统监控工具虽然能看到进程、系统调用、文件访问,但它缺乏语义上的上下文联系:监控者不知道哪个系统调用是由哪个 prompt 触发的,也难以还原 Agent 的“真实意图”。
AgentSight 正是为了解决这个语义鸿沟(semantic gap)而设计的。通过 eBPF(扩展 Berkeley Packet Filter) 技术,它在系统边界(而非应用内部)侧安装监控点,实时拦截 SSL/TLS 流量、追踪进程生命周期,以及文件和网络操作,然后利用一个实时分析引擎将这些系统级事件与上层语义(prompt、响应)关联起来。这个设计让监控变得 不可绕过、难以篡改,同时对系统性能开销超级小(作者宣称低于 3%)。
二、AgentSight 的核心技术与架构
1. 零侵入设计(Zero-Instrumentation)
AgentSight 的一个最大亮点是 无需修改被监控 Agent 的任意代码。你不需要在你的 Agent 程序里接入 SDK,也不需要配置日志或代理,只要有 Agent 在运行,AgentSight 就能在系统层面捕获它的行为。
这种设计超级适合以下几种情况:
- 闭源或不允许修改内部代码的 Agent。
- 多 Agent 系统,使用不同实现方式(Python、Node、Go 等)。
- 想要一个统一、底层的监控平台,而不是依赖每个 Agent 框架提供的监控接口。
2. eBPF 数据采集(内核层)
AgentSight 利用了 eBPF 技术(即在 Linux 内核中动态插桩)来做两个关键类型的监控:
- SSL/TLS 流量监控:通过在 OpenSSL(或其它加密库)中的 SSL_read、SSL_write 等函数上打 uprobes(用户态探针),拦截和提取加密通信被解密之后的真实数据。这样就可以看到 Agent 与 LLM 服务之间传递的真实 prompt 和响应内容。
- 系统进程与文件活动监控:通过 tracepoints(内核事件)监控进程执行(如 exec)、进程生命周期,以及文件操作等。这样可以记录 Agent 启动子进程、读写文件、连接网络等所有行为。
整个采集层设计得超级节俭,只过滤与目标 Agent 有关的事件,避免产生过多无用数据,从而减轻系统开销。
3. 用户空间分析框架(Rust)
内核采集到的数据以 JSON 形式通过 ring buffer 或 perf 等机制被传送到用户态,由一个 Rust 编写的流式分析框架 负责处理:
- Runners(采集器):运行 eBPF 程序并收集 JSON 事件。
- Analyzers(分析器):分析这些事件,如 HTTP 协议解析、流重组(尤其是 SSE、chunked 等传输方式)、过滤敏感内容、合并块等。
- 事件系统:标准化事件格式,包括 SSL 事件、进程事件、组合事件等,便于后续处理。
通过这种方式,系统得以将原始内核事件翻译成更高层次、更语义丰富的数据。
4. 前端可视化(React + TypeScript)
为了让用户直观地了解 Agent 行为,AgentSight 提供一个 Web 界面:
- 时间轴视图:展示 Agent 与 LLM 交互的历史记录,以及系统调用、网络连接、文件访问等的时间线。
- 进程树视图:以树状结构展示 Agent 及其子进程的生命周期,以及它们之间的关系。
- 日志/原始事件视图:可以查看原始 JSON 事件,展开分析细节,也可以按需过滤。
这个可视化界面使分析者既能看到系统级操作,也能关联到语义层面的交互,协助快速定位问题——无论是异常行为、安全风险,还是性能瓶颈。
三、AgentSight 的应用价值与典型场景
AgentSight 的设计意图并非仅仅 “看一看 Agent 在干嘛”,它更像是一个 Agent 运维与安全平台。以下是它可能发挥巨大作用的几个场景:
- 安全检测
- Prompt 注入:如果 Agent 收到恶意 prompt(例如诱导其执行危险命令或植入后门),AgentSight 能拦截其通信,同时追踪生成的系统调用和文件写入,从而及时发现异常。
- 恶意操作:即便 Agent 内部隐藏了日志,也能通过系统层面发现潜在的风险行为,列如子进程启动、网络访问、文件写入等。
- 性能分析
- 循环调用:Agent 在思考或推理阶段可能进入死循环(不断发请求、重复计算),消耗大量资源,甚至无限消耗。通过时间轴 + 系统调用监控,可以识别出这种资源浪费。
- 多 Agent 协作:多个 Agent 协同工作时可能存在瓶颈,列如频繁启动子 Agent、相互通信、争夺 CPU / 内存。AgentSight 通过进程树 +事件关联,可以协助分析这些协作热点。
- 监控与审计
- 行为审计:对 Agent 的每一次行为进行系统级记录,便于回溯和审查。
- 合规需求:在对敏感操作有监管或审计需求的场景下,AgentSight 提供了一个不依赖 Agent 内部日志、难以被规避的监控渠道。
- 生产诊断:运维人员可以通过可视化界面实时观察 Agent 在生产环境中的行为,快速定位异常。
- 研究和开发工具
- Agent 行为研究:对学术研究者或系统工程师来说,AgentSight 是一个强劲的工具,可以探索 Agent 在系统层面的决策和执行轨迹。
- AgentOps 平台搭建:如果你想搭建一个 Agent 管理和运维平台,AgentSight 可以作为安全与可观测性基础设施。
四、部署和使用
想要上手 AgentSight,基本流程并不复杂,但有必定系统要求:
- 前提条件
- Linux 内核版本需要支持 eBPF(作者提议 5.0 及以上更佳)。
- 需要 root 权限或相应能力(e.g. CAP_BPF、CAP_SYS_ADMIN)来加载 eBPF 程序。
- 本地环境需要 Rust 工具链(版本如 1.88.0+)用于构建用户空间分析框架。
- 如果你想编译前端,可通过 Node.js(版本要求 18+)来构建 React / TypeScript 界面。
- 构建还需要系统开发工具链,例如 clang、llvm、libelf-dev 等。
- 安装方式
- Docker 方式(推荐):通过一个特权容器运行 AgentSight,容器使用 –privileged,访问主机进程、系统库(如 /usr、/lib)并挂载日志目录。这样可以在不污染宿主环境的条件下快速启动。
- 从源码编译:
- 克隆仓库(带子模块)
- 执行 make install 安装系统依赖
- 一个命令构建所有组件:前端、eBPF 程序、Rust 收集器
- 也可以单独构建各子模块,列如 make build-bpf、make build-rust、make build-frontend。
- 运行示例
- 如果你想监控 Claude Agent:sudo ./agentsight record -c “claude”
- 监控 Node(如 Gemini-CLI):sudo ./agentsight record -c “node”。如果是通过 NVM 安装的 Node.js 且静态链接了 OpenSSL,还可以指定 –binary-path 参数。
- 启动 Web 界面:在命令中加 –server,例如 sudo ./agentsight record -c python –server-port 8080。之后访问 http://127.0.0.1:7395 来查看时间轴、进程树、日志等。
五、风险与限制
尽管 AgentSight 超级强劲,但它也不是万能的,仍存在一些技术和使用限制:
- 对内核要求较高:需要支持 eBPF 的 Linux 内核,并且有能力加载内核探针,某些发行版或受限环境不必定能满足。
- 权限问题:必须以 root 或具有高度权限运行,这在生产环境中可能带来安全顾虑。
- 性能开销:虽然设计目标是 < 3% 的 CPU 开销,但在高负载或大型 Agent 系统中,还是有可能产生必定开销,特别是当事件量很大时。
- 隐私问题:拦截 SSL 解密内容可以揭示 Agent 和 LLM 之间的对话内容,这对隐私敏感或合规受限的环境是个风险。使用时需要谨慎思考数据存储、访问控制等策略。
- 部署复杂性:构建和部署涉及多个技术栈(eBPF、Rust、前端),对于没有相关经验的团队来说,上手可能有必定门槛。
六、开源许可(License)
AgentSight 是一个 开源项目,它采用 MIT 许可证(MIT License),意味着你可以自由使用、修改、分发其代码,只要保留原始版权和许可声明。这种许可证超级灵活友善,超级适合科研、生产以及二次开发。
七、小结
总的来说,AgentSight 是一个超级有前瞻性、技术含量极高的项目。它用系统级别的 eBPF 技术桥接了 Agent 高层语义(prompt、响应)与底层行为(系统调用、文件访问、子进程等)之间的鸿沟,实现了对 LLM Agent 的 不可篡改和高信任观测。
- 对运维团队来说,它是一个强有力的安全和审计工具;
- 对研究者来说,它是一个分析 Agent 行为、理解 Agent 决策过程的窗口;
- 对开发者来说,它提供了一个开箱即用、框架无关、对性能影响极小的 Agent 监控方案。
如果你在维护 Agent 驱动系统、做 AgentOps 平台、或者对 Agent 的行为安全性和合规性超级关心,这个项目值得深入探索与实践。
AgentSight 正在开源社区蓬勃发展,后续有更多人参与进来,也许还会出现更多扩展,列如更复杂的分析器、更多协议解析器、更多可视化方式。如果你对 eBPF、LLM Agent、系统安全或监控技术感兴趣,强烈推荐关注这个项目。信任未来,这种从 “应用级监控” 向 “系统级行为观测” 的转变,将是 Agent 运维和治理的重大趋势。
















- 最新
- 最热
只看作者