託管與連接

在既有產品中託管 Heddle

Heddle 負責持久對話與執行機制,但不要求你的產品改用特定伺服器框架、傳輸方式、身分提供者、資料庫或 UI。

客製化深度

進階生命週期

託管深度

依宿主條件選擇

文件狀態

支援的 SDK 邊界

前置假設

  • Agent 執行環境位於 Node.js 20+ 的 TypeScript/ESM 宿主中。
  • 你的產品可以提供穩定的對話 ID,並決定誰可以存取。
  • 你希望保留既有的 API、驗證、狀態管理與前端技術選擇。
Heddle 負責
  • 持久對話、回合、壓縮、租約、追蹤紀錄、產物、工具與核准流程。
  • 選用託管層後,提供可定址的執行 ID、依序活動、有界重播、明確取消與終結狀態。
  • 選用遠端套件後,提供遠端 envelope 驗證、游標規則、重複與缺口處理,以及有界的重新連線計算。
產品端負責
  • 身分、多租戶、授權、穩定的產品對話 ID 與存取政策。
  • 伺服器框架、路由或 procedure、對外 schema、錯誤、CORS、限制、稽核與部署。
  • UI 狀態、訊息、工具呈現、重試體驗、通知,以及最終結果如何套用至產品。

兩個彼此獨立的選擇

Heddle 的公開介面把客製化深度託管條件分開。你可以在單一行程中使用完整對話引擎而不公開網路 API,也可以加入託管與遠端層級,同時保留已建立的產品行為。

相依方向應維持如下:

Text
產品 UI 與客戶端狀態
        |
@roackb2/heddle-remote + 選用的 HTTP/SSE 客戶端
        |
你的傳輸轉接器、身分驗證與對外 schema
        |
你的應用服務與組合根
================ HEDDLE SDK 邊界 ================
ConversationRunService
        |
ConversationEngine
        |
模型、工具、宿主擴充與 MCP

邊界上方的應用服務仍是你的程式碼。它把經過驗證的產品身分對應到穩定對話 ID,使用產品工具與憑證建立引擎,並決定哪些內部資料可以成為對外輸出。

選擇最小且符合需求的層級

你的產品已經具備從這裡開始支援層級
TypeScript 行程,尚無 Agent UIrunQuickstartConversationCli支援的 SDK 進入點
自有的本機輸出或生命週期@roackb2/heddlecreateConversationEngine支援的 SDK 進入點
伺服器、worker 或 Electron 後端@roackb2/heddle/hostedConversationRunService支援且可直接執行
使用 REST 與 SSE 的 Express@roackb2/heddle/hosted/http-sse支援的 helper 與可執行 Express 參考
透過任意傳輸層連線的遠端 JavaScript 客戶端@roackb2/heddle-remote支援的傳輸層中立套件
使用慣例 REST/SSE contract 的瀏覽器@roackb2/heddle-remote/http-sse支援且可直接執行
React/Vite 前端Hosted React 範例可執行的參考產品,不是 React SDK
tRPC、Fastify、Hono、Nest、WebSocket、IPC 或 queue託管服務加上你的轉接器調整指南
多行程或 serverless 執行託管服務加上共享路由或傳遞機制架構指南

不要只因為參考範例使用 Express 或 React 就安裝它們。若產品已有其他伺服器或客戶端架構,應停在傳輸層中立的託管服務。

持久邊界

對話是持久狀態;執行(run)則是針對該對話的一次可定址工作。兩者分開後,HTTP request 可以在接受執行後立即回傳,模型與工具仍能繼續工作;客戶端可以中斷並重新連線而不重啟工作;後續回合也能重用同一個持久對話。

每個產品對話應使用一個穩定的 Heddle session ID。不要在每次 prompt 中重播另一份產品對話紀錄、建立第二套宿主 run ID,或在 Heddle 執行串流外再加一條行程內事件匯流排。這些平行路徑會產生互相衝突的事實來源。

依需求繼續

權威來源