@opencode/client客户端包。Code Mode 内置轻量 JS 解释器,原生接入 MCP 服务,将工具转为可执行脚本,支持多工具链式一次性调用,大幅降低上下文开销。新增后台子智能体与异步 Shell 任务,主智能体可并行处理多项工作,长任务支持快捷键转入后台。插件体系全面强化,80 + 内置插件,全组件支持热重载,TUI 插件转正稳定。新增@opencode/sdk,可作为库嵌入自研系统。升级存在破坏性变更:1.0 插件失效、API 重构、配置文件迁移,其余功能基本兼容,提供自动化迁移工具。
10 个关键问题 Q&A
-
Q:OpenCode 2.0 最大底层改动是什么? A:改为常驻后台服务架构,TUI / 网页 / 桌面客户端共用同一个后台进程。 -
Q:@opencode/client 的作用? A:可编程客户端,支持脚本自动发现本地服务,提供 JS 与 Effect 两种客户端。 -
Q:Code Mode 核心能力是什么? A:内置轻量 JS 解释器,把 MCP/OpenAPI 转为脚本函数,实现多工具一次性链式调用。 -
Q:MCP 服务在 2.0 有什么变化? A:默认开启 Code Mode,接入大量 MCP 不会显著膨胀上下文。 -
Q:后台子智能体能干什么? A:主智能体可派生子智能体后台执行任务,主流程继续运行,可选用不同模型。 -
Q:后台 Shell 命令优势? A:异步执行,长耗时任务不会阻塞主智能体,任务完成后通知主智能体。 -
Q:插件系统亮点? A:80 + 内置插件,全部组件支持热重载,智能体可在会话中编写并即时加载插件。 -
Q:OpenCode SDK 用途? A: @opencode/sdk,可作为代码库,定制自研 OpenCode 实例并部署在各类环境。 -
Q:升级 2.0 有哪些破坏性变更? A:1.0 插件不兼容、服务 API 完全重写、tui.json 配置迁移,其余大多向下兼容。 -
Q:如何升级 OpenCode CLI? A:先升级到最新 1.x,执行 opencode upgrade --major;桌面端官网下载新版本。
附录 OpenCode 2.0 重磅发布:代码智能体底层架构全面重构
OpenCode 2.0 是一次重大重构。它基于数百万日活用户的使用体验打造,这套系统能够灵活承载智能体所需的全部能力。新版本包含大量新功能、性能优化与缺陷修复,下面介绍部分影响较大的面向用户的变更。
后台服务
OpenCode 从项目之初就采用客户端 / 服务端架构。不过默认并未启用该架构能力,过去主要是高阶用户才会使用。
在 2.0 版本中,服务会自动在本机以独立后台进程运行。当你打开文本终端界面(TUI)、网页端或者桌面客户端时,所有界面都会与这同一个核心进程通信。
opencode pid 48213 STOPPED STARTING RUNNING
会话(SESSIONS)
如果你使用可编程客户端包 @opencode/client编写自定义脚本,脚本可自动发现本地服务并直接运行,这对于定时任务场景尤其实用。你也可以通过 CLI,执行 opencode api命令调用服务。
你可以将服务暴露给其他主机,执行 /pair或者 opencode pair,把它和其他应用建立连接。我们正在开发原生应用,将基于这套连接机制工作。
API
旧版 API 是随着我们和整个行业对智能体认知的迭代零散搭建而成,设计并不理想。
我们从零重新设计,调研了数百万 OpenCode 用户的各类小众使用场景。新版 API 几乎可以满足你所有的开发需求。
OpenCode 能够感知自身的 API,会主动调用 API 完成一些实用操作:例如开启新任务时,把当前会话迁移到 Git 工作树中。
SESSION New session OPENCODE ~/app Fix flaky upload test interrupted Migrate config loader tab closed New session this session ~/worktrees/rate-limit
我们同步发布全新客户端包 @opencode/client,内置原生 JavaScript 客户端以及 Effect 框架客户端。
import { OpenCode } from "@opencode/client"
import { Service } from "@opencode/client/service"
const endpoint = await Service.ensure()
const client = OpenCode.make({
baseUrl: endpoint.url,
headers: Service.headers(endpoint),
})
const session = await client.session.create({
location: { directory: process.cwd() },
})
await client.session.prompt({
sessionID: session.id,
text: "Review the current changes",
})
代码模式(Code Mode)
大模型非常擅长编写代码,OpenCode 2.0 相比其他代码智能体,深度挖掘了这项能力。我们在 @opencode/codemode包内实现了一套轻量 JavaScript 解释器。
SESSION CODE MODE MCP SERVERS github linear sentry
该组件可以接入 MCP 服务或者 OpenAPI 接口,将它们转换成智能体可在脚本内调用的函数。脚本可以原生运行,无需引入 Node.js 虚拟机,也不用嵌入 QuickJS 这类复杂方案。
这让智能体可以编写脚本,一次性完成链式操作:调用工具、遍历返回结果、再调用下一个工具。整套逻辑一次请求完成,而不是逐个串行调用工具。
2.0 版本里,所有 MCP 服务默认启用代码模式。也就是说,你可以接入上千个 MCP 服务,上下文开销增幅很小;智能体能够自动发现并组合这些工具完成任务。
后台任务(Background Tasks)
新一代大模型的编排能力极强,运行框架必须充分释放这种能力。
SESSION BACKGROUND
- 后台子智能体
主智能体可以把部分工作交给子智能体后台执行,自身继续处理任务。 该能力支持自动触发,也可以手动启动,甚至可以选用不同模型。举个例子:你可以 “创建一个后台 Fable 子智能体来评审代码”,同时继续发起新的指令。 - 后台 Shell 命令
Shell 工具支持异步调用,长时间运行的任务不会阻塞主智能体,任务完成后主智能体会收到通知。
如果前台 Shell 命令或者子智能体执行超时,你可以按下快捷键,将任务转入后台,继续输入指令。
插件系统
OpenCode 1.0 虽然自带插件系统,但投入不足。为了解决这个问题,我们把 OpenCode 2.0 的绝大多数功能都作为内部插件实现,目前插件数量已超过 80 个。这从机制上保证插件 API 能持续维护。
TUI 插件也从实验特性转为稳定版。底层基于 OpenTUI,你几乎可以用它构建任意功能(哪怕是一些趣味性的无用小工具)。
我们投入大量工作,实现 OpenCode 2.0 全组件热重载。智能体可以在会话运行期间,为自己编写插件并立刻启用。相关设计思路参见:https://anoma.ly/notes/opencode-reloaded
你可以直接让 OpenCode 编写任意插件,它具备对应的能力。如果需要查阅文档:https://opencode.ai/v2/docs/build/plugins
SDK
现在 OpenCode 还可以作为库引入,对应包 @opencode/sdk。CLI 的底层实现代码和这个 SDK 完全同源。
你可以基于它精简定制,打造自研版本的 OpenCode,部署在服务端或者 Durable Objects 这类特殊环境。只要遵循标准 OpenCode 服务协议,任意 OpenCode 客户端都可以连接你的实例。SDK 同时提供可选的 Effect 风格 API。
该模块仍在迭代开发中,文档:https://opencode.ai/v2/docs/build/sdk
版本升级
升级 CLI:先升级到最新 1.x 版本,再执行命令: opencode upgrade --major
升级桌面客户端:前往官网下载最新版 https://opencode.ai/download
⚠️ 存在不兼容变更:
-
1.0 版本插件无法在 2.0 中运行 -
服务端 API 完全重构 -
tui.json 配置文件迁移为 json
其余大部分改动保持向下兼容。你可以直接让 OpenCode 读取迁移文档,自动帮你迁移配置:https://opencode.ai/v2/docs/migrate-v1/
术语对照表
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

