Loading...
    • Guía para desarrolladores
    • Referencia de API
    • MCP
    • Recursos
    • Notas de la versión
    Search...
    ⌘K
    Primeros pasos
    Introducción a ClaudeInicio rápido
    Modelos y precios
    Descripción general de modelosElegir un modeloNovedades en Claude 4.5Migración a Claude 4.5Deprecación de modelosPrecios
    Construir con Claude
    Descripción general de característicasUsar la API de MessagesVentanas de contextoMejores prácticas de prompting
    Capacidades
    Almacenamiento en caché de promptsEdición de contextoPensamiento extendidoEsfuerzoStreaming de MessagesProcesamiento por lotesCitasSoporte multilingüeConteo de tokensEmbeddingsVisiónSoporte de PDFAPI de FilesResultados de búsquedaSalidas estructuradasComplemento de Google Sheets
    Herramientas
    Descripción generalCómo implementar el uso de herramientasUso eficiente de herramientas en tokensStreaming de herramientas de grano finoHerramienta BashHerramienta de ejecución de códigoLlamada de herramientas programáticaHerramienta de uso de computadoraHerramienta de editor de textoHerramienta de búsqueda webHerramienta de búsqueda webHerramienta de memoriaHerramienta de búsqueda de herramientas
    Habilidades del agente
    Descripción generalInicio rápidoMejores prácticasUsar habilidades con la API
    SDK del agente
    Descripción generalSDK de TypeScriptSDK de PythonGuía de migración
    Guías
    Entrada de streamingManejo de permisosGestión de sesionesSalidas estructuradas en el SDKAlojamiento del SDK del agenteModificar prompts del sistemaMCP en el SDKHerramientas personalizadasSuagentes en el SDKComandos de barra en el SDKHabilidades del agente en el SDKSeguimiento de costos y usoListas de tareasComplementos en el SDK
    MCP en la API
    Conector MCPServidores MCP remotos
    Claude en plataformas de terceros
    Amazon BedrockMicrosoft FoundryVertex AI
    Ingeniería de prompts
    Descripción generalGenerador de promptsUsar plantillas de promptsMejorador de promptsSé claro y directoUsar ejemplos (prompting multishot)Dejar pensar a Claude (CoT)Usar etiquetas XMLDale un rol a Claude (prompts del sistema)Rellenar la respuesta de ClaudeEncadenar prompts complejosConsejos de contexto largoConsejos de pensamiento extendido
    Probar y evaluar
    Definir criterios de éxitoDesarrollar casos de pruebaUsar la herramienta de evaluaciónReducir latencia
    Fortalecer protecciones
    Reducir alucinacionesAumentar consistencia de salidaMitigar ataques de jailbreakRechazos de streamingReducir fuga de promptsMantener a Claude en personaje
    Administración y monitoreo
    Descripción general de Admin APIAPI de uso y costosAPI de análisis de Claude Code
    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
    SDK del agente

    Referencia del SDK de Agent - TypeScript

    Referencia completa de la API del SDK de Agent de TypeScript, incluyendo todas las funciones, tipos e interfaces.

    Instalación

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

    Funciones

    query()

    La función principal para interactuar con Claude Code. Crea un generador asincrónico que transmite mensajes a medida que llegan.

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

    Parámetros

    ParámetroTipoDescripción
    promptstring | AsyncIterable<SDKUserMessage>El mensaje de entrada como una cadena o iterable asincrónico para modo de transmisión
    optionsOptionsObjeto de configuración opcional (ver tipo Options a continuación)

    Retorna

    Retorna un objeto Query que extiende AsyncGenerator<SDKMessage, void> con métodos adicionales.

    tool()

    Crea una definición de herramienta MCP segura en tipos para usar con servidores MCP del SDK.

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

    Parámetros

    ParámetroTipoDescripción
    namestringEl nombre de la herramienta
    descriptionstringUna descripción de lo que hace la herramienta
    inputSchemaSchema extends ZodRawShapeEsquema Zod que define los parámetros de entrada de la herramienta
    handler(args, extra) => Promise<CallToolResult>Función asincrónica que ejecuta la lógica de la herramienta

    createSdkMcpServer()

    Crea una instancia de servidor MCP que se ejecuta en el mismo proceso que tu aplicación.

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

    Parámetros

    ParámetroTipoDescripción
    options.namestringEl nombre del servidor MCP
    options.versionstringCadena de versión opcional
    options.toolsArray<SdkMcpToolDefinition>Array de definiciones de herramientas creadas con tool()

    Tipos

    Options

    Objeto de configuración para la función query().

    PropiedadTipoPredeterminadoDescripción
    abortControllerAbortControllernew AbortController()Controlador para cancelar operaciones
    additionalDirectoriesstring[][]Directorios adicionales a los que Claude puede acceder
    agentsRecord<string, [AgentDefinition](#agentdefinition)>undefinedDefinir suagentes programáticamente
    allowedToolsstring[]Todas las herramientasLista de nombres de herramientas permitidas
    canUseToolCanUseToolundefinedFunción de permiso personalizada para el uso de herramientas
    continuebooleanfalseContinuar la conversación más reciente
    cwdstringprocess.cwd()Directorio de trabajo actual
    disallowedToolsstring[][]Lista de nombres de herramientas no permitidas
    envDict<string>process.envVariables de entorno
    executable'bun' | 'deno' | 'node'Detectado automáticamenteTiempo de ejecución de JavaScript a usar
    executableArgsstring[][]Argumentos a pasar al ejecutable
    extraArgsRecord<string, string | null>{}Argumentos adicionales
    fallbackModelstringundefinedModelo a usar si el principal falla
    forkSessionbooleanfalseAl reanudar con resume, bifurcar a un nuevo ID de sesión en lugar de continuar la sesión original
    hooksPartial<Record<HookEvent, HookCallbackMatcher[]>>{}Devoluciones de llamada de hooks para eventos
    includePartialMessagesbooleanfalseIncluir eventos de mensajes parciales
    maxThinkingTokensnumberundefinedTokens máximos para el proceso de pensamiento
    maxTurnsnumberundefinedTurnos de conversación máximos
    mcpServersRecord<string, [McpServerConfig](#mcpserverconfig)>{}Configuraciones de servidor MCP
    modelstringPredeterminado de CLIModelo Claude a usar
    outputFormat{ type: 'json_schema', schema: JSONSchema }undefinedDefinir formato de salida para resultados del agente. Ver Salidas estructuradas para detalles
    pathToClaudeCodeExecutablestringUsa ejecutable integradoRuta al ejecutable de Claude Code
    permissionModePermissionMode'default'Modo de permiso para la sesión
    permissionPromptToolNamestringundefinedNombre de herramienta MCP para mensajes de permiso
    pluginsSdkPluginConfig[][]Cargar plugins personalizados desde rutas locales. Ver Plugins para detalles
    resumestringundefinedID de sesión a reanudar
    settingSourcesSettingSource[][] (sin configuración)Controlar qué configuración del sistema de archivos cargar. Cuando se omite, no se carga ninguna configuración. Nota: Debe incluir 'project' para cargar archivos CLAUDE.md
    stderr(data: string) => voidundefinedDevolución de llamada para salida de stderr
    strictMcpConfigbooleanfalseAplicar validación MCP estricta
    systemPromptstring | { type: 'preset'; preset: 'claude_code'; append?: string }undefined (mensaje vacío)Configuración de mensaje del sistema. Pasar una cadena para mensaje personalizado, u { type: 'preset', preset: 'claude_code' } para usar el mensaje del sistema de Claude Code. Al usar la forma de objeto preestablecido, agregar append para extender el mensaje del sistema con instrucciones adicionales

    Query

    Interfaz retornada por la función query().

    interface Query extends AsyncGenerator<SDKMessage, void> {
      interrupt(): Promise<void>;
      setPermissionMode(mode: PermissionMode): Promise<void>;
    }

    Métodos

    MétodoDescripción
    interrupt()Interrumpe la consulta (solo disponible en modo de entrada de transmisión)
    setPermissionMode()Cambia el modo de permiso (solo disponible en modo de entrada de transmisión)

    AgentDefinition

    Configuración para un suagente definido programáticamente.

    type AgentDefinition = {
      description: string;
      tools?: string[];
      prompt: string;
      model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
    }
    CampoRequeridoDescripción
    descriptionSíDescripción en lenguaje natural de cuándo usar este agente
    toolsNoArray de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas
    promptSíEl mensaje del sistema del agente
    modelNoAnulación de modelo para este agente. Si se omite, usa el modelo principal

    SettingSource

    Controla qué fuentes de configuración basadas en el sistema de archivos carga el SDK.

    type SettingSource = 'user' | 'project' | 'local';
    ValorDescripciónUbicación
    'user'Configuración global del usuario~/.claude/settings.json
    'project'Configuración compartida del proyecto (controlada por versión).claude/settings.json
    'local'Configuración local del proyecto (ignorada por git).claude/settings.local.json

    Comportamiento predeterminado

    Cuando settingSources es omitido o indefinido, el SDK no carga ninguna configuración del sistema de archivos. Esto proporciona aislamiento para aplicaciones SDK.

    ¿Por qué usar settingSources?

    Cargar toda la configuración del sistema de archivos (comportamiento heredado):

    // Cargar toda la configuración como lo hacía SDK v0.0.x
    const result = query({
      prompt: "Analiza este código",
      options: {
        settingSources: ['user', 'project', 'local']  // Cargar toda la configuración
      }
    });

    Cargar solo fuentes de configuración específicas:

    // Cargar solo configuración del proyecto, ignorar usuario y local
    const result = query({
      prompt: "Ejecutar verificaciones de CI",
      options: {
        settingSources: ['project']  // Solo .claude/settings.json
      }
    });

    Entornos de prueba y CI:

    // Asegurar comportamiento consistente en CI excluyendo configuración local
    const result = query({
      prompt: "Ejecutar pruebas",
      options: {
        settingSources: ['project'],  // Solo configuración compartida del equipo
        permissionMode: 'bypassPermissions'
      }
    });

    Aplicaciones solo SDK:

    // Definir todo programáticamente (comportamiento predeterminado)
    // Sin dependencias del sistema de archivos - settingSources predeterminado a []
    const result = query({
      prompt: "Revisar este PR",
      options: {
        // settingSources: [] es el predeterminado, no es necesario especificar
        agents: { /* ... */ },
        mcpServers: { /* ... */ },
        allowedTools: ['Read', 'Grep', 'Glob']
      }
    });

    Cargando instrucciones del proyecto CLAUDE.md:

    // Cargar configuración del proyecto para incluir archivos CLAUDE.md
    const result = query({
      prompt: "Agregar una nueva característica siguiendo convenciones del proyecto",
      options: {
        systemPrompt: {
          type: 'preset',
          preset: 'claude_code'  // Requerido para usar CLAUDE.md
        },
        settingSources: ['project'],  // Carga CLAUDE.md del directorio del proyecto
        allowedTools: ['Read', 'Write', 'Edit']
      }
    });

    Precedencia de configuración

    Cuando se cargan múltiples fuentes, la configuración se fusiona con esta precedencia (mayor a menor):

    1. Configuración local (.claude/settings.local.json)
    2. Configuración del proyecto (.claude/settings.json)
    3. Configuración del usuario (~/.claude/settings.json)

    Las opciones programáticas (como agents, allowedTools) siempre anulan la configuración del sistema de archivos.

    PermissionMode

    type PermissionMode =
      | 'default'           // Comportamiento de permiso estándar
      | 'acceptEdits'       // Aceptar automáticamente ediciones de archivos
      | 'bypassPermissions' // Omitir todas las verificaciones de permiso
      | 'plan'              // Modo de planificación - sin ejecución

    CanUseTool

    Tipo de función de permiso personalizada para controlar el uso de herramientas.

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

    PermissionResult

    Resultado de una verificación de permiso.

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

    McpServerConfig

    Configuración para servidores 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

    Configuración para cargar plugins en el SDK.

    type SdkPluginConfig = {
      type: 'local';
      path: string;
    }
    CampoTipoDescripción
    type'local'Debe ser 'local' (actualmente solo se soportan plugins locales)
    pathstringRuta absoluta o relativa al directorio del plugin

    Ejemplo:

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

    Para información completa sobre crear y usar plugins, ver Plugins.

    Tipos de Mensaje

    SDKMessage

    Tipo de unión de todos los mensajes posibles retornados por la consulta.

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

    SDKAssistantMessage

    Mensaje de respuesta del asistente.

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

    SDKUserMessage

    Mensaje de entrada del usuario.

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

    SDKUserMessageReplay

    Mensaje de usuario reproducido con UUID requerido.

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

    SDKResultMessage

    Mensaje de resultado final.

    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;
          permission_denials: SDKPermissionDenial[];
        }
      | {
          type: 'result';
          subtype: 'error_max_turns' | 'error_during_execution';
          uuid: UUID;
          session_id: string;
          duration_ms: number;
          duration_api_ms: number;
          is_error: boolean;
          num_turns: number;
          total_cost_usd: number;
          usage: NonNullableUsage;
          permission_denials: SDKPermissionDenial[];
        }

    SDKSystemMessage

    Mensaje de inicialización del sistema.

    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

    Mensaje parcial de transmisión (solo cuando includePartialMessages es verdadero).

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

    SDKCompactBoundaryMessage

    Mensaje que indica un límite de compactación de conversación.

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

    SDKPermissionDenial

    Información sobre un uso de herramienta denegado.

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

    Tipos de Hook

    HookEvent

    Eventos de hook disponibles.

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

    HookCallback

    Tipo de función de devolución de llamada de hook.

    type HookCallback = (
      input: HookInput, // Unión de todos los tipos de entrada de hook
      toolUseID: string | undefined,
      options: { signal: AbortSignal }
    ) => Promise<HookJSONOutput>;

    HookCallbackMatcher

    Configuración de hook con coincidencia opcional.

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

    HookInput

    Tipo de unión de todos los tipos de entrada de hook.

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

    BaseHookInput

    Interfaz base que todos los tipos de entrada de hook extienden.

    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: ToolInput;
    }

    PostToolUseHookInput

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

    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: 'clear' | 'logout' | 'prompt_input_exit' | 'other';
    }

    StopHookInput

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

    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;
    }

    HookJSONOutput

    Valor de retorno del hook.

    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;
          }
        | {
            hookEventName: 'UserPromptSubmit';
            additionalContext?: string;
          }
        | {
            hookEventName: 'SessionStart';
            additionalContext?: string;
          }
        | {
            hookEventName: 'PostToolUse';
            additionalContext?: string;
          };
    }

    Tipos de Entrada de Herramienta

    Documentación de esquemas de entrada para todas las herramientas integradas de Claude Code. Estos tipos se exportan desde @anthropic-ai/claude-agent-sdk y se pueden usar para interacciones de herramientas seguras en tipos.

    ToolInput

    Nota: Este es un tipo solo para documentación para mayor claridad. Representa la unión de todos los tipos de entrada de herramienta.

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

    Task

    Nombre de herramienta: Task

    interface AgentInput {
      /**
       * Una descripción breve (3-5 palabras) de la tarea
       */
      description: string;
      /**
       * La tarea que el agente debe realizar
       */
      prompt: string;
      /**
       * El tipo de agente especializado a usar para esta tarea
       */
      subagent_type: string;
    }

    Lanza un nuevo agente para manejar tareas complejas y multietapa de forma autónoma.

    Bash

    Nombre de herramienta: Bash

    interface BashInput {
      /**
       * El comando a ejecutar
       */
      command: string;
      /**
       * Tiempo de espera opcional en milisegundos (máximo 600000)
       */
      timeout?: number;
      /**
       * Descripción clara y concisa de lo que hace este comando en 5-10 palabras
       */
      description?: string;
      /**
       * Establecer en verdadero para ejecutar este comando en segundo plano
       */
      run_in_background?: boolean;
    }

    Ejecuta comandos bash en una sesión de shell persistente con tiempo de espera opcional y ejecución en segundo plano.

    BashOutput

    Nombre de herramienta: BashOutput

    interface BashOutputInput {
      /**
       * El ID del shell en segundo plano del que recuperar la salida
       */
      bash_id: string;
      /**
       * Expresión regular opcional para filtrar líneas de salida
       */
      filter?: string;
    }

    Recupera la salida de un shell bash en segundo plano en ejecución o completado.

    Edit

    Nombre de herramienta: Edit

    interface FileEditInput {
      /**
       * La ruta absoluta al archivo a modificar
       */
      file_path: string;
      /**
       * El texto a reemplazar
       */
      old_string: string;
      /**
       * El texto a reemplazarlo con (debe ser diferente de old_string)
       */
      new_string: string;
      /**
       * Reemplazar todas las ocurrencias de old_string (predeterminado falso)
       */
      replace_all?: boolean;
    }

    Realiza reemplazos de cadenas exactas en archivos.

    Read

    Nombre de herramienta: Read

    interface FileReadInput {
      /**
       * La ruta absoluta al archivo a leer
       */
      file_path: string;
      /**
       * El número de línea desde el que comenzar a leer
       */
      offset?: number;
      /**
       * El número de líneas a leer
       */
      limit?: number;
    }

    Lee archivos del sistema de archivos local, incluyendo texto, imágenes, PDFs y cuadernos Jupyter.

    Write

    Nombre de herramienta: Write

    interface FileWriteInput {
      /**
       * La ruta absoluta al archivo a escribir
       */
      file_path: string;
      /**
       * El contenido a escribir en el archivo
       */
      content: string;
    }

    Escribe un archivo en el sistema de archivos local, sobrescribiendo si existe.

    Glob

    Nombre de herramienta: Glob

    interface GlobInput {
      /**
       * El patrón glob para coincidir archivos
       */
      pattern: string;
      /**
       * El directorio a buscar (predeterminado a cwd)
       */
      path?: string;
    }

    Coincidencia rápida de patrones de archivo que funciona con cualquier tamaño de base de código.

    Grep

    Nombre de herramienta: Grep

    interface GrepInput {
      /**
       * El patrón de expresión regular a buscar
       */
      pattern: string;
      /**
       * Archivo o directorio a buscar (predeterminado a cwd)
       */
      path?: string;
      /**
       * Patrón glob para filtrar archivos (ej. "*.js")
       */
      glob?: string;
      /**
       * Tipo de archivo a buscar (ej. "js", "py", "rust")
       */
      type?: string;
      /**
       * Modo de salida: "content", "files_with_matches", o "count"
       */
      output_mode?: 'content' | 'files_with_matches' | 'count';
      /**
       * Búsqueda insensible a mayúsculas
       */
      '-i'?: boolean;
      /**
       * Mostrar números de línea (para modo de contenido)
       */
      '-n'?: boolean;
      /**
       * Líneas a mostrar antes de cada coincidencia
       */
      '-B'?: number;
      /**
       * Líneas a mostrar después de cada coincidencia
       */
      '-A'?: number;
      /**
       * Líneas a mostrar antes y después de cada coincidencia
       */
      '-C'?: number;
      /**
       * Limitar salida a las primeras N líneas/entradas
       */
      head_limit?: number;
      /**
       * Habilitar modo multilínea
       */
      multiline?: boolean;
    }

    Herramienta de búsqueda potente construida en ripgrep con soporte de expresiones regulares.

    KillBash

    Nombre de herramienta: KillBash

    interface KillShellInput {
      /**
       * El ID del shell en segundo plano a terminar
       */
      shell_id: string;
    }

    Termina un shell bash en segundo plano en ejecución por su ID.

    NotebookEdit

    Nombre de herramienta: NotebookEdit

    interface NotebookEditInput {
      /**
       * La ruta absoluta al archivo del cuaderno Jupyter
       */
      notebook_path: string;
      /**
       * El ID de la celda a editar
       */
      cell_id?: string;
      /**
       * La nueva fuente para la celda
       */
      new_source: string;
      /**
       * El tipo de la celda (código o markdown)
       */
      cell_type?: 'code' | 'markdown';
      /**
       * El tipo de edición (reemplazar, insertar, eliminar)
       */
      edit_mode?: 'replace' | 'insert' | 'delete';
    }

    Edita celdas en archivos de cuaderno Jupyter.

    WebFetch

    Nombre de herramienta: WebFetch

    interface WebFetchInput {
      /**
       * La URL de la que obtener contenido
       */
      url: string;
      /**
       * El mensaje a ejecutar en el contenido obtenido
       */
      prompt: string;
    }

    Obtiene contenido de una URL y lo procesa con un modelo de IA.

    WebSearch

    Nombre de herramienta: WebSearch

    interface WebSearchInput {
      /**
       * La consulta de búsqueda a usar
       */
      query: string;
      /**
       * Solo incluir resultados de estos dominios
       */
      allowed_domains?: string[];
      /**
       * Nunca incluir resultados de estos dominios
       */
      blocked_domains?: string[];
    }

    Busca en la web y retorna resultados formateados.

    TodoWrite

    Nombre de herramienta: TodoWrite

    interface TodoWriteInput {
      /**
       * La lista de tareas actualizada
       */
      todos: Array<{
        /**
         * La descripción de la tarea
         */
        content: string;
        /**
         * El estado de la tarea
         */
        status: 'pending' | 'in_progress' | 'completed';
        /**
         * Forma activa de la descripción de la tarea
         */
        activeForm: string;
      }>;
    }

    Crea y gestiona una lista de tareas estructurada para rastrear el progreso.

    ExitPlanMode

    Nombre de herramienta: ExitPlanMode

    interface ExitPlanModeInput {
      /**
       * El plan a ejecutar por el usuario para aprobación
       */
      plan: string;
    }

    Sale del modo de planificación e indica al usuario que apruebe el plan.

    ListMcpResources

    Nombre de herramienta: ListMcpResources

    interface ListMcpResourcesInput {
      /**
       * Nombre de servidor opcional para filtrar recursos por
       */
      server?: string;
    }

    Lista los recursos MCP disponibles de servidores conectados.

    ReadMcpResource

    Nombre de herramienta: ReadMcpResource

    interface ReadMcpResourceInput {
      /**
       * El nombre del servidor MCP
       */
      server: string;
      /**
       * El URI del recurso a leer
       */
      uri: string;
    }

    Lee un recurso MCP específico de un servidor.

    Tipos de Salida de Herramienta

    Documentación de esquemas de salida para todas las herramientas integradas de Claude Code. Estos tipos representan los datos de respuesta reales retornados por cada herramienta.

    ToolOutput

    Nota: Este es un tipo solo para documentación para mayor claridad. Representa la unión de todos los tipos de salida de herramienta.

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

    Task

    Nombre de herramienta: Task

    interface TaskOutput {
      /**
       * Mensaje de resultado final del suagente
       */
      result: string;
      /**
       * Estadísticas de uso de tokens
       */
      usage?: {
        input_tokens: number;
        output_tokens: number;
        cache_creation_input_tokens?: number;
        cache_read_input_tokens?: number;
      };
      /**
       * Costo total en USD
       */
      total_cost_usd?: number;
      /**
       * Duración de ejecución en milisegundos
       */
      duration_ms?: number;
    }

    Retorna el resultado final del suagente después de completar la tarea delegada.

    Bash

    Nombre de herramienta: Bash

    interface BashOutput {
      /**
       * Salida combinada de stdout y stderr
       */
      output: string;
      /**
       * Código de salida del comando
       */
      exitCode: number;
      /**
       * Si el comando fue terminado debido a tiempo de espera
       */
      killed?: boolean;
      /**
       * ID de shell para procesos en segundo plano
       */
      shellId?: string;
    }

    Retorna salida de comando con estado de salida. Los comandos en segundo plano retornan inmediatamente con un shellId.

    BashOutput

    Nombre de herramienta: BashOutput

    interface BashOutputToolOutput {
      /**
       * Nueva salida desde la última verificación
       */
      output: string;
      /**
       * Estado actual del shell
       */
      status: 'running' | 'completed' | 'failed';
      /**
       * Código de salida (cuando se completa)
       */
      exitCode?: number;
    }

    Retorna salida incremental de shells en segundo plano.

    Edit

    Nombre de herramienta: Edit

    interface EditOutput {
      /**
       * Mensaje de confirmación
       */
      message: string;
      /**
       * Número de reemplazos realizados
       */
      replacements: number;
      /**
       * Ruta del archivo que fue editado
       */
      file_path: string;
    }

    Retorna confirmación de ediciones exitosas con conteo de reemplazos.

    Read

    Nombre de herramienta: Read

    type ReadOutput = 
      | TextFileOutput
      | ImageFileOutput
      | PDFFileOutput
      | NotebookFileOutput;
    
    interface TextFileOutput {
      /**
       * Contenido del archivo con números de línea
       */
      content: string;
      /**
       * Número total de líneas en el archivo
       */
      total_lines: number;
      /**
       * Líneas realmente retornadas
       */
      lines_returned: number;
    }
    
    interface ImageFileOutput {
      /**
       * Datos de imagen codificados en base64
       */
      image: string;
      /**
       * Tipo MIME de imagen
       */
      mime_type: string;
      /**
       * Tamaño del archivo en bytes
       */
      file_size: number;
    }
    
    interface PDFFileOutput {
      /**
       * Array de contenidos de página
       */
      pages: Array<{
        page_number: number;
        text?: string;
        images?: Array<{
          image: string;
          mime_type: string;
        }>;
      }>;
      /**
       * Número total de páginas
       */
      total_pages: number;
    }
    
    interface NotebookFileOutput {
      /**
       * Celdas del cuaderno Jupyter
       */
      cells: Array<{
        cell_type: 'code' | 'markdown';
        source: string;
        outputs?: any[];
        execution_count?: number;
      }>;
      /**
       * Metadatos del cuaderno
       */
      metadata?: Record<string, any>;
    }

    Retorna contenido del archivo en formato apropiado al tipo de archivo.

    Write

    Nombre de herramienta: Write

    interface WriteOutput {
      /**
       * Mensaje de éxito
       */
      message: string;
      /**
       * Número de bytes escritos
       */
      bytes_written: number;
      /**
       * Ruta del archivo que fue escrito
       */
      file_path: string;
    }

    Retorna confirmación después de escribir exitosamente el archivo.

    Glob

    Nombre de herramienta: Glob

    interface GlobOutput {
      /**
       * Array de rutas de archivo coincidentes
       */
      matches: string[];
      /**
       * Número de coincidencias encontradas
       */
      count: number;
      /**
       * Directorio de búsqueda usado
       */
      search_path: string;
    }

    Retorna rutas de archivo que coinciden con el patrón glob, ordenadas por tiempo de modificación.

    Grep

    Nombre de herramienta: Grep

    type GrepOutput = 
      | GrepContentOutput
      | GrepFilesOutput
      | GrepCountOutput;
    
    interface GrepContentOutput {
      /**
       * Líneas coincidentes con contexto
       */
      matches: Array<{
        file: string;
        line_number?: number;
        line: string;
        before_context?: string[];
        after_context?: string[];
      }>;
      /**
       * Número total de coincidencias
       */
      total_matches: number;
    }
    
    interface GrepFilesOutput {
      /**
       * Archivos que contienen coincidencias
       */
      files: string[];
      /**
       * Número de archivos con coincidencias
       */
      count: number;
    }
    
    interface GrepCountOutput {
      /**
       * Conteos de coincidencias por archivo
       */
      counts: Array<{
        file: string;
        count: number;
      }>;
      /**
       * Total de coincidencias en todos los archivos
       */
      total: number;
    }

    Retorna resultados de búsqueda en el formato especificado por output_mode.

    KillBash

    Nombre de herramienta: KillBash

    interface KillBashOutput {
      /**
       * Mensaje de éxito
       */
      message: string;
      /**
       * ID del shell terminado
       */
      shell_id: string;
    }

    Retorna confirmación después de terminar el shell en segundo plano.

    NotebookEdit

    Nombre de herramienta: NotebookEdit

    interface NotebookEditOutput {
      /**
       * Mensaje de éxito
       */
      message: string;
      /**
       * Tipo de edición realizada
       */
      edit_type: 'replaced' | 'inserted' | 'deleted';
      /**
       * ID de celda que fue afectada
       */
      cell_id?: string;
      /**
       * Total de celdas en el cuaderno después de la edición
       */
      total_cells: number;
    }

    Retorna confirmación después de modificar el cuaderno Jupyter.

    WebFetch

    Nombre de herramienta: WebFetch

    interface WebFetchOutput {
      /**
       * Respuesta del modelo de IA al mensaje
       */
      response: string;
      /**
       * URL que fue obtenida
       */
      url: string;
      /**
       * URL final después de redirecciones
       */
      final_url?: string;
      /**
       * Código de estado HTTP
       */
      status_code?: number;
    }

    Retorna el análisis de la IA del contenido web obtenido.

    WebSearch

    Nombre de herramienta: WebSearch

    interface WebSearchOutput {
      /**
       * Resultados de búsqueda
       */
      results: Array<{
        title: string;
        url: string;
        snippet: string;
        /**
         * Metadatos adicionales si están disponibles
         */
        metadata?: Record<string, any>;
      }>;
      /**
       * Número total de resultados
       */
      total_results: number;
      /**
       * La consulta que fue buscada
       */
      query: string;
    }

    Retorna resultados de búsqueda formateados de la web.

    TodoWrite

    Nombre de herramienta: TodoWrite

    interface TodoWriteOutput {
      /**
       * Mensaje de éxito
       */
      message: string;
      /**
       * Estadísticas de tareas actuales
       */
      stats: {
        total: number;
        pending: number;
        in_progress: number;
        completed: number;
      };
    }

    Retorna confirmación con estadísticas de tareas actuales.

    ExitPlanMode

    Nombre de herramienta: ExitPlanMode

    interface ExitPlanModeOutput {
      /**
       * Mensaje de confirmación
       */
      message: string;
      /**
       * Si el usuario aprobó el plan
       */
      approved?: boolean;
    }

    Retorna confirmación después de salir del modo de planificación.

    ListMcpResources

    Nombre de herramienta: ListMcpResources

    interface ListMcpResourcesOutput {
      /**
       * Recursos disponibles
       */
      resources: Array<{
        uri: string;
        name: string;
        description?: string;
        mimeType?: string;
        server: string;
      }>;
      /**
       * Número total de recursos
       */
      total: number;
    }

    Retorna lista de recursos MCP disponibles.

    ReadMcpResource

    Nombre de la herramienta: ReadMcpResource

    interface ReadMcpResourceOutput {
      /**
       * Contenidos del recurso
       */
      contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
      }>;
      /**
       * Servidor que proporcionó el recurso
       */
      server: string;
    }

    Devuelve los contenidos del recurso MCP solicitado.

    Tipos de Permiso

    PermissionUpdate

    Operaciones para actualizar permisos.

    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'     // Configuración global del usuario
      | 'projectSettings'  // Configuración del proyecto por directorio
      | 'localSettings'    // Configuración local ignorada por Git
      | 'session'          // Solo sesión actual

    PermissionRuleValue

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

    Otros Tipos

    ApiKeySource

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

    ConfigScope

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

    NonNullableUsage

    Una versión de Usage con todos los campos anulables convertidos en no anulables.

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

    Usage

    Estadísticas de uso de tokens (de @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

    Tipo de resultado de herramienta MCP (de @modelcontextprotocol/sdk/types.js).

    type CallToolResult = {
      content: Array<{
        type: 'text' | 'image' | 'resource';
        // Los campos adicionales varían según el tipo
      }>;
      isError?: boolean;
    }

    AbortError

    Clase de error personalizada para operaciones de cancelación.

    class AbortError extends Error {}

    Ver también

    • Descripción general del SDK - Conceptos generales del SDK
    • Referencia del SDK de Python - Documentación del SDK de Python
    • Referencia de CLI - Interfaz de línea de comandos
    • Flujos de trabajo comunes - Guías paso a paso
    • Instalación
    • Funciones
    • query()
    • tool()
    • createSdkMcpServer()
    • Tipos
    • Options
    • Query
    • AgentDefinition
    • SettingSource
    • PermissionMode
    • CanUseTool
    • PermissionResult
    • McpServerConfig
    • SdkPluginConfig
    • Tipos de Mensaje
    • SDKMessage
    • SDKAssistantMessage
    • SDKUserMessage
    • SDKUserMessageReplay
    • SDKResultMessage
    • SDKSystemMessage
    • SDKPartialAssistantMessage
    • SDKCompactBoundaryMessage
    • SDKPermissionDenial
    • Tipos de Hook
    • HookEvent
    • HookCallback
    • HookCallbackMatcher
    • HookInput
    • BaseHookInput
    • HookJSONOutput
    • Tipos de Entrada de Herramienta
    • ToolInput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Tipos de Salida de Herramienta
    • ToolOutput
    • Task
    • Bash
    • BashOutput
    • Edit
    • Read
    • Write
    • Glob
    • Grep
    • KillBash
    • NotebookEdit
    • WebFetch
    • WebSearch
    • TodoWrite
    • ExitPlanMode
    • ListMcpResources
    • ReadMcpResource
    • Tipos de Permiso
    • PermissionUpdate
    • PermissionBehavior
    • PermissionUpdateDestination
    • PermissionRuleValue
    • Otros Tipos
    • ApiKeySource
    • ConfigScope
    • NonNullableUsage
    • Usage
    • CallToolResult
    • AbortError
    • Ver también