













Agent(智能体)是 OpenCode 的灵魂。通过为不同任务配置专门的 Agent——不同的系统提示词、模型、权限、推理强度——你既能提升质量,又能精准控制成本。本章讲解内置 Agent、如何自定义 Agent,以及与省 Token 直接相关的 model、steps、permission 等选项。
switch_agent 键位)循环切换。@ 提及手动调用,例如 @general 帮我搜索这个函数。子智能体的关键价值:它们在独立的子会话里工作,不污染主对话的上下文——这对控制 Token 极其重要(第九章详述)。
ask,适合让模型分析代码、给方案,而不真正改动代码。此外还有几个隐藏的系统 Agent(compaction 压缩、title 生成标题、summary 摘要),自动运行、不可在 UI 选择。
善用 explore/scout 这两个只读子代理做检索与调研,可以把大量「读」的消耗隔离在子会话里,主会话只接收精炼结论,显著省 Token。
在 opencode.json 的 agent 下定义或覆盖:
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"mode": "primary",
"model": "anthropic/claude-sonnet-4-5",
"prompt": "{file:./prompts/build.txt}",
"permission": { "edit": "allow", "bash": "allow" }
},
"plan": {
"mode": "primary",
"model": "anthropic/claude-haiku-4-5",
"permission": { "edit": "deny", "bash": "deny" }
},
"code-reviewer": {
"description": "审查代码的最佳实践与潜在问题",
"mode": "subagent",
"model": "anthropic/claude-sonnet-4-5",
"prompt": "你是代码审查者,关注安全、性能与可维护性。",
"permission": { "edit": "deny" }
}
}
}
把 Agent 写成 Markdown,放在:
~/.config/opencode/agents/.opencode/agents/---
description: 审查代码质量与最佳实践
mode: subagent
model: anthropic/claude-sonnet-4-5
temperature: 0.1
permission:
edit: deny
bash: deny
---
你处于代码审查模式,关注:
- 代码质量与最佳实践
- 潜在 Bug 与边界情况
- 性能影响
- 安全考量
只给出建设性反馈,不直接改代码。
文件名即 Agent 名:review.md 生成 review 智能体。前置 frontmatter 是配置,正文是系统提示词。
opencode agent create
它会引导你选择保存位置、描述用途、自动生成提示词与标识符、勾选允许的权限(未勾选即拒绝),最后生成 Markdown 文件。
简述这个 Agent 做什么、何时用。子智能体的 description 会被主智能体用来判断「该不该自动调用它」,请写清楚。
覆盖该 Agent 使用的模型。这是按任务分层用模的核心:
{
"agent": {
"plan": { "model": "anthropic/claude-haiku-4-5" },
"review": { "model": "anthropic/claude-sonnet-4-5" }
}
}
若不指定 model:主智能体用全局
model;子智能体默认沿用「调用它的主智能体」的模型。让规划、审查、检索等任务用便宜模型,实现任务用强模型,是最有效的成本优化之一。
控制随机性。低值(0.0–0.2)更聚焦、确定,适合分析与规划;高值(0.6–1.0)更有创造性。不设则用模型默认(多数模型为 0,Qwen 约 0.55)。
{
"agent": {
"analyze": { "temperature": 0.1 },
"brainstorm":{ "temperature": 0.7 }
}
}
steps 限制 Agent 在被迫只输出文本前,最多能做多少次「智能体迭代」。想给成本设上限的用户尤其应该用它:
{
"agent": {
"quick-thinker": {
"description": "迭代受限的快速推理",
"prompt": "你是快思考者,用最少步骤解决问题。",
"steps": 5
}
}
}
达到上限时,Agent 会收到特殊系统提示,要求它总结已完成工作并列出剩余任务。(旧字段 maxSteps 已废弃,请用 steps。)
用 prompt 指定该 Agent 的系统提示词文件(路径相对配置文件位置):
{ "agent": { "review": { "prompt": "{file:./prompts/code-review.txt}" } } }
mode:primary / subagent / all(默认 all)。hidden: true:把子智能体从 @ 自动补全里隐藏,仅供程序化调用(只对 subagent 生效)。disable: true:禁用该 Agent。color:UI 颜色,支持十六进制(#FF5733)或主题色(primary/accent/success 等)。Agent 配置里任何其它键都会直接透传给 Provider 作为模型选项。例如对 OpenAI 推理模型控制推理强度与输出冗长度:
{
"agent": {
"deep-thinker": {
"description": "对复杂问题使用高推理强度",
"model": "openai/gpt-5",
"reasoningEffort": "high",
"textVerbosity": "low"
}
}
}
反过来,对「轻量/规划」类 Agent 把
reasoningEffort调到low/minimal、textVerbosity调到low,就是省 Token 的标准操作。
每个 Agent 都能独立配置权限,且 Agent 级规则覆盖全局。权限键值可为 allow / ask / deny,部分键还支持「glob → 动作」的对象语法:
---
description: 只读代码审查
mode: subagent
permission:
edit: deny
bash:
"*": ask
"git diff": allow
"git log*": allow
"grep *": allow
webfetch: deny
---
只分析代码并给出修改建议。
要点(第八章会系统展开):
"*" 放最前、具体规则放后面。"mymcp_*": "deny" 禁用某 MCP 的全部工具)。{
"$schema": "https://opencode.ai/config.json",
"default_agent": "plan"
}
default_agent 必须是主智能体(内置的 build/plan 或你自定义的主智能体)。把默认设为 plan,能让每个新会话都从「只读规划」开始,避免模型上来就乱改、乱跑命令——既安全又省返工。该设置对 TUI、opencode run、桌面应用、GitHub Action 全部生效。
permission.task){
"agent": {
"orchestrator": {
"mode": "primary",
"permission": {
"task": {
"*": "deny",
"orchestrator-*": "allow",
"code-reviewer": "ask"
}
}
}
}
}
当某子代理被 deny 时,它会被从 Task 工具描述中完全移除,模型不会再尝试调用它。规则同样「最后命中者生效」。注意:用户始终能通过 @ 手动调用任意子代理,即使 task 权限拒绝。
把这些 Agent 配上「便宜模型 + 低推理强度 + 收紧权限」,就构成了既高效又省钱的工作台。
本章你学会了内置 Agent 的分工、用 JSON/Markdown 自定义 Agent、关键配置项(尤其是 model、steps、temperature、推理强度透传与权限),以及默认 Agent 与子代理调用控制。「按任务分层用模 + 只读子代理隔离上下文 + 限制步数 + 收紧权限」是 OpenCode 成本优化的四大支柱,第九章会把它们组装成完整方案。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。