跳到正文
Hacker News (official RSS)(anoma.ly)·· 4 小時前精選AI 評分83

OpenCode 2.0 全新服務模式與 API 重新定義開發者與智慧體互動

OpenCode 2.0

AI 導讀

OpenCode 2.0 以全新服務模式與豐富 API 重新定義開發者與智慧體互動。

  • 服務模式:單一背景程序自動啟動,TUI、網頁介面、桌面應用皆共用同一中央程序。
推薦理由

OpenCode 2.0 以全新服務模式與豐富 API 重新定義開發者與智慧體互動,讀者可快速評估其在工作流程中的實際效能。

正文 · AI 翻譯

OpenCode 2.0 是 一次 重大 改造。 它 依賴 每日 數百萬 使用者 的 體驗 , 交付 一個 能夠 靈活 應對 代理人 所需 的一切 的 系統。 這裡 有 許多 新 功能 、 效能 提升 以及 錯誤 修正 , 但 以下 是 一些 更具 影響力 的 面向 使用者 的 變更。

服務

從 最初 開始 OpenCode 採用 一個 客戶端/伺服器 模式。 然而, 這個 並非 不是 某些東西 它 利用 優勢 的 預設 主要 大多數 使用 由 高階 使用者。

在 2.0 這個 伺服器 現在 自動 執行 作為 一個 單一 後景 程式 在 您的 機器。 當 你 開啟 上 一個 TUI, 此 網頁 介面 或 此 桌面 應用程式 它們 全部 對話 到 此 相同 中央 程式。

opencodepid 48213執行中

會話

修復不穩定測試

新增暗色模式

審查變更

如果 你 正在 使用 專業程式化客戶端 @opencode/client 來 製作 自己的 指令碼, 它們 會 自動發現 本地 服務 並 直接 工作. 這 對 排程 任務 特別 有用. 你 也 可以 透過 CLI 使用 opencode api 指令 來 呼叫 它.

你 可以 將 它 公開 給 其他 主機 , 並 執行 /pair 或 opencode pair 以 連線 到 其他 應用程式。 我們 正在 開發 原生 應用程式, 將 利用 此 流程。

API

那個 舊 API 成長 隨亂地 當 我們 以及 那個 世界 集合地 學習了 什麼 代理 是 以及 應該 是。 它 是 糟糕。

我們 開始 從 零開始 以及 檢查 所有 那個 怪異 使用 案例 跨 那個 百萬 的 使用者 誰 使用 OpenCode 每天 日。 它 現在 支持 幾乎 任何東西 你 需要 去 成為 能夠 去 做。

OpenCode 是 也 意識到 的 自己的 自己的 API 並且 將會 呼叫 它 來 執行 有用的 操作 例如 搬移 這個 目前 工作階段 搬移 一個 git 工作樹 當 開始ing 新 工作。

Session新會話

OpenCode

~/app

修正不穩定上傳測試中斷

遷移設定載入器分頁已關閉

新會話此會話

~/worktrees/rate-limit

我們已經 也 釋出了 一個 新的 客戶端 套件 @opencode/client 包含了 原生JavaScript 以及 Effect 的 客戶端.

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 採取 優勢 的 這 更多 比 任何 其他 程式編寫 代理 我們已 構建 一個 最小化 JavaScript 直譯器 在 the @opencode/codemode 套件

會話

程式模式

MCP 伺服器

github

linear

sentry

此 套件 接收 MCP 伺服器 或 OpenAPI 端點, 轉換 它們 成 函式 讓 代理程式 能 呼叫 在 指令碼 指令碼中。 它 能 執行 這些 指令碼 原生 不需要 複雜 性 於 Node.js VMs 或 嵌入 複雜 解決方案 如 QuickJS.

這 允許 您的 代理 編寫 指令碼 , 能 執行 像是 呼叫 工具 、 遍歷 結果 並 呼叫 另一個 工具 等 操作。

所有 MCP 伺服器 在 2.0 版本 預設 已 選擇 進入 程式碼 模式。 這 表示 您 可以 在 極少 的 上下文 膨脹 下 新增 上千 個 , 代理 將 發現 並 組合 它們 以 完成 工作。

背景任務

最新 一批 模型 在 編排 方面 表現 極佳 , 對於 讓 它們 充分 發揮 其 能力 至關 重要.

會話

背景

首先, 我們已經 新增 背景 子代理。 這 允許 這個 主要 代理 將 啟動 開始 某些 工作 到 另一個 代理 同時 它 繼續

這個 發生 自動化i地 但 你 能 也 觸發 它 手動 - 甚至 與 一 不同 模型。 它 允許 你 做 事 像 “生成 一 背景 寓言 子代理 以 檢視 這 程式碼”。 同時 你 保持 提示 進行。

第二點, 我們已經 加入 背景 shell commands. 這個 shell 工具 可以 被 呼叫 asynchronously 所以 長時間執行的 工作 做 不 需要 去 阻塞 這個 主 代理。 它將 被 notified 當 事情 是 comcomplete.

如果 任何 前景 shell 指令 或 子代理 執行 更長 比 你 預期, 你 可以 按下 一個 熱鍵 將 移動 它們 到 後 後臺 這樣 你 可以 繼續 提示.

外掛

雖然 OpenCode 1.0 擁有 一個 外掛 系統, 它 從未 獲得 所 注意 它 所需。 為了 修正 這點, 我們 強迫 自己自己 去 實現 幾乎 每一個 OpenCode 2.0 功能 作為 一個 內部 外掛 並且 那裡 有 現在 80+ 的 它們。 這 保證 那 外掛 API 保持 良好 維持。

我們已 已 推廣 TUI 外掛 從 實驗階段 至 正式版。 由於 它 全部 由 OpenTUI 提供 動力, 您 可以 建構 幾乎 任何東西。 以下 是 一個 無用之物。

我們 亦 花了 不少 些 量 之 時間 確保 一切 在 OpenCode 2.0 可 之 熱過載。 因此 它 可 為自己寫 一個 外掛 為 自己 會話中間 並 使用 它 立即 使用 - 我們 已闡述 此 設計 的 此 在 先前的 先前的部落格文章 .

你 可以 要求 OpenCode 建構 任何 外掛 你 想要 並 它 知道 如何 操作。 但 若 你 想 閱讀 檔案 檔案, 它們 可 取得 此處 。

The SDK

OpenCode 可以 同時 目前 成為 使用 作為 一個 library 與 the @opencode/sdk 套件.

這 表示 你 可以 拆解 它 下 並 製作 你的 自己的 版本 的 OpenCode 那 執行 在 一個 伺服器 或 在 特殊化 環境 像 Durable Objects. 接著 你 可以 連線 到 它 從 任意 OpenCode 客戶端 因為 它 遵循 標準的 標準 OpenCode server 通訊協定.

它 也 提供 可選的 基於效果的 API.

這個 一個 是 仍在 於 開發中 隨著 變化 正在 變動 但 你 可以 已經使用它.

升級

要 升級 CLI, 請 確保 你 在 最新的 1.x 版本, 然後 執行 opencode upgrade --major。

要 升級 桌面 應用程式, 下載 最新 版本於 此.

有 一些 重大 變更。

1.0 版本的 外掛 在 2.0 中 無法 使用

Server API 完全 不同

tui.json 設定 已 移至 json

有 許多 其他 變更 但 它們 保持 向後 相容。 值得 將 OpenCode 指向 此檔案 以便 它 能 為 你 進行 遷移。