UStackUStack
Cline SDK icon

Cline SDK

Cline SDK (@cline/sdk) 開源代理執行時底座,提供可重用 agent harness、外掛系統與可設定的 provider 層,支援 IDE 與 CLI。

Cline SDK

Cline SDK 是什麼?

Cline SDK (@cline/sdk) 是從 Cline 抽離出來的 TypeScript 代理執行時底座,旨在支援多種介面(包含 IDE 與 CLI)的代理式程式開發流程。其核心目的是提供模組化、可重用的「代理 harness」與架構,讓團隊能在不受單一應用程式 UI 生命週期限制的情況下建置與擴充代理。

Cline 重新設計後,將代理迴圈從 VS Code 擴充功能中解耦,改以共享服務形式提供執行時。這讓長時間執行的工作能獨立於 UI 重啟繼續運作,並支援在不同介面間移動工作階段,同時保持低階代理迴圈的可重用性與無狀態特性。

主要功能

  • 共享代理執行時架構:將執行時與特定 IDE 實作分離,讓工作較不受 UI 重啟影響。
  • 可重用代理 harness(無狀態迴圈):保持低階代理迴圈無狀態且可重用,同時讓周圍執行時具備持久性與可攜性。
  • 分層 TypeScript 堆疊:採用分層設計,每一層各司其職,可依需求選擇完整堆疊或個別套件。
  • 執行時層級的外掛系統:外掛可註冊工具、觀察生命週期事件、新增規則/指令,並塑造模型所接收的內容。
  • 彈性的外掛載入與封裝:外掛可從設定路徑或工作區位置載入,並能以本機 .ts/.js 模組啟動,之後再透過 cline.plugins 清單演進為封裝模組。
  • 提供者層的 LLM 支援(開放選擇):提供者層支援多種提供者與 OpenAI 相容端點,切換提供者主要透過設定驅動。

如何使用 Cline SDK

  1. 安裝 SDK:使用 npm i -g @cline/sdk 安裝完整堆疊。
  2. 選擇介面:以 Cline SDK 驅動 VS Code、JetBrains 與 CLI 中的代理(Cline 自身的介面皆建置於此 SDK 之上)。
  3. 以執行時外掛擴充行為:建立外掛模組(或封裝成套件),用以註冊工具並回應生命週期事件。
  4. 設定模型/提供者存取:透過提供者層以設定方式選擇代理應呼叫的模型/提供者。

使用情境

  • 跨重啟的長時間代理工作:執行代理任務時,不會因 UI 重啟而中斷,因為執行時設計為持久且不綁定單一 UI 生命週期。
  • 跨多個介面的持久代理:在不同介面(例如 IDE 與 CLI)間移動工作階段,同時保持代理迴圈無狀態且可重用。
  • 透過外掛進行團隊專屬代理自訂:載入外掛即可新增領域特定行為(如額外工具、規則或指令),無需 fork 執行時。
  • 先在本機原型,之後再封裝:先以本機 .ts/.js 模組實作外掛,待團隊以 cline.plugins 清單強化功能後,再封裝成可重用目錄。
  • 無伺服器或可組合的代理執行時:當您想將代理行為嵌入其他執行時模型時,可使用分層堆疊中的較小部分(如提供者邏輯或無狀態迴圈)。

常見問題

  • Cline SDK 是否僅綁定 VS Code 擴充功能? 否。SDK 旨在支援 Cline 跨 VS Code、JetBrains 與 CLI 使用,並設計讓團隊能建置於此執行時之上,而非僅重用 IDE 專屬實作。

  • 代理迴圈中的「無狀態」是什麼意思? 重新設計後,低階代理迴圈保持無狀態且可重用,而周圍執行時則提供持久性與可攜性。

  • 外掛如何影響模型行為? 外掛可在執行前或執行期間註冊工具、觀察生命週期事件,並塑造代理所接收的內容(包含規則與指令)。

  • 是否能在不改寫代理的情況下切換 LLM 提供者? 提供者層設計為以設定驅動,並支援多種提供者與 OpenAI 相容端點。

  • 是否需要安裝完整 SDK 堆疊才能開始使用? SDK 採用分層設計:您可安裝完整堆疊,或依需求使用個別套件(如提供者層或無狀態迴圈)來支援較小的介面。

替代方案

  • 使用現有代理框架搭配自訂執行環境:若您需要完整掌控工作階段持久化與工具編排,且已自行維護執行環境,則可考慮其他代理框架方案。
  • 建置於 IDE 專屬代理擴充模型:部分解決方案將代理迴圈保留在 IDE 外掛內,啟動較為簡單,但執行時行為可能與 UI 生命週期緊密耦合。
  • 使用通用 LLM 工具編排層:相較於代理 harness 與執行環境架構,工具編排方式著重於呼叫模型與工具,通常將工作階段持久化與生命週期管理交由您的應用程式程式碼處理。