多 Agent 模式¶
PRAXO-CORE 的核心是单 Agent 执行循环,并提供异步子 Agent 委派。它不自带 graph、handoff、supervisor、共享状态或 Agent registry 运行时。
已内置¶
pkg/agent/delegation.SubagentManager:launch、check、wait、update、cancel、 list、pruneSubagentIsolated:子 Agent 仅接收请求上下文SubagentFork:子 Agent 继承父消息历史- 终态任务不会被
Cancel覆盖;只有运行中的任务接受Update SubagentRunner:由产品实现的子运行接口flow.Chain和flow.Parallel:通用 Runnable 组合- 单 Agent 步骤内的并行工具调用
未内置¶
- graph 与子图执行
- supervisor 与 handoff 编排
- 共享状态或黑板
- Agent registry 与动态路由
- 持久化工作流恢复与图级中断
持久化图执行应使用 RHEOVELA 或产品运行时。核心只保留 Agent 节点/会话/流 边界,不增长竞争的图引擎。
示例¶
examples/multiagent
异步运行两个子 Agent、聚合结果并取消慢任务。
manager := delegation.NewSubagentManager(router{
"researcher": agentRunner{agent: researcher},
"writer": agentRunner{agent: writer},
})
task, err := manager.Launch(ctx, delegation.SubagentRequest{
ParentSessionID: "session-1",
AgentID: "researcher",
Prompt: "find the status",
Mode: delegation.SubagentIsolated,
})
done, err := manager.Wait(ctx, task.ID)
路由器与 SubagentRunner 由产品提供;框架负责任务生命周期和可观察状态。
可选编排模块¶
adapters/multiagent
在 SubagentManager 之上提供一个小的可选层:
Supervisor.Run并行启动 worker 并按名称聚合输出;MaxConcurrency限制 同时运行的 worker 数量。Supervisor.Sequential将前一个输出作为Context["previous"]传给下一个 worker。- 完成事件通过
SubagentManager.Wait驱动,Supervisor 不再轮询。 - 超时会取消未完成的子上下文并返回
ErrTimeout。
它不是图或持久化工作流运行时,也不会改变核心 API。
使用 RHEOVELA 做持久化编排¶
当工作流需要持久化图/子图执行、恢复、租约或图级中断时,应使用 RHEOVELA。 PRAXO-CORE 提供 Agent 会话和流边界;RHEOVELA 拥有图。
examples/ecosystem-sdk
中有 rheovela.Runner recipe:
runner := rheovela.Runner{
Client: rheovela.NewClient("http://127.0.0.1:8080"),
Workflow: "agent",
ProjectID: "proj",
Actor: "agent-1",
}
instance, err := runner.Start(ctx, session)
err = runner.Step(ctx, instance.InstanceID, "advance", "review")
audit, err := runner.Audit(ctx, instance.InstanceID)
边界清单¶
- PRAXO-CORE 不定义 graph 节点、边、子图或图级中断。
- RHEOVELA 拥有图执行、持久化恢复、租约和路由。
- PRAXO-CORE 只暴露 Agent 节点/会话/流契约。
- 产品拥有任务存储、凭据、授权和审计保留。
adapters/multiagent只用于进程内 supervisor/顺序委派。- 不要声称
SubagentManager或adapters/multiagent具备持久化执行能力。
选择模式¶
| 需求 | 模式 |
|---|---|
| 少量异步子任务 | SubagentManager |
| 子 Agent 继承父历史 | SubagentFork |
| 子 Agent 隔离上下文 | SubagentIsolated |
| 通用顺序/并行函数 | flow |
| 持久化图、恢复、中断 | RHEOVELA |
边界¶
- 子 Agent 是子运行,不是多 Agent 图运行时。
- 示例是确定性演示,不代表生产验证。
- PII、凭据、策略和事件 Sink 仍由每个子运行的产品侧负责。
- 调用方必须处理取消与失败;管理器只记录状态并取消子上下文。