OpenCode 怎么跳进 / 跳出 sub-agent?
OpenCode 的 sub-agent 机制和 Claude Code 不太一样——sub-agent 是 primary agent 派出去的临时会话,通过 @ 触发,跑起来后开 child session,主对话窗口原地不动。
- 触发方式:
@explore/@scout/@general派 sub-agent 干活,主对话窗口不动。 - 内置三类 sub-agent:Explore(只读扫代码)、Scout(只读研究外部)、General(通用可并行)。
- 跳转快捷键:
<Leader>+down进 child session,up回 parent,<Leader>+l看所有 session。 - 关键约束:sub-agent 上下文独立,主对话讨论过的约束必须显式写在 @ 任务里,否则按通用默认来。
- 多层嵌套:sub-agent 又调 sub-agent 就多按几下
up往上爬。
OpenCode 的 sub-agent 机制和 Claude Code 不太一样——很多人第一次用都会困惑"派出去之后怎么切回来"。下面把这套交互讲清楚。
什么是 sub-agent
sub-agent 是 primary agent 派出去干活的临时会话,通过 @ 触发:
@explore 帮我找 src/components 里所有用到 useEffect 的文件
@scout 查一下 zod 的最新版本有没有 breaking change
@general 同时跑两个调研任务
派出去之后 sub-agent 会开一个 child session,主对话窗口还在原地——这就是和 Claude Code 最不一样的地方。
内置的三类 sub-agent
| 名称 | 权限 | 典型用途 |
|---|---|---|
| Explore | 只读 | 快速扫代码库、找文件、查调用链 |
| Scout | 只读 | 研究外部依赖、查文档、抓 changelog |
| General | 通用 | 啥都能干,支持并行(同时跑多个) |
<Leader>+m 打开 model list,能看到内置和自定义 sub-agent 的清单。自定义 sub-agent 在 .opencode/agents/*.md 配置,markdown 文件写 instructions 就行,不写代码也能扩展。
跳转快捷键(默认配置)
默认 Leader 键是 ctrl+x,以下快捷键都是基于默认 keybinds:
Leader 是前缀键(sequence),不是同时按:先按 ctrl+x,然后暂停一下,等到输入框颜色变灰 之后再按下一个键(如 down、up、l)。

如果连续按不停顿,组合会被系统/终端/编辑器当成原生快捷键吞掉(ctrl+x 在很多编辑器里是剪切),跳转就会失效。多按几次没反应基本都是这个问题,不是 keybind 配错了。
| 动作 | 按键 |
|---|---|
| 跳进第一个 child session | <Leader>+down |
| 在 child session 之间循环 | right / left |
| 回到 parent(main agent) | up |
| 看所有 session 列表 | <Leader>+l |
| 在 primary agent 之间切(Build / Plan) | Tab / Shift+Tab |
关键点:up 是回到 main agent 的关键,按一下就回到当前 session 的父级。多层嵌套(sub-agent 又调了 sub-agent)就多按几下 up 往上爬。
right / left 只在 child session 之间切,不跨层级。要回 main agent 必须用 up。