Loading...
    • 开发者指南
    • API 参考
    • MCP
    • 资源
    • 发布说明
    Search...
    ⌘K
    快速开始
    Claude 简介快速入门
    模型与定价
    模型概览选择模型Claude 4.5 新功能迁移到 Claude 4.5模型弃用定价
    使用 Claude 构建
    功能概览使用 Messages API上下文窗口提示词最佳实践
    能力
    提示词缓存上下文编辑扩展思考工作量流式消息批量处理引用多语言支持Token 计数嵌入视觉PDF 支持Files API搜索结果结构化输出
    工具
    概览如何实现工具使用细粒度工具流式传输Bash 工具代码执行工具程序化工具调用计算机使用工具文本编辑器工具Web 获取工具Web 搜索工具内存工具工具搜索工具
    Agent Skills
    概览快速入门最佳实践在 API 中使用 Skills
    Agent SDK
    概览快速入门TypeScript SDKTypeScript V2(预览版)Python SDK迁移指南
    API 中的 MCP
    MCP 连接器远程 MCP 服务器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示词工程
    概览提示词生成器使用提示词模板提示词改进器清晰直接使用示例(多轮提示)让 Claude 思考(CoT)使用 XML 标签给 Claude 一个角色(系统提示词)预填充 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 参考,包括所有函数、类型和接口。
    • 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
    • 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() 模式,使多轮对话更加容易。了解更多

    安装

    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()

    为与 SDK MCP 服务器一起使用而创建类型安全的 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 架构
    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()更改最大思考令牌数(仅在流式输入模式下可用)
    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 被省略或未定义时,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 工具的输入架构文档。这些类型从 @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>;
    }

    在执行期间向用户提出澄清问题。参见 处理 AskUserQuestion 工具 了解使用详情。

    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 笔记本。

    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;
      /**
       * 显示行号(用于内容模式)
       */
      '-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_path: string;
      /**
       * 要编辑的单元格的 ID
       */
      cell_id?: string;
      /**
       * 单元格的新源代码
       */
      new_source: string;
      /**
       * 单元格的类型(代码或 markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * 编辑类型(替换、插入、删除)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    编辑 Jupyter 笔记本文件中的单元格。

    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 工具的输出架构文档。这些类型表示每个工具返回的实际响应数据。

    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;
      /**
       * 令牌使用统计
       */
      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

    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 笔记本单元格
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * 笔记本元数据
       */
      metadata?: Record<string, any>;
    }

    根据文件类型以适当的格式返回文件内容。

    写入

    工具名称: 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;
      /**
       * 编辑后笔记本中的总单元格数
       */
      total_cells: number;
    }

    修改 Jupyter 笔记本后返回确认。

    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'    // Gitignored 本地设置
      | 'session'          // 仅当前会话

    PermissionRuleValue

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

    其他类型

    ApiKeySource

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

    SdkBeta

    可通过 betas 选项启用的可用测试版功能。有关更多信息,请参阅测试版标头。

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

    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

    令牌使用统计(来自 @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'])。这些命令自动在沙箱外运行,无需模型参与
    allowUnsandboxedCommands

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

    • 文件系统读取限制:读取拒绝规则
    • 文件系统写入限制:编辑允许/拒绝规则
    • 网络限制: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,
          excludedCommands: ["docker"],
          network: {
            allowLocalBinding: true,
            allowUnixSockets: ["/var/run/docker.sock"]
          }
        }
      }
    });

    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 vs 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 处理程序仔细验证这些请求。

    另请参阅

    • 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思考过程的最大令牌数
    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()返回账户信息
    boolean
    false
    允许模型请求在沙箱外运行命令。当为 true 时,模型可以在工具输入中设置 dangerouslyDisableSandbox,这会回退到权限系统
    networkNetworkSandboxSettingsundefined网络特定的沙箱配置
    ignoreViolationsSandboxIgnoreViolationsundefined配置要忽略的沙箱违规
    enableWeakerNestedSandboxbooleanfalse启用较弱的嵌套沙箱以实现兼容性
    number
    undefined
    网络请求的 HTTP 代理端口
    socksProxyPortnumberundefined网络请求的 SOCKS 代理端口