跳轉到主要內容
V2 會話 API 不再受支援。TypeScript Agent SDK 0.3.142 移除了 unstable_v2_createSessionunstable_v2_resumeSessionunstable_v2_prompt 以及 SDKSessionSDKSessionOptions 類型。若要遷移,請使用 query() API 和它接受的會話選項。傳遞 AsyncIterable<SDKUserMessage> 進行多輪對話,或使用 options.resume 繼續已保存的會話。如果您在 Agent SDK 0.2.x 或更早版本上維護程式碼,此頁面保留供參考。
V2 是一個實驗性會話 API,消除了對非同步生成器和 yield 協調的需求。與其在各輪之間管理生成器狀態,每一輪都是一個單獨的 send()/stream() 週期。API 表面縮減為三個概念:
  • createSession() / resumeSession():開始或繼續對話
  • session.send():發送訊息
  • session.stream():取得回應

安裝

Agent SDK 0.2.x 是包含 V2 介面的最後一個版本。套件版本從 0.2.x 直接跳到 0.3.142,因此上面的移除版本和下面的安裝固定版本描述的是同一個邊界。若要安裝最後一個 V2 相容版本,請固定主要和次要版本:
SDK 為您的平台捆綁了一個原生 Claude Code 二進位檔案作為可選依賴項,因此您無需單獨安裝 Claude Code。

快速開始

單次提示

對於不需要維護會話的簡單單輪查詢,請使用 unstable_v2_prompt()。此範例發送一個數學問題並記錄答案:

基本會話

對於超出單個提示的互動,請建立一個會話。V2 將發送和串流分為不同的步驟:
  • send() 分派您的訊息
  • stream() 串流回應
這種明確的分離使得在輪次之間添加邏輯變得更容易(例如在發送後續訊息之前處理回應)。 下面的範例建立一個會話,向 Claude 發送「Hello!」,並列印文字回應。它使用 await using(TypeScript 5.2+)在區塊退出時自動關閉會話。您也可以手動呼叫 session.close()

多輪對話

會話在多次交換中保持上下文。要繼續對話,請在同一會話上再次呼叫 send()。Claude 會記住之前的輪次。 此範例詢問一個數學問題,然後詢問一個引用先前答案的後續問題:

會話恢復

如果您有來自先前互動的會話 ID,您可以稍後恢復它。這對於長時間運行的工作流程或當您需要在應用程式重新啟動時保持對話時很有用。 此範例建立一個會話,儲存其 ID,關閉它,然後恢復對話:

清理

會話可以手動關閉或使用 await using(TypeScript 5.2+ 功能用於自動資源清理)自動關閉。如果您使用的是較舊的 TypeScript 版本或遇到相容性問題,請改用手動清理。 自動清理(TypeScript 5.2+):
手動清理:

API 參考

unstable_v2_createSession()

為多輪對話建立新會話。

unstable_v2_resumeSession()

按 ID 恢復現有會話。

unstable_v2_prompt()

用於單輪查詢的單次便利函數。

SDKSession 介面

功能可用性

V2 會話 API 不支援每個 V1 功能。以下功能需要使用 V1 SDK
  • 會話分叉(forkSession 選項)
  • 某些進階串流輸入模式

另請參閱