用途:当工作单元明确(一个文件、一个端点、一条记录)且数量超过单个上下文容量时使用;单元少于约10个或为串行链时不用。若是对 hermes-agent 自身的重构或修复作业,可同时加载 hermes-agent(开发工作流),本技能只负责扇出形态。
前置条件:delegate_task 可用且 delegation.max_concurrent_children 足以容纳本波(默认10,超出会报错而非排队);仅当子任务需要再扇出时要求 delegation.max_spawn_depth >= 2。需要可写运行目录,取自终端环境临时目录($TMPDIR,否则平台临时目录),不得使用字面量 /tmp(Termux 无此目录,原生 Windows 会出错),使用每次唯一的 <tmp>/wf_<name>_<uuid>/。确定性层用 execute_code,其内仅有 web_search、web_extract、read_file、write_file、search_files、terminal、patch。
分层:Layer A 为 execute_code 脚本,承担确定性工作(抓取URL、解析文件、执行命令、模板输出、构建清单、合并输出),持有循环、分支和中间变量,但不能调用 delegate_task;Layer B 为 delegate_task 批次,承担LLM判断类工作(分类、评审、决策、写作、反驳、重构单个单元),一次调用 tasks=[...],每个任务为独立 agent,并发受 max_concurrent_children 限制,成本随任务线性增长。先在 Layer A 完成确定性部分,只把不可约的LLM步骤扇出,最后在父层汇总。
用法要点:顶层 delegate_task 立即返回句柄,子结果以新消息形式回传,不能在调用后下一行读取 out_*.csv;应完成不依赖子任务的工作,给出一行状态然后结束回合,逐条处理结果消息。普通用户后续消息不会取消子任务,/stop、/new 和进程退出会。每个单元须能在无同级输出下作答,否则应串行。清单为每行一个单元写入 <run>/manifest.jsonl。子任务规模:约8–12处机械修改、或2–3k行阅读、或50–70KB语料,按最大单元定尺寸;结构化输出写入文件而非 summary 字段。父层合并前校验文件数量与本次运行新鲜度。
对抗式收敛:同一问题以不同框架给2–4个子任务,各自每行写一条可单独证伪的定位声明;父层合并去重并记录一致计数;再由一批反驳者用反证打断每条声明;只保留幸存者,最多3轮。作业形态:先测量并写共享 BRIEF.md 与每集群 task_<cluster>.md,独占文件所有权,逐步本地提交不推送,并发规模12–16,整合每轮冻结基线 SHA 并跑全量套件,结束前做前向移植与独立实时 QA。
限制:delegate_task 不跨重启持久,持久图由 kanban swarm 负责,一次性任务用 cronjob;不要在 execute_code 内调用 delegate_task;不要在扇出同回合汇总;不要信任 summary 内容或 completed 状态;避免每个“独立”尝试使用相同框架;工作树作业中不要用 git stash。