Skip to content

OpenCode 2.0 - 常驻服务架构与多模型后台协作

OpenCode 2.0(Anomaly 公司的开源 AI coding agent,MIT 协议)完成了一次架构跨越:从「关掉终端就没了」的单点工具,变成操作系统里单一常驻后台服务,终端、浏览器、桌面应用全部连到同一实例。配套的 background subagents(可指定不同模型)、Code Mode(一次往返调用上千 MCP 工具)和 80+ 内部插件构成这一版的三板斧。本笔记基于视频内容 + 官方发布笔记逐条交叉验证。

目录


一句话定位

OpenCode 是开源免费的终端 AI 编码 agent:自然语言下指令,它写代码、修 Bug、改文件。核心卖点是不锁单一模型——Claude、OpenAI、Google 的模型,甚至本地私有部署模型都能接(官网口径:Free models included or connect any model from any provider)。

[!info] 基本信息(查询日 2026-10-15) - 仓库: https://github.com/anomalyco/opencode - Stars: 213,557 / Open issues: 4,259 - 开发方: Anomaly(官网 opencode.ai,发布笔记 anoma.ly/notes) - 协议: MIT / 语言: TypeScript - 当前版本: GitHub releases 最新 tag 为 v1.19.0(2026-10-11),2.0 通过 opencode upgrade --major 升级 - 注意: 旧地址 sst/opencode 现返回 301 重定向,正名为 anomalyco/opencode


架构转变:单一常驻服务(The Service)

2.0 最大的变化不是某个功能,而是运行形态。官方发布笔记原话:OpenCode 从一开始就是 client/server 模型,但旧版默认不用它(power users 才会开);2.0 起 server 自动作为单一后台进程运行,你打开的 TUI、网页界面、桌面应用全部连到同一个中心进程。

1.0(默认形态)                      2.0(常驻服务)

 ┌──────────┐                       ┌──────────┐ ┌──────────┐ ┌──────────┐
 │ Terminal │ 关窗即终止             │ Terminal │ │ Browser  │ │ Desktop  │
 └────┬─────┘                       └────┬─────┘ └────┬─────┘ └────┬─────┘
      │                                  │            │            │
      ▼                                  └────────────┼────────────┘
 ┌──────────┐                                       ▼
 │ 会话状态  │                        ┌──────────────────────┐
 │ (进程内)  │                        │ opencode service     │
 └──────────┘                        │ (单一后台进程)        │
                                     │ 共享 sessions/memory │
                                     └──────────┬───────────┘
                                                │
                                     ┌──────────▼───────────┐
                                     │ @opencode/client     │
                                     │ 脚本/API 自动发现接入 │
                                     └──────────────────────┘

对使用体验的实际影响:

维度 1.0 2.0
生命周期 绑定终端窗口 OS 后台常驻,关窗不停
多入口 各开各的实例 同一实例,状态/会话/记忆共享
接续工作 换窗口 = 重新开始 终端开工 → 浏览器接着看,同一份进度
脚本接入 各自拉起进程 @opencode/client autodiscover,opencode api 命令,/pair 配对第三方应用
定时任务 手动 cron 包一层 官方明确支持 scheduled tasks 场景

配套变化:官方 native apps 在做(in the works);@opencode/sdk 让你把 OpenCode 剥掉外壳自建 flavor(跑在 server 或 Durable Objects 等特殊环境),客户端走标准 server protocol 即可互联——SDK 官方注明 still in development。


后台任务与双模型协作(Background Tasks)

2.0 的第二板斧是让前台不再阻塞。三层机制:

  1. background subagents——主 agent 把工作丢给子 agent 后台跑,自己继续对话;可手动指定不同的模型(官方示例原话:spawn a background fable subagent to review this code)
  2. background shell commands——shell 工具异步调用,长测试/长构建不阻塞主 agent,完成时通知
  3. 一键转后台——前台任务拖太久,按 ctrl+b 把它移到背景继续跑
 主线程(Claude,写代码)
 │
 ├─ 正常对话:「修复 flaky test」
 │    │
 │    ├── 丢后台 ──► subagent (另一个模型,如 fable):「review this code」
 │    ├── 丢后台 ──► shell: bun test(148 passed 完成后通知)
 │    ├── 丢后台 ──► shell: bun run build
 │    │
 │    └─ 前台继续:「顺便更新 changelog」◄── 不用等任何后台任务
 │
 └─ 汇总: review 留了 2 条评论 + 测试全过 + 构建成功 + changelog 已更新

双脑互检最佳实践:

  • ✅ 生成与审查用不同模型——「一主一审」的 fresh eyes 能抓到同一模型自我审查时的盲区
  • ✅ 长任务(测试套件、大构建)第一时间丢后台,绝不空等
  • ✅ 卡住的后台任务直接用自然语言管理:「停掉那个 session、让它隔离这个测试、关掉我完成的标签页」——官方演示 OpenCode 会调自己的 API 完成 session_interrupt / tab_close
  • ❌ 不要把所有任务都丢后台——有先后依赖的任务链后台并行会互相踩

