Loading...
    • 开发者指南
    • API 参考
    • MCP
    • 资源
    • 更新日志
    Search...
    ⌘K
    入门
    Claude 简介快速开始
    模型与定价
    模型概览选择模型Claude 4.6 新特性迁移指南模型弃用定价
    使用 Claude 构建
    功能概览使用 Messages API处理停止原因提示词最佳实践
    上下文管理
    上下文窗口压缩上下文编辑
    能力
    提示缓存扩展思考自适应思考推理力度流式消息批量处理引用多语言支持Token 计数嵌入视觉PDF 支持Files API搜索结果结构化输出
    工具
    概览如何实现工具使用细粒度工具流式传输Bash 工具代码执行工具程序化工具调用计算机使用工具文本编辑器工具网页抓取工具网页搜索工具记忆工具工具搜索工具
    Agent Skills
    概览快速开始最佳实践企业级 Skills通过 API 使用 Skills
    Agent SDK
    概览快速开始TypeScript SDKTypeScript V2(预览版)Python SDK迁移指南
    API 中的 MCP
    MCP 连接器远程 MCP 服务器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示工程
    概览提示词生成器使用提示词模板提示词优化器清晰直接使用示例(多样本提示)让 Claude 思考(思维链)使用 XML 标签赋予 Claude 角色(系统提示词)链式复杂提示长上下文技巧扩展思考技巧
    测试与评估
    定义成功标准开发测试用例使用评估工具降低延迟
    加强安全护栏
    减少幻觉提高输出一致性防范越狱攻击流式拒绝减少提示词泄露保持 Claude 角色设定
    管理与监控
    Admin API 概览数据驻留工作空间用量与成本 APIClaude Code Analytics API零数据留存
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Agent SDK

    Agent SDK 参考 - TypeScript

    TypeScript Agent SDK 的完整 API 参考,包括所有函数、类型和接口。

    Was this page helpful?

    • query()
    • tool()
    • createSdkMcpServer()
    • Options
    • Query
    • AgentDefinition
    • SettingSource
    • PermissionMode
    • CanUseTool
    • PermissionResult
    • McpServerConfig
    • SdkPluginConfig
    • SDKMessage
    • SDKAssistantMessage
    • SDKUserMessage
    • SDKUserMessageReplay
    • SDKResultMessage
    • SDKSystemMessage
    • SDKPartialAssistantMessage
    • SDKCompactBoundaryMessage
    • SDKPermissionDenial
    • HookEvent
    • HookCallback
    • HookCallbackMatcher
    • HookInput
    • BaseHookInput
    • HookJSONOutput
    • ToolInput
    • Task
    • AskUserQuestion
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • ToolOutput
    • Task
    • AskUserQuestion
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • PermissionUpdate
    • PermissionBehavior
    • PermissionUpdateDestination
    • PermissionRuleValue
    • ApiKeySource
    • SdkBeta
    • SlashCommand
    • ModelInfo
    • McpServerStatus
    • AccountInfo
    • ModelUsage
    • ConfigScope
    • NonNullableUsage
    • Usage
    • CallToolResult
    • AbortError
    • SandboxSettings
    • NetworkSandboxSettings
    • SandboxIgnoreViolations

    试用新的 V2 接口(预览版): 现已推出简化接口,支持 send() 和 receive() 模式,使多轮对话更加便捷。了解更多关于 TypeScript V2 预览版的信息

    安装

    npm install @anthropic-ai/claude-agent-sdk

    函数

    query()

    与 Claude Code 交互的主要函数。创建一个异步生成器,在消息到达时进行流式传输。

    function query({
      prompt,
      options
    }: {
      prompt: string | AsyncIterable<SDKUserMessage>;
      options?: Options;
    }): Query

    参数

    参数类型描述
    promptstring | AsyncIterable<SDKUserMessage>输入提示,可以是字符串或用于流式模式的异步可迭代对象
    optionsOptions可选配置对象(参见下方 Options 类型)

    返回值

    返回一个 Query 对象,该对象扩展了 AsyncGenerator<SDKMessage, void> 并包含额外方法。

    tool()

    创建类型安全的 MCP 工具定义,用于 SDK MCP 服务器。

    function tool<Schema extends ZodRawShape>(
      name: string,
      description: string,
      inputSchema: Schema,
      handler: (args: z.infer<ZodObject<Schema>>, extra: unknown) => Promise<CallToolResult>
    ): SdkMcpToolDefinition<Schema>

    参数

    参数类型描述
    namestring工具的名称
    descriptionstring工具功能的描述
    inputSchemaSchema extends ZodRawShape定义工具输入参数的 Zod schema
    handler(args, extra) => Promise<CallToolResult>执行工具逻辑的异步函数

    createSdkMcpServer()

    创建一个与应用程序在同一进程中运行的 MCP 服务器实例。

    function createSdkMcpServer(options: {
      name: string;
      version?: string;
      tools?: Array<SdkMcpToolDefinition<any>>;
    }): McpSdkServerConfigWithInstance

    参数

    参数类型描述
    options.namestringMCP 服务器的名称
    options.versionstring可选的版本字符串
    options.toolsArray<SdkMcpToolDefinition>使用 tool() 创建的工具定义数组

    类型

    Options

    query() 函数的配置对象。

    属性类型默认值描述
    abortControllerAbortControllernew AbortController()用于取消操作的控制器
    additionalDirectoriesstring[][]Claude 可以访问的额外目录
    agentsRecord<string, [AgentDefinition](#agentdefinition)>undefined以编程方式定义子代理

    Query

    query() 函数返回的接口。

    interface Query extends AsyncGenerator<SDKMessage, void> {
      interrupt(): Promise<void>;
      rewindFiles(userMessageUuid: string): Promise<void>;
      setPermissionMode(mode: PermissionMode): Promise<void>;
      setModel(model?: string): Promise<void>;
      setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;
      supportedCommands(): Promise<SlashCommand[]>;
      supportedModels(): Promise<ModelInfo[]>;
      mcpServerStatus(): Promise<McpServerStatus[]>;
      accountInfo(): Promise<AccountInfo>;
    }

    方法

    方法描述
    interrupt()中断查询(仅在流式输入模式下可用)
    rewindFiles(userMessageUuid)将文件恢复到指定用户消息时的状态。需要 enableFileCheckpointing: true。参见文件检查点
    setPermissionMode()更改权限模式(仅在流式输入模式下可用)
    setModel()更改模型(仅在流式输入模式下可用)
    setMaxThinkingTokens()更改最大思考 token 数(仅在流式输入模式下可用)
    supportedCommands()返回可用的斜杠命令
    supportedModels()返回可用模型及其显示信息

    AgentDefinition

    以编程方式定义的子代理配置。

    type AgentDefinition = {
      description: string;
      tools?: string[];
      prompt: string;
      model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
    }
    字段必填描述
    description是描述何时使用此代理的自然语言描述
    tools否允许的工具名称数组。如果省略,则继承所有工具
    prompt是代理的系统提示
    model否此代理的模型覆盖。如果省略,则使用主模型

    SettingSource

    控制 SDK 从哪些基于文件系统的配置源加载设置。

    type SettingSource = 'user' | 'project' | 'local';
    值描述位置
    'user'全局用户设置~/.claude/settings.json
    'project'共享项目设置(版本控制).claude/settings.json
    'local'本地项目设置(gitignored).claude/settings.local.json

    默认行为

    当 settingSources 被省略或为 undefined 时,SDK 不会加载任何文件系统设置。这为 SDK 应用程序提供了隔离性。

    为什么使用 settingSources?

    加载所有文件系统设置(旧版行为):

    // 像 SDK v0.0.x 一样加载所有设置
    const result = query({
      prompt: "Analyze this code",
      options: {
        settingSources: ['user', 'project', 'local']  // 加载所有设置
      }
    });

    仅加载特定设置源:

    // 仅加载项目设置,忽略用户和本地设置
    const result = query({
      prompt: "Run CI checks",
      options: {
        settingSources: ['project']  // 仅 .claude/settings.json
      }
    });

    测试和 CI 环境:

    // 通过排除本地设置确保 CI 中的一致行为
    const result = query({
      prompt: "Run tests",
      options: {
        settingSources: ['project'],  // 仅团队共享设置
        permissionMode: 'bypassPermissions'
      }
    });

    纯 SDK 应用程序:

    // 以编程方式定义所有内容(默认行为)
    // 无文件系统依赖 - settingSources 默认为 []
    const result = query({
      prompt: "Review this PR",
      options: {
        // settingSources: [] 是默认值,无需指定
        agents: { /* ... */ },
        mcpServers: { /* ... */ },
        allowedTools: ['Read', 'Grep', 'Glob']
      }
    });

    加载 CLAUDE.md 项目指令:

    // 加载项目设置以包含 CLAUDE.md 文件
    const result = query({
      prompt: "Add a new feature following project conventions",
      options: {
        systemPrompt: {
          type: 'preset',
          preset: 'claude_code'  // 使用 CLAUDE.md 时必需
        },
        settingSources: ['project'],  // 从项目目录加载 CLAUDE.md
        allowedTools: ['Read', 'Write', 'Edit']
      }
    });

    设置优先级

    当加载多个源时,设置按以下优先级合并(从高到低):

    1. 本地设置(.claude/settings.local.json)
    2. 项目设置(.claude/settings.json)
    3. 用户设置(~/.claude/settings.json)

    编程选项(如 agents、allowedTools)始终覆盖文件系统设置。

    PermissionMode

    type PermissionMode =
      | 'default'           // 标准权限行为
      | 'acceptEdits'       // 自动接受文件编辑
      | 'bypassPermissions' // 绕过所有权限检查
      | 'plan'              // 规划模式 - 不执行

    CanUseTool

    用于控制工具使用的自定义权限函数类型。

    type CanUseTool = (
      toolName: string,
      input: ToolInput,
      options: {
        signal: AbortSignal;
        suggestions?: PermissionUpdate[];
      }
    ) => Promise<PermissionResult>;

    PermissionResult

    权限检查的结果。

    type PermissionResult = 
      | {
          behavior: 'allow';
          updatedInput: ToolInput;
          updatedPermissions?: PermissionUpdate[];
        }
      | {
          behavior: 'deny';
          message: string;
          interrupt?: boolean;
        }

    McpServerConfig

    MCP 服务器的配置。

    type McpServerConfig = 
      | McpStdioServerConfig
      | McpSSEServerConfig
      | McpHttpServerConfig
      | McpSdkServerConfigWithInstance;

    McpStdioServerConfig

    type McpStdioServerConfig = {
      type?: 'stdio';
      command: string;
      args?: string[];
      env?: Record<string, string>;
    }

    McpSSEServerConfig

    type McpSSEServerConfig = {
      type: 'sse';
      url: string;
      headers?: Record<string, string>;
    }

    McpHttpServerConfig

    type McpHttpServerConfig = {
      type: 'http';
      url: string;
      headers?: Record<string, string>;
    }

    McpSdkServerConfigWithInstance

    type McpSdkServerConfigWithInstance = {
      type: 'sdk';
      name: string;
      instance: McpServer;
    }

    SdkPluginConfig

    SDK 中加载插件的配置。

    type SdkPluginConfig = {
      type: 'local';
      path: string;
    }
    字段类型描述
    type'local'必须为 'local'(目前仅支持本地插件)
    pathstring插件目录的绝对或相对路径

    示例:

    plugins: [
      { type: 'local', path: './my-plugin' },
      { type: 'local', path: '/absolute/path/to/plugin' }
    ]

    有关创建和使用插件的完整信息,请参见插件。

    消息类型

    SDKMessage

    查询返回的所有可能消息的联合类型。

    type SDKMessage = 
      | SDKAssistantMessage
      | SDKUserMessage
      | SDKUserMessageReplay
      | SDKResultMessage
      | SDKSystemMessage
      | SDKPartialAssistantMessage
      | SDKCompactBoundaryMessage;

    SDKAssistantMessage

    助手响应消息。

    type SDKAssistantMessage = {
      type: 'assistant';
      uuid: UUID;
      session_id: string;
      message: APIAssistantMessage; // 来自 Anthropic SDK
      parent_tool_use_id: string | null;
    }

    SDKUserMessage

    用户输入消息。

    type SDKUserMessage = {
      type: 'user';
      uuid?: UUID;
      session_id: string;
      message: APIUserMessage; // 来自 Anthropic SDK
      parent_tool_use_id: string | null;
    }

    SDKUserMessageReplay

    带有必需 UUID 的重放用户消息。

    type SDKUserMessageReplay = {
      type: 'user';
      uuid: UUID;
      session_id: string;
      message: APIUserMessage;
      parent_tool_use_id: string | null;
    }

    SDKResultMessage

    最终结果消息。

    type SDKResultMessage =
      | {
          type: 'result';
          subtype: 'success';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          result: string;
          total_cost_usd: number;
          usage: NonNullableUsage;
          modelUsage: { [modelName: string]: ModelUsage };
          permission_denials: SDKPermissionDenial[];
          structured_output?: unknown;
        }
      | {
          type: 'result';
          subtype:
            | 'error_max_turns'
            | 'error_during_execution'
            | 'error_max_budget_usd'
            | 'error_max_structured_output_retries';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          total_cost_usd: number;
          usage: NonNullableUsage;
          modelUsage: { [modelName: string]: ModelUsage };
          permission_denials: SDKPermissionDenial[];
          errors: string[];
        }

    SDKSystemMessage

    系统初始化消息。

    type SDKSystemMessage = {
      type: 'system';
      subtype: 'init';
      uuid: UUID;
      session_id: string;
      apiKeySource: ApiKeySource;
      cwd: string;
      tools: string[];
      mcp_servers: {
        name: string;
        status: string;
      }[];
      model: string;
      permissionMode: PermissionMode;
      slash_commands: string[];
      output_style: string;
    }

    SDKPartialAssistantMessage

    流式部分消息(仅当 includePartialMessages 为 true 时)。

    type SDKPartialAssistantMessage = {
      type: 'stream_event';
      event: RawMessageStreamEvent; // 来自 Anthropic SDK
      parent_tool_use_id: string | null;
      uuid: UUID;
      session_id: string;
    }

    SDKCompactBoundaryMessage

    表示对话压缩边界的消息。

    type SDKCompactBoundaryMessage = {
      type: 'system';
      subtype: 'compact_boundary';
      uuid: UUID;
      session_id: string;
      compact_metadata: {
        trigger: 'manual' | 'auto';
        pre_tokens: number;
      };
    }

    SDKPermissionDenial

    关于被拒绝的工具使用的信息。

    type SDKPermissionDenial = {
      tool_name: string;
      tool_use_id: string;
      tool_input: ToolInput;
    }

    钩子类型

    有关使用钩子的综合指南(包含示例和常见模式),请参见钩子指南。

    HookEvent

    可用的钩子事件。

    type HookEvent =
      | 'PreToolUse'
      | 'PostToolUse'
      | 'PostToolUseFailure'
      | 'Notification'
      | 'UserPromptSubmit'
      | 'SessionStart'
      | 'SessionEnd'
      | 'Stop'
      | 'SubagentStart'
      | 'SubagentStop'
      | 'PreCompact'
      | 'PermissionRequest';

    HookCallback

    钩子回调函数类型。

    type HookCallback = (
      input: HookInput, // 所有钩子输入类型的联合
      toolUseID: string | undefined,
      options: { signal: AbortSignal }
    ) => Promise<HookJSONOutput>;

    HookCallbackMatcher

    带有可选匹配器的钩子配置。

    interface HookCallbackMatcher {
      matcher?: string;
      hooks: HookCallback[];
    }

    HookInput

    所有钩子输入类型的联合类型。

    type HookInput =
      | PreToolUseHookInput
      | PostToolUseHookInput
      | PostToolUseFailureHookInput
      | NotificationHookInput
      | UserPromptSubmitHookInput
      | SessionStartHookInput
      | SessionEndHookInput
      | StopHookInput
      | SubagentStartHookInput
      | SubagentStopHookInput
      | PreCompactHookInput
      | PermissionRequestHookInput;

    BaseHookInput

    所有钩子输入类型扩展的基础接口。

    type BaseHookInput = {
      session_id: string;
      transcript_path: string;
      cwd: string;
      permission_mode?: string;
    }

    PreToolUseHookInput

    type PreToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PreToolUse';
      tool_name: string;
      tool_input: unknown;
    }

    PostToolUseHookInput

    type PostToolUseHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUse';
      tool_name: string;
      tool_input: unknown;
      tool_response: unknown;
    }

    PostToolUseFailureHookInput

    type PostToolUseFailureHookInput = BaseHookInput & {
      hook_event_name: 'PostToolUseFailure';
      tool_name: string;
      tool_input: unknown;
      error: string;
      is_interrupt?: boolean;
    }

    NotificationHookInput

    type NotificationHookInput = BaseHookInput & {
      hook_event_name: 'Notification';
      message: string;
      title?: string;
    }

    UserPromptSubmitHookInput

    type UserPromptSubmitHookInput = BaseHookInput & {
      hook_event_name: 'UserPromptSubmit';
      prompt: string;
    }

    SessionStartHookInput

    type SessionStartHookInput = BaseHookInput & {
      hook_event_name: 'SessionStart';
      source: 'startup' | 'resume' | 'clear' | 'compact';
    }

    SessionEndHookInput

    type SessionEndHookInput = BaseHookInput & {
      hook_event_name: 'SessionEnd';
      reason: ExitReason;  // EXIT_REASONS 数组中的字符串
    }

    StopHookInput

    type StopHookInput = BaseHookInput & {
      hook_event_name: 'Stop';
      stop_hook_active: boolean;
    }

    SubagentStartHookInput

    type SubagentStartHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStart';
      agent_id: string;
      agent_type: string;
    }

    SubagentStopHookInput

    type SubagentStopHookInput = BaseHookInput & {
      hook_event_name: 'SubagentStop';
      stop_hook_active: boolean;
    }

    PreCompactHookInput

    type PreCompactHookInput = BaseHookInput & {
      hook_event_name: 'PreCompact';
      trigger: 'manual' | 'auto';
      custom_instructions: string | null;
    }

    PermissionRequestHookInput

    type PermissionRequestHookInput = BaseHookInput & {
      hook_event_name: 'PermissionRequest';
      tool_name: string;
      tool_input: unknown;
      permission_suggestions?: PermissionUpdate[];
    }

    HookJSONOutput

    钩子返回值。

    type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;

    AsyncHookJSONOutput

    type AsyncHookJSONOutput = {
      async: true;
      asyncTimeout?: number;
    }

    SyncHookJSONOutput

    type SyncHookJSONOutput = {
      continue?: boolean;
      suppressOutput?: boolean;
      stopReason?: string;
      decision?: 'approve' | 'block';
      systemMessage?: string;
      reason?: string;
      hookSpecificOutput?:
        | {
            hookEventName: 'PreToolUse';
            permissionDecision?: 'allow' | 'deny' | 'ask';
            permissionDecisionReason?: string;
            updatedInput?: Record<string, unknown>;
          }
        | {
            hookEventName: 'UserPromptSubmit';
            additionalContext?: string;
          }
        | {
            hookEventName: 'SessionStart';
            additionalContext?: string;
          }
        | {
            hookEventName: 'PostToolUse';
            additionalContext?: string;
          };
    }

    工具输入类型

    所有内置 Claude Code 工具的输入 schema 文档。这些类型从 @anthropic-ai/claude-agent-sdk 导出,可用于类型安全的工具交互。

    ToolInput

    注意: 这是一个仅用于文档说明的类型。它表示所有工具输入类型的联合。

    type ToolInput =
      | AgentInput
      | AskUserQuestionInput
      | BashInput
      | BashOutputInput
      | FileEditInput
      | FileReadInput
      | FileWriteInput
      | GlobInput
      | GrepInput
      | KillShellInput
      | NotebookEditInput
      | WebFetchInput
      | WebSearchInput
      | TodoWriteInput
      | ExitPlanModeInput
      | ListMcpResourcesInput
      | ReadMcpResourceInput;

    Task

    工具名称: Task

    interface AgentInput {
      /**
       * 任务的简短描述(3-5 个词)
       */
      description: string;
      /**
       * 代理要执行的任务
       */
      prompt: string;
      /**
       * 用于此任务的专用代理类型
       */
      subagent_type: string;
    }

    启动新代理以自主处理复杂的多步骤任务。

    AskUserQuestion

    工具名称: AskUserQuestion

    interface AskUserQuestionInput {
      /**
       * 要向用户提出的问题(1-4 个问题)
       */
      questions: Array<{
        /**
         * 要向用户提出的完整问题。应清晰、具体,
         * 并以问号结尾。
         */
        question: string;
        /**
         * 显示为标签/标记的非常简短的标签(最多 12 个字符)。
         * 示例:"Auth method"、"Library"、"Approach"
         */
        header: string;
        /**
         * 可用选项(2-4 个选项)。系统会自动提供
         * "Other" 选项。
         */
        options: Array<{
          /**
           * 此选项的显示文本(1-5 个词)
           */
          label: string;
          /**
           * 此选项含义的说明
           */
          description: string;
        }>;
        /**
         * 设置为 true 以允许多选
         */
        multiSelect: boolean;
      }>;
      /**
       * 由权限系统填充的用户答案。
       * 将问题文本映射到选定的选项标签。
       * 多选答案以逗号分隔。
       */
      answers?: Record<string, string>;
    }

    在执行过程中向用户提出澄清问题。有关使用详情,请参见处理审批和用户输入。

    Bash

    工具名称: Bash

    interface BashInput {
      /**
       * 要执行的命令
       */
      command: string;
      /**
       * 可选的超时时间(毫秒)(最大 600000)
       */
      timeout?: number;
      /**
       * 用 5-10 个词清晰简洁地描述此命令的作用
       */
      description?: string;
      /**
       * 设置为 true 以在后台运行此命令
       */
      run_in_background?: boolean;
    }

    在持久 shell 会话中执行 bash 命令,支持可选的超时和后台执行。

    BashOutput

    工具名称: BashOutput

    interface BashOutputInput {
      /**
       * 要获取输出的后台 shell 的 ID
       */
      bash_id: string;
      /**
       * 可选的正则表达式用于过滤输出行
       */
      filter?: string;
    }

    从正在运行或已完成的后台 bash shell 中获取输出。

    Edit

    工具名称: Edit

    interface FileEditInput {
      /**
       * 要修改的文件的绝对路径
       */
      file_path: string;
      /**
       * 要替换的文本
       */
      old_string: string;
      /**
       * 替换后的文本(必须与 old_string 不同)
       */
      new_string: string;
      /**
       * 替换所有出现的 old_string(默认 false)
       */
      replace_all?: boolean;
    }

    在文件中执行精确的字符串替换。

    Read

    工具名称: Read

    interface FileReadInput {
      /**
       * 要读取的文件的绝对路径
       */
      file_path: string;
      /**
       * 开始读取的行号
       */
      offset?: number;
      /**
       * 要读取的行数
       */
      limit?: number;
    }

    从本地文件系统读取文件,包括文本、图片、PDF 和 Jupyter notebook。

    Write

    工具名称: Write

    interface FileWriteInput {
      /**
       * 要写入的文件的绝对路径
       */
      file_path: string;
      /**
       * 要写入文件的内容
       */
      content: string;
    }

    将文件写入本地文件系统,如果文件已存在则覆盖。

    Glob

    工具名称: Glob

    interface GlobInput {
      /**
       * 用于匹配文件的 glob 模式
       */
      pattern: string;
      /**
       * 要搜索的目录(默认为 cwd)
       */
      path?: string;
    }

    快速文件模式匹配,适用于任何规模的代码库。

    Grep

    工具名称: Grep

    interface GrepInput {
      /**
       * 要搜索的正则表达式模式
       */
      pattern: string;
      /**
       * 要搜索的文件或目录(默认为 cwd)
       */
      path?: string;
      /**
       * 用于过滤文件的 glob 模式(例如 "*.js")
       */
      glob?: string;
      /**
       * 要搜索的文件类型(例如 "js"、"py"、"rust")
       */
      type?: string;
      /**
       * 输出模式:"content"、"files_with_matches" 或 "count"
       */
      output_mode?: 'content' | 'files_with_matches' | 'count';
      /**
       * 不区分大小写搜索
       */
      '-i'?: boolean;
      /**
       * 显示行号(用于 content 模式)
       */
      '-n'?: boolean;
      /**
       * 每个匹配项之前显示的行数
       */
      '-B'?: number;
      /**
       * 每个匹配项之后显示的行数
       */
      '-A'?: number;
      /**
       * 每个匹配项前后显示的行数
       */
      '-C'?: number;
      /**
       * 将输出限制为前 N 行/条目
       */
      head_limit?: number;
      /**
       * 启用多行模式
       */
      multiline?: boolean;
    }

    基于 ripgrep 构建的强大搜索工具,支持正则表达式。

    KillBash

    工具名称: KillBash

    interface KillShellInput {
      /**
       * 要终止的后台 shell 的 ID
       */
      shell_id: string;
    }

    通过 ID 终止正在运行的后台 bash shell。

    NotebookEdit

    工具名称: NotebookEdit

    interface NotebookEditInput {
      /**
       * Jupyter notebook 文件的绝对路径
       */
      notebook_path: string;
      /**
       * 要编辑的单元格的 ID
       */
      cell_id?: string;
      /**
       * 单元格的新内容
       */
      new_source: string;
      /**
       * 单元格的类型(code 或 markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * 编辑类型(replace、insert、delete)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    编辑 Jupyter notebook 文件中的单元格。

    WebFetch

    工具名称: WebFetch

    interface WebFetchInput {
      /**
       * 要获取内容的 URL
       */
      url: string;
      /**
       * 对获取的内容运行的提示
       */
      prompt: string;
    }

    从 URL 获取内容并使用 AI 模型进行处理。

    WebSearch

    工具名称: WebSearch

    interface WebSearchInput {
      /**
       * 要使用的搜索查询
       */
      query: string;
      /**
       * 仅包含来自这些域名的结果
       */
      allowed_domains?: string[];
      /**
       * 永远不包含来自这些域名的结果
       */
      blocked_domains?: string[];
    }

    搜索网络并返回格式化的结果。

    TodoWrite

    工具名称: TodoWrite

    interface TodoWriteInput {
      /**
       * 更新后的待办事项列表
       */
      todos: Array<{
        /**
         * 任务描述
         */
        content: string;
        /**
         * 任务状态
         */
        status: 'pending' | 'in_progress' | 'completed';
        /**
         * 任务描述的主动形式
         */
        activeForm: string;
      }>;
    }

    创建和管理结构化任务列表以跟踪进度。

    ExitPlanMode

    工具名称: ExitPlanMode

    interface ExitPlanModeInput {
      /**
       * 供用户审批的计划
       */
      plan: string;
    }

    退出规划模式并提示用户审批计划。

    ListMcpResources

    工具名称: ListMcpResources

    interface ListMcpResourcesInput {
      /**
       * 可选的服务器名称用于过滤资源
       */
      server?: string;
    }

    列出已连接服务器的可用 MCP 资源。

    ReadMcpResource

    工具名称: ReadMcpResource

    interface ReadMcpResourceInput {
      /**
       * MCP 服务器名称
       */
      server: string;
      /**
       * 要读取的资源 URI
       */
      uri: string;
    }

    从服务器读取特定的 MCP 资源。

    工具输出类型

    所有内置 Claude Code 工具的输出 schema 文档。这些类型表示每个工具返回的实际响应数据。

    ToolOutput

    注意: 这是一个仅用于文档说明的类型。它表示所有工具输出类型的联合。

    type ToolOutput =
      | TaskOutput
      | AskUserQuestionOutput
      | BashOutput
      | BashOutputToolOutput
      | EditOutput
      | ReadOutput
      | WriteOutput
      | GlobOutput
      | GrepOutput
      | KillBashOutput
      | NotebookEditOutput
      | WebFetchOutput
      | WebSearchOutput
      | TodoWriteOutput
      | ExitPlanModeOutput
      | ListMcpResourcesOutput
      | ReadMcpResourceOutput;

    Task

    工具名称: Task

    interface TaskOutput {
      /**
       * 子代理的最终结果消息
       */
      result: string;
      /**
       * Token 使用统计
       */
      usage?: {
        input_tokens: number;
        output_tokens: number;
        cache_creation_input_tokens?: number;
        cache_read_input_tokens?: number;
      };
      /**
       * 总费用(美元)
       */
      total_cost_usd?: number;
      /**
       * 执行时长(毫秒)
       */
      duration_ms?: number;
    }

    返回子代理完成委托任务后的最终结果。

    AskUserQuestion

    工具名称: AskUserQuestion

    interface AskUserQuestionOutput {
      /**
       * 提出的问题
       */
      questions: Array<{
        question: string;
        header: string;
        options: Array<{
          label: string;
          description: string;
        }>;
        multiSelect: boolean;
      }>;
      /**
       * 用户提供的答案。
       * 将问题文本映射到答案字符串。
       * 多选答案以逗号分隔。
       */
      answers: Record<string, string>;
    }

    返回提出的问题和用户的答案。

    Bash

    工具名称: Bash

    interface BashOutput {
      /**
       * 合并的 stdout 和 stderr 输出
       */
      output: string;
      /**
       * 命令的退出码
       */
      exitCode: number;
      /**
       * 命令是否因超时被终止
       */
      killed?: boolean;
      /**
       * 后台进程的 Shell ID
       */
      shellId?: string;
    }

    返回带有退出状态的命令输出。后台命令会立即返回一个 shellId。

    BashOutput

    工具名称: BashOutput

    interface BashOutputToolOutput {
      /**
       * 自上次检查以来的新输出
       */
      output: string;
      /**
       * 当前 shell 状态
       */
      status: 'running' | 'completed' | 'failed';
      /**
       * 退出码(完成时)
       */
      exitCode?: number;
    }

    返回后台 shell 的增量输出。

    Edit

    工具名称: Edit

    interface EditOutput {
      /**
       * 确认消息
       */
      message: string;
      /**
       * 执行的替换次数
       */
      replacements: number;
      /**
       * 被编辑的文件路径
       */
      file_path: string;
    }

    返回成功编辑的确认信息及替换次数。

    Read

    工具名称: Read

    type ReadOutput = 
      | TextFileOutput
      | ImageFileOutput
      | PDFFileOutput
      | NotebookFileOutput;
    
    interface TextFileOutput {
      /**
       * 带行号的文件内容
       */
      content: string;
      /**
       * 文件中的总行数
       */
      total_lines: number;
      /**
       * 实际返回的行数
       */
      lines_returned: number;
    }
    
    interface ImageFileOutput {
      /**
       * Base64 编码的图像数据
       */
      image: string;
      /**
       * 图像 MIME 类型
       */
      mime_type: string;
      /**
       * 文件大小(字节)
       */
      file_size: number;
    }
    
    interface PDFFileOutput {
      /**
       * 页面内容数组
       */
      pages: Array<{
        page_number: number;
        text?: string;
        images?: Array<{
          image: string;
          mime_type: string;
        }>;
      }>;
      /**
       * 总页数
       */
      total_pages: number;
    }
    
    interface NotebookFileOutput {
      /**
       * Jupyter notebook 单元格
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * Notebook 元数据
       */
      metadata?: Record<string, any>;
    }

    以适合文件类型的格式返回文件内容。

    Write

    工具名称: Write

    interface WriteOutput {
      /**
       * 成功消息
       */
      message: string;
      /**
       * 写入的字节数
       */
      bytes_written: number;
      /**
       * 写入的文件路径
       */
      file_path: string;
    }

    成功写入文件后返回确认信息。

    Glob

    工具名称: Glob

    interface GlobOutput {
      /**
       * 匹配的文件路径数组
       */
      matches: string[];
      /**
       * 找到的匹配数量
       */
      count: number;
      /**
       * 使用的搜索目录
       */
      search_path: string;
    }

    返回与 glob 模式匹配的文件路径,按修改时间排序。

    Grep

    工具名称: Grep

    type GrepOutput = 
      | GrepContentOutput
      | GrepFilesOutput
      | GrepCountOutput;
    
    interface GrepContentOutput {
      /**
       * 带上下文的匹配行
       */
      matches: Array<{
        file: string;
        line_number?: number;
        line: string;
        before_context?: string[];
        after_context?: string[];
      }>;
      /**
       * 匹配总数
       */
      total_matches: number;
    }
    
    interface GrepFilesOutput {
      /**
       * 包含匹配的文件
       */
      files: string[];
      /**
       * 包含匹配的文件数量
       */
      count: number;
    }
    
    interface GrepCountOutput {
      /**
       * 每个文件的匹配计数
       */
      counts: Array<{
        file: string;
        count: number;
      }>;
      /**
       * 所有文件的匹配总数
       */
      total: number;
    }

    以 output_mode 指定的格式返回搜索结果。

    KillBash

    工具名称: KillBash

    interface KillBashOutput {
      /**
       * 成功消息
       */
      message: string;
      /**
       * 被终止的 shell 的 ID
       */
      shell_id: string;
    }

    终止后台 shell 后返回确认信息。

    NotebookEdit

    工具名称: NotebookEdit

    interface NotebookEditOutput {
      /**
       * 成功消息
       */
      message: string;
      /**
       * 执行的编辑类型
       */
      edit_type: 'replaced' | 'inserted' | 'deleted';
      /**
       * 受影响的单元格 ID
       */
      cell_id?: string;
      /**
       * 编辑后 notebook 中的总单元格数
       */
      total_cells: number;
    }

    修改 Jupyter notebook 后返回确认信息。

    WebFetch

    工具名称: WebFetch

    interface WebFetchOutput {
      /**
       * AI 模型对提示的响应
       */
      response: string;
      /**
       * 获取的 URL
       */
      url: string;
      /**
       * 重定向后的最终 URL
       */
      final_url?: string;
      /**
       * HTTP 状态码
       */
      status_code?: number;
    }

    返回 AI 对获取的网页内容的分析。

    WebSearch

    工具名称: WebSearch

    interface WebSearchOutput {
      /**
       * 搜索结果
       */
      results: Array<{
        title: string;
        url: string;
        snippet: string;
        /**
         * 可用的附加元数据
         */
        metadata?: Record<string, any>;
      }>;
      /**
       * 结果总数
       */
      total_results: number;
      /**
       * 搜索的查询
       */
      query: string;
    }

    返回来自网络的格式化搜索结果。

    TodoWrite

    工具名称: TodoWrite

    interface TodoWriteOutput {
      /**
       * 成功消息
       */
      message: string;
      /**
       * 当前待办事项统计
       */
      stats: {
        total: number;
        pending: number;
        in_progress: number;
        completed: number;
      };
    }

    返回确认信息及当前任务统计。

    ExitPlanMode

    工具名称: ExitPlanMode

    interface ExitPlanModeOutput {
      /**
       * 确认消息
       */
      message: string;
      /**
       * 用户是否批准了计划
       */
      approved?: boolean;
    }

    退出计划模式后返回确认信息。

    ListMcpResources

    工具名称: ListMcpResources

    interface ListMcpResourcesOutput {
      /**
       * 可用资源
       */
      resources: Array<{
        uri: string;
        name: string;
        description?: string;
        mimeType?: string;
        server: string;
      }>;
      /**
       * 资源总数
       */
      total: number;
    }

    返回可用 MCP 资源列表。

    ReadMcpResource

    工具名称: ReadMcpResource

    interface ReadMcpResourceOutput {
      /**
       * 资源内容
       */
      contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
      }>;
      /**
       * 提供资源的服务器
       */
      server: string;
    }

    返回请求的 MCP 资源的内容。

    权限类型

    PermissionUpdate

    更新权限的操作。

    type PermissionUpdate = 
      | {
          type: 'addRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'replaceRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeRules';
          rules: PermissionRuleValue[];
          behavior: PermissionBehavior;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'setMode';
          mode: PermissionMode;
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'addDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }
      | {
          type: 'removeDirectories';
          directories: string[];
          destination: PermissionUpdateDestination;
        }

    PermissionBehavior

    type PermissionBehavior = 'allow' | 'deny' | 'ask';

    PermissionUpdateDestination

    type PermissionUpdateDestination = 
      | 'userSettings'     // 全局用户设置
      | 'projectSettings'  // 按目录的项目设置
      | 'localSettings'    // 被 gitignore 的本地设置
      | 'session'          // 仅当前会话

    PermissionRuleValue

    type PermissionRuleValue = {
      toolName: string;
      ruleContent?: string;
    }

    其他类型

    ApiKeySource

    type ApiKeySource = 'user' | 'project' | 'org' | 'temporary';

    SdkBeta

    可通过 betas 选项启用的可用 Beta 功能。有关更多信息,请参阅 Beta 头部。

    type SdkBeta = 'context-1m-2025-08-07';
    值描述兼容模型
    'context-1m-2025-08-07'启用 100 万 token 上下文窗口Claude Opus 4.6、Claude Sonnet 4.5、Claude Sonnet 4

    SlashCommand

    关于可用斜杠命令的信息。

    type SlashCommand = {
      name: string;
      description: string;
      argumentHint: string;
    }

    ModelInfo

    关于可用模型的信息。

    type ModelInfo = {
      value: string;
      displayName: string;
      description: string;
    }

    McpServerStatus

    已连接 MCP 服务器的状态。

    type McpServerStatus = {
      name: string;
      status: 'connected' | 'failed' | 'needs-auth' | 'pending';
      serverInfo?: {
        name: string;
        version: string;
      };
    }

    AccountInfo

    已认证用户的账户信息。

    type AccountInfo = {
      email?: string;
      organization?: string;
      subscriptionType?: string;
      tokenSource?: string;
      apiKeySource?: string;
    }

    ModelUsage

    在结果消息中返回的每个模型的使用统计。

    type ModelUsage = {
      inputTokens: number;
      outputTokens: number;
      cacheReadInputTokens: number;
      cacheCreationInputTokens: number;
      webSearchRequests: number;
      costUSD: number;
      contextWindow: number;
    }

    ConfigScope

    type ConfigScope = 'local' | 'user' | 'project';

    NonNullableUsage

    Usage 的一个版本,所有可空字段都变为非空。

    type NonNullableUsage = {
      [K in keyof Usage]: NonNullable<Usage[K]>;
    }

    Usage

    Token 使用统计(来自 @anthropic-ai/sdk)。

    type Usage = {
      input_tokens: number | null;
      output_tokens: number | null;
      cache_creation_input_tokens?: number | null;
      cache_read_input_tokens?: number | null;
    }

    CallToolResult

    MCP 工具结果类型(来自 @modelcontextprotocol/sdk/types.js)。

    type CallToolResult = {
      content: Array<{
        type: 'text' | 'image' | 'resource';
        // 其他字段因类型而异
      }>;
      isError?: boolean;
    }

    AbortError

    用于中止操作的自定义错误类。

    class AbortError extends Error {}

    沙箱配置

    SandboxSettings

    沙箱行为的配置。使用此选项以编程方式启用命令沙箱并配置网络限制。

    type SandboxSettings = {
      enabled?: boolean;
      autoAllowBashIfSandboxed?: boolean;
      excludedCommands?: string[];
      allowUnsandboxedCommands?: boolean;
      network?: NetworkSandboxSettings;
      ignoreViolations?: SandboxIgnoreViolations;
      enableWeakerNestedSandbox?: boolean;
    }
    属性类型默认值描述
    enabledbooleanfalse为命令执行启用沙箱模式
    autoAllowBashIfSandboxedbooleanfalse启用沙箱时自动批准 bash 命令
    excludedCommandsstring[][]始终绕过沙箱限制的命令(例如 ['docker'])。这些命令自动在沙箱外运行,无需模型参与

    文件系统和网络访问限制不通过沙箱设置配置。相反,它们源自权限规则:

    • 文件系统读取限制:读取拒绝规则
    • 文件系统写入限制:编辑允许/拒绝规则
    • 网络限制:WebFetch 允许/拒绝规则

    使用沙箱设置进行命令执行沙箱化,使用权限规则进行文件系统和网络访问控制。

    使用示例

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    const result = await query({
      prompt: "Build and test my project",
      options: {
        sandbox: {
          enabled: true,
          autoAllowBashIfSandboxed: true,
          network: {
            allowLocalBinding: true
          }
        }
      }
    });

    Unix 套接字安全:allowUnixSockets 选项可以授予对强大系统服务的访问权限。例如,允许 /var/run/docker.sock 实际上通过 Docker API 授予了完整的主机系统访问权限,绕过了沙箱隔离。仅允许严格必要的 Unix 套接字,并了解每个套接字的安全影响。

    NetworkSandboxSettings

    沙箱模式的网络特定配置。

    type NetworkSandboxSettings = {
      allowLocalBinding?: boolean;
      allowUnixSockets?: string[];
      allowAllUnixSockets?: boolean;
      httpProxyPort?: number;
      socksProxyPort?: number;
    }
    属性类型默认值描述
    allowLocalBindingbooleanfalse允许进程绑定到本地端口(例如用于开发服务器)
    allowUnixSocketsstring[][]进程可以访问的 Unix 套接字路径(例如 Docker 套接字)
    allowAllUnixSocketsbooleanfalse允许访问所有 Unix 套接字
    httpProxyPort

    SandboxIgnoreViolations

    忽略特定沙箱违规的配置。

    type SandboxIgnoreViolations = {
      file?: string[];
      network?: string[];
    }
    属性类型默认值描述
    filestring[][]要忽略违规的文件路径模式
    networkstring[][]要忽略违规的网络模式

    非沙箱命令的权限回退

    当启用 allowUnsandboxedCommands 时,模型可以通过在工具输入中设置 dangerouslyDisableSandbox: true 来请求在沙箱外运行命令。这些请求会回退到现有的权限系统,这意味着您的 canUseTool 处理程序将被调用,允许您实现自定义授权逻辑。

    excludedCommands 与 allowUnsandboxedCommands:

    • excludedCommands:始终自动绕过沙箱的静态命令列表(例如 ['docker'])。模型对此没有控制权。
    • allowUnsandboxedCommands:让模型在运行时通过在工具输入中设置 dangerouslyDisableSandbox: true 来决定是否请求非沙箱执行。
    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    const result = await query({
      prompt: "Deploy my application",
      options: {
        sandbox: {
          enabled: true,
          allowUnsandboxedCommands: true  // 模型可以请求非沙箱执行
        },
        permissionMode: "default",
        canUseTool: async (tool, input) => {
          // 检查模型是否请求绕过沙箱
          if (tool === "Bash" && input.dangerouslyDisableSandbox) {
            // 模型想要在沙箱外运行此命令
            console.log(`Unsandboxed command requested: ${input.command}`);
    
            // 返回 true 允许,false 拒绝
            return isCommandAuthorized(input.command);
          }
          return true;
        }
      }
    });

    此模式使您能够:

    • 审计模型请求:记录模型何时请求非沙箱执行
    • 实现允许列表:仅允许特定命令在非沙箱环境中运行
    • 添加审批工作流:要求对特权操作进行明确授权

    使用 dangerouslyDisableSandbox: true 运行的命令具有完整的系统访问权限。确保您的 canUseTool 处理程序仔细验证这些请求。

    如果 permissionMode 设置为 bypassPermissions 且 allowUnsandboxedCommands 已启用,模型可以在没有任何审批提示的情况下自主在沙箱外执行命令。这种组合实际上允许模型静默地逃脱沙箱隔离。

    另请参阅

    • SDK 概述 - 通用 SDK 概念
    • Python SDK 参考 - Python SDK 文档
    • CLI 参考 - 命令行界面
    • 常见工作流 - 分步指南
    allowDangerouslySkipPermissions
    boolean
    false
    启用绕过权限。使用 permissionMode: 'bypassPermissions' 时必须设置
    allowedToolsstring[]所有工具允许的工具名称列表
    betasSdkBeta[][]启用测试版功能(例如 ['context-1m-2025-08-07'])
    canUseToolCanUseToolundefined工具使用的自定义权限函数
    continuebooleanfalse继续最近的对话
    cwdstringprocess.cwd()当前工作目录
    disallowedToolsstring[][]禁止的工具名称列表
    enableFileCheckpointingbooleanfalse启用文件变更跟踪以支持回退。参见文件检查点
    envDict<string>process.env环境变量
    executable'bun' | 'deno' | 'node'自动检测要使用的 JavaScript 运行时
    executableArgsstring[][]传递给可执行文件的参数
    extraArgsRecord<string, string | null>{}额外参数
    fallbackModelstringundefined主模型失败时使用的备用模型
    forkSessionbooleanfalse使用 resume 恢复时,分叉到新的会话 ID 而不是继续原始会话
    hooksPartial<Record<HookEvent, HookCallbackMatcher[]>>{}事件的钩子回调
    includePartialMessagesbooleanfalse包含部分消息事件
    maxBudgetUsdnumberundefined查询的最大预算(美元)
    maxThinkingTokensnumberundefined思考过程的最大 token 数
    maxTurnsnumberundefined最大对话轮次
    mcpServersRecord<string, [McpServerConfig](#mcpserverconfig)>{}MCP 服务器配置
    modelstringCLI 默认值要使用的 Claude 模型
    outputFormat{ type: 'json_schema', schema: JSONSchema }undefined定义代理结果的输出格式。详见结构化输出
    pathToClaudeCodeExecutablestring使用内置可执行文件Claude Code 可执行文件的路径
    permissionModePermissionMode'default'会话的权限模式
    permissionPromptToolNamestringundefined用于权限提示的 MCP 工具名称
    pluginsSdkPluginConfig[][]从本地路径加载自定义插件。详见插件
    resumestringundefined要恢复的会话 ID
    resumeSessionAtstringundefined在特定消息 UUID 处恢复会话
    sandboxSandboxSettingsundefined以编程方式配置沙箱行为。详见沙箱设置
    settingSourcesSettingSource[][](无设置)控制从哪些文件系统设置加载。省略时不加载任何设置。注意: 必须包含 'project' 才能加载 CLAUDE.md 文件
    stderr(data: string) => voidundefinedstderr 输出的回调
    strictMcpConfigbooleanfalse强制严格的 MCP 验证
    systemPromptstring | { type: 'preset'; preset: 'claude_code'; append?: string }undefined(最小提示)系统提示配置。传入字符串作为自定义提示,或传入 { type: 'preset', preset: 'claude_code' } 以使用 Claude Code 的系统提示。使用预设对象形式时,添加 append 可以用额外指令扩展系统提示
    toolsstring[] | { type: 'preset'; preset: 'claude_code' }undefined工具配置。传入工具名称数组或使用预设获取 Claude Code 的默认工具
    mcpServerStatus()
    返回已连接 MCP 服务器的状态
    accountInfo()返回账户信息
    allowUnsandboxedCommands
    boolean
    false
    允许模型请求在沙箱外运行命令。当为 true 时,模型可以在工具输入中设置 dangerouslyDisableSandbox,这将回退到权限系统
    networkNetworkSandboxSettingsundefined网络特定的沙箱配置
    ignoreViolationsSandboxIgnoreViolationsundefined配置要忽略的沙箱违规
    enableWeakerNestedSandboxbooleanfalse启用较弱的嵌套沙箱以提高兼容性
    number
    undefined
    用于网络请求的 HTTP 代理端口
    socksProxyPortnumberundefined用于网络请求的 SOCKS 代理端口