在上一篇文章中,我们介绍了 OpenCode 的安装方法。安装只是第一步,真正让 OpenCode 发挥威力的关键在于模型提供商的选择和自定义 Agent 的配置。OpenCode 支持 75+ 个 LLM 提供商,并允许你创建高度定制化的 Agent 来应对不同场景。本文将从实际使用角度出发,带你一步步完成配置。
OpenCode 的提供商系统非常灵活,支持云端 API、本地模型、企业级部署等多种方式。
/connect 快速配置最简便的方式是在 TUI 中输入 /connect 命令,然后从列表中选择你想要的提供商。目前支持的主流提供商包括:
选择后按提示完成认证即可。
对于需要精细控制的项目,推荐直接在 opencode.json 中配置:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"timeout": 600000,
"chunkTimeout": 30000
}
}
},
"model": "anthropic/claude-sonnet-4-5",
"small_model": "anthropic/claude-haiku-4-5"
}
small_model 用于标题生成等轻量任务,能有效节约 API 费用。
如果你想完全离线使用,可以配置 Ollama、LM Studio 或 llama.cpp 等本地推理引擎:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3-coder:a3b": {
"name": "Qwen3-Coder"
}
}
}
}
}
本地模型适合处理敏感代码或节省服务器费用,但需要注意模型对工具调用的支持能力。推荐使用 Qwen-Coder 或 DeepSeek-Coder 系列,它们在结构化输出方面表现较好。
当某个提供商暴露了太多模型,你可以用 whitelist 或 blacklist 来精简列表:
{
"provider": {
"anthropic": {
"whitelist": ["claude-sonnet-4-20250514"]
}
}
}
这在团队环境中特别有用,可以避免开发者选错模型。
OpenCode 支持对同一模型配置不同参数变体:
{
"provider": {
"openai": {
"models": {
"gpt-5": {
"options": {
"reasoningEffort": "high",
"textVerbosity": "low"
},
"variants": {
"fast": {
"reasoningEffort": "low"
},
"deep": {
"reasoningEffort": "high",
"reasoningSummary": "auto"
}
}
}
}
}
}
}
通过快捷键可以在不同变体间快速切换,灵活应对不同任务。
Agent 是 OpenCode 最强大的功能之一。你可以为代码审查、文档编写、安全审计等特定任务创建专门的 Agent。
OpenCode 内置了多种 Agent:
| Agent | 类型 | 用途 |
|-------|------|------|
| Build | primary | 默认开发 Agent,拥有全部工具权限 |
| Plan | primary | 计划和分析模式,只读不写 |
| General | subagent | 通用子 Agent,可执行多步任务 |
| Explore | subagent | 快速只读探索代码库 |
| Scout | subagent | 只读查阅外部文档和依赖 |
通过 Tab 键在主 Agent 之间切换,通过 @ 提及来调用子 Agent。
#### 方式一:JSON 配置
在 opencode.json 中直接定义:
{
"agent": {
"code-reviewer": {
"description": "代码审查,关注安全性和性能",
"mode": "subagent",
"model": "anthropic/claude-sonnet-4-5",
"temperature": 0.1,
"prompt": "你是一名资深的代码审查专家。请重点关注:\n1. 安全漏洞和输入验证\n2. 性能瓶颈和潜在问题\n3. 代码可维护性和最佳实践\n4. 边界条件和错误处理",
"permission": {
"edit": "deny",
"bash": "deny"
}
}
}
}
#### 方式二:Markdown 文件
在 .opencode/agents/ 或 ~/.config/opencode/agents/ 目录下创建 .md 文件:
.opencode/agents/debug.md
---
description: 调试助手,专注于问题排查
mode: subagent
model: anthropic/claude-haiku-4-5
permission:
bash:
"*": "ask"
edit: "deny"
---
你是一名调试专家。分析错误信息,定位问题根源,提供修复建议。
首先使用 bash 工具查看日志和运行时状态,然后给出排查步骤。
文件名即为 Agent 名称,在会话中可通过 @debug 调用。
OpenCode 的权限系统非常灵活,支持按工具类型甚至具体命令进行控制:
{
"agent": {
"safe-build": {
"mode": "primary",
"permission": {
"edit": "ask",
"bash": {
"*": "ask",
"npm test": "allow",
"git diff": "allow",
"git status": "allow"
}
}
}
}
}
上面的配置让 Agent 在执行 npm test、git diff 等安全命令时无需确认,而其他 bash 命令则需要手动批准。
opencode agent create 命令OpenCode 还提供了交互式命令来创建 Agent:
opencode agent create
它会依次询问:
保存位置(全局或项目级)
Agent 的描述
自动生成合适的 system prompt
选择允许的权限
输出 Markdown 配置文件
这是新手入门的最佳方式。
在实际开发中,不同任务适合不同的模型。你可以通过 Agent 配置实现多模型协作:
通过 subagent_depth 配置可以控制子 Agent 的嵌套深度:
{
"subagent_depth": 2
}
默认值为 1,允许主 Agent 调用子 Agent,但不允许子 Agent 再嵌套调用。
在配置文件中引用环境变量,避免硬编码敏感信息:
{
"model": "{env:OPENCODE_MODEL}",
"provider": {
"anthropic": {
"options": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
}
}
}
}
如果你配置了多个提供商但只想用其中几个,可以用 enabled_providers 进行限制:
{
"enabled_providers": ["anthropic", "openai"]
}
将 Agent 的 prompt 放在独立文件中管理:
{
"agent": {
"code-reviewer": {
"prompt": "{file:./prompts/code-review.txt}"
}
}
}
保持配置文件的整洁,也方便团队共享和版本控制。
本文从模型提供商配置和自定义 Agent 两个核心维度,介绍了 OpenCode 的高级用法。通过灵活配置提供商、精心设计 Agent,你可以把 OpenCode 打造成真正适配自己工作流的 AI 编程助手。
关键要点回顾:
/connect 快速添加提供商,用 opencode.json 精细管理下一篇文章将介绍 OpenCode 的 MCP 服务器集成与自定义工具开发,敬请期待。