← 返回文章列表

别急着叫 Multi-Agent:TraceWise 的 Planner、Verifier 与 Persona 到底负责什么

沿串行控制流拆解 Planner、Verifier 与 Persona 的输入输出,解释 confidence 的计算含义与两类 Persona 的区别。

返回 TraceWise 项目总览 · 交互图:产品 · 运行时 · 架构 / 端到端 · 工作流

当代码中出现 Planner、Worker、Verifier、Synthesizer 和 Persona,人们很容易把系统描述成“多个 Agent 自治协作”。这个说法听起来先进,也很适合演示,但名称不能代替控制流。

TraceWise 曾经面临同样的问题。项目确实使用了这些责任名称,前端也展示“子图责任段”和“Verifier 缺口”。但沿着一次真实请求往下看,当前实现是一个进程内、同步、确定顺序的分析流水线。它有清晰的责任划分,却没有独立 Agent 所需的调度、持久化、预算和故障恢复边界。

这篇文章沿调用路径解释:Planner、Verifier 和 Persona 分别处理什么输入,如何传递结果,在哪里作出判断。

先看真实控制流

一次子图编排由同一个 SubgraphOrchestratorService 顺序执行:

Planner
  → 根据问题、选中节点和显式上下文规划子图
Dispatcher
  → 记录 worker_count,明确 execution=sequential
Subgraph Worker
  → 在 for 循环中逐个分析子图
Verifier
  → 汇总 Evidence、缺口和启发式差异
Synthesizer
  → 组织最终文本与建议动作

执行记录使用 planning、delegation、worker、verification、synthesis 等 stage,并给每个阶段标注 actor。这个记录让责任段可观察,但 actor 名称没有改变它们共用同一服务实例、同一调用栈和同一运行生命周期的事实。

TraceWise 产品运行时中 Context、Host Model、Graph/Evidence 与分析责任段的关系

技术解释图:产品运行时包含多个责任明确的服务,但图中的责任名称不等于多个自治 Agent。

Planner 做的是有界分解

Planner 根据问题搜索种子节点,将显式选中的节点固定进入候选,再按邻域、关系权重、跳数和上限形成若干子图。Preview 阶段可以先把这些责任段展示给用户,而不直接执行分析。

Planner 当前不具备:

  • 自己的长期记忆;
  • 独立模型会话;
  • 可持续运行的任务队列;
  • 动态创建或终止其他 Agent 的能力;
  • 独立重试与恢复策略。

因此更准确的说法是“问题引导的子图规划责任段”。

Worker 是顺序执行,不是并行群体

编排器对规划出的子图做一个普通 for 循环,每次调用 _analyze_subgraph,然后记录 claim 数、Evidence 数和 confidence。运行快照甚至明确写入 execution: sequential

这种设计并不低级。相反,它带来三个现实好处:

  1. 输出顺序稳定,便于复现和测试;
  2. 共享 Graph 快照时,不必处理多个 Worker 的版本竞争;
  3. 失败点集中,用户能知道在哪个责任段中断。

代价也很明确:它没有并行吞吐,也没有独立 Worker 的取消、隔离和部分恢复。如果未来把 Worker 变成真正的独立执行单元,必须重新定义输入快照、预算、幂等、超时、取消和聚合契约,而不是简单把 for 循环改成并发调用。

Verifier 验证的是缺口,不是结论真伪

当前 Verifier 汇总两类信号:

  • 哪些子图节点没有 Evidence;
  • 不同子图的启发式 confidence 是否出现明显差异。

它还会把这些问题转换成 conflicts 和 suggested actions。例如,存在缺失 Evidence 时要求补充依据;出现置信差异时建议人工比较责任段。

这是一种有用的结构检查,却不能被描述为“Verifier 已验证结论正确”。原因在于当前 confidence 来源包括节点数量、关系数量、Evidence 覆盖和固定启发式分值,它没有经过概率校准,也没有与人工真值进行独立对照。

一个最小反例足以说明风险:如果加入一条与结论语义无关、但形式上关联到节点的 Evidence,覆盖数量可能上升,confidence 也可能随之变化。数量增加不代表语义支持增强。

所以本文使用“Evidence 缺口检查”和“启发式差异”这两个词,而不是“事实核验器”或“正确率验证器”。

Persona 有两种不同含义

TraceWise 中的 Persona 容易被混在一起。

第一种是对话视角。用户可以选择 assistant、expert、project_manager 或 infrastructure。这个值进入普通 Agent 对话的 Prompt,并显示在 Context diagnostics 中,用于改变回答关注点。

第二种是实体档案。Graph 节点可以保存 role、responsibility、concerns、interaction style 和 source refs,帮助解释一个实体在项目分析中代表什么职责。

但子图编排请求本身没有 persona 字段。它接收 question、selected node、context node IDs、max subgraphs 和 depth。运行完成后,前端可以把当前 Persona 作为展示与后续提案上下文记录下来,但 Persona 没有控制 Planner 如何划分子图,也没有获得独立调度权。

TraceWise Agent 工作台中的项目、Graph 与分析交互

真实产品截图:Persona、上下文与子图分析位于同一工作台;界面中的 Persona 是对话模式和实体档案,不是自治 Agent 实例。画面使用合成数据。

为什么仍然保留这些责任名称

把它们统称为一个大函数,会失去可观察性;把它们宣传成自治 Multi-Agent,又会超出证据。责任段是两者之间更准确的产品模型:

  • Planner 让用户看到系统准备分析什么;
  • Worker 让每个局部结构拥有独立结果;
  • Verifier 让缺口和差异不会被最终文本掩盖;
  • Synthesizer 负责表达,而不是替前面阶段重写事实;
  • Runtime event 让阶段、actor、scope 和失败位置可追踪。

TraceWise 从检索、上下文到子图分析、人审和历史的工作流

技术解释图:子图分析位于更大的治理流程中;生成的结论不会因此自动获得写入权。

真正的 Multi-Agent 还需要什么

如果未来要使用“Multi-Agent”这个词,至少需要补齐:

  • 可独立寻址的 Worker 身份;
  • 每个 Worker 的作用域和上下文预算;
  • 独立任务状态、持久化与重启恢复;
  • 超时、取消和失败隔离;
  • 调度与资源配额;
  • 版本冻结和输入快照;
  • claim—Evidence 语义验证,而不仅是数量检查;
  • 聚合冲突时的明确人工决策点。

这些不是命名问题,而是产品和运行时契约。

这次边界修正带来的价值

收窄说法并没有削弱项目。相反,它让工程沟通和技术审阅更扎实:

  • 可以展示真实的阶段化控制流;
  • 可以解释为什么选择串行执行;
  • 可以指出 Verifier 的有效范围;
  • 可以给出 Persona 的两种产品含义;
  • 可以明确未来演进到独立 Agent 需要付出的成本。

TraceWise 将问题分解、局部分析、Evidence 缺口、冲突和最终表达组织成串行的可观察阶段。排查某个结论时,可以回到对应阶段的输入输出;输出正确率则需要在独立样本上测量。

← 返回文章列表