在 OpenCode 已经发布的系列文章中,我们深入探讨了配置、工具、规则、插件等方方面面。今天要介绍的 Agent 系统,是 OpenCode 中一个极其强大但容易被忽视的特性——它允许你创建多个专精的 AI 智能体,每个承担不同的角色和职责,协同完成复杂的开发任务。
Agent(智能体)是 OpenCode 中专用的 AI 助手,每个 Agent 都可以配置独立的系统提示词、模型、工具权限和行为模式。简单来说,你可以为项目创建"建筑师"、"代码审查员"、"文档写手"等多个角色,在开发过程中灵活切换或并行调用。
Agent 分为两种类型:
switch_agent 快捷键切换。内置的 Build 和 Plan 就是典型的主智能体。@ 提及手动触发,适合执行专业化子任务。内置的 General、Explore、Scout 均为此类。OpenCode 出厂自带 8 个内置 Agent,覆盖了从开发到维护的主要场景:
默认主智能体,拥有全部工具权限。这是日常开发的主力——写代码、改文件、运行命令,一切皆可。
受限主智能体,默认禁止文件编辑和命令执行。当你需要 AI 先分析代码、制定方案而不直接动手修改时,切换到 Plan 模式即可。按 Tab 键在 Build 和 Plan 之间切换,确保"先想清楚再动手"。
全能子智能体,可执行多步骤复杂任务。当主智能体需要并行处理时,可通过 Task 工具自动调用 General 帮忙。
只读子智能体,擅长代码库探索。当你需要快速查找文件、搜索代码模式或理解代码结构时,使用 @explore 让它帮忙而不干扰你的主会话。
只读子智能体,专门用于外部依赖研究。可以克隆依赖仓库到 OpenCode 缓存中,检查库源码或对比上下游实现。
Compaction、Title、Summary 三个隐藏 Agent 在后台自动运行,分别负责上下文压缩、会话标题生成和会话总结——用户无法直接交互,但它们在保持会话高效运作中扮演关键角色。
真正的威力来自自定义 Agent。你可以通过两种方式创建:
在 opencode.json 的 agent 字段中定义:
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"code-reviewer": {
"description": "审查代码中的最佳实践和潜在问题",
"mode": "subagent",
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "你是一名资深代码审查员。重点关注安全性、性能、可维护性。",
"permission": {
"edit": "deny"
}
},
"docs-writer": {
"description": "编写和维护项目文档",
"mode": "subagent",
"model": "anthropic/claude-haiku-4-20250514",
"permission": {
"bash": "deny"
}
}
}
}
也可以将 Agent 定义放在独立的 .md 文件中,放在 ~/.config/opencode/agents/(全局)或 .opencode/agents/(项目级):
--- description: 安全审计,识别潜在漏洞 mode: subagent permission: edit: deny --- 你是一名安全专家,专注于识别安全风险。 关注:输入验证漏洞、认证授权缺陷、数据暴露风险。
文件名即 Agent 名,例如 security-auditor.md 会创建一个名为 security-auditor 的 Agent。
必填项,简要说明 Agent 的功能和使用场景。OpenCode 会根据描述自动决定何时调用子智能体。
控制模型回答的随机性和创造力:
未指定时使用模型默认值(大多数模型为 0)。
限制 Agent 的迭代次数。设置为 5 表示最多执行 5 次工具调用后必须返回文本响应。适合控制成本的场景。注意旧版 maxSteps 已废弃,请使用 steps。
为特定 Agent 覆盖全局模型配置。例如计划 Agent 使用快速便宜的 Haiku,构建 Agent 使用强大的 Sonnet:
{
"agent": {
"plan": {
"model": "anthropic/claude-haiku-4-20250514"
},
"build": {
"model": "anthropic/claude-sonnet-4-20250514"
}
}
}
细粒度控制 Agent 能做什么。比旧的 tools 字段更灵活:
{
"agent": {
"reviewer": {
"permission": {
"edit": "deny",
"bash": {
"*": "ask",
"git diff": "allow",
"grep *": "allow"
}
}
}
}
}
权限键包括:read、edit、glob、grep、list、bash、task、webfetch、websearch、lsp、skill 等。每个可设为 allow(允许)、ask(询问)、deny(禁止)。
在 UI 中为 Agent 设置颜色,使用十六进制或主题色:
{
"agent": {
"creative": { "color": "#ff6b6b" },
"reviewer": { "color": "accent" }
}
}
设为 true 可从 @ 自动补全菜单中隐藏该子智能体,但仍可通过 Task 工具由其他 Agent 调用。
控制主智能体可以调用哪些子智能体,支持 glob 模式匹配:
{
"agent": {
"orchestrator": {
"permission": {
"task": {
"*": "deny",
"orchestrator-*": "allow"
}
}
}
}
}
任何未识别的配置项会直接透传给模型提供商。例如 OpenAI 的 reasoningEffort:
{
"agent": {
"deep-thinker": {
"model": "openai/gpt-5",
"reasoningEffort": "high",
"textVerbosity": "low"
}
}
}
创建一个只读的代码审查 Agent,配合 git diff 查看变更:
---
description: 对代码变更进行审查
mode: subagent
permission:
edit: deny
bash:
"*": "deny"
"git diff*": "allow"
"git log*": "allow"
"grep *": "allow"
---
你是一名高级代码审查员。每次收到审查请求时:
1. 先运行 git diff 了解变更内容
2. 检查代码质量、安全性、性能
3. 给出具体的改进建议
4. 不直接修改任何文件
创建一个文档 Agent,专门负责从代码生成文档:
{
"agent": {
"docs-gen": {
"description": "从源码生成和更新文档",
"mode": "subagent",
"prompt": "你是技术文档写手。分析代码结构后生成清晰的 API 文档。包含参数说明、返回值类型、使用示例。",
"permission": {
"edit": "allow",
"bash": "deny",
"webfetch": "allow"
}
}
}
}
利用不同模型的优势:用 Haiku 做快速代码搜索,用 Sonnet 做深度审查,用 GPT-5 做架构设计。在 opencode.json 中为每个 Agent 指定不同的模型即可。
Tab 键切换主智能体:在 Build 和 Plan 之间快速切换,先计划再执行。
@ 调用子智能体:对话中输入 @reviewer 即可临时唤起代码审查 Agent。
子会话导航:子智能体创建子会话后,用 Ctrl+Down 进入,Right/Left 切换,Up 返回父会话。
权限最小化:为每个 Agent 只授予完成任务所需的最小权限——审查 Agent 不需要编辑权限。
模型匹配任务:简单任务用低成本模型,复杂任务用高性能模型,优化 Token 消耗。
利用 describe 自动调度:description 写得越准确,OpenCode 越能在适当时机自动调用你的智能体。
OpenCode 的 Agent 系统为 AI 辅助编程带来了全新的协作范式。通过创建多个专精智能体,你可以像带领一个 AI 开发团队一样工作——有建筑师、审查员、文档写手、安全专家,各司其职。结合模型选择、权限控制和自定义提示词,Agent 系统让 OpenCode 从一个对话式编程助手蜕变为一个可编排的 AI 开发平台。
赶快打开你的 opencode.json,开始创建你的第一个自定义 Agent 吧。