用途
Harness Tools 是代理技能体系中的一个底层对照表。其他技能在需要执行某个动作(派发并等待、后台派发、追问、停止、结构化提问)时,指向本技能查找“当前运行环境下应该用哪个工具”。它解决的是同一套技能逻辑在 Claude Code、Codex、Grok、agy 等不同 harness 中工具名与参数不一致的问题。
主要能力
- 派发并等待:一次启动一个或多个子代理,并在继续之前用上全部结果。多个子代理时先在一条消息中全部启动,再统一等待。
- 后台派发:启动子代理后继续做其他工作,结果到达时再收集;需保存返回的名称或 id 以便后续追问或停止。
- 追问:向运行中或已完成的子代理继续发送任务,使其保留上下文。
- 停止:按名称或 id 中止子代理。
- 结构化提问:向用户提出可点击作答的问题,推荐选项排在最前并标记,只列真实选项,并附带自由文本的“其他”。
各环境工具映射(摘要)
- Claude Code:前台派发用
Agent;后台用Agent加run_in_background: true并命名;追问用SendMessage;停止用TaskStop;提问用AskUserQuestion(每次最多 4 个问题、每题 2–4 个选项,可支持多选)。 - Codex:用
spawn_agent(带task_name、message、fork_turns: "none")后调用wait_agent(可调大timeout_ms,最高 3600000);追问用followup_task或send_message;停止用interrupt_agent;提问用request_user_input,仅在当轮工具列表中存在(Plan 模式)时可用,1–3 个问题、每题 2–3 个单选选项。 - Grok:用
spawn_subagent(background: false为前台,默认 true 为后台),后台完成后用get_command_or_subagent_output读取结果;追问用send_subagent_message(需开启活跃代理消息特性),否则用resume_from;停止用kill_command_or_subagent;提问用ask_user_question(多选标志为multi_select,无 header)。 - agy:用
invoke_subagent(TypeName: "self"、2–5 词Role、简报作为Prompt),无前台形式,完成时发消息唤醒;追问用send_message(Recipient为 conversationId);停止用manage_subagents加Action: "kill";提问用ask_question(选项为纯字符串,推荐项以(Recommended)开头)。
使用方式与规则
- 每个子代理都必须收到完整简报:子代理不继承对话历史(Grok 子代理开新对话,Codex 的
fork_turns: "none"不传历史,agy 子代理只拿 Prompt),所有路径、引用和规则都要写进简报。 - 带类型代理(
leek-skills:<name>)只在安装插件后的 Claude Code 与 Grok 中从agents/加载;Codex、agy 以及仅通过npx skills安装的情况不会加载,需改用通用子代理并在简报中约束其只读、输出格式等规则。 - 模型档位:Claude Code 用 haiku/sonnet/opus;Codex 省略即继承;agy 用 flash_lite 或 flash 更便宜、pro 更强、默认继承;Grok 继承。
- 子代理句柄会在
/clear、会话结束和压缩时失效;在持久化内容(工单、评论、交接文本)中应按文件路径引用其输出,而非任务 id。 - 若当前环境没有对应工具,使用回退路径:内联完成并说明、串行内联执行、用完整信息重新简报新子代理、保留运行并在报告中注明,或在聊天中按相同格式提问。
- 技能自建 git worktree 时把路径写进简报;agy 中保持
Workspace为默认继承,确保子代理看到的路径与简报一致。
适用场景
编写需要跨多个代理运行环境复用的技能;把某一环境的代理调度逻辑移植到另一环境;在不确定当前工具名时查找正确调用方式。
限制
资料仅给出工具映射与调用约束,未说明该技能自身的安装命令、收费、价格或平台要求,这些暂未提供。版本核对信息基于 Codex CLI 0.166、Grok 实时工具 schema 与 agy 1.4.12。