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 工作流
- 常见工作流 - 常见用例的分步指南