DeepSeek Harness Job Panel 子代理分工
📋 本文目录
症状:面板里能集中看到多个任务,但文件冲突、权限越界和失败接管仍然没人负责。
最快解法:不要按 Codex 或 Claude Code 的品牌固定分工,先为每个子代理任务写清目标、输入、工作区、权限、验收产物和失败负责人。
截至 2026 年 8 月 18 日,本文按 rc.7 Release 已确认的接入范围整理方法;任务权限、跨重启恢复和并发行为,仍应以写作当日的官方 Release、架构文档、代码变更和隔离测试为准。DeepSeek 官方公开资料可从其 GitHub 组织与相关 Agent 文档 继续核对;DeepSeek 也提供了 Claude Code 接入说明,但“能接入”不等于自动获得隔离或恢复能力。 (github.com)
这篇文章适合三类人:
- 想把大任务拆给多个子代理的独立开发者;
- 需要管理并行代码任务和仓库写入边界的小型研发团队;
- 负责远程执行环境、权限控制和任务恢复的平台工程师。
集中观察不等于自动隔离
DeepSeek Harness Job Panel 的价值是把多个任务的创建、状态和结果集中到一个观察面板里。但集中观察只解决“你在哪里看”的问题,没有自动解决以下至少 4 类工程责任:
- 任务所有权不清。 主 Agent 可能已经修改认证模块,子代理又收到同一目标,最终出现重复执行、互相覆盖或两个结果都没人合并。
- 工作区边界不清。 多个任务若直接写入同一个目录,文件修改、生成物、分支和锁文件都可能互相影响。
- 权限继承不透明。 Job Panel 显示的是任务关系,不代表操作系统已经隔离文件、命令、网络和凭据。
- 状态可见但不一定可恢复。 面板仍显示一个任务,不代表主进程退出、连接中断或机器重启后,任务一定继续运行。
因此,你应把 Job Panel 当作调度与观察层,把工作区、权限、日志和恢复机制当作执行环境层。OpenAI 对 Codex 的公开说明也把独立环境、代码修改、命令执行和可核验日志分别列为任务能力;这说明“任务能运行”和“结果能被接管”本来就是两件事。 (openai.com)
Codex 和 Claude Code 不按品牌分工,按任务契约分工
不要简单规定“Codex 负责写代码,Claude Code 负责审查”。这类规则会随版本、模型配置、工具安装状态和权限设置变化。更稳妥的方式,是先定义任务类型,再在当前环境中用最小任务验证某个子代理是否真的具备所需能力。
只读调研:共享输入,禁止写入
只读任务适合代码结构梳理、依赖调查、故障定位、测试计划和风险清单。输入应是固定路径、提交版本或任务附件,输出应是报告、文件清单、假设和证据,而不是直接改代码。
你可以让 Codex 或 Claude Code 读取同一份代码,但要明确:
- 不允许创建或修改源文件;
- 不允许执行部署、删除、迁移数据库等高风险命令;
- 输出必须标明读取的提交、文件路径和不确定项;
- 报告不能直接视为实现方案,必须由主 Agent 或人工负责人确认。
受控修改:一个目标,一个写入责任人
代码修改任务必须只有一个最终写入负责人。例如,一个子代理负责 src/auth/,另一个只负责测试夹具;不要让两个代理同时修改同一配置文件、同一接口定义或同一锁文件。
Codex 的官方任务说明提到,任务可以在独立环境中读取和编辑文件,并运行测试、代码检查和类型检查。你可以借鉴这种“任务环境 + 证据输出”思路,但不能据此推断 DeepSeek Harness Job Panel 在你的部署中自动提供同等隔离。 (openai.com)
构建测试:把执行环境写进输入
构建和测试任务的关键不是“谁更会写代码”,而是它是否能访问正确的依赖、脚本、环境变量和缓存。任务契约中至少写明:
- 使用哪个提交或工作区;
- 允许运行哪些构建、测试和静态检查命令;
- 测试失败时只报告,还是允许修复;
- 生成物放在哪里;
- 谁负责判断失败是代码问题、环境问题还是依赖问题。
外部工具任务:默认低权限,人工接管
涉及网络、云资源、发布、凭据、数据库或供应链的任务,应与普通代码修改分开。即使面板能显示审批或任务状态,也要在操作系统和执行账户层面限制权限。
Claude Code 的官方更新记录持续涉及权限提示、脚本执行和环境控制等能力变化,说明权限行为会随版本演进,不能只记住一次安装时的结果。每次升级后,都应重新核对允许路径、命令、网络和凭据范围。 (code.claude.com)
同一仓库适合并行写入吗
可以同时运行,但不建议同时写入同一个工作区。并发的价值来自任务彼此独立,而不是面板里同时出现更多任务。
你可以采用三种策略:
- 只读共享: 所有代理读取同一版本,只有一个代理负责修改。适合调研、审查、测试设计。
- 独立工作区: 每个修改任务使用独立目录、分支或 worktree,最后由明确的合并负责人处理差异。适合两个以上互不重叠的功能。
- 顺序合并: 先完成一个任务并验收,再把结果交给下一个代理。适合共享接口、数据库迁移、配置文件和大型重构。
选择依据应是修改范围与合并责任,而不是单纯追求并发数。Git 官方文档对 worktree 的独立工作目录机制有明确说明;但 worktree 只能降低文件覆盖风险,不能替你解决两个任务对同一业务决策的冲突。
Job Panel 如何管理子代理任务
建议你给每个任务分配一个不可复用的任务标识,例如 auth-read-01、auth-edit-01 和 auth-test-01。任务记录至少包含:
- 任务目标:一句话说明最终要改变什么;
- 输入来源:提交、文件路径、Issue 或上一个任务的交付物;
- 写入范围:允许修改的目录和禁止触碰的路径;
- 运行环境:命令、依赖、环境变量和网络要求;
- 验收产物:差异文件、测试结果、日志摘要和未完成项;
- 失败责任:谁判断失败、谁决定重试、谁有权回退。
这样处理后,主 Agent 不再依赖面板上的颜色或状态名称判断所有权,而是通过任务标识、状态记录和最终产物核验来决定下一步。
失败后由谁恢复
失败责任不能写成“由主 Agent 自动处理”,因为失败可能来自三种完全不同的原因:
- 输入失败: 路径错误、上下文不足、任务目标冲突;
- 执行失败: 权限不足、依赖缺失、命令失败或连接中断;
- 结果失败: 代码能运行,但没有满足验收条件。
建议采用以下规则:
- 输入失败,由任务创建者修正契约后重发;
- 执行失败,由平台负责人检查环境、权限和连接;
- 结果失败,由原写入负责人返工;
- 连续失败或涉及高风险操作时,暂停自动重试,交给人工接管。
不要因为面板仍显示任务,就推断任务已经在后台继续运行。取消、超时、主进程退出和远程连接中断后的行为,必须在隔离仓库中逐项测试,并保留实际日志。当前公开资料能够证明某些 Agent 支持任务执行或会话能力,但不能替你的 Job Panel 部署证明跨重启恢复一定存在。 (api-docs.deepseek.com)
用 5 步把分工落地
第 1 步:先冻结基线
为任务指定提交哈希、分支或只读快照。不要让子代理自行决定“当前最新代码”,否则主 Agent 在任务运行期间继续提交,会让结果难以复现。
第 2 步:拆出最小任务
每个子任务只保留一个主要目标。例如“分析登录流程并列出风险”是只读任务;“修改令牌刷新逻辑并补测试”是受控修改任务。不要把调研、实现、部署和回滚塞进同一个提示词。
第 3 步:设置写入与权限边界
为每个任务列出允许路径、禁止路径、命令白名单和网络要求。涉及密钥、生产环境或外部服务时,默认关闭自动执行,留下人工审批点。
第 4 步:先跑最小能力验证
在正式任务前,用一个小文件完成读取、修改、测试和失败取消验证。确认当前版本的 Codex 或 Claude Code 是否真的能完成目标,不要从品牌名称推断工具能力。
第 5 步:按证据验收并登记责任
验收时要求子代理提交差异文件、测试命令与结果、日志摘要、未完成项和已知风险。主 Agent 应能在不重跑全部步骤的情况下判断接受、返工或回退。
三种方案的条件式选择
如果你只需要一个明确结论,可以按下面的分支执行:
- 若任务只读、输出是报告,且没有文件写入: 选单子代理,或让多个代理只读并行。
- 若任务之间存在接口、配置或数据库依赖: 选串行多子代理,前一个任务验收后再启动下一个。
- 若任务修改范围完全不重叠,且每个任务有独立工作区与合并负责人: 选隔离并行。
- 若两个任务会写同一文件、同一锁文件或同一迁移脚本: 回退到串行合并。
- 若任务需要生产凭据、外部网络或删除性命令: 回退到人工审批,不使用无人值守并行。
- 若无法确认取消、超时或重启后的真实状态: 回退到可重建任务,不把面板状态当作持久化保证。
下面的任务契约表可以直接复制到团队的 Issue、Job Panel 备注或任务登记文件中:
| 任务类型 | 输入边界 | 工作区策略 | 权限要求 | 验收产物 | 失败负责人 |
|---|---|---|---|---|---|
| 只读调研 | 固定提交与文件路径 | 共享只读快照 | 读取、必要的本地分析命令 | 报告、证据路径、未决问题 | 任务创建者 |
| 受控修改 | 明确目标文件与接口 | 独立分支或独立 worktree | 仅允许目标目录写入 | Diff、测试结果、风险说明 | 写入负责人 |
| 构建测试 | 指定提交、依赖和命令 | 使用待验收工作区 | 构建、测试、静态检查 | 命令日志、失败位置、环境信息 | 平台或测试负责人 |
| 外部工具 | 明确资源与操作范围 | 隔离环境 | 最小凭据、人工审批 | 操作记录、返回值、回滚方案 | 平台负责人 |
为了避免把“并发”误认为“效率”,你还可以给方案打分。分数不是产品性能测试,而是团队在当前环境中的管理可控度:
| 方案 | 文件冲突控制 | 责任清晰度 | 恢复可操作性 | 适用判断 |
|---|---|---|---|---|
| 单子代理 | 5 / 5 | 5 / 5 | 4 / 5 | 小任务、单一写入目标 |
| 串行多子代理 | 5 / 5 | 5 / 5 | 4 / 5 | 有依赖链、需要逐步验收 |
| 隔离并行 | 4 / 5 | 3 / 5 | 3 / 5 | 独立模块、合并责任明确 |
| 共享工作区并行写入 | 1 / 5 | 1 / 5 | 1 / 5 | 默认不选 |
评分只反映责任与风险,不代表 Codex 或 Claude Code 的模型能力排名。两个工具都可以承担只读、修改或测试任务,但最终选型仍应由当前版本的真实能力、权限配置和验收证据决定。
最后,把三类执行方式放进你的运行规划中:
| 运行方式 | 适合的项目条件 | 主要代价 | 是否建议长期使用 |
|---|---|---|---|
| 单代理顺序执行 | 小型仓库、共享配置多、负责人少 | 等待时间更长 | 适合默认起点 |
| 串行多代理 | 任务有清晰依赖和交付链 | 需要维护状态与交接记录 | 适合稳定流程 |
| 隔离并行 | 模块边界稳定、合并人明确 | 需要更多工作区、日志和验收 | 适合成熟团队 |
| 同一工作区并行写入 | 只有临时实验且可随时丢弃 | 冲突与回滚责任极高 | 不建议作为常规方案 |
如果你现在的方案是把多个 CLI 直接放在同一台机器、同一目录和同一套凭据下,真实缺点通常不是启动慢,而是文件互相覆盖、权限难以审计、失败后无法判断是否需要重跑。长期并行运行还会叠加磁盘、内存、远程连接和人工复核压力。此时,使用 MacDate 的远程 Mac 环境,把不同任务放进可区分的工作区,再按容量规划分配执行节点,通常比继续堆叠本地终端更容易控制;你可以先查看 MacDate 的 Mac 计算节点,再结合 DeepSeek Harness 后台任务验收 与 M4 计算节点数量规划 评估是否适合你的任务规模。
建议你先用两个低风险、互不修改同一文件的任务验证 Job Panel:一个只读分析,一个独立测试。只有当任务标识、工作区、权限、取消行为和交付证据都能被复核后,再扩大到串行多代理或隔离并行。