OpenCode 2.1 发布:一个编码智能体支持多种模型
OpenCode 2.1: Ein Coding-Agent, viele Modelle | heise online
开源 AI 编码智能体 OpenCode 发布 2.1 版,SDK、HTTP 消息、事件和插件接口均有变更,供应商相关数据改放到 tool.native 下,原 providerState 和 providerResultState 字段被移除,集成方需相应调整。Windows x64 与 ARM64 获得持久化伪终端,并可通过 {"experimental":{"todo":true}} 启用 todowrite 任务列表。该版本基于 2.0,后者将终端、网页和桌面端统一到同一个本地后台服务。
正文 · AI 翻译
关闭通知
本文也有英文版。
本文经技术辅助翻译,并在发布前经过编辑审校。
。
OpenCode 2.1 已发布:此次更新改动了 SDK、HTTP 消息、事件和插件的接口。凡是将 OpenCode 集成到自有工具中的用户,都必须针对新版本调整多个数据字段。对用户更直观的变化是 Windows 下的持久终端会话,以及终端界面中的实验性任务列表。最新版本建立在 OpenCode 2.0 的基础上,后者已将编码智能体迁移到统一的后台服务。
广告后继续阅读
OpenCode 是一款面向开发者的开源 AI 编码智能体。它可以借助语言模型和工具处理代码,并可在终端、桌面应用或浏览器中使用。OpenChamber 等其他界面也可以访问它。
集成所需的新字段
OpenCode 变更日志描述了 2.1 版中改动需求最大的部分,即 OpenCode 在后续模型调用中复用的供应商特定数据。在 SDK、HTTP 和插件 API 中,这些数据现在位于 tool.native 下。此前的 providerState 和 providerResultState 字段在这些位置被移除。集成方必须使用新字段。已保存的会话和较早的导入仍可读取;据项目方称,无需进行数据库迁移。
长对话的压缩在数据格式上也有变化。新的摘要通过 metadata.keepID 引用需要保留原文措辞的消息,而不再重复存储这些文本。供模型供应商进一步处理的消息窗口现在位于 native.messages 下,而不再位于 providerContext 下。订阅压缩事件的用户还必须改用当前的 session.compaction.started 和 session.compaction.ended 事件;session.compacted 已被移除。
在接口之外,搭载 x64 和 ARM64 处理器的 Windows 系统获得了持久伪终端,从而可使用与 macOS 和 Linux 相同的终端工作流。此外,通过 {"experimental":{"todo":true}} 可以启用 todowrite 工具:模型可借此维护一份任务列表,OpenCode 会在会话中和侧边栏中显示该列表。终端界面中运行时间较长的命令,应不会再因 Bun 此前默认的五分钟 Fetch 超时而失去连接。
OpenCode 2.0 将会话集中到一项服务中
广告后继续阅读
2.0 版为此奠定了基础。正如项目在介绍 OpenCode 2.0 时所说,终端界面、网页界面和桌面应用不再各自启动一个独立的智能体进程,而是访问一个共同的本地后台服务。脚本可以通过新的客户端调用该服务;OpenCode 本身则可以通过改版后的 API 管理会话、将会话移动到 Git worktree 等。
此外还有“代码模式”。在该模式中,智能体可以在一个脚本中串联工具调用,而不是将每个结果单独发送给语言模型。例如在搜索工单时,它可以获取多个条目,并且只返回匹配的标题。这样可以让中间结果不进入对话上下文。
不过,版本跃升至 2.0 并非纯粹的功能更新:1.x 的插件无法原样使用,服务器 API 也已重新设计。
OpenCode 与开源编码智能体 Pi 存在竞争关系。后者最近发布的 1.0.0 版缩小了代码模式中的工具描述,允许从其脚本生成图像,并让终端界面默认以全屏启动。
(fo)