Code Mode:一次往返调用上千工具

传统 agent 调用外部工具的模式:调一个 → 等结果 → 调下一个 → 再等。每个工具一轮往返,慢且容易超时。

Code Mode 的做法:模型直接写一段 JavaScript 脚本,把「取数据 → 遍历 → 喂给另一个工具」打包成一次执行。官方为此在 @opencode/codemode 包里内置了一个 minimal JavaScript interpreter(刻意不用 NodeJS VM 或 QuickJS 这类重型方案),把 MCP servers / OpenAPI endpoints 摄取成脚本里可调用的函数。

维度 传统 tool calling Code Mode
调用模式 一工具一轮往返(N 工具 = N 轮) 脚本一次执行完整数据流
数据传递 每轮结果回填上下文(token 膨胀) 脚本变量直接传递,不进上下文
大量工具 几十个就 context bloat 官方口径:上千个 MCP server 最小上下文膨胀
典型耗时 逐个等待,易超时 单次往返(single round trip)

官方演示场景:把 GitHub 仓库的 open bug 一口气搬进 Linear 任务追踪——

const { issues } = await tools.github.list_issues({
  owner: "anomalyco", repo: "opencode",
  labels: ["bug"], state: "OPEN",
})
const filed = await Promise.all(issues.map(({ title }) =>
  tools.linear.save_issue({ team: "OC", title })))
return filed.map(issue => issue.identifier)

关键默认值:2.0 中所有 MCP servers 默认 opt-in Code Mode。工具按需被发现和组合,而不是全部塞进 system prompt。


自扩展插件系统(80+ 内部插件)

OpenCode 1.0 就有 plugin system,但官方自评「never got the attention it needed」。2.0 的修法很硬核:强迫自己把 2.0 几乎所有功能都实现为内部插件,现在有 80+ 个——Plugin API 想烂尾都难(dogfooding 到极致)。

三个要点:

  1. hot reload 全覆盖——2.0 保证一切可热加载:对话中途让 OpenCode 给自己写一个插件,立刻挂载使用,无需重启。视频演示的「AI 即时给自己写扩展」就是这条
  2. TUI plugins 转正——从 experimental 升 stable,底层是 OpenTUI,理论上能画任意界面
  3. 开放生成——直接让 OpenCode 建你想要的插件(它自己知道怎么写),文档在 opencode.ai/v2/docs/build/plugins

什么时候自己写插件 vs 直接用自然语言:

需求出现
 ├─ 一次性的? ──────────────► 直接对话里说,OpenCode 现场做完就丢
 ├─ 会反复用、要分享给团队? ──► 让 OpenCode 写成插件,进 .opencode/plugins/
 └─ 改 OpenCode 核心行为? ───► 优先查 80+ 内部插件是否已覆盖(大概率有)

Plan / Build / Review 三模式

                    ┌─────────────────────────────────┐
                    │  依赖任务风险等级选模式           │
                    └───────────────┬─────────────────┘
              ┌─────────────────────┼─────────────────────┐
              ▼                     ▼                     ▼
        只想看懂/规划          日常开发主力            专审不改码
        ┌──────────┐         ┌──────────┐          ┌──────────┐
        │ Plan     │ ─Tab──► │ Build    │          │ Review   │
        │ 只读分析  │  切换   │ 全工具可写│          │ 只读审查  │
        └──────────┘         └──────────┘          └──────────┘
模式 权限 适用场景 切换方式
Plan 只读——看架构、分析逻辑、给方案,不碰文件 高风险变更前评估、陌生代码库摸底 Tab 循环切换 primary agent
Build 全量——编辑/创建/重构 确认方案后的正常开发 同上
Review 只读审查 代码审查专用(视频未提,官方 modes 文档收录) 同上

