Agent 与权限系统
OpenCode 的 Agent 不仅是「不同提示词」,而是带 mode、model、permission 的完整执行配置。
内置 Agent 详解
Build(Primary)
- 默认主 Agent,全工具可用
- 适合:实现功能、跑测试、改多文件
Plan(Primary)
- 受限 Agent:默认对
edit、bash等敏感操作ask或禁止 - 适合:方案设计、代码审查建议、重构计划
- 不会产生意外 diff,是 OpenCode 的「安全设计模式」
Explore(Subagent)
- 只读,快速 glob/grep/读文件
- 适合:「这个模块在哪?」「有哪些 API 路由?」
Scout(Subagent)
- 只读,偏外部依赖与上游源码
- 适合:查第三方库实现、clone 依赖到缓存对照
General(Subagent)
- 全工具(除 todo 相关限制),可改文件
- 适合:可并行的独立子任务
切换与调用
隐藏 Agent:配置 hidden: true 的 Subagent 不出现在 @ 菜单,但仍可被 task 调用。
JSON 配置 Agent
opencode.json:
Markdown 配置 Agent
路径:
- 全局:
~/.config/opencode/agents/review.md - 项目:
.opencode/agents/review.md
文件名 review.md → Agent 名 review。
交互式创建
向导会询问:保存位置、描述、权限勾选,并生成 Markdown Agent 文件。
Permission 进阶
全局默认 + Agent 覆盖
task 权限(谁能调哪个 Subagent)
deny 时该 Subagent 从 task 工具描述中移除,模型不会自动委派;用户仍可用 @ 手动调用。
steps 限制(控制成本)
达到步数上限后,Agent 被强制输出总结而非继续调工具。