DeepSeek Harness 12:Subagent 编排——能力扩展与作用域隔离

在多智能体(Multi-Agent)概念火爆的当下,许多开源实现的思路异常粗暴:只要遇到复杂任务,就在后台通过脚本启动三个新的 Agent 进程,让它们互相往一个共用的聊天群里发消息。

这种原始的做法很快就会在生产中引发灾难:

  • 权限失控扩散:子 Agent 往往默认继承了父进程的最高系统权限,一旦某个子 Agent 遭遇注入,整个系统瞬间沦陷;
  • 日志竞争踩踏:多个 Agent 同时向底层数据库写入状态,导致因果时序彻底混乱,事后根本无法排查谁对谁错;
  • 预算无限黑洞:子 Agent 递归派生孙 Agent,互相调用导致 Token 计费在几分钟内耗尽成千上万元。

DeepSeek Harness 确立了一套清晰的原则:把 Subagent 视为由主运行时受控提供的一种能力接缝,严禁盲目复制无特权的顶层主循环。


一、三层编排接缝与职责分工

在 DSH 中,不同复杂度的并发任务由三个职责明确的能力接缝共同治理:

编排接缝 核心解决的工程问题 坚决禁止承担的越界职责
ctx.subagents 管理子代理的发现、生命周期、隔离作用域与权限收缩 越权篡改主 Agent 的顶层决策骨架
ctx.workflowEngine 编排明确的依赖图谱(DAG)、分支并行执行与条件汇总 依赖隐式、不透明的聊天消息拼接传递任务
ctx.jobs 托管耗时较长、脱机运行的后台编译或数据处理任务 阻塞当前正在与用户实时交互的主 Turn

二、严密的预启动能力检查(Pre-flight Check)

并不是任何一个模型或工具都可以被随意包装成 Subagent。在 DSH 中,主运行时在为子任务派生实例前,会发起严格的能力矩阵自检:

1
2
3
4
5
6
7
export interface SubagentProviderCapabilities {
supportsStreaming: boolean; // 是否支持双向穿透的流式分片
supportsAbortSignal: boolean; // 是否支持协作式强行打断
scopedToolsOnly: boolean; // 工具集是否已完成最小权限裁切
isolatedWorkingDir: boolean; // 文件操作是否限制在独立隔离目录
forwardApprovalRequests: boolean; // 高危操作是否支持向上委托审批
}

如果某个候补 Provider 无法提供协作式取消机制,或者无法在独立工作目录中隔离副作用,系统会在启动前直接拒绝派生,并向调度器如实报错。提前拒绝不合格的子执行体,永远比运行到中途卡死留下一地鸡毛更容易恢复。


三、基于 Cordis Context 树的作用域物理隔离

得益于 Cordis 微内核的原生设计,派生 Subagent 在 DSH 中异常自然且优雅:

1
2
3
4
5
6
7
8
9
10
// 1. 从主 Context 中派生出独立的子作用域
const childCtx = mainCtx.extend();

// 2. 将敏感服务完全隔离(Isolate),阻断越权访问
childCtx.isolate('sandbox');
childCtx.isolate('tools');

// 3. 为子代理注入受限的沙箱与只读工具集
childCtx.provide('sandbox', new EphemeralWorkspaceSandbox('/tmp/agent-worker-1'));
childCtx.provide('tools', new ReadonlyCodeSearchTools(childCtx));

子 Agent 运行在这个被物理隔离的子树中:

  • 它可以安全地继承全局的遥测与日志基础设施;
  • 但它所能看到的工具被严格裁切为只读搜索,即使被恶意 Prompt 注入,也绝无可能读取主工作区的文件或执行任意系统 Shell 命令。

四、前沿探索:运行时自进化(Runtime Self-Evolution)的实验性边界

在 DSH 的高阶能力讨论中,有一个备受瞩目的前沿探索方向:Agent 的运行时自进化(Runtime Self-Evolution)。

其工作拓扑非常惊艳:

  1. Agent 在执行某个特殊任务时,发现当前系统缺少用于解析特定私有二进制文件的工具;
  2. Agent 在本地编写了一段新的 Cordis 插件代码(定义了 Service Provider 与 Effect);
  3. 借助 DSH 暴露的反射接口,Agent 将该插件**动态热挂载(Hot-mount)**到当前的隔离子作用域中;
  4. 随后立即在下一步调用自己刚刚写出的新插件,顺利完成任务。

[!IMPORTANT]
工业视角的理性审视:能力生成 $\neq$ 生产受信!
能够现场写出代码并热加载,仅仅证明了系统具备“能力生成”的灵活性。但在企业级严肃生产环境中,未经审计的自修改代码是巨大的安全隐患。
真正的工业级自进化,必须配备四大严苛门禁:

  1. 强制静态扫描与安全沙盒隔离;
  2. 自动运行单元测试套件进行回归验证;
  3. 生成不可篡改的代码指纹与版本审计日志;
  4. 必须登记完整的逆序 Disposer,确保任务结束后能够干净卸载,绝不将临时逻辑污染到持久化基线中。