"凌晨 3 点 47 分,我的 Agent 调用了另一个 Agent,那个 Agent 又调用了第三个——我注视着会话日志,像在考古现场挖掘化石层。每一层调用,都是一个故事的开始。"
ACP Session Lineage(会话线路) 是 OpenClaw v2026.5.12 引入的会话元数据追踪机制。它通过 Gateway(OpenClaw Gateway)的 ACP(Agent Client Protocol)API 暴露会话谱系信息,让客户端能够在不依赖私有 Gateway 侧信道的情况下,渲染完整的子 Agent 调用关系图。
翻译成人话就是——以前你得走后门才能看到"A找了B,B找了C"的调用链;现在 ACP 直接把这棵"关系树"摆在前门,大大方方给你看。
在复杂的 Multi-Agent 系统中,一个任务可能触发级联调用链:
用户请求 → Agent A(主会话)
├── 子 Agent B(数据查询)
│ ├── 孙 Agent D(数据库查询)
│ └── 孙 Agent E(API 调用)
└── 子 Agent C(结果渲染)
└── 孙 Agent F(模板生成)
没有 Lineage 信息,你只能看到一堆独立的会话 ID,根本搞不清谁是父子关系。调试和追踪变得像在迷宫里找钥匙。
# 列出会话,获取 Lineage 元数据
openclaw session list --format json
# 输出示例
[
{
"id": "session_abc123",
"label": "用户对话",
"lineage": {
"parent": null,
"path": "/",
"depth": 0
}
},
{
"id": "session_def456",
"label": "数据查询子任务",
"lineage": {
"parent": "session_abc123",
"path": "/session_abc123/session_def456",
"depth": 1
}
},
{
"id": "session_ghi789",
"label": "数据库查询",
"lineage": {
"parent": "session_def456",
"path": "/session_abc123/session_def456/session_ghi789",
"depth": 2
}
}
]
# ACPX 客户端查看会话谱系
npx acpx session list --tree
# 输出
root session_abc123 ── "用户对话"
├── session_def456 ── "数据查询子任务"
│ └── session_ghi789 ── "数据库查询"
└── session_jkl012 ── "结果渲染"
└── session_mno345 ── "模板生成"
OpenClaw 的 Session Lineage 通过以下机制实现:
/parent/child/grandchild),方便拓扑还原// Lineage 元数据结构
interface SessionLineage {
/** 父会话 ID,根会话为 null */
parent: string | null
/** 会话路径,格式:/rootId/childId/grandchildId */
path: string
/** 深度(0-based) */
depth: number
}
interface SessionInfo {
id: string
label?: string
created: number
// ... 其他元数据
/** v2026.5.12 新增 */
lineage?: SessionLineage
}
| 场景 | Lineage 带来的价值 |
|---|---|
| 调试级联 Agent | 一眼看出哪个子 Agent 出了问题,不必逐个检查日志 |
| 性能分析 | 统计每个子树的总耗时,找到性能瓶颈 |
| 安全审计 | 追溯某个敏感操作的完整调用链路 |
| UI 渲染 | 前端可以渲染出漂亮的 Agent 调用树形图 |
| 收费分析 | 按子树计算 Token 消耗,精准分摊成本 |
没有 Lineage 的 Agent 系统就像没有家谱的大家族——你知道有个"三叔公",但搞不清他是爷爷的弟弟还是爸爸的叔叔。ACP Session Lineage 给了每个 Agent 会话一个"族谱位置",让级联调用的关系一目了然。
对于运营复杂 Multi-Agent 系统的同学,这玩意就是调试的"CT 扫描仪"——你不需要再靠猜和碰运气来找问题了。
📅 更新于 2026-05-18 · 妙趣AI · 🦞