Claude 程式碼 SDK
TypeScript
使用 Claude Code TypeScript SDK 建立自訂 AI 代理
先決條件
- Node.js 18+
安裝
從 NPM 安裝 @anthropic-ai/claude-code
:
要查看 TypeScript SDK 原始碼,請造訪 NPM 上的 @anthropic-ai/claude-code
頁面。
基本用法
透過 TypeScript SDK 的主要介面是 query
函數,它回傳一個非同步迭代器,串流傳送到達的訊息:
配置選項
參數 | 類型 | 描述 | 預設值 |
---|---|---|---|
abortController | AbortController | 用於取消操作的中止控制器 | new AbortController() |
additionalDirectories | string[] | 要包含在會話中的額外目錄 | undefined |
allowedTools | string[] | Claude 被允許使用的工具清單 | 預設啟用所有工具 |
appendSystemPrompt | string | 要附加到預設系統提示的文字 | undefined |
canUseTool | CanUseTool | 工具使用的自訂權限函數 | undefined |
continue | boolean | 繼續最近的會話 | false |
customSystemPrompt | string | 完全替換預設系統提示 | undefined |
cwd | string | 目前工作目錄 | process.cwd() |
disallowedTools | string[] | Claude 不被允許使用的工具清單 | undefined |
env | Dict<string> | 要設定的環境變數 | undefined |
executable | 'bun' | 'deno' | 'node' | 要使用的 JavaScript 執行時間 | 使用 Node.js 執行時為 node ,使用 Bun 執行時為 bun |
executableArgs | string[] | 要傳遞給可執行檔的參數 | [] |
fallbackModel | string | 主要模型失敗時使用的模型 | undefined |
maxThinkingTokens | number | Claude 思考過程的最大代幣數 | undefined |
maxTurns | number | 對話回合的最大數量 | undefined |
mcpServers | Record<string, McpServerConfig> | MCP 伺服器配置 | undefined |
model | string | 要使用的 Claude 模型 | 使用 CLI 配置的預設值 |
pathToClaudeCodeExecutable | string | Claude Code 可執行檔的路徑 | 隨 @anthropic-ai/claude-code 一起提供的可執行檔 |
permissionMode | PermissionMode | 會話的權限模式 | "default" (選項:"default" 、"acceptEdits" 、"bypassPermissions" 、"plan" ) |
permissionPromptToolName | string | 權限提示的 MCP 工具名稱 | undefined |
resume | string | 要恢復的會話 ID | undefined |
stderr | (data: string) => void | stderr 輸出的回呼函數 | undefined |
strictMcpConfig | boolean | 強制執行嚴格的 MCP 配置驗證 | undefined |
多回合對話
對於多回合對話,你有兩個選項。
你可以產生回應並恢復它們,或者你可以使用串流輸入模式,它接受訊息陣列的非同步/產生器。目前,串流輸入模式是透過訊息附加圖片的唯一方式。
使用會話管理恢復
串流輸入模式
串流輸入模式允許你提供訊息作為非同步可迭代物件,而不是單一字串。這啟用了多回合對話、圖片附件和動態訊息產生:
帶圖片的串流輸入
串流輸入模式是透過訊息附加圖片的唯一方式:
自訂系統提示
系統提示定義你的代理的角色、專業知識和行為:
透過 MCP 的自訂工具
模型上下文協定 (MCP) 讓你為代理提供自訂工具和功能:
使用 MCP 的自訂工具
你可以使用 MCP 實作自訂工具,例如這裡是如何建立自訂權限處理工具。
輸出格式
文字輸出(預設)
JSON 輸出
輸入格式
代理整合範例
SRE 事件回應代理
自動化安全審查
多回合法律助理
訊息架構
從 JSON API 回傳的訊息根據以下架構嚴格類型化:
額外的支援類型:
Message
、MessageParam
和 Usage
類型可在 Anthropic TypeScript SDK 中取得。
相關資源
- CLI 使用和控制 - 完整的 CLI 文件
- GitHub Actions 整合 - 使用 Claude 自動化你的 GitHub 工作流程
- 常見工作流程 - 常見使用案例的逐步指南