OpenCode 2.0(阅读约6分钟)

TLDR AI 工具

摘要

OpenCode 2.0 是对开源编码智能体的一次重大升级,引入了统一的后台客户端/服务器架构、全新的 API 重写及 JavaScript 客户端包、通过极简 JS 解释器将 MCP 服务器与 OpenAPI 端点进行组合的代码模式、后台子智能体与 Shell 任务,以及一个包含 80 多个内部插件的稳定插件系统。

OpenCode 2.0 包含大量新功能、性能改进和问题修复。服务器现在会自动作为单个后台进程运行。编程客户端会自动发现本地服务并直接可用。OpenCode 现在还可以通过 SDK 包作为库来使用。关于此次更新的更多详情请参阅原文。
查看原文
查看缓存全文

缓存时间: 2026/10/14 18:31

# OpenCode 2.0 来源:https://anoma.ly/notes/opencode-2-0/ OpenCode 2.0 是一次重大重构。它借鉴了数百万日常用户的实践经验,打造了一个能够灵活适应 agent 各种需求的系统。此次更新包含大量新功能、性能改进和 Bug 修复,以下是其中一些影响较大的面向用户的变更。 ## 服务化架构 从一开始,OpenCode 就采用了客户端/服务器模型。但在默认情况下并未充分利用它,主要由高级用户使用。 在 2.0 中,该服务器现在会自动作为单个后台进程运行在你的机器上。无论你打开 TUI、Web 界面还是桌面应用,它们都在与同一个核心进程通信。 如果你使用编程化客户端 `@opencode/client` 编写自己的脚本,它们会自动发现本地服务并直接可用。这对于定时任务尤其有用。你也可以通过 CLI 使用 `opencode api` 命令来调用它。 你可以将其暴露给其他主机,运行 `/pair` 或 `opencode pair` 将其连接到其他应用程序。我们正在开发利用这种流程的原生应用。 ## API 旧的 API 是在我们和整个社区共同学习 agent 是什么、应该是什么的过程中随意演进的。它很糟糕。 我们从零开始,审视了数百万 OpenCode 日常用户的各种奇怪用例。现在它几乎支持你需要做的一切。 OpenCode 还能感知自己的 API 并调用它来完成有用的操作,比如在开始新工作时将会话移动到 git worktree 中。 我们也发布了新的客户端包 `@opencode/client`,其中包含原生 JavaScript 和 Effect 的客户端。 ```typescript // review.ts 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 比其他任何编码 agent 都更充分地利用了这一点。我们在 `@opencode/codemode` 包中构建了一个极简 JavaScript 解释器。 该包可以导入 MCP 服务器或 OpenAPI 端点,将它们转换为 agent 可以在脚本中调用的函数。它可以原生运行这些脚本,无需 Node.js VM 的复杂性,也无需嵌入 QuickJS 这样的复杂解决方案。 这让你的 agent 可以编写脚本来完成诸如调用一个工具、遍历结果并调用另一个工具等操作。一次往返调用,而不是逐个调用。 2.0 中所有 MCP 服务器默认启用 code mode。这意味着你可以添加上千个 MCP 服务器而不会导致上下文膨胀,你的 agent 将发现并组合它们来完成工作。 ## 后台任务 最新一代模型在编排方面表现出色,而 harness 需要让它们充分表达这种能力。 首先,我们添加了后台子 agent。这允许主 agent 将一些工作委派给另一个 agent,同时自己继续工作。 这会自动发生,但你也可以手动触发——甚至可以使用不同的模型。它让你可以做类似"生成一个后台子 agent 来审查这段代码"的事情,同时你继续对话。 其次,我们添加了后台 shell 命令。shell 工具可以被异步调用,这样耗时的工作就不会阻塞主 agent。当事情完成时,它会收到通知。 如果任何前台 shell 命令或子 agent 花费的时间超出你的预期,你可以按一个快捷键将它们移到后台,以便继续对话。 ## 插件 虽然 OpenCode 1.0 有插件系统,但它从未得到应有的关注。为了纠正这一点,我们强迫自己将几乎每个 OpenCode 2.0 功能都作为内部插件来实现,现在已有 80 多个。这保证了 Plugin 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 的完全相同的代码。 这意味着你可以精简它,制作自己的 OpenCode 变体,运行在服务器上或 DurableObjects 等特殊环境中。然后你可以从任何 OpenCode 客户端连接到它,因为它使用标准的 OpenCode 服务器协议。 它还有一个可选的基于 Effect 的 API。 这个仍在开发中,因为内容还在变化,但你已经可以[使用它](https://opencode.ai/v2/docs/build/sdk)了。 ## 升级 要升级 CLI,请确保你在最新的 1.x 版本上,然后运行 `opencode upgrade --major`。 要升级桌面应用,请在此[下载](https://opencode.ai/download)最新版本。 有一些破坏性变更: - 1.0 插件在 2.0 中将无法工作 - Server API 完全不同 - `tui.json` 配置已迁移到 `json` 还有很多其他变更,但它们都是向后兼容的。值得让 OpenCode 指向[这个文档](https://opencode.ai/v2/docs/migrate-v1/),让它为你自动迁移。

相似文章

OpenCode 2.0

Product Hunt

OpenCode 2.0 作为开源 AI 编程代理正式发布,支持终端、桌面和 Web 应用,可搭配任意模型使用。

Ouroboros:核心演进经评审的自进化前沿编码代理

Hugging Face Daily Papers

Ouroboros 是一个自进化前沿编码代理,其工具、提示词和核心实现通过受评审的提交不断改进,在 Terminal-Bench、OSWorld 和 CL-Bench 上取得了最先进的结果,并包含一个名为 Hope 的长期运行的实际部署。