实战演示:利用 LoongSuite Pilot 实现 Claude Code Webhook 数据的旁路上报

作者:马云雷

AgentLoop 数据飞轮实践系列 · 第 2 篇 / 共 5 篇:

上一篇:总览 ------ 让 Agent 持续调优的闭环/ 下一篇:评估 ------ 从黄金指标到 Rubric

数据接入是数据飞轮的起点:没有高质量的运行数据,观测、评估、实验都无从谈起。但"把数据接上来"这件事本身并不简单------Agent 不像传统微服务只有一种调用形态,它可能是开箱即用的通用 Agent,可能是基于框架研发的,可能是高代码自研的,甚至可能完全不想改一行代码。

这一篇讲清楚两件事:智能体观测与优化平台 AgentLoop 的数据接入能力是怎么设计的(为什么四种形态的 Agent 都能接),以及如何亲手把一个基于 Claude Code 的 Agent 接入平台。

技术底座:OTel 协议+探针

AgentLoop 的数据接入构建在 OTel(OpenTelemetry)标准协议之上,以探针的形式工作:

图 1:基于 OTel 标准协议的探针接入

探针会把 Agent 里各个调模型的地方、调工具的地方都以 Trace ID 的形式串联起来,并且把上下文的依赖关系完整串联,形成一张 Trace 拓扑图:

图 2:Trace 拓扑:探针以 Trace ID 串联模型调用与工具调用,还原完整执行轨迹(示意图,依据演示描述绘制)

在此基础上,再基于拓扑图组装出 Agent 完整的思考和执行轨迹

选择 OTel + 探针不是偶然:OTel 是可观测性领域的事实标准,意味着接入不锁定、数据可互通;而探针是打磨了十多年的数据采集技术,能在不侵入业务逻辑的前提下把程序里各个角落的数据串联起来------这是整个接入能力的核心竞争力。选标准协议做底座,本质上是在保证:今天接进来的数据,未来任何基于 OTel 的生态都能消费。

四种接入方式

Agent 的形态千差万别,一套接入方式不可能通吃。针对不同形态的 Agent,AgentLoop 提供四种接入方式:

1. 通用 Agent:一键对接

针对常见的通用 Agent,AgentLoop 做了专业化的埋点,可以直接一键对接。如果你用的就是这类开箱即用的通用 Agent,不需要任何开发工作,直接采用这种方式即可。

2. Agent 框架:SDK 集成

如果 Agent 是基于 AgentScope 这类 Agent 框架研发的,直接通过集成方式就能快速完成数据的对接和上报:

图 3:基于 AgentScope 框架的 Agent 通过集成方式接入

框架集成的好处是埋点跟着框架走:框架知道模型调用、工具调用发生在哪,SDK 在这些关键位置自动完成采集,开发者几乎无感。

3. 自定义高代码:注解埋点

高代码场景(包括用 AI-coding 方式自研的 Agent)可以引用 AgentLoop 的依赖包,在程序里需要埋点的地方用注解的方式采集数据,上报到云端:

图 4:自定义高代码接入:依赖包 + 注解方式采集

这种方式把埋点位置的控制权交还给开发者:哪段逻辑需要观测,就在哪里加注解。值得一提的是,现在采用 AI-coding 方式开发的话,加几行埋点代码的成本非常低,高代码接入实际上也很简单。

4. eBPF:无侵入

如果完全不想改代码,可以用 eBPF 方案------通过内核级的监控,无需修改任何代码即可对接。它能够观测到 Agent 与模型网关之间的交互、执行工具过程中的指令,同时覆盖模型调用和 Agent 执行的观测:

图 5:eBPF 无侵入接入:内核级监控

eBPF 工作在内核层,采集对应用完全透明------适合存量系统、无法改动的闭源组件,或者就是想先看看数据再决定怎么埋点的场景。

小结:探针方式覆盖通用 Agent、Agent 框架、自定义高代码三类场景;eBPF 作为无侵入兜底。四种方式不是互斥的选择题,而是按你的 Agent 形态和改造意愿选择成本最低的一条路。

两个关键概念:Service Name 与 License Key

接入时有两个必填概念。所有数据都在同一个 AgentSpace(workspace)之下,那么怎么区分数据从哪个应用来、是谁上报的?答案就是这两个字段:

图 6:Service Name 区分应用,License Key 用于鉴权

  • Service Name:同一个 AgentSpace 下,用 Service Name 区分不同的应用、区分来源是哪一种 Agent。可以为不同的 Agent 取不同的名字。它是数据的"归属标识"------后续观测、评估按 Service Name 圈定范围;
  • License Key:用于数据鉴权------上报数据时需要 License Key 做身份标识和鉴权。它是数据的"通行证",没有它数据报不上来。

实操:接入 Claude Code 构建的客服 Agent

概念讲完,动手。演示用的客服 Agent 是 AgentLoop 自身的一个 Agent,基于 Claude Code / Claude Agent SDK 构建。这种 Agent 有两种接入方式:

1. 探针方式接入;

2. Claude Code webhook 方式------从 Claude Code 支持的 webhook 把数据发出来。

本次演示采用更原生的 webhook 方案,配合 LoongSuite Pilot 完成接入。

步骤 1:获取 License Key,执行安装命令

先在控制台获取 License Key,然后执行安装命令:

图 7:在机器上执行安装命令,部署 LoongSuite Pilot

安装命令会在机器上先装一个依赖,再部署采集组件。整个过程只需要这一条命令。

步骤 2:理解采集工作机制

整个采集机制是:安装一个 LoongSuite Pilot------它是一个旁路进程;Claude Code 的配置里加了一些 webhook,会把相关信息发送到 Pilot 进程,再由 Pilot 上报到云端:

图 8:采集链路:Claude Code 经 webhook 发送到 LoongSuite Pilot 旁路进程,再上报云端(示意图)

"旁路"是这个设计的关键词:Pilot 不在 Agent 的执行路径上,采集的开销和故障都不会影响 Agent 本身------数据发不出去时,Agent 照常工作。

步骤 3:拷贝配置并重启 Agent

安装完成后,hooks 已经配置在 settings.json 里:

图 9:settings.json 里已安装好 hooks

注意: 这是 Claude Code 默认的配置文件,安装时会默认装到默认目录。我们需要把它拷贝到自己 Agent 的安装目录 下面,然后重启 Agent,让 hooks 生效。这一步容易踩坑------忘了拷贝或忘了重启,数据就不会上报。

步骤 4:测试并到观测页验证

重启后做一次测试,Agent 正常响应。接着到观测页面确认数据是否上报:

图 10:观测页已能看到上报的数据

数据已经上报上来了。点开链路明细,可以看到完整的执行链路,包括大模型的处理步骤:

图 11:链路明细中可见大模型处理步骤

能看到大模型处理这一步,说明探针把模型调用也串进来了------不只是工具调用。至此,数据接入流程全部完成:从执行一条安装命令,到观测页看到完整链路,前后不到十分钟。接入打通之后,飞轮就有了持续的数据供给,下一篇进入"Agent 跑得怎么样"。

小结

要点 说明
协议底座 OTel 标准协议 + 探针,Trace ID 串联全链路
四种方式 通用 Agent 一键对接 / Agent 框架集成 / 高代码注解 / eBPF 无侵入
两个概念 Service Name(区分应用)、License Key(鉴权)
Claude Code 实操 webhook + LoongSuite Pilot 旁路进程,拷贝 settings、重启生效
验证方式 观测页查看上报数据与链路明细

下一篇预告: 数据进来之后,下一步是回答"Agent 跑得怎么样"。我们将定义客服场景的黄金指标,让 AI 帮忙拆解成 Rubric,创建评估器并跑通第一个评估任务。

相关推荐
明月_清风3 小时前
发现一个超系统的 AI Agent 学习地图 —— Agent Atlas 推荐
人工智能·后端·agent
DigitalOcean3 小时前
AI Agent如何降本?从五层技术栈到三种推理服务
llm·agent
Erishen5 小时前
🚀 用 React Three Fiber 造一个会说话的 3D 数字人:从密钥安全到 Serverless 10 秒极限的踩坑全记录
架构·开源·agent
百工蜂Agent5 小时前
Claude Code 整体架构与设计
llm·agent
简单风6 小时前
给 Claude Code 装个仪表盘:钱花多少、上下文剩多少、Git 状态一眼看清
agent
leeyi7 小时前
把软件装进不能上网的机房——一套建好了、还没上过战场的交付工程(第101篇)
docker·aigc·agent
SelectDB8 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
机械改造鹅8 小时前
从零开始拆解Pi系列——(7)Extension API
agent
plainGeekDev9 小时前
Agent代码审查与批量修复流水线
agent·ai编程·claude