使用说明
English | 中文
从源代码编译
1. 克隆仓库并初始化子模块
git clone https://github.com/eunomia-bpf/agentsight.git
cd agentsight
git submodule update --init --recursive如果你已经克隆过仓库但尚未初始化子模块(libbpf/ 和 bpftool/ 目录为空),请执行:
git submodule update --init --recursive2. 安装系统依赖
make install这会安装编译所需的 libelf、zlib、clang、llvm、Node.js 和 Rust 工具链。
3. 编译
make build编译成功后,agentsight 二进制程序生成在 collector/target/release/agentsight。
也可以单独编译各组件:
make build-bpf # 仅编译 eBPF C 程序
make build-rust # 仅编译 Rust collector
make build-frontend # 仅编译前端从源码运行
make build 完成后,在仓库根目录运行下面的命令。除 top 外,需要加载 eBPF probes
的命令推荐显式使用 sudo;top 无需 sudo 也能工作,并在 sudo 已可用时启用 live
eBPF capture。没有 eBPF 权限时,它会退化到进程快照和 agent-native session。
# 实时查看本机智能体 session
./collector/target/release/agentsight top
# 启动并记录一个命令
sudo ./collector/target/release/agentsight record -- claude
# 查看最近保存的运行
./collector/target/release/agentsight report
# 附加到已经运行的进程族
sudo ./collector/target/release/agentsight record -c claude
# 可配置的底层调试追踪
sudo ./collector/target/release/agentsight debug trace --server -c claude
# 原始 SSL 调试捕获,启用 HTTP 解析
sudo ./collector/target/release/agentsight debug ssl --http-parsertop、record 与 debug trace
日常使用先从 top 开始;需要保存一次运行用于复盘时使用 record;只有在需要
精细控制采集源和过滤规则时才使用 debug trace。
top — 默认实时视图
top 是最直接的入口,用于实时查看本机正在活动的智能体 session。它会发现本地
智能体进程和 agent-native session 日志,并把系统活动关联到 session。
典型用法:
./agentsight toprecord — 开箱即用的智能体录制
适用于录制 AI 智能体(Claude Code、Python AI 工具等)的一次运行,生成可复盘的本地 session。
record -- <command>用于启动并记录一个命令;record -c/-p用于附加到已运行进程- 自动开启:SSL 监控 + 进程监控 + 系统监控 + Web 服务器(端口 7395)
- 默认不丢弃事件:如需过滤请求、响应或 SSL 片段,使用
debug trace的显式过滤选项 - 默认静默模式(不输出到底层事件流),数据写入实时 view 和本地 SQLite session
典型用法:
sudo ./agentsight record -- claude
./agentsight reportdebug trace — 完全可控的灵活监控
适用于需要自定义监控范围、过滤规则的调试和分析场景。
- 无必填参数,所有功能独立开关
- SSL(
--ssl)、进程(--process)默认开启,但可关闭 - 系统监控(
--system)、stdio 捕获(--stdio)、Web 服务器(--server)默认关闭,需手动开启 - 过滤规则完全由用户通过
--ssl-filter、--http-filter自定义 - 默认输出到控制台,可用
-q静默
典型用法:
sudo ./agentsight debug trace --ssl true --process false --server --http-filter "request.method=POST"在前端连接 AgentSight Node
运行下面这个无需 sudo 的命令,在默认托管前端
https://app.agentsight.us 打开 Node 数据:
agentsight bind该命令默认在 127.0.0.1:7395 启动 API,打开带认证信息的连接链接,并在前台持续运行。
不传 --db 时读取实时进程和本机 agent session index;使用 --db <capture.db> 才会明确读取
一次保存的捕获。首屏是机器级实时 top:统一显示运行中/已停止
的智能体、观测 Token 用量、数据源报告的订阅容量、Agent Plan、CPU 和 RSS。点击 session 后
可展开对话、进程树与 AI 提示或分析视图。分析视图统一呈现 Token/模型用量、工具/文件/网络影响、
失败、Session 资源和交互式时间线,并保留点击单个事件查看详情的能力;不再提供独立的 raw event
或性能面板。会话详情在有界文本预算内保留最新 1,000 条提示、2,000 条回复和 2,000 条工具事件。
Node 访问密钥保存在操作系统的 AgentSight
配置目录并跨重启复用;连接链接只通过 URL fragment 把密钥交给浏览器,SPA 读取后立即从
地址栏清除。Chrome 可能会请求允许该网页访问本地或私有网络。
登录后,组织首页默认为“全部机器”。浏览器通过 Direct 或 Relay 向每个可达 Node 查询有界概览, 只在浏览器内存中聚合机器状态、活动 Agent、已报告 Token、CPU/RSS、Agent Plan 和数据源报告的 订阅窗口;可用机器选择器在多机总览和单个 Node 之间切换。AgentSight Cloud 只保存机器目录和 访问策略,不会把聚合后的 evidence 复制进 D1。
使用 agentsight bind --no-open 可手动复制链接,使用 agentsight bind --qr 可打印
同一个链接的二维码。Local 只是自动发现的默认路径,并不是另一套协议:可以用
--listen <IP> 和 --server-port <PORT> 选择监听 socket;经过 hostname、tunnel 或
HTTPS reverse proxy 时用 --endpoint <URL> 指定浏览器实际访问的 Node URL;用
--app-url <URL> 选择自托管静态前端。例如:
agentsight bind --listen 0.0.0.0 --server-port 7395 \
--endpoint https://node.example.net \
--app-url https://agentsight.example.net/如果要把状态和认证留在运行中的 Docker 容器内,同时让宿主 AgentSight Node 发现容器内的 agent-native 会话,请先在容器内安装同版本 AgentSight,并在启动 宿主 Node 时指定容器名:
agentsight bind --docker-container ebpfos-devbridge 没有 provider 特例,而是在容器内复用 AgentSight 现有的通用会话发现和
消息运行时。目前可发现 Claude Code、Codex、Gemini CLI 和 Cursor 会话;Claude
Code、Codex 和 Gemini CLI 支持恢复并发送消息。其他命令仍可由普通 top/record
观测,但要等对应 provider runtime 支持后才能恢复。认证始终留在容器内。可重复
传入 --docker-container;如果 session ID 冲突,AgentSight 会拒绝猜测目标。
通过该 bridge 恢复 Codex 会话时,指定容器就是外部 sandbox 边界:AgentSight 会对该 turn 关闭 Codex 的嵌套命令 sandbox 和交互式批准。这样受限 dev container 不需要创建用户命名空间, 而本机非容器会话仍保留默认策略。只应配置其文件系统和网络访问可以作为可信边界的容器。 凭据可以在运行时挂载;AgentSight 不会把凭据复制进宿主 Node,也不会写入镜像。
标准 Docker socket 或 docker 用户组权限是 daemon 级的,通常等价于宿主 root;
指定容器名只限制 AgentSight 的行为,不是 Docker 的授权边界。如果需要更窄的边界,请使用
每用户 rootless Docker daemon,或只放行必需 inspect/exec 操作的 allowlist broker/socket proxy。
只配置可信容器:该私有 stdio 通道没有额外的带内认证,且会导入容器会话元数据。
宿主和容器内的 AgentSight 应保持同版本。
开发容器可声明 com.agentsight.user、com.agentsight.workspace 和
com.agentsight.home labels。AgentSight 用它们设置 docker exec 的用户、工作目录和
HOME;未设置时依次使用镜像的绝对 HOME、passwd entry 或路径 owner。provider 专用环境变量
应保留在容器配置里,而不是写进宿主 AgentSight 配置。AgentSight 会使用绝对 CODEX_HOME
发现 Codex 会话和 state;相对值回退到 $HOME/.codex。
监听 0.0.0.0 或 :: 时必须显式提供 --endpoint。非 loopback Node 应使用浏览器信任的
HTTPS;私有网络本身不会绕过浏览器 mixed-content 规则。应把访问密钥视为长期凭据:任何
持有者都能在 Node 可达时调用 Node API。Direct 请求不经过 AgentSight Cloud;启用
Controller Relay 时,选中的请求和响应会经过 Cloud runtime,但不会持久化到 D1。登录会在
控制面保存账号、组织和 Node 协调数据。自托管登录还需要把 SPA 的
NEXT_PUBLIC_CONTROL_PLANE_URL 指向配套
Worker,并把 Worker 的 APP_ORIGIN 设为该 SPA origin。
对比总结
| 维度 | record | debug trace |
|---|---|---|
| 定位 | 一键录制,预设优化 | 灵活定制,精细控制 |
| 必填参数 | 无;可用 -- <command>、-c <comm> 或 -p <pid> | 无 |
| Web 服务器 | 默认开启,可用 --no-server 关闭 | 需 --server |
| 系统监控 | 默认开启 | 需 --system |
| 控制台输出 | 默认关闭 | 默认开启 |
| 过滤规则 | 默认不过滤 | 用户自定义 |
| 持久化 | 默认 SQLite | 传 --db 时写 SQLite |
简单来说:实时查看用 top,保存复盘用 record,深度调试用 debug trace。
继续阅读
返回索引
AgentSight:基于 eBPF 的零侵入 LLM 智能体可观测性工具
 
上一篇 / 上一页
Report export snapshot schema
agentsight report export -o snapshot.json writes a JSON snapshot of the materialized view. The same shape is returned by GET /api/v1/snapshot. This document describes schema version 1.
- 最后更新
- 2026年8月24日
- 首次发布
- 2026年6月2日
- 贡献者
- github-actions[bot], LinuxDev9002, 云微, LinuxDev9002
这个页面有帮助吗?