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,后者将终端、网页和桌面端统一到同一个本地后台服务。
正文
close notice
This article is also available in English.
It was translated with technical assistance and editorially reviewed before publication.
.
OpenCode 2.1 ist da: Das Update ändert Schnittstellen für SDK, HTTP-Nachrichten, Ereignisse und Plug-ins. Wer OpenCode in eigene Werkzeuge eingebunden hat, muss mit der neuen Version mehrere Datenfelder anpassen. Für Anwender sichtbarer sind die dauerhaften Terminal-Sitzungen unter Windows und eine experimentelle Aufgabenliste in der Terminaloberfläche. Die jüngste Version baut auf OpenCode 2.0 auf, das den Coding-Agenten auf einen gemeinsamen Hintergrunddienst umgestellt hat.
Weiterlesen nach der Anzeige
OpenCode ist ein quelloffener KI-Coding-Agent für Entwickler. Er kann mit Sprachmodellen und Werkzeugen an Code arbeiten und lässt sich im Terminal, als Desktop-App oder im Browser bedienen. Auch andere Oberflächen wie OpenChamber können auf ihn zugreifen.
Neue Felder für Integrationen
Den größten Umstellungsbedarf in Version 2.1 beschreibt das OpenCode-Changelog bei anbieterspezifischen Daten, die OpenCode bei späteren Modellaufrufen wiederverwendet. In den SDK-, HTTP- und Plug-in-APIs liegen diese Daten nun unter tool.native. Die bisherigen Felder providerState und providerResultState entfallen dort. Integrationen müssen die neuen Felder verwenden. Bereits gespeicherte Sitzungen und ältere Importe bleiben lesbar; eine Datenbankmigration ist laut Projekt nicht nötig.
Auch bei der Verdichtung langer Gespräche ändert sich das Datenformat. Neue Zusammenfassungen verweisen über metadata.keepID auf Nachrichten, deren Wortlaut erhalten bleibt, statt diesen Text nochmals zu speichern. Das Nachrichtenfenster für die weitere Verarbeitung durch einen Modellanbieter liegt jetzt unter native.messages statt unter providerContext. Wer Ereignisse zur Verdichtung abonniert, muss zudem auf die aktuellen Ereignisse session.compaction.started und session.compaction.ended wechseln; session.compacted entfällt.
Abseits der Schnittstellen erhalten Windows-Systeme mit x64- und ARM64-Prozessoren dauerhafte Pseudo-Terminals für denselben Terminal-Workflow wie macOS und Linux. Mit {"experimental":{"todo":true}} lässt sich außerdem das Werkzeug todowrite einschalten: Das Modell kann damit eine Aufgabenliste führen, die OpenCode in der Sitzung und in der Seitenleiste anzeigt. Länger laufende Befehle in der Terminaloberfläche sollen ihre Verbindung nicht mehr durch Buns bisherigen Standard-Fetch-Timeout von fünf Minuten verlieren.
OpenCode 2.0 bündelt Sitzungen in einem Dienst
Weiterlesen nach der Anzeige
Die Grundlage dafür legte Version 2.0. Wie das Projekt in seiner Vorstellung von OpenCode 2.0 erklärt, starten Terminaloberfläche, Weboberfläche und Desktop-App nicht mehr jeweils einen eigenen Agentenprozess. Stattdessen greifen sie auf einen gemeinsamen lokalen Hintergrunddienst zu. Skripte können diesen Dienst über den neuen Client ansprechen; OpenCode selbst kann über die überarbeitete API unter anderem Sitzungen verwalten und in Git-Worktrees verschieben.
Hinzu kommt der „Code Mode“. Darin kann der Agent Werkzeugaufrufe in einem Skript verknüpfen, statt jedes Ergebnis einzeln durch das Sprachmodell zu schicken. Bei einer Ticketsuche könnte er beispielsweise mehrere Einträge abrufen und nur die passenden Titel zurückgeben. Das hält Zwischenergebnisse aus dem Gesprächskontext heraus.
Der Versionssprung auf 2.0 war allerdings kein reines Funktionsupdate: Plug-ins für 1.x funktionieren nicht unverändert, und die Server-API wurde neu gefasst.
OpenCode konkurriert mit dem quelloffenen Coding-Agent Pi. Dessen jüngst erschienene Version 1.0.0 verkleinert die Werkzeugbeschreibungen im Codemode, erlaubt Bildgenerierung aus dessen Skripten und startet die Terminaloberfläche standardmäßig im Vollbild.
(fo)