Construye agentes de IA personalizados con el Claude Code SDK
Instalar el SDK
@anthropic-ai/claude-code
desde NPM:Configurar tu clave API
ANTHROPIC_API_KEY
:Crear tu primer agente
Ejecutar el agente
@anthropic-ai/claude-code
desde NPMclaude
. Usa la bandera --print
(o -p
) para ejecutar en modo no interactivo e imprimir el resultado final:Bandera | Descripción | Ejemplo |
---|---|---|
--print , -p | Ejecutar en modo no interactivo | claude -p "consulta" |
--output-format | Especificar formato de salida (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Reanudar una conversación por ID de sesión | claude --resume abc123 |
--continue , -c | Continuar la conversación más reciente | claude --continue |
--verbose | Habilitar registro detallado | claude --verbose |
--append-system-prompt | Agregar al prompt del sistema (solo con --print ) | claude --append-system-prompt "Instrucción personalizada" |
--allowedTools | Lista separada por espacios de herramientas permitidas, o cadena de lista separada por comas de herramientas permitidas | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista separada por espacios de herramientas denegadas, o cadena de lista separada por comas de herramientas denegadas | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Cargar servidores MCP desde un archivo JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Herramienta MCP para manejar prompts de permisos (solo con --print ) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
, como se demuestra en el Inicio rápido.
CLAUDE_CODE_USE_BEDROCK=1
y configura las credenciales de AWSCLAUDE_CODE_USE_VERTEX=1
y configura las credenciales de Google Cloud--allowedTools
. Los nombres de herramientas MCP siguen el patrón mcp__<serverName>__<toolName>
donde:serverName
es la clave de tu archivo de configuración MCPtoolName
es la herramienta específica proporcionada por ese servidormcp__<serverName>
), todas las herramientas de ese servidor serán permitidas.Los patrones glob (por ejemplo, mcp__go*
) no son soportados.--permission-prompt-tool
para pasar una herramienta MCP que usaremos para verificar si el usuario otorga permisos al modelo para invocar una herramienta dada. Cuando el modelo invoca una herramienta sucede lo siguiente:
--allowedTools
y --disallowedTools
pasados al SDK; si uno de estos permite o deniega la llamada de herramienta, procedemos con la llamada de herramienta--permission-prompt-tool
--permission-prompt-tool
recibe el nombre de la herramienta y la entrada, y debe devolver una carga útil JSON-stringified con el resultado. La carga útil debe ser una de:
updatedInput
para decirle al modelo que el prompt de permisos mutó su entrada; de lo contrario, establece updatedInput
a la entrada original, como en el ejemplo anterior. Por ejemplo, si la herramienta muestra un diff de edición de archivo al usuario y le permite editar el diff manualmente, la herramienta de prompt de permisos debería devolver esa edición actualizada.init
inicial, seguido de una lista de mensajes de usuario y asistente, seguido de un mensaje de sistema result
final con estadísticas. Cada mensaje se emite como un objeto JSON separado.
Message
y MessageParam
están disponibles en los SDKs de Anthropic. Por ejemplo, consulta los SDKs de Anthropic para TypeScript y Python.
stdin
donde cada mensaje representa un turno del usuario. Esto permite múltiples turnos de una conversación sin relanzar el binario claude
y permite proporcionar orientación al modelo mientras está procesando una solicitud.
Cada mensaje es un objeto JSON ‘Mensaje de usuario’, siguiendo el mismo formato que el esquema de mensaje de salida. Los mensajes se formatean usando el formato jsonl donde cada línea de entrada es un objeto JSON completo. La entrada JSON en streaming requiere -p
y --output-format stream-json
.
Actualmente esto está limitado a mensajes de usuario solo de texto.