Pruebe la nueva interfaz V2 (vista previa): Una interfaz simplificada con patrones
send() y stream() está ahora disponible, lo que facilita las conversaciones de múltiples turnos. Obtenga más información sobre la vista previa de TypeScript V2Instalación
El SDK incluye un binario nativo de Claude Code para su plataforma como una dependencia opcional como
@anthropic-ai/claude-agent-sdk-darwin-arm64. No necesita instalar Claude Code por separado. Si su gestor de paquetes omite las dependencias opcionales, el SDK lanza Native CLI binary for <platform> not found; en su lugar, establezca pathToClaudeCodeExecutable en un binario claude instalado por separado.Funciones
query()
La función principal para interactuar con Claude Code. Crea un generador asincrónico que transmite mensajes a medida que llegan.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | El mensaje de entrada como una cadena o iterable asincrónico para el modo de transmisión |
options | Options | Objeto de configuración opcional (vea el tipo Options a continuación) |
Devuelve
Devuelve un objetoQuery que extiende AsyncGenerator<SDKMessage, void> con métodos adicionales.
startup()
Precalienta el subproceso CLI iniciándolo y completando el protocolo de inicialización antes de que un mensaje esté disponible. El identificador WarmQuery devuelto acepta un mensaje más tarde y lo escribe en un proceso ya listo, por lo que la primera llamada a query() se resuelve sin pagar el costo de generación e inicialización del subproceso en línea.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
options | Options | Objeto de configuración opcional. Igual que el parámetro options para query() |
initializeTimeoutMs | number | Tiempo máximo en milisegundos para esperar la inicialización del subproceso. Por defecto es 60000. Si la inicialización no se completa a tiempo, la promesa se rechaza con un error de tiempo de espera |
Devuelve
Devuelve unaPromise<WarmQuery> que se resuelve una vez que el subproceso se ha generado y ha completado su protocolo de inicialización.
Ejemplo
Llame astartup() temprano, por ejemplo al inicio de la aplicación, luego llame a .query() en el identificador devuelto una vez que un mensaje esté listo. Esto mueve la generación del subproceso e inicialización fuera de la ruta crítica.
tool()
Crea una definición de herramienta MCP segura de tipos para usar con servidores MCP del SDK.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
name | string | El nombre de la herramienta |
description | string | Una descripción de lo que hace la herramienta |
inputSchema | Schema extends AnyZodRawShape | Esquema Zod que define los parámetros de entrada de la herramienta (soporta tanto Zod 3 como Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Función asincrónica que ejecuta la lógica de la herramienta |
extras | { annotations?: ToolAnnotations } | Anotaciones opcionales de herramienta MCP que proporcionan sugerencias de comportamiento a los clientes |
ToolAnnotations
Re-exportado desde @modelcontextprotocol/sdk/types.js. Todos los campos son sugerencias opcionales; los clientes no deben confiar en ellos para decisiones de seguridad.
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
title | string | undefined | Título legible por humanos para la herramienta |
readOnlyHint | boolean | false | Si es true, la herramienta no modifica su entorno |
destructiveHint | boolean | true | Si es true, la herramienta puede realizar actualizaciones destructivas (solo significativo cuando readOnlyHint es false) |
idempotentHint | boolean | false | Si es true, las llamadas repetidas con los mismos argumentos no tienen efecto adicional (solo significativo cuando readOnlyHint es false) |
openWorldHint | boolean | true | Si es true, la herramienta interactúa con entidades externas (por ejemplo, búsqueda web). Si es false, el dominio de la herramienta es cerrado (por ejemplo, una herramienta de memoria) |
createSdkMcpServer()
Crea una instancia de servidor MCP que se ejecuta en el mismo proceso que su aplicación.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
options.name | string | El nombre del servidor MCP |
options.version | string | Cadena de versión opcional |
options.tools | Array<SdkMcpToolDefinition> | Matriz de definiciones de herramientas creadas con tool() |
listSessions()
Descubre y enumera sesiones pasadas con metadatos ligeros. Filtre por directorio de proyecto o enumere sesiones en todos los proyectos.
Parámetros
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
options.dir | string | undefined | Directorio para enumerar sesiones. Cuando se omite, devuelve sesiones en todos los proyectos |
options.limit | number | undefined | Número máximo de sesiones a devolver |
options.includeWorktrees | boolean | true | Cuando dir está dentro de un repositorio git, incluya sesiones de todas las rutas de worktree |
Tipo de retorno: SDKSessionInfo
| Propiedad | Tipo | Descripción |
|---|---|---|
sessionId | string | Identificador de sesión único (UUID) |
summary | string | Título de visualización: título personalizado, resumen generado automáticamente o primer mensaje |
lastModified | number | Última hora de modificación en milisegundos desde la época |
fileSize | number | undefined | Tamaño del archivo de sesión en bytes. Solo se completa para almacenamiento JSONL local |
customTitle | string | undefined | Título de sesión establecido por el usuario (a través de /rename) |
firstPrompt | string | undefined | Primer mensaje de usuario significativo en la sesión |
gitBranch | string | undefined | Rama Git al final de la sesión |
cwd | string | undefined | Directorio de trabajo para la sesión |
tag | string | undefined | Etiqueta de sesión establecida por el usuario (vea tagSession()) |
createdAt | number | undefined | Hora de creación en milisegundos desde la época, de la marca de tiempo de la primera entrada |
Ejemplo
Imprima las 10 sesiones más recientes para un proyecto. Los resultados se ordenan porlastModified descendente, por lo que el primer elemento es el más nuevo. Omita dir para buscar en todos los proyectos.
getSessionMessages()
Lee mensajes de usuario y asistente de una transcripción de sesión pasada.
Parámetros
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sessionId | string | requerido | UUID de sesión a leer (vea listSessions()) |
options.dir | string | undefined | Directorio de proyecto para encontrar la sesión. Cuando se omite, busca en todos los proyectos |
options.limit | number | undefined | Número máximo de mensajes a devolver |
options.offset | number | undefined | Número de mensajes a omitir desde el inicio |
Tipo de retorno: SessionMessage
| Propiedad | Tipo | Descripción |
|---|---|---|
type | "user" | "assistant" | Rol del mensaje |
uuid | string | Identificador de mensaje único |
session_id | string | Sesión a la que pertenece este mensaje |
message | unknown | Carga útil de mensaje sin procesar de la transcripción |
parent_tool_use_id | null | Reservado |
Ejemplo
getSessionInfo()
Lee metadatos para una única sesión por ID sin escanear el directorio de proyecto completo.
Parámetros
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sessionId | string | requerido | UUID de la sesión a buscar |
options.dir | string | undefined | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |
SDKSessionInfo, o undefined si la sesión no se encuentra.
renameSession()
Cambia el nombre de una sesión añadiendo una entrada de título personalizado. Las llamadas repetidas son seguras; el título más reciente gana.
Parámetros
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sessionId | string | requerido | UUID de la sesión a renombrar |
title | string | requerido | Nuevo título. Debe ser no vacío después de recortar espacios en blanco |
options.dir | string | undefined | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |
tagSession()
Etiqueta una sesión. Pase null para borrar la etiqueta. Las llamadas repetidas son seguras; la etiqueta más reciente gana.
Parámetros
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sessionId | string | requerido | UUID de la sesión a etiquetar |
tag | string | null | requerido | Cadena de etiqueta, o null para borrar |
options.dir | string | undefined | Ruta del directorio del proyecto. Cuando se omite, busca en todos los directorios de proyecto |
Tipos
Options
Objeto de configuración para la función query().
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
abortController | AbortController | new AbortController() | Controlador para cancelar operaciones |
additionalDirectories | string[] | [] | Directorios adicionales a los que Claude puede acceder |
agent | string | undefined | Nombre del agente para el hilo principal. El agente debe estar definido en la opción agents o en la configuración |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Defina subagentes mediante programación |
allowDangerouslySkipPermissions | boolean | false | Habilite omitir permisos. Requerido cuando se usa permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Herramientas para aprobar automáticamente sin solicitar. Esto no restringe Claude a solo estas herramientas; las herramientas no listadas caen en permissionMode y canUseTool. Use disallowedTools para bloquear herramientas. Vea Permisos |
betas | SdkBeta[] | [] | Habilite características beta |
canUseTool | CanUseTool | undefined | Función de permiso personalizado para el uso de herramientas |
continue | boolean | false | Continúe la conversación más reciente |
cwd | string | process.cwd() | Directorio de trabajo actual |
debug | boolean | false | Habilite el modo de depuración para el proceso de Claude Code |
debugFile | string | undefined | Escriba registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración |
disallowedTools | string[] | [] | Herramientas a negar siempre. Las reglas de negación se verifican primero e anulan allowedTools y permissionMode (incluyendo bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento |
enableFileCheckpointing | boolean | false | Habilite el seguimiento de cambios de archivo para rebobinar. Vea File checkpointing |
env | Record<string, string | undefined> | process.env | Variables de entorno. Establezca CLAUDE_AGENT_SDK_CLIENT_APP para identificar su aplicación en el encabezado User-Agent |
executable | 'bun' | 'deno' | 'node' | Detectado automáticamente | Tiempo de ejecución de JavaScript a usar |
executableArgs | string[] | [] | Argumentos a pasar al ejecutable |
extraArgs | Record<string, string | null> | {} | Argumentos adicionales |
fallbackModel | string | undefined | Modelo a usar si el principal falla |
forkSession | boolean | false | Cuando se reanuda con resume, bifurque a un nuevo ID de sesión en lugar de continuar la sesión original |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Devoluciones de llamada de hooks para eventos |
includePartialMessages | boolean | false | Incluya eventos de mensaje parcial |
maxBudgetUsd | number | undefined | Detenga la consulta cuando la estimación de costo del lado del cliente alcance este valor en USD. Comparado con la misma estimación que total_cost_usd; vea Rastrear costo y uso para advertencias de precisión |
maxThinkingTokens | number | undefined | Deprecado: Use thinking en su lugar. Tokens máximos para el proceso de pensamiento |
maxTurns | number | undefined | Número máximo de turnos agentes (viajes de ronda de uso de herramientas) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | Configuraciones de servidor MCP |
model | string | Predeterminado de CLI | Modelo Claude a usar |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Defina el formato de salida para los resultados del agente. Vea Structured outputs para detalles |
pathToClaudeCodeExecutable | string | Auto-resuelto desde el binario nativo incluido | Ruta al ejecutable de Claude Code. Solo se necesita si las dependencias opcionales se omitieron durante la instalación o su plataforma no está en el conjunto compatible |
permissionMode | PermissionMode | 'default' | Modo de permiso para la sesión |
permissionPromptToolName | string | undefined | Nombre de herramienta MCP para solicitudes de permiso |
persistSession | boolean | true | Cuando es false, deshabilita la persistencia de sesión en disco. Las sesiones no se pueden reanudar más tarde |
plugins | SdkPluginConfig[] | [] | Cargue plugins personalizados desde rutas locales. Vea Plugins para detalles |
promptSuggestions | boolean | false | Habilite sugerencias de mensaje. Emite un mensaje prompt_suggestion después de cada turno con un mensaje de usuario predicho siguiente |
resume | string | undefined | ID de sesión a reanudar |
resumeSessionAt | string | undefined | Reanude la sesión en un UUID de mensaje específico |
sandbox | SandboxSettings | undefined | Configure el comportamiento de sandbox mediante programación. Vea Sandbox settings para detalles |
sessionId | string | Auto-generado | Use un UUID específico para la sesión en lugar de generar uno automáticamente |
settingSources | SettingSource[] | Valores predeterminados de CLI (todas las fuentes) | Controle qué configuración del sistema de archivos cargar. Pase [] para deshabilitar la configuración de usuario, proyecto y local. La configuración de política administrada se carga independientemente. Vea Usar características de Claude Code |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Función personalizada para generar el proceso de Claude Code. Use para ejecutar Claude Code en máquinas virtuales, contenedores o entornos remotos |
stderr | (data: string) => void | undefined | Devolución de llamada para salida de stderr |
strictMcpConfig | boolean | false | Aplique validación MCP estricta |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined (mensaje mínimo) | Configuración de mensaje del sistema. Pase una cadena para un mensaje personalizado, o { type: 'preset', preset: 'claude_code' } para usar el mensaje del sistema de Claude Code. Cuando use la forma de objeto preestablecido, agregue append para extenderlo con instrucciones adicionales, y establezca excludeDynamicSections: true para mover el contexto por sesión al primer mensaje de usuario para mejor reutilización de caché de mensaje en máquinas |
thinking | ThinkingConfig | { type: 'adaptive' } para modelos compatibles | Controla el comportamiento de pensamiento/razonamiento de Claude. Vea ThinkingConfig para opciones |
toolConfig | ToolConfig | undefined | Configuración para el comportamiento de herramientas integradas. Vea ToolConfig para detalles |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Configuración de herramientas. Pase una matriz de nombres de herramientas o use el preestablecido para obtener las herramientas predeterminadas de Claude Code |
Objeto Query
Interfaz devuelta por la función query().
Métodos
| Método | Descripción |
|---|---|
interrupt() | Interrumpe la consulta (solo disponible en modo de entrada de transmisión) |
rewindFiles(userMessageId, options?) | Restaura archivos a su estado en el mensaje de usuario especificado. Pase { dryRun: true } para obtener una vista previa de los cambios. Requiere enableFileCheckpointing: true. Vea File checkpointing |
setPermissionMode() | Cambia el modo de permiso (solo disponible en modo de entrada de transmisión) |
setModel() | Cambia el modelo (solo disponible en modo de entrada de transmisión) |
setMaxThinkingTokens() | Deprecado: Use la opción thinking en su lugar. Cambia los tokens de pensamiento máximos |
initializationResult() | Devuelve el resultado de inicialización completo incluyendo comandos compatibles, modelos, información de cuenta y configuración de estilo de salida |
supportedCommands() | Devuelve comandos slash disponibles |
supportedModels() | Devuelve modelos disponibles con información de visualización |
supportedAgents() | Devuelve subagentes disponibles como AgentInfo[] |
mcpServerStatus() | Devuelve el estado de los servidores MCP conectados |
accountInfo() | Devuelve información de cuenta |
reconnectMcpServer(serverName) | Reconecte un servidor MCP por nombre |
toggleMcpServer(serverName, enabled) | Habilite o deshabilite un servidor MCP por nombre |
setMcpServers(servers) | Reemplace dinámicamente el conjunto de servidores MCP para esta sesión. Devuelve información sobre qué servidores se agregaron, eliminaron y cualquier error |
streamInput(stream) | Transmita mensajes de entrada a la consulta para conversaciones de múltiples turnos |
stopTask(taskId) | Detenga una tarea de fondo en ejecución por ID |
close() | Cierre la consulta y termine el proceso subyacente. Finaliza forzadamente la consulta y limpia todos los recursos |
WarmQuery
Identificador devuelto por startup(). El subproceso ya está generado e inicializado, por lo que llamar a query() en este identificador escribe el mensaje directamente en un proceso listo sin latencia de inicio.
Métodos
| Método | Descripción |
|---|---|
query(prompt) | Envíe un mensaje al subproceso precalentado y devuelva un Query. Solo se puede llamar una vez por WarmQuery |
close() | Cierre el subproceso sin enviar un mensaje. Use esto para descartar una consulta cálida que ya no es necesaria |
WarmQuery implementa AsyncDisposable, por lo que se puede usar con await using para limpieza automática.
SDKControlInitializeResponse
Tipo de retorno de initializationResult(). Contiene datos de inicialización de sesión.
AgentDefinition
Configuración para un subagente definido mediante programación.
| Campo | Requerido | Descripción |
|---|---|---|
description | Sí | Descripción en lenguaje natural de cuándo usar este agente |
tools | No | Matriz de nombres de herramientas permitidas. Si se omite, hereda todas las herramientas del padre |
disallowedTools | No | Matriz de nombres de herramientas a desautorizar explícitamente para este agente |
prompt | Sí | El mensaje del sistema del agente |
model | No | Anulación de modelo para este agente. Si se omite o es 'inherit', usa el modelo principal |
mcpServers | No | Especificaciones de servidor MCP para este agente |
skills | No | Matriz de nombres de habilidades a precargar en el contexto del agente |
maxTurns | No | Número máximo de turnos agentes (viajes de ronda de API) antes de detener |
criticalSystemReminder_EXPERIMENTAL | No | Experimental: Recordatorio crítico agregado al mensaje del sistema |
AgentMcpServerSpec
Especifica servidores MCP disponibles para un subagente. Puede ser un nombre de servidor (cadena que hace referencia a un servidor de la configuración mcpServers del padre) o una configuración de servidor en línea que mapea nombres de servidor a configuraciones.
McpServerConfigForProcessTransport es McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig.
SettingSource
Controla qué fuentes de configuración basadas en el sistema de archivos carga el SDK.
| Valor | Descripción | Ubicación |
|---|---|---|
'user' | Configuración global del usuario | ~/.claude/settings.json |
'project' | Configuración de proyecto compartida (controlada por versión) | .claude/settings.json |
'local' | Configuración de proyecto local (gitignored) | .claude/settings.local.json |
Comportamiento predeterminado
CuandosettingSources se omite o es undefined, query() carga la misma configuración del sistema de archivos que la CLI de Claude Code: usuario, proyecto y local. La configuración de política administrada se carga en todos los casos. Vea Qué settingSources no controla para entradas que se leen independientemente de esta opción, y cómo deshabilitarlas.
Por qué usar settingSources
Deshabilitar configuración del sistema de archivos:Precedencia de configuración
Cuando se cargan múltiples fuentes, la configuración se fusiona con esta precedencia (mayor a menor):- Configuración local (
.claude/settings.local.json) - Configuración del proyecto (
.claude/settings.json) - Configuración del usuario (
~/.claude/settings.json)
agents y allowedTools anulan la configuración del sistema de archivos de usuario, proyecto y local. La configuración de política administrada tiene precedencia sobre las opciones programáticas.
PermissionMode
CanUseTool
Tipo de función de permiso personalizado para controlar el uso de herramientas.
| Opción | Tipo | Descripción |
|---|---|---|
signal | AbortSignal | Señalizado si la operación debe abortarse |
suggestions | PermissionUpdate[] | Actualizaciones de permiso sugeridas para que el usuario no sea solicitado nuevamente para esta herramienta |
blockedPath | string | La ruta de archivo que activó la solicitud de permiso, si corresponde |
decisionReason | string | Explica por qué se activó esta solicitud de permiso |
toolUseID | string | Identificador único para esta llamada de herramienta específica dentro del mensaje del asistente |
agentID | string | Si se ejecuta dentro de un sub-agente, el ID del sub-agente |
PermissionResult
Resultado de una verificación de permiso.
ToolConfig
Configuración para el comportamiento de herramientas integradas.
| Campo | Tipo | Descripción |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Opte por el campo preview en las opciones de AskUserQuestion y establezca su formato de contenido. Cuando no está establecido, Claude no emite vistas previas |
McpServerConfig
Configuración para servidores MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Configuración para cargar plugins en el SDK.
| Campo | Tipo | Descripción |
|---|---|---|
type | 'local' | Debe ser 'local' (actualmente solo se soportan plugins locales) |
path | string | Ruta absoluta o relativa al directorio del plugin |
Tipos de Mensaje
SDKMessage
Tipo de unión de todos los mensajes posibles devueltos por la consulta.
SDKAssistantMessage
Mensaje de respuesta del asistente.
message es un BetaMessage del SDK de Anthropic. Incluye campos como id, content, model, stop_reason y usage.
SDKAssistantMessageError es uno de: 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens', o 'unknown'.
SDKUserMessage
Mensaje de entrada del usuario.
shouldQuery en false para añadir el mensaje a la transcripción sin activar un turno del asistente. El mensaje se mantiene y se fusiona en el siguiente mensaje de usuario que sí activa un turno. Use esto para inyectar contexto, como la salida de un comando que ejecutó fuera de banda, sin gastar una llamada de modelo en él.
SDKUserMessageReplay
Mensaje de usuario reproducido con UUID requerido.
SDKResultMessage
Mensaje de resultado final.
SDKSystemMessage
Mensaje de inicialización del sistema.
SDKPartialAssistantMessage
Mensaje parcial de transmisión (solo cuando includePartialMessages es true).
SDKCompactBoundaryMessage
Mensaje que indica un límite de compactación de conversación.
SDKPluginInstallMessage
Evento de progreso de instalación de plugin. Se emite cuando CLAUDE_CODE_SYNC_PLUGIN_INSTALL está establecido, para que su aplicación Agent SDK pueda rastrear la instalación de plugins del mercado antes del primer turno. Los estados started y completed cierran la instalación general. Los estados installed y failed reportan mercados individuales e incluyen name.
SDKPermissionDenial
Información sobre un uso de herramienta denegado.
Tipos de Hook
Para una guía completa sobre el uso de hooks con ejemplos y patrones comunes, vea la guía de Hooks.HookEvent
Eventos de hook disponibles.
HookCallback
Tipo de función de devolución de llamada de hook.
HookCallbackMatcher
Configuración de hook con coincidencia opcional.
HookInput
Tipo de unión de todos los tipos de entrada de hook.
BaseHookInput
Interfaz base que todos los tipos de entrada de hook extienden.
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
HookJSONOutput
Valor de retorno de hook.
AsyncHookJSONOutput
SyncHookJSONOutput
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 de tipos.
ToolInputSchemas
Unión de todos los tipos de entrada de herramienta, exportados desde @anthropic-ai/claude-agent-sdk.
Agent
Nombre de herramienta:Agent (anteriormente Task, que aún se acepta como alias)
AskUserQuestion
Nombre de herramienta:AskUserQuestion
Bash
Nombre de herramienta:Bash
Monitor
Nombre de herramienta:Monitor
persistent: true para vigilancias de duración de sesión como colas de registro. Monitor sigue las mismas reglas de permiso que Bash. Vea la referencia de herramienta Monitor para comportamiento y disponibilidad de proveedor.
TaskOutput
Nombre de herramienta:TaskOutput
Edit
Nombre de herramienta:Edit
Read
Nombre de herramienta:Read
pages para rangos de páginas PDF (por ejemplo, "1-5").
Write
Nombre de herramienta:Write
Glob
Nombre de herramienta:Glob
Grep
Nombre de herramienta:Grep
TaskStop
Nombre de herramienta:TaskStop
NotebookEdit
Nombre de herramienta:NotebookEdit
WebFetch
Nombre de herramienta:WebFetch
WebSearch
Nombre de herramienta:WebSearch
TodoWrite
Nombre de herramienta:TodoWrite
ExitPlanMode
Nombre de herramienta:ExitPlanMode
ListMcpResources
Nombre de herramienta:ListMcpResources
ReadMcpResource
Nombre de herramienta:ReadMcpResource
Config
Nombre de herramienta:Config
EnterWorktree
Nombre de herramienta:EnterWorktree
path para cambiar a un worktree existente del repositorio actual en lugar de crear uno nuevo. name y path son mutuamente excluyentes.
Tipos de Salida de Herramienta
Documentación de esquemas de salida para todas las herramientas integradas de Claude Code. Estos tipos se exportan desde@anthropic-ai/claude-agent-sdk y representan los datos de respuesta reales devueltos por cada herramienta.
ToolOutputSchemas
Unión de todos los tipos de salida de herramienta.
Agent
Nombre de herramienta:Agent (anteriormente Task, que aún se acepta como alias)
status: "completed" para tareas terminadas, "async_launched" para tareas de fondo, y "sub_agent_entered" para subagentes interactivos.
AskUserQuestion
Nombre de herramienta:AskUserQuestion
Bash
Nombre de herramienta:Bash
backgroundTaskId.
Monitor
Nombre de herramienta:Monitor
TaskStop para cancelar la vigilancia temprano.
Edit
Nombre de herramienta:Edit
Read
Nombre de herramienta:Read
type.
Write
Nombre de herramienta:Write
Glob
Nombre de herramienta:Glob
Grep
Nombre de herramienta:Grep
mode: lista de archivos, contenido con coincidencias o conteos de coincidencias.
TaskStop
Nombre de herramienta:TaskStop
NotebookEdit
Nombre de herramienta:NotebookEdit
WebFetch
Nombre de herramienta:WebFetch
WebSearch
Nombre de herramienta:WebSearch
TodoWrite
Nombre de herramienta:TodoWrite
ExitPlanMode
Nombre de herramienta:ExitPlanMode
ListMcpResources
Nombre de herramienta:ListMcpResources
ReadMcpResource
Nombre de herramienta:ReadMcpResource
Config
Nombre de herramienta:Config
EnterWorktree
Nombre de herramienta:EnterWorktree
Tipos de Permiso
PermissionUpdate
Operaciones para actualizar permisos.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Otros Tipos
ApiKeySource
SdkBeta
Características beta disponibles que se pueden habilitar a través de la opción betas. Vea Encabezados Beta para más información.
SlashCommand
Información sobre un comando slash disponible.
ModelInfo
Información sobre un modelo disponible.
AgentInfo
Información sobre un subagente disponible que se puede invocar a través de la herramienta Agent.
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Identificador de tipo de agente (por ejemplo, "Explore", "general-purpose") |
description | string | Descripción de cuándo usar este agente |
model | string | undefined | Alias de modelo que usa este agente. Si se omite, hereda el modelo del padre |
McpServerStatus
Estado de un servidor MCP conectado.
McpServerStatusConfig
La configuración de un servidor MCP como se reporta por mcpServerStatus(). Esta es la unión de todos los tipos de transporte de servidor MCP.
McpServerConfig para detalles sobre cada tipo de transporte.
AccountInfo
Información de cuenta para el usuario autenticado.
ModelUsage
Estadísticas de uso por modelo devueltas en mensajes de resultado. El valor costUSD es una estimación del lado del cliente. Vea Rastrear costo y uso para advertencias de facturación.
ConfigScope
NonNullableUsage
Una versión de Usage con todos los campos anulables hechos no anulables.
Usage
Estadísticas de uso de tokens (desde @anthropic-ai/sdk).
CallToolResult
Tipo de resultado de herramienta MCP (desde @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Controla el comportamiento de pensamiento/razonamiento de Claude. Tiene precedencia sobre el maxThinkingTokens deprecado.
SpawnedProcess
Interfaz para generación de proceso personalizado (usada con la opción spawnClaudeCodeProcess). ChildProcess ya satisface esta interfaz.
SpawnOptions
Opciones pasadas a la función de generación personalizada.
McpSetServersResult
Resultado de una operación setMcpServers().
RewindFilesResult
Resultado de una operación rewindFiles().
SDKStatusMessage
Mensaje de actualización de estado (por ejemplo, compactación).
SDKTaskNotificationMessage
Notificación cuando una tarea de fondo se completa, falla o se detiene. Las tareas de fondo incluyen comandos Bash run_in_background, vigilancias Monitor y subagentes de fondo.
SDKToolUseSummaryMessage
Resumen del uso de herramientas en una conversación.
SDKHookStartedMessage
Se emite cuando un hook comienza a ejecutarse.
SDKHookProgressMessage
Se emite mientras un hook se está ejecutando, con salida de stdout/stderr.
SDKHookResponseMessage
Se emite cuando un hook termina de ejecutarse.
SDKToolProgressMessage
Se emite periódicamente mientras se ejecuta una herramienta para indicar progreso.
SDKAuthStatusMessage
Se emite durante flujos de autenticación.
SDKTaskStartedMessage
Se emite cuando comienza una tarea de fondo. El campo task_type es "local_bash" para comandos Bash de fondo y vigilancias Monitor, "local_agent" para subagentes, o "remote_agent".
SDKTaskProgressMessage
Se emite periódicamente mientras se ejecuta una tarea de fondo.
SDKFilesPersistedEvent
Se emite cuando los puntos de control de archivo se persisten en el disco.
SDKRateLimitEvent
Se emite cuando la sesión encuentra un límite de velocidad.
SDKLocalCommandOutputMessage
Salida de un comando slash local (por ejemplo, /voice o /cost). Se muestra como texto de estilo asistente en la transcripción.
SDKPromptSuggestionMessage
Se emite después de cada turno cuando promptSuggestions está habilitado. Contiene un mensaje de usuario predicho siguiente.
AbortError
Clase de error personalizado para operaciones de aborto.
Configuración de Sandbox
SandboxSettings
Configuración para el comportamiento de sandbox. Use esto para habilitar el sandboxing de comandos y configurar restricciones de red mediante programación.
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
enabled | boolean | false | Habilite el modo sandbox para la ejecución de comandos |
autoAllowBashIfSandboxed | boolean | true | Auto-apruebe comandos bash cuando el sandbox está habilitado |
excludedCommands | string[] | [] | Comandos que siempre omiten restricciones de sandbox (por ejemplo, ['docker']). Estos se ejecutan sin sandbox automáticamente sin participación del modelo |
allowUnsandboxedCommands | boolean | true | Permita que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es true, el modelo puede establecer dangerouslyDisableSandbox en la entrada de herramienta, que se vuelve al sistema de permisos |
network | SandboxNetworkConfig | undefined | Configuración de sandbox específica de red |
filesystem | SandboxFilesystemConfig | undefined | Configuración de sandbox específica del sistema de archivos para restricciones de lectura/escritura |
ignoreViolations | Record<string, string[]> | undefined | Mapa de categorías de violación a patrones a ignorar (por ejemplo, { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Habilite un sandbox anidado más débil para compatibilidad |
ripgrep | { command: string; args?: string[] } | undefined | Configuración de binario ripgrep personalizado para entornos sandbox |
Ejemplo de uso
SandboxNetworkConfig
Configuración específica de red para el modo sandbox.
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
allowedDomains | string[] | [] | Nombres de dominio a los que los procesos en sandbox pueden acceder |
deniedDomains | string[] | [] | Nombres de dominio a los que los procesos en sandbox no pueden acceder. Tiene prioridad sobre allowedDomains |
allowManagedDomainsOnly | boolean | false | Restrinja el acceso de red solo a los dominios en allowedDomains |
allowLocalBinding | boolean | false | Permita que los procesos se vinculen a puertos locales (por ejemplo, para servidores de desarrollo) |
allowUnixSockets | string[] | [] | Rutas de socket Unix a las que los procesos pueden acceder (por ejemplo, socket de Docker) |
allowAllUnixSockets | boolean | false | Permita el acceso a todos los sockets Unix |
httpProxyPort | number | undefined | Puerto proxy HTTP para solicitudes de red |
socksProxyPort | number | undefined | Puerto proxy SOCKS para solicitudes de red |
SandboxFilesystemConfig
Configuración específica del sistema de archivos para el modo sandbox.
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
allowWrite | string[] | [] | Patrones de ruta de archivo para permitir acceso de escritura a |
denyWrite | string[] | [] | Patrones de ruta de archivo para negar acceso de escritura a |
denyRead | string[] | [] | Patrones de ruta de archivo para negar acceso de lectura a |
Fallback de Permisos para Comandos Sin Sandbox
CuandoallowUnsandboxedCommands está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo dangerouslyDisableSandbox: true en la entrada de herramienta. Estas solicitudes se vuelven al sistema de permisos existente, lo que significa que se invoca su controlador canUseTool, permitiéndole implementar lógica de autorización personalizada.
excludedCommands vs allowUnsandboxedCommands:excludedCommands: Una lista estática de comandos que siempre omiten el sandbox automáticamente (por ejemplo,['docker']). El modelo no tiene control sobre esto.allowUnsandboxedCommands: Permite que el modelo decida en tiempo de ejecución si solicitar ejecución sin sandbox estableciendodangerouslyDisableSandbox: trueen la entrada de herramienta.
- Auditar solicitudes del modelo: Registre cuándo el modelo solicita ejecución sin sandbox
- Implementar listas de permitidos: Solo permita comandos específicos para ejecutarse sin sandbox
- Agregar flujos de trabajo de aprobación: Requiera autorización explícita para operaciones privilegiadas
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