勘误提示:视频把 Plan/Build 放在「2.0 新功能」叙事里,但这两个模式是 1.x 既有功能(GitHub issue #1063 显示 2025-07 的 v0.3.13 时代就有 Plan/Build 的 Tab 切换)。2.0 的新意在于 primary agents 体系更完整(多了 Review mode)+ permissions 数组化让权限规则更精确。


v1 → v2 迁移指南

官方文档(opencode.ai/v2/docs/migrate-v1)明确:推荐迁移路径就是让 OpenCode 自己改你的配置——视频的说法与官方完全一致。

Migrate my OpenCode configuration, including file-based definitions,
from the V1 format to the native V2 format.
Preserve its behavior and all unrelated settings.
# 升级 CLI:先确认在最新 1.x,再跨大版本(当前 latest 1.x = v1.19.0)
opencode upgrade --major
# 或 TUI 内输入 /update(2.0 起更新不再自动安装,需手动触发)
# Desktop 应用:从 opencode.ai/download 重新下载

只有三个 intentional breaking changes,其余向后兼容:

Breaking change 详情 处理
Plugin API 1.0 插件全部不兼容(不是「部分」) 按官方 plugin migrate-v1 指南重写入口/hooks/tools
Server API 完全重写,V1 集成代码必须迁移 换 @opencode/client,参照生成的 API reference
终端客户端配置 分层的 tui.json → 全局单一 cli.json 首次启动 V2 自动迁移,V1 文件保留不动

容易踩的坑(视频没讲,官方迁移文档明确):

  • V1/V2 用同一批配置路径——迁移验证期别把 V1 指向已转成 V2 形态的文件
  • permissions 动作改名:bash→shell、task→subagent、write/patch→edit
  • AGENTS.md 继续自动发现,但 V1 依赖的 CLAUDE.md fallback 不再自动发现——要把指引搬进 AGENTS.md
  • agent 字段改名一批:prompt→system、disable→disabled、variant 并入模型引用(model#high)
  • MCP 配置归入 mcp.servers,enabled 反转为 disabled,timeout 拆成 catalog/execution 两个用途

视频给出的三条落地法则

  1. 后台作业化——任何耗时任务第一时间丢背景(ctrl+b),不在屏幕前空等
  2. 模型交叉验证——建立「生成模型」与「审查模型」分离的习惯,双脑互检
  3. 成本阶梯——先用免费/本地模型熟悉指令逻辑,复杂情境再切旗舰模型(官方免费模型直接内置,本地模型即接即用)

评注:第 2 条在 2.0 里成本近乎为零(background subagent 指定另一模型即可),是三条里最值得立刻养成习惯的一条。第 3 条注意本地小模型跑 Code Mode 的脚本生成质量会打折——interpreter 跑的是模型写的 JS,模型弱则脚本烂。


验证与勘误记录

视频声称 验证结果 来源
OpenCode 是 free + open source,多模型接入 ✅ MIT 协议,官网「Free models included or connect any model」 GitHub API + opencode.ai
2.0 = 单一常驻后台服务,三端共享状态 ✅ 官方原文「this server now automatically runs as a single background process」 anoma.ly/notes/opencode-2-0
双模型协作:一个 build 一个 review ✅ 官方示例「spawn a background fable subagent to review this code」;TNS 佐证 anoma.ly + thenewstack.io
Code Mode 支持上千工具不卡 ✅ 官方原文「add a thousand of them with minimal context bloat」,所有 MCP servers 默认 opt-in anoma.ly/notes/opencode-2-0
系统由 80+ 模块化外挂构成 ✅ 官方原文「nearly every OpenCode 2.0 feature as an internal plugin and there are now 80+ of them」 同上
对话中即时生成插件即挂即用 ✅ 官方确认全系统 hot reload,「write a plugin for itself mid session and use it right away」 同上
Plan/Build 双模式内置 ⚠️ 模式真实存在但非 2.0 新增——issue #1063(2025-07-16)证明 v0.3.13 时代已有;2.0 实为 Build/Plan/Review 三模式 github.com/anomalyco/opencode/issues/1063
「a few older add-ons won't work」 ⚠️ 官方口径更重:1.0 插件全部不兼容 + Server API 完全重写 + tui.json→cli.json。视频弱化了破坏性 opencode.ai/v2/docs/migrate-v1
可要求 OpenCode 自动迁移旧配置 ✅ 官方推荐迁移路径即「ask OpenCode to update the configuration for you」 同上
native apps 即将推出 / 可自建 flavor ✅ 官方「native apps in the works」;SDK「make your own flavor」——但 SDK still in development anoma.ly/notes/opencode-2-0
2.0 已可立即升级 ⚠️ opencode upgrade --major 可用,但社区反馈 v2 尚不完全稳定(r/opencode:not yet fully stable;r/opencodeCLI:now in beta);GitHub releases 最新 tag 仍是 v1.19.0 Reddit + GitHub API(查询日 2026-10-15)
(视频未提)归属与旧地址 补充:开发方为 Anomaly;sst/opencode 旧地址现返回 301 重定向,正名 anomalyco/opencode;The New Stack 2026-10-12 有深度报道 GitHub API + thenewstack.io

频道性质提醒:Julian Goldie SEO 是营销型频道(transcript 自我介绍为「digital avatar」——AI 数字人配音,近半时长在推 skool.com 付费社区)。本视频技术内容基本是对官方发布公告的忠实转述,转述质量高于此类频道平均水准,但所有功能演示仍以官方文档为准。


参考资料

相关笔记


文档生成时间:2026-10-15 基于 OpenCode 2.0(anomalyco/opencode,releases 最新 tag v1.19.0)