OpenCode 2.0 代表了对编码 Agent 框架的一次重大架构重构,从标准的客户端/服务器模型转向持久化的后台进程。在这一新版本中,服务器作为用户机器上的单一后台进程运行,允许包括终端用户界面 (TUI)、Web 界面和桌面应用程序在内的各种界面与同一个中央进程进行通信。这一变化旨在提高计划任务和程序化脚本的可靠性,因为 `@opencode/client` 软件包现在会自动发现本地服务。此次更新还包括对 API 的彻底重写,以更好地适应 AI Agent 不断变化的需求,包括自我意识功能,即 Agent 可以识别并与其自身的 API 交互,以执行诸如将会话移动到特定 git 工作树等任务。

这张图片是 OpenCode 2.0 架构重构的主要视觉展示,该重构将框架转向持久化后台服务模型。
2.0 版本中最显著的技术转变之一是通过 `@opencode/codemode` 软件包引入的极简 JavaScript 解释器。与之前可能依赖复杂的 Node.js 虚拟机或 QuickJS 等嵌入式解决方案的迭代不同,这种新模式允许 Agent 摄取 Model Context Protocol (MCP) 服务器或 OpenAPI 端点并将其转换为函数。这使得 Agent 能够原生编写并执行脚本,以在单次往返中执行复杂的、多步骤的操作——例如遍历一个工具的结果并将其输入到另一个工具中。通过默认将所有 MCP 服务器纳入“代码模式”,该系统旨在减少上下文膨胀,允许 Agent 以极低的开销组合成千上万个工具。
为了改善长耗时操作期间的用户体验,OpenCode 2.0 引入了后台子 Agent 和异步 shell 命令。这允许主 Agent 将任务(如代码审查或构建过程)委托给子 Agent,同时保持可用状态以接收用户的进一步提示。如果命令运行时间超出预期,用户还可以使用热键将前台任务移至后台。此外,该框架采用了“一切皆为插件”的理念,目前已有 80 多个内部功能作为插件实现。这种架构支持热重载,这意味着 Agent 理论上可以在活跃会话期间为自己编写并部署插件,并在无需重启服务的情况下立即使用它。虽然此次更新包含了针对 1.0 插件和服务器 API 的破坏性变更,但它为现有配置提供了迁移路径,以支持这些更高级的编排能力。