Skip to content

Subagent zh

pawaca edited this page Aug 30, 2026 · 1 revision

子代理

未实现。Edge 有 session 分叉但没有 agent 委派。

上游参考:子代理

上游提供了什么

SubagentRuntimectx.subagents)允许 agent 将工作委派给子 agent。支持两种委派模式:

  • 一次性运行 — 父 agent 生成一个子 agent,执行一次并返回结构化输出。基于 provider:多个后端(spawn、fork、ACP)共存。
  • 可续跑的子代理 — 持久的子 session,有 FIFO 收件箱、冷恢复和生命周期管理。父 agent 可以跟进、中断或接收子 agent 的报告。

核心能力:深度限制委派、每个子 agent 的工具过滤、独立 persona、结构化输出 schema、树作用域取消、三级子代理枚举(活跃 → 缓存 → 持久化)。

Edge 当前状态

未实现 SubagentRuntime 未安装。apiproxy 返回桩响应:

  • subagents.list → 空数组,parentAvailable: false
  • subagents.historysubagents.promptsubagents.interruptunsupported

Edge 已有的能力

Edge 有 session 分叉forkSession()),从父 session 的事件前缀创建子 session。保留 parentSession 血统关系并复制模型选择、cwd 和平衡的 turn 历史。但 session 分叉是对话分支——子 session 独立运行,没有委派契约、结构化输出、父通知或生命周期协调。

Cloudflare 使能技术

方案 实现方式 Plan 复杂度
DO 内部子代理 一个 cordis Context 中运行多个 Agent 实例。现有的 AgentRegistry 已支持多 agent。安装 SubagentRuntime 搭配进程内 fork provider。 免费 中等 — 需验证 inject 依赖和单 DO 内并发 turn 管理
DO 间委派 父 DO 通过内部 fetch() 在同一个或新的 DO 中生成子 session。子代理运行自己的 agent loop。结果通过 session 事件或 KV 通信。 免费 高 — 需要跨 DO 协调协议,无共享 cordis Context
Container 隔离子代理 子 agent 在 Cloudflare Container 中运行,拥有完整 Linux 能力。父 DO 通过 Container API 协调。 付费(Enterprise/beta) 非常高 — 不同运行时,需自定义 provider

最可行的路径是 DO 内部子代理:上游的 SubagentRuntime 是一个 cordis 插件,有进程内 fork provider。如果其 inject 依赖可满足,可以直接安装——Edge 的 AgentRegistry 已管理多个 agent 实例,现有的 session 分叉基础设施(forkSession())提供了种子事件机制。

架构总结

组件 状态 Edge 代码
SubagentRuntime 缺失 未安装
Session 分叉 复用 forkSession() — 仅对话分支
Subagent apiproxy 返回 empty/unsupported
客户端子代理 UI 复用 包含在 33 插件中但无服务端 provider

TODO

**评估 DO 内部 SubagentRuntime 安装。**检查 SubagentRuntimeinject 要求。进程内 fork provider 可能需要 ctx.subprocessctx.jobs——如果是,最小桩或 Edge 自有的 fork-only provider 可以满足契约。关键问题是一次性委派能否在单个 DO 的执行时间限制内工作(免费 30s,付费 30min)。

**评估与 Background Jobs 的关系。**可续跑的子代理依赖 ctx.jobs 进行生命周期管理。如果 Background Jobs 先实现,可续跑子代理支持可能自然跟随。

English

中文

Clone this wiki locally