SDK de Claude Code
(docs.anthropic.com)- El Claude Agent SDK permite controlar desde código Python y TypeScript la ejecución de herramientas, el bucle del agente y la gestión de contexto de Claude Code, para automatizar lectura de archivos, ejecución de comandos, búsquedas web y edición de código
- Ofrece como herramientas integradas Read, Write, Edit, Bash, Monitor, Glob, Grep, WebSearch, WebFetch, AskUserQuestion, por lo que puede cubrir desde la exploración del codebase hasta preguntas de confirmación al usuario sin una capa de ejecución separada
- Al combinar hooks, subagentes, MCP, permisos y sesiones, se pueden crear configuraciones como registros de auditoría de cambios en archivos, subagentes dedicados a revisión de código, automatización de navegador basada en Playwright y agentes de análisis en modo solo lectura
- La instalación se hace con
@anthropic-ai/claude-agent-sdkoclaude-agent-sdk; Python requiere 3.10 o superior, y el SDK de TypeScript incluye como dependencia opcional un binario nativo de Claude Code para la plataforma - A diferencia del Anthropic Client SDK, donde se implementa directamente el bucle de herramientas, el Agent SDK ofrece ejecución integrada de herramientas y se ejecuta en el proceso e infraestructura del usuario, no en la infraestructura de Anthropic como Managed Agents
Alcance del Claude Agent SDK
- El Claude Agent SDK permite usar desde Python y TypeScript las herramientas, el bucle del agente y la gestión de contexto que impulsan Claude Code
- El agente puede leer archivos, ejecutar comandos, buscar en la web y editar código
- Incluye ejecución integrada de herramientas, así que el usuario no necesita construir por su cuenta una capa separada de ejecución para que el agente empiece a trabajar
- El ejemplo básico permite las herramientas
Read,EdityBashpara encontrar y corregir un bug enauth.py
Instalación y flujo de autenticación
- Se instala mediante paquetes según el lenguaje
- TypeScript:
npm install @anthropic-ai/claude-agent-sdk - Python:
pip install claude-agent-sdk
- TypeScript:
- El paquete de Python requiere Python 3.10 o superior
- Si aparece el error
No matching distribution found for claude-agent-sdk, es posible que el intérprete sea anterior a la versión 3.10 - En macOS o Linux se verifica con
python3 --version, y en Windows conpy --version
- Si aparece el error
- El SDK de TypeScript incluye como dependencia opcional un binario nativo de Claude Code para la plataforma, por lo que no hace falta instalar Claude Code por separado
- La API key se obtiene en Console y se configura en la variable de entorno
ANTHROPIC_API_KEY - También se admite autenticación con proveedores de API de terceros
- Amazon Bedrock: configurar
CLAUDE_CODE_USE_BEDROCK=1y luego las credenciales de AWS - Claude Platform on AWS: configurar
CLAUDE_CODE_USE_ANTHROPIC_AWS=1,ANTHROPIC_AWS_WORKSPACE_IDy luego las credenciales de AWS - Google Vertex AI: configurar
CLAUDE_CODE_USE_VERTEX=1y luego las credenciales de Google Cloud - Microsoft Azure: configurar
CLAUDE_CODE_USE_FOUNDRY=1y luego las credenciales de Azure
- Amazon Bedrock: configurar
- Anthropic no permite que desarrolladores externos ofrezcan inicio de sesión con
claude.aini rate limits para productos basados en Claude Agent SDK sin aprobación previa
Herramientas base y funciones del agente
- El SDK permite manejar desde código las capacidades principales de Claude Code
- herramientas integradas
- hooks
- subagentes
- MCP
- permisos
- sesiones
- Las principales herramientas integradas cumplen estas funciones
Read: leer archivos dentro del directorio de trabajoWrite: crear archivos nuevosEdit: aplicar ediciones precisas a archivos existentesBash: ejecutar comandos de terminal, scripts y tareas de gitMonitor: supervisar scripts en segundo plano y reaccionar con eventos a cada línea de salidaGlob: buscar archivos con patrones como**/*.ts,src/**/*.pyGrep: buscar contenido dentro de archivos mediante expresiones regularesWebSearch: buscar información reciente en la webWebFetch: obtener y analizar contenido de páginas webAskUserQuestion: hacer preguntas de confirmación al usuario con opciones múltiples
- El agente de ejemplo permite
Read,GlobyGreppara encontrar y resumir comentarios TODO dentro del codebase
Hooks, subagentes y MCP
- Los hooks ejecutan código del usuario en puntos clave del ciclo de vida del agente
- Con funciones callback se puede validar, registrar, bloquear o transformar el comportamiento del agente
- Entre los hooks disponibles están
PreToolUse,PostToolUse,Stop,SessionStart,SessionEnd,UserPromptSubmity otros - El ejemplo detecta operaciones
Edit|WriteenPostToolUsey registra cambios de archivos enaudit.log
- Los subagentes son agentes especializados que manejan subtareas enfocadas
- El agente principal delega la tarea y el subagente devuelve el resultado
- Los agentes personalizados se definen con descripción, prompt y herramientas a usar
- Las llamadas a subagentes se realizan mediante la herramienta
Agent, por lo que para aprobación automática hay que incluirAgentenallowedTools - Los mensajes dentro del contexto del subagente incluyen el campo
parent_tool_use_idpara rastrear a qué ejecución de subagente pertenecen
- Con Model Context Protocol (MCP) se puede conectar con sistemas externos como bases de datos, navegadores y APIs
- En la lista de servidores de Model Context Protocol se pueden revisar servidores relacionados
- El ejemplo conecta Playwright MCP server para dar al agente capacidades de automatización de navegador
Gestión de permisos y sesiones
- La configuración de permisos limita qué herramientas puede usar el agente
- Se pueden permitir tareas seguras, bloquear tareas riesgosas y exigir aprobación para acciones sensibles
- El ejemplo preaprueba solo
Read,GlobyGreppara crear un agente de solo lectura que analiza código sin modificarlo
- La herramienta
AskUserQuestiony los prompts de aprobación interactiva se usan junto con el flujo de manejo de entrada del usuario - Las sesiones mantienen el contexto a lo largo de múltiples intercambios
- Claude recuerda los archivos leídos, el análisis realizado y el historial de conversación
- Después se puede reanudar la misma sesión o bifurcarla para explorar otro enfoque
- El ejemplo obtiene un
session_iden la primera consulta y en la segunda continúa el mismo contexto conresume=session_id
Soporte de configuración de Claude Code
- El SDK admite la configuración basada en filesystem de Claude Code
- Con las opciones predeterminadas carga configuración desde
.claude/en el directorio de trabajo y desde~/.claude/ - Para limitar las fuentes de configuración que se cargarán, se usa la opción
setting_sourcesen Python ysettingSourcesen TypeScript - Las funciones y ubicaciones compatibles son las siguientes
- Skills: capacidades especializadas que Claude usa automáticamente o invoca con
/name, en.claude/skills/*/SKILL.md - Commands: comandos personalizados en formato heredado, en
.claude/commands/*.md - Memory: contexto e instrucciones del proyecto, en
CLAUDE.mdo.claude/CLAUDE.md - Plugins: amplían skills, agentes, hooks y servidores MCP; se configuran por programación con la opción
plugins
- Skills: capacidades especializadas que Claude usa automáticamente o invoca con
Diferencias frente a otras herramientas de Claude
- El Anthropic Client SDK ofrece acceso directo a la API, y el usuario envía prompts e implementa por su cuenta la ejecución de herramientas
- En el Agent SDK, Claude se encarga de procesar las herramientas de forma autónoma
- En el Client SDK, el usuario implementa el bucle de herramientas
- El Agent SDK ofrece a Claude ejecución integrada de herramientas
- Los criterios de elección según el caso de uso son los siguientes
- desarrollo interactivo: CLI
- pipelines de CI/CD: SDK
- aplicaciones personalizadas: SDK
- tareas puntuales: CLI
- automatización en producción: SDK
- Muchos equipos usan la CLI para el desarrollo diario y el SDK en producción, y los workflows se pueden mover directamente entre ambos
- Managed Agents es una REST API alojada donde Anthropic ejecuta agentes y sandboxes
- El Agent SDK es una librería que ejecuta el bucle del agente dentro del proceso del usuario
- lugar de ejecución: Agent SDK corre en el proceso e infraestructura del usuario; Managed Agents en infraestructura administrada por Anthropic
- interfaz: Agent SDK es una librería de Python o TypeScript; Managed Agents es una REST API
- objetivo de trabajo: Agent SDK opera sobre archivos de la infraestructura del usuario; Managed Agents sobre un sandbox administrado por sesión
- estado de sesión: Agent SDK usa JSONL en el filesystem; Managed Agents usan registros de eventos alojados por Anthropic
- herramientas personalizadas: Agent SDK usa funciones de Python o TypeScript dentro del proceso; en Managed Agents Claude activa herramientas y el usuario devuelve el resultado de ejecución
- casos adecuados: Agent SDK para prototipos locales y agentes con acceso directo al filesystem y servicios; Managed Agents para agentes de producción sin operar sandbox o infraestructura de sesiones, y para sesiones largas o asíncronas
- Un camino común es crear primero un prototipo local con Agent SDK y luego migrarlo a Managed Agents en producción
Registro de cambios, reporte de bugs y branding
- Las actualizaciones del SDK, correcciones de bugs y nuevas funciones se revisan en el changelog de cada repositorio
- SDK de TypeScript: CHANGELOG.md
- SDK de Python: CHANGELOG.md
- Los bugs o issues se reportan en GitHub
- SDK de TypeScript: GitHub issues
- SDK de Python: GitHub issues
- Cuando un partner integra Claude Agent SDK, el uso del branding de Claude es opcional
- permitido: “Claude Agent”, “Claude”, “Powered by Claude”
- prohibido: “Claude Code”, “Claude Code Agent”, arte ASCII de la marca Claude Code o elementos visuales que imiten Claude Code
- El producto debe mantener su propio branding y no debe verse como si fuera Claude Code o un producto de Anthropic
- El uso de Claude Agent SDK está sujeto a los Anthropic’s Commercial Terms of Service
- salvo cuando un componente o dependencia específica indique otra licencia en el archivo LICENSE correspondiente
1 comentarios
Opiniones en Hacker News
La dirección a la que apunta Claude Code coincide exactamente con lo que quiero en una herramienta de programación agéntica, y también me gusta su filosofía tipo “herramienta Unix”
La he usado desde el inicio de la vista previa pública y ya se veía hacia dónde iba. Creo que el estado final ideal de un agente de código es que le des una solicitud de funcionalidad, como un ticket de Jira, la revise y te genere un PR para dar feedback. En ese sentido, herramientas centradas en editores locales como Cursor o Windsurf se acercan a un callejón sin salida porque no pueden ejecutarse dentro de CI. Si vas a acondicionar el codebase para la IA con reglas, MCP y demás, entonces deberías apuntar a tecnología que también pueda usarse en modo headless. Claude Code se puede usar fácilmente como parte de la automatización mediante herramientas, así que ahora se volvió mi opción por defecto cuando pienso en agentes de código, y el paquete npm de Codex es parecido. Dicho eso, trabajo ayudando a empresas a adaptar sus codebases para el uso de agentes, así que quizá tengo sesgo hacia herramientas fáciles de configurar
Espero una forma de trabajo completamente conversacional, donde en el 99% de los casos no haga falta tocar el teclado
Si imaginas pagar dinero cada vez que ejecutas comandos como
ls,psokillen la terminal, no tiene sentido. Con los LLM pasa lo mismo. No digo que haya que prohibir los LLM propietarios, pero la herramienta principal de los hackers, como antes, debería ser libre y de código abiertoTambién lo probé con Claude, pero consumí el límite muy rápido. Solo alrededor del 25% de los PR quedan en un nivel de “listo para fusionar” de inmediato, y muchas veces es más rápido hacerlo bien uno mismo que perder tiempo buscando dónde metió la pata la IA
Claude Code es la forma que más me gusta de usar LLM para programar
Pero creo que lo que de verdad hace falta es una versión de código abierto donde puedas conectar cualquier modelo y comparar respuestas entre varios. Aider y otras alternativas no se sienten tan agradables de usar como Claude Code. Desde la perspectiva de Anthropic no lo querrían porque perderían su foso competitivo, pero desde la del consumidor uno solo quiere usar el mejor modelo sin quedar atado a un ecosistema específico. Probablemente ese sea justo el punto que más temen los proveedores de modelos LLM
Por ahora no es tan bueno como Claude Code, pero parece que lo alcanzará pronto. https://github.com/openai/codex/tree/main
Sigue en desarrollo, pero se ve prometedor
Aider ha soportado Python y scripting de shell desde hace mucho tiempo [0]
Recientemente, mientras añadían soporte para 130 lenguajes de programación nuevos, también hicieron un screencast usando Aider para scripting Bash improvisado [1]. Da una idea de lo potente que puede ser este enfoque.
[0] https://aider.chat/docs/scripting.html
[1] https://aider.chat/docs/recordings/tree-sitter-language-pack...
Entonces podrás usar el modelo en el que confíes para desarrollar de principio a fin mediante PR, tickets y demás
Tampoco me entusiasma mucho que haga commits; sobre todo me gusta cómo se siente usar Claude Code
Algo como agregar solo un archivo al repositorio para poder conversar con cualquier modelo a través de issues
El equipo de Claude Code lo cubrió con más detalle aquí: http://latent.space/p/claude-code
Basta con hojear la transcripción, pero personalmente me impresionó que empleados de Anthropic, incluso usando Claude ilimitado, gasten en promedio alrededor de 6 dólares al día; que vean Claude Code headless como una utilidad de “Linux” para usar en CI en cualquier parte; que lo vean como una plataforma extensible por el usuario; que sandboxing, branching y funciones de planificación estén en la hoja de ruta futura; y que consideren Sonnet 3.7 como un modelo de agente persistente
Me da curiosidad cuánto serán el P50, P75 y P95 del gasto por empleado
Es demasiado caro para proyectos personales, así que dejé de usarlo
Sorprende que, mientras han hecho crecer varios negocios en el último medio año o últimos años, la cantidad y el valor de su trabajo público sigan aumentando. Ojalá otros también pudieran encontrar una curva de productividad parecida. Más o menos comparten qué les funciona, pero no es fácil de replicar. Me vienen a la mente simonw y gwern
Si yo hiciera un asistente de código con IA, atarme a un proveedor de modelos base sería lo último que haría
Para que este producto tenga éxito, hace falta asumir que el rendimiento de los modelos ya entró en una meseta, que todos los modelos base convergerán a casi el mismo rendimiento y capacidades, y que los integradores elegirán por pequeñas comodidades como un SDK familiar
Se puede cambiar por otra cosa o ponerle un wrapper. Aquí no hay tanta complejidad
Estoy construyendo algo relacionado con asistentes de código con IA, y estaba hackeando maneras de integrar Claude Code. Es lo primero sobre lo que queríamos construir. Es demasiado pronto para preocuparse por el lock-in; necesitamos lo mejor, así que construiríamos solo alrededor de lo mejor
Claude Code ya podía usarse en modo no conversacional, y por lo tanto integrarse en otras apps como cualquier otra utilidad de línea de comandos de Unix
Este SDK parece soportar por ahora solo el uso por línea de comandos, así que ¿no es lo mismo que ya existía? No me queda claro qué es lo nuevo realmente. ¿Se me está escapando algo?
También recomiendo Codebuff(https://www.codebuff.com/). Es un excelente asistente de código por CLI similar a Claude Code y puede ahorrar bastante en costos de tokens
No tengo relación con este proyecto, solo soy usuario
En los términos dice que “no se puede usar para desarrollar productos o servicios que compitan con el servicio, para desarrollar o entrenar algoritmos o modelos de inteligencia artificial o aprendizaje automático, ni para revender el servicio”
Me pregunto qué demonios sería un producto o servicio de software que no compita con la inteligencia general. Están vendiendo inteligencia y, si se interpreta estrictamente, le están poniendo una cláusula legal de no usarlo en ninguna parte. ¿Es tan ambiguo que no se puede hacer cumplir? Si no se puede usar para competir con la inteligencia general, ¿entonces cómo se supone que uno posee los resultados? ¿Es una de esas cosas de “a nadie le importan los términos legales”? Si a nadie le importan, ¿por qué poner una prohibición tan amplia sobre el uso del servicio? Tengo demasiadas dudas sobre si de verdad se espera que uno acepte incluso la responsabilidad de perder una demanda para recibir este tipo de resultados
El lock-in del modelo sería una gran desventaja de uso. Si alguien saca el nuevo mejor modelo y tú ya invertiste en esta infraestructura, te quedas atrapado
Aunque después lo abran, es muy probable que ese modelo haya sido entrenado específicamente para ese CLI, así que puede que no funcione bien. Basta ver Codex CLI: se puede usar Gemini 2.5 Pro, pero comparado con los modelos de OpenAI, se detiene o falla al azar mucho más seguido
La nueva GitHub Action es exactamente la función que estaba buscando: https://docs.anthropic.com/en/docs/claude-code/github-action...
Pero no parece haber forma de usarlo con el plan Max de Claude Code. Por lo que veo, solo acepta API keys