Cómo construir un agente autónomo con Claude Managed Agents: guía paso a paso
Construye un agente autónomo completo en Python usando la API gestionada de Anthropic: sin loop manual, sin sandbox propio, con sesiones persistentes y herramientas bash/web integradas.
Claude Managed Agents es la API gestionada de Anthropic que reemplaza el loop de agente que hoy construyes manualmente con LangChain, LangGraph o tu propio harness. En Cognitiva, agencia chilena de IA, lo usamos como referencia para equipos B2B que no quieren mantener infraestructura de agentes propia: con una sola llamada al SDK obtienes sandbox seguro, herramientas bash y web, sesiones con historial persistente y streaming de eventos en tiempo real. Este tutorial te guía paso a paso: al final tendrás un agente autónomo funcional en Python, corriendo en la nube de Anthropic, en menos de 60 minutos. No necesitas servidor propio, no necesitas administrar el loop de razonamiento ni los reintentos de herramientas; la API lo gestiona por ti. El ángulo clave es el ahorro de infraestructura: para un equipo técnico chileno de 2–4 personas, eliminar el harness propio significa no mantener colas, estados intermedios ni sandboxes propios; solo consumes la API y te enfocas en la lógica de negocio.
Qué es Claude Managed Agents y cuándo usarlo
Claude Managed Agents es la alternativa gestionada a la Messages API de Anthropic. Mientras la Messages API te da acceso directo al modelo con control total sobre el loop de razonamiento, Managed Agents entrega un harness preconfigurado que corre en infraestructura de Anthropic: sandbox seguro, herramientas integradas (bash, lectura/escritura de archivos, búsqueda web), compaction automática y caché de prompts.
Cuándo elegir Managed Agents sobre un loop propio
| Criterio | Messages API (loop propio) | Claude Managed Agents |
|---|---|---|
| Control del loop | Total | Gestionado por Anthropic |
| Infraestructura | Tú la administras | Anthropic la provee |
| Sandbox | Debes implementarlo | Incluido (cloud o self-hosted) |
| Herramientas integradas | Debes definirlas | Bash, archivos, web search |
| Sesiones persistentes | Debes implementarlas | Nativas |
| Ideal para | Fine-grained control | Tareas largas, equipos pequeños |
Elige Managed Agents cuando la tarea dura minutos u horas, necesitas un sandbox limpio por ejecución, tu equipo no quiere mantener su propio harness, o requieres sesiones con historial que persista entre interacciones.
Cuatro conceptos centrales
- Agent: define el modelo, el system prompt, las herramientas y los servidores MCP.
- Environment: configura dónde corre cada sesión (sandbox cloud de Anthropic o self-hosted en tu infraestructura).
- Session: instancia de ejecución que referencia un Agent y un Environment; mantiene historial y estado del filesystem.
- Events: mensajes que intercambias con el agente (turnos de usuario, resultados de herramientas, actualizaciones de estado) vía server-sent events (SSE).
Prerrequisitos
Antes de comenzar, asegúrate de tener una cuenta en Anthropic Console (platform.claude.com) con API key generada, Python 3.10+ instalado, y el SDK de Anthropic. El acceso a Managed Agents está habilitado por defecto en todas las cuentas API; la beta requiere el header managed-agents-2026-04-01, que el SDK aplica automáticamente.
Instala las dependencias
pip install anthropic
export ANTHROPIC_API_KEY="tu-api-key-aqui"El SDK establece el header beta en todos los endpoints de Managed Agents de forma automática; no necesitas configurarlo manualmente en cada llamada.
Paso 1: Crea tu agente
Un agente es un recurso reutilizable y versionado. Lo creas una vez y lo referencias por ID en cada sesión. El tipo de herramienta agent_toolset_20260401 activa el conjunto completo: bash, operaciones de archivo, búsqueda web y más.
from anthropic import Anthropic
client = Anthropic()
agent = client.beta.agents.create(
name="Agente de análisis",
model="claude-opus-4-8",
system="Eres un asistente técnico. Analiza archivos, ejecuta scripts y reporta resultados con precisión.",
tools=[
{"type": "agent_toolset_20260401"},
],
)
print("Agent ID:", agent.id)
print("Version:", agent.version)Guarda el valor de agent.id; lo necesitarás en cada sesión que inicies. Los agentes son versionados: cada modificación genera una nueva versión y puedes fijar sesiones a versiones específicas para rollouts controlados.
Paso 2: Crea el entorno (Environment)
El entorno define el sandbox donde corre el agente. En este tutorial usamos un sandbox cloud con red sin restricciones, necesario para búsqueda web. Si tienes requisitos de residencia de datos o compliance, puedes configurar un sandbox self-hosted en tu propia infraestructura.
environment = client.beta.environments.create(
name="entorno-analisis",
config={
"type": "cloud",
"networking": {"type": "unrestricted"},
},
)
print("Environment ID:", environment.id)Guarda también environment.id. Un mismo entorno puede reutilizarse en múltiples sesiones, o puedes crear entornos distintos por proyecto o cliente para aislar el contexto de ejecución.
Paso 3: Inicia una sesión y delega la tarea
Una sesión es la instancia de ejecución real. Crearla provisiona el sandbox; el trabajo no comienza hasta que envías el primer evento de usuario. El patrón correcto es abrir el stream primero y luego enviar el evento; el SDK gestiona el orden internamente.
Crea la sesión
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
title="Analisis de dependencias Python",
)
print("Session ID:", session.id)Abre el stream y envía el mensaje
with client.beta.sessions.events.stream(session.id) as stream:
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Crea un script Python que lea requirements.txt, detecte dependencias desactualizadas con pip list --outdated y guarde un reporte en outdated.txt",
},
],
},
],
)
for event in stream:
match event.type:
case "agent.message":
for block in event.content:
print(block.text, end="", flush=True)
case "agent.tool_use":
print("[Herramienta: " + event.name + "]")
case "session.status_idle":
print("\n[Agente termino]")
breakEl agente ejecuta el loop de razonamiento automáticamente: escribe el script, lo ejecuta con bash, lee el resultado y entrega el reporte — sin que tú administres ninguno de esos pasos internos.
Paso 4: Sesiones persistentes y reanudación
Una de las ventajas clave de Managed Agents frente a un loop manual es que el historial y el filesystem del sandbox persisten entre interacciones dentro de la misma sesión. Puedes pausar, esperar un evento externo, y reanudar sin perder el contexto.
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Ahora agrupa las dependencias desactualizadas por categoria de riesgo (major, minor, patch) y actualiza outdated.txt.",
},
],
},
],
)
with client.beta.sessions.events.stream(session.id) as stream:
for event in stream:
match event.type:
case "agent.message":
for block in event.content:
print(block.text, end="", flush=True)
case "session.status_idle":
print("\n[Segunda tarea completada]")
breakEl agente recuerda el contexto anterior y el archivo outdated.txt ya existe en el sandbox. No necesitas recargar contexto ni reenviar archivos; la sesión es la unidad de persistencia.
Paso 5: Conectar servidores MCP
Para integrar herramientas externas (bases de datos, CRMs, APIs propias), puedes conectar servidores MCP al agente. MCP (Model Context Protocol) es el estándar de Anthropic para extensión de herramientas y funciona con cualquier servidor accesible vía URL.
agent_con_mcp = client.beta.agents.create(
name="Agente con CRM",
model="claude-opus-4-8",
system="Eres un asistente de ventas. Usa las herramientas disponibles para consultar y actualizar el CRM.",
tools=[
{"type": "agent_toolset_20260401"},
],
mcp_servers=[
{
"type": "url",
"url": "https://mi-mcp-server.ejemplo.com/sse",
"name": "crm-interno",
}
],
)Si el servidor MCP requiere autenticación OAuth, usa vault_ids al crear la sesión para referenciar credenciales almacenadas; Anthropic gestiona el refresco de tokens automáticamente.
Checklist de validación antes de producción
Antes de desplegar un agente en producción, valida estos puntos del Framework de Validación de Agentes Managed que usamos en Cognitiva:
- API key en variable de entorno (ANTHROPIC_API_KEY), nunca hardcodeada en el código.
- agent.id almacenado persistentemente; no recrees el agente en cada ejecución.
- Manejo del evento session.status_idle para detectar finalización correctamente.
- Control de errores HTTP (rate limits, timeouts de sandbox) con try/except.
- Networking del entorno acorde al caso: unrestricted solo si necesitas web; restricted para procesar datos sensibles sin salida a internet.
- Sesiones archivadas o eliminadas cuando ya no se necesitan (gestión de costos).
- Sin datos de producción real en el sandbox si la organización requiere Zero Data Retention (Managed Agents no es elegible para ZDR por diseño).
- Timeouts de stream definidos en el cliente para tareas de larga duración.
Este checklist es el punto de partida; cada caso de uso puede requerir controles adicionales según la sensibilidad de los datos y los requisitos de compliance de la organización.
Preguntas frecuentes
Da el siguiente paso
Hablemos
Cuéntanos sobre tu negocio. Respondemos en 24 horas.
Otros canales
Escríbenos por WhatsApp o agenda una llamada de 30 minutos.