TypeScript
Construye agentes de IA personalizados con el SDK de TypeScript de Claude Code
Prerrequisitos
- Node.js 18+
Instalación
Instala @anthropic-ai/claude-code
desde NPM:
Para ver el código fuente del SDK de TypeScript, visita la página de @anthropic-ai/claude-code
en NPM.
Uso básico
La interfaz principal a través del SDK de TypeScript es la función query
, que devuelve un iterador asíncrono que transmite mensajes a medida que llegan:
Opciones de configuración
Argumento | Tipo | Descripción | Por defecto |
---|---|---|---|
abortController | AbortController | Controlador de aborto para cancelar operaciones | new AbortController() |
additionalDirectories | string[] | Directorios adicionales para incluir en la sesión | undefined |
allowedTools | string[] | Lista de herramientas que Claude puede usar | Todas las herramientas habilitadas por defecto |
appendSystemPrompt | string | Texto para agregar al prompt del sistema por defecto | undefined |
canUseTool | CanUseTool | Función de permisos personalizada para el uso de herramientas | undefined |
continue | boolean | Continuar la sesión más reciente | false |
customSystemPrompt | string | Reemplazar completamente el prompt del sistema por defecto | undefined |
cwd | string | Directorio de trabajo actual | process.cwd() |
disallowedTools | string[] | Lista de herramientas que Claude no puede usar | undefined |
env | Dict<string> | Variables de entorno a establecer | undefined |
executable | 'bun' | 'deno' | 'node' | Qué runtime de JavaScript usar | node cuando se ejecuta con Node.js, bun cuando se ejecuta con Bun |
executableArgs | string[] | Argumentos para pasar al ejecutable | [] |
fallbackModel | string | Modelo a usar si el modelo principal falla | undefined |
maxThinkingTokens | number | Tokens máximos para el proceso de pensamiento de Claude | undefined |
maxTurns | number | Número máximo de turnos de conversación | undefined |
mcpServers | Record<string, McpServerConfig> | Configuraciones de servidor MCP | undefined |
model | string | Modelo de Claude a usar | Usa el por defecto de la configuración CLI |
pathToClaudeCodeExecutable | string | Ruta al ejecutable de Claude Code | Ejecutable que viene con @anthropic-ai/claude-code |
permissionMode | PermissionMode | Modo de permisos para la sesión | "default" (opciones: "default" , "acceptEdits" , "bypassPermissions" , "plan" ) |
permissionPromptToolName | string | Nombre de la herramienta MCP para prompts de permisos | undefined |
resume | string | ID de sesión a reanudar | undefined |
stderr | (data: string) => void | Callback para salida stderr | undefined |
strictMcpConfig | boolean | Aplicar validación estricta de configuración MCP | undefined |
Conversaciones de múltiples turnos
Para conversaciones de múltiples turnos, tienes dos opciones.
Puedes generar respuestas y reanudarlas, o puedes usar el modo de entrada de streaming que acepta un async/generator para un array de mensajes. Por ahora, el modo de entrada de streaming es la única forma de adjuntar imágenes a través de mensajes.
Reanudar con gestión de sesiones
Modo de entrada de streaming
El modo de entrada de streaming te permite proporcionar mensajes como un iterable asíncrono en lugar de una sola cadena. Esto habilita conversaciones de múltiples turnos, adjuntos de imágenes y generación dinámica de mensajes:
Entrada de streaming con imágenes
El modo de entrada de streaming es la única forma de adjuntar imágenes a través de mensajes:
Prompts de sistema personalizados
Los prompts de sistema definen el rol, experiencia y comportamiento de tu agente:
Herramientas personalizadas vía MCP
El Protocolo de Contexto de Modelo (MCP) te permite dar a tus agentes herramientas y capacidades personalizadas:
Herramientas personalizadas usando MCPs
Puedes implementar herramientas personalizadas usando MCPs, por ejemplo aquí está cómo puedes crear una herramienta de manejo de permisos personalizada.
Formatos de salida
Salida de texto (por defecto)
Salida JSON
Formatos de entrada
Ejemplos de integración de agentes
Agente de respuesta a incidentes SRE
Revisión de seguridad automatizada
Asistente legal de múltiples turnos
Esquema de mensajes
Los mensajes devueltos por la API JSON están estrictamente tipados según el siguiente esquema:
Tipos de soporte adicionales:
Los tipos Message
, MessageParam
y Usage
están disponibles en el SDK de TypeScript de Anthropic.
Recursos relacionados
- Uso y controles de CLI - Documentación completa de CLI
- Integración con GitHub Actions - Automatiza tu flujo de trabajo de GitHub con Claude
- Flujos de trabajo comunes - Guías paso a paso para casos de uso comunes