Python
Construye agentes de IA personalizados con el SDK de Python de Claude Code
Prerrequisitos
- Python 3.10+
claude-code-sdk
de PyPI- Node.js 18+
@anthropic-ai/claude-code
de NPM
Para ver el código fuente del SDK de Python, consulta el repositorio claude-code-sdk
.
Para desarrollo interactivo, usa IPython: pip install ipython
Instalación
Instala claude-code-sdk
de PyPI y @anthropic-ai/claude-code
de NPM:
(Opcional) Instala IPython para desarrollo interactivo:
Inicio rápido
Crea tu primer agente:
Guarda el código anterior como legal-agent.py
, luego ejecuta:
Para notebooks de IPython/Jupyter, puedes ejecutar el código directamente en una celda:
Los ejemplos de Python en esta página usan asyncio
, pero también puedes usar anyio
.
Uso básico
El SDK de Python proporciona dos interfaces principales:
1. La clase ClaudeSDKClient
(recomendada)
Mejor para respuestas en streaming, conversaciones multi-turno y aplicaciones interactivas:
2. La función query
Para consultas simples de una sola vez:
Opciones de configuración
El SDK de Python acepta todos los argumentos soportados por la línea de comandos a través de la clase ClaudeCodeOptions
.
Parámetros de ClaudeCodeOptions
Detalles de parámetros
system_prompt
:str | None
- Prompt del sistema personalizado que define el rol del agenteappend_system_prompt
:str | None
- Texto adicional agregado al prompt del sistemamax_turns
:int | None
- Máximo de turnos de conversación (ilimitado si es None)model
:str | None
- Modelo específico de Claude a usarmax_thinking_tokens
:int
- Máximo de tokens para el proceso de pensamiento de Claude (por defecto: 8000)allowed_tools
:list[str]
- Herramientas específicamente permitidas para usardisallowed_tools
:list[str]
- Herramientas que no deben usarsecontinue_conversation
:bool
- Continuar la conversación más reciente (por defecto: False)resume
:str | None
- UUID de sesión para reanudar conversación específicacwd
:str | Path | None
- Directorio de trabajo para la sesiónadd_dirs
:list[str | Path]
- Directorios adicionales para incluir en el contextosettings
:str | None
- Ruta al archivo de configuración o cadena JSON de configuraciónpermission_mode
:str | None
- Modo de manejo de permisospermission_prompt_tool_name
:str | None
- Nombre personalizado de la herramienta de prompt de permisosmcp_servers
:dict | str | Path
- Configuraciones del servidor MCPextra_args
:dict[str, str | None]
- Pasar flags CLI arbitrarios al CLI subyacente de Claude Code
Modos de permisos
"default"
: CLI solicita confirmación para herramientas peligrosas (comportamiento por defecto)"acceptEdits"
: Acepta automáticamente ediciones de archivos sin solicitar confirmación"plan"
: Modo Plan - analiza sin hacer cambios"bypassPermissions"
: Permite todas las herramientas sin solicitar confirmación (usar con precaución)
Ejemplo de configuración avanzada
Mensajes estructurados y entradas de imagen
El SDK soporta pasar mensajes estructurados y entradas de imagen:
Conversaciones multi-turno
Método 1: Usando ClaudeSDKClient para conversaciones persistentes
Prompts del sistema personalizados
Los prompts del 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:
Herramienta de prompt de permisos personalizada
Implementa manejo de permisos personalizado para llamadas de herramientas:
Formatos de salida
Salida de texto con streaming
Salida JSON con metadatos
Formatos de entrada
Ejemplos de integración de agentes
Agente de respuesta a incidentes SRE
Revisión de seguridad automatizada
Asistente legal multi-turno
Mejores prácticas específicas de Python
Patrones clave
Consejos para IPython/Jupyter
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