首页 > 开源 > AI 编程工具 OpenCode 2.0 正式发布,能让模型写脚本调度工具

AI 编程工具 OpenCode 2.0 正式发布,能让模型写脚本调度工具

OSChina资讯 2026-10-15 10:41 5 阅读 查看原文

OpenCode 2.0 已正式发布,官方称其是“重大更新”(major overhaul)。据称此版本吸收了数百万日活用户的经验,旨在交付一个“能伸缩到智能体需要的一切”的系统。新功能很多,这里挑几个对用户影响最大的说。

OpenCode 2.0

一个常驻后台的服务

OpenCode 从一开始就采用了客户端/服务器模型,但默认没真正用起来,只有重度用户会用到。2.0 里这个服务端会自动作为本机的一个后台进程常驻:你打开 TUI、Web 界面还是桌面应用,它们都连同一个中心进程。

编程客户端 @opencode/client 会自动发现本机服务,写完自己的脚本就能直接用,官方特别提到这适合定时任务;也可以用 opencode api 在命令行里调用。想跨机器用,可以把它暴露给其他主机,跑 /pair 或 opencode pair 连到别的应用。原生 App 也在计划里。

API 推倒重写:官方原话是“很差”

旧 API 是边学边长的产物——大家一开始都不知道智能体应该是什么样,于是它长歪了,官方原话是“It was bad”。这次从零重写,把数百万用户的各种奇怪用法都过了一遍。新 API 几乎覆盖了你想做的任何事。

有意思的是,OpenCode 现在能感知自己的 API,并调用它给自己干活。比如开始新任务时,它会自己把当前会话挪进一个新的 git worktree。官方展示了一个例子:让模型“把 flaky test 的会话停掉、隔离那个测试、关掉没用的标签页”,它自己先后调用了 session_list、session_context、session_interrupt、session_prompt、tab_close 一串 API 完成任务。

智能体自己写脚本:Code Mode

模型爱写代码。OpenCode 2.0 觉得这件事不能浪费,于是给智能体加了一个最小的 JavaScript 解释器,让它们在自己工作流里写脚本调度工具——想调工具、把结果再喂给另一个工具,一趟往返搞定,而不用一个一个反复调用。

这是 2.0 比较核心的一块。@opencode/codemode 包内置了一个极简的 JavaScript 解释器,能把 MCP server 或 OpenAPI 端点变成智能体可以在脚本里调用的函数。关键是不用跑 Node.js VM,也不用嵌 QuickJS,直接原生执行。

这带来一个实际变化:智能体可以写一段脚本,调一个工具、把结果 map 一遍、再调另一个工具——一趟单一往返(single round trip),而不是一个一个来回调用。2.0 里所有 MCP server 默认都开启 codemode,官方称就算挂一千个 MCP server 也不会带来明显的上下文膨胀,智能体自己会发现并组合它们干活。

后台任务与后台子智能体

最新这批模型编排能力很强,框架层应当让它们把这种能力使出来。2.0 加了后台子智能体:主智能体可以派一个后台任务给另一个智能体(甚至指定不同的模型),自己继续干别的。比如“后台起一个 fable 子智能体审查这段代码”。官方演示里,主智能体边继续写 changelog,后台子智能体跑完审查留下 2 条评论,148 个测试通过,构建成功。

shell 工具也支持异步执行,长时间运行的任务不用阻塞主智能体。等不及的命令,按下快捷键(Ctrl+B)就能把前台任务挪到后台,继续提问。

80 多个插件:每个功能自己先当一遍插件

OpenCode 1.0 就有插件系统,但一直没得到足够照顾。这次为了修好它,团队强迫自己把 2.0 几乎所有功能都先用内部插件实现,现在有 80+ 个插件。这样插件 API 就被逼着一直保持维护状态。TUI 插件也转正了:从实验性升为稳定,底层是 OpenTUI。所有东西都支持热重载——它可以在会话中途给自己写个插件,马上用起来。官方文档也放出来了。

SDK:CLI 的同一套代码

OpenCode 现在还可以作为库使用,包名 @opencode/sdk,就是驱动 CLI 的那套代码。你可以把它拆了,做一个跑在服务器上、甚至是 Durable Objects 这种特殊环境里的定制版 OpenCode——只要走标准的 OpenCode server 协议,任何 OpenCode 客户端都能连上去。还有一个可选的基于 Effect 的 API。这部分还在开发中,但已经可以用了。

升级注意:不兼容项

升级方式:确认在最新的 1.x 上,然后 opencode upgrade --major;桌面应用去官网下最新的。2.0 有几个破坏性变更:1.0 的插件在 2.0 里不能用;server API 完全不同;tui.json 配置改成了 .json 格式。其他大部分改动向后兼容。OpenCode 作者 Anomaly 的建议很省事——把这份文档丢给 OpenCode 自己,让它帮你迁移。

来源: