Fork 上下文与执行限制
继承父对话,通过 fork_tools 或项目 profile 限制工具,并理解缓存和目录共享。
Fork 适合需要当前对话背景的独立调查。必须显式选择 subagent_type: "fork";普通具名 subagent 从自己的新上下文开始。
继承多少历史
仅 fork 接受 fork_turns:省略或 all 表示完整父对话,正整数字符串如 "3" 表示最近三个真实用户轮次。工具响应和纯系统提醒不计入用户轮次。常规 subagent、具名团队队友不接受它。
Fork 保留父级系统提示和派生工具声明,以利共享请求前缀缓存。实际缓存收益取决于模型提供商和请求情况,不能把官方并行示例中的成本比例当作每次运行保证。
Fork 使用后台分离路径,父会话可继续工作,无头会话同样支持。它不能再启动子智能体;调用 Agent 会被运行时拒绝。
限制执行,不改变声明
fork_tools 是调用时的工具执行白名单。它保留模型可见声明,执行调度和审批前再拒绝未匹配调用。
| 写法 | 含义 |
|---|---|
| 省略 | 允许其余可执行的继承工具 |
[] | 拒绝所有工具调用 |
read_file 等规范名 | 允许对应内置工具 |
mcp__github | 对应 MCP 服务器模式 |
mcp__* | 允许所有 MCP,不同时允许未列出的内置工具 |
mcp__github__read_* | 尾部 MCP 工具名前缀匹配 |
不接受单独 *、首尾空白工具名或 shell 参数模式。允许 run_shell_command 只是让它继续正常权限检查,不会预先批准命令。
Fork 始终不能执行 ask_user_question;需要人提供信息时应报告给父级。调用者可以省略或扩大白名单,所以这不是管理员强制沙箱。
保存可复用 profile
把以下内容保存为 .qwen/fork-profiles/ro-research.md:
---
name: ro-research
tools:
- read_file
- grep_search
- glob
promptHint: Inspect the requested files and cite concrete evidence.
---启动 fork 时选择 fork_profile: "ro-research"。它不能与 fork_tools 或具名队友组合。
Profile 目前只来自项目。请求名、文件名和 frontmatter name 必须完全一致;文件必须解析为该目录内的普通文件,最大 64 KiB。tools 必需,空列表仍代表拒绝全部工具。
promptHint 可选,最多 200 字符,会作为转义后的项目指导放在权威工具限制之前,不改变继承系统提示。文件只接受 frontmatter,结束标记后有非空 Markdown 会被拒绝。
Profile 在启动时解析一次,续接保留原快照,之后改文件不会改变已有 fork。安全模式和 Bare 模式不提供项目 profiles。
工作目录不是隔离副本
Fork 与父级共享工作目录,不支持 worktree 隔离,也不能组合 working_dir。多个 fork 改相同文件可能冲突;需要文件修改时先划清范围,或使用支持独立 worktree 的常规 agent。