Lab AG01: Agentes con Claude SDK y Agno
Tiempo estimado: 45-60 minutos
Paso 1: Instalar dependencias
Instala los dos SDKs y configura tu API key:
pip install anthropic agno
Configura tu clave de API de Anthropic:
export ANTHROPIC_API_KEY="sk-ant-..."
Necesitas una cuenta en console.anthropic.com. El tier gratuito incluye creditos para empezar.
Paso 2: Construir agente con Claude SDK (~20 lineas)
Crea un fichero agent_claude.py con 3 tools: search_kb, create_ticket y send_notification.
import anthropic, json
client = anthropic.Anthropic()
tools = [
{"name": "search_kb", "description": "Busca en la base de conocimiento",
"input_schema": {"type": "object", "properties": {"query": {"type": "string"}}, "required": ["query"]}},
{"name": "create_ticket", "description": "Crea un ticket de soporte",
"input_schema": {"type": "object", "properties": {"title": {"type": "string"}, "priority": {"type": "string"}}, "required": ["title"]}},
{"name": "send_notification", "description": "Envia notificacion al equipo",
"input_schema": {"type": "object", "properties": {"message": {"type": "string"}}, "required": ["message"]}}
]
def handle_tool(name, input):
if name == "search_kb": return f"Resultado KB: documento sobre '{input['query']}' encontrado."
if name == "create_ticket": return f"Ticket '{input['title']}' creado (prioridad: {input.get('priority','media')})."
if name == "send_notification": return f"Notificacion enviada: {input['message']}"
def run(prompt):
messages = [{"role": "user", "content": prompt}]
while True:
resp = client.messages.create(model="claude-sonnet-4-20250514",
max_tokens=1024, tools=tools, messages=messages)
if resp.stop_reason == "tool_use":
tool_block = next(b for b in resp.content if b.type == "tool_use")
result = handle_tool(tool_block.name, tool_block.input)
messages.append({"role": "assistant", "content": resp.content})
messages.append({"role": "user", "content": [
{"type": "tool_result", "tool_use_id": tool_block.id, "content": result}]})
else:
return next(b.text for b in resp.content if hasattr(b, "text"))
# Prueba con 5 preguntas
print(run("Busca info sobre politica de devoluciones"))
Prueba con estas 5 preguntas:
- "Busca info sobre politica de devoluciones"
- "Crea un ticket urgente: servidor caido"
- "Notifica al equipo que el deploy esta listo"
- "Busca como resetear password y crea ticket si no hay doc"
- "Busca errores recientes, crea ticket y notifica al equipo"
Las preguntas 4 y 5 requieren que el agente encadene varias tools de forma autonoma. Observa como el loop while True maneja la secuencia.
Paso 3: Construir el mismo agente con Agno (~5 lineas)
Crea un fichero agent_agno.py con las mismas 3 tools:
from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.tools import tool
@tool
def search_kb(query: str) -> str:
"""Busca en la base de conocimiento."""
return f"Resultado KB: documento sobre '{query}' encontrado."
@tool
def create_ticket(title: str, priority: str = "media") -> str:
"""Crea un ticket de soporte."""
return f"Ticket '{title}' creado (prioridad: {priority})."
@tool
def send_notification(message: str) -> str:
"""Envia notificacion al equipo."""
return f"Notificacion enviada: {message}"
agent = Agent(
model=Claude(id="claude-sonnet-4-20250514"),
tools=[search_kb, create_ticket, send_notification],
markdown=True
)
# Prueba con las mismas 5 preguntas
agent.print_response("Busca info sobre politica de devoluciones")
Ejecuta las mismas 5 preguntas del Paso 2 y compara resultados.
Observa: el agente funcional se define en 5 lineas (Agent + model + tools). Agno abstrae el loop, el parsing de tools y el manejo de respuestas.
Paso 4: Escribe tu comparativa
Crea un documento con esta tabla comparativa basada en tu experiencia:
- Lineas de codigo: Claude SDK (~20) vs Agno (~5). Cuenta las tuyas.
- Facilidad: Cual fue mas rapido de poner en marcha.
- Control: Cual te da mas control sobre el loop y el manejo de errores.
- Multi-proveedor: Cambia
ClaudeporOpenAIen Agno. Funciona igual. - Decision: Para TU proyecto, cual usarias y por que.
No hay respuesta correcta. Claude SDK = mas control y estabilidad. Agno = mas velocidad y flexibilidad. La decision depende de tu caso de uso.
Checklist de entrega
- anthropic y agno instalados correctamente
- Agente Claude SDK funcionando con 3 tools
- Agente Agno funcionando con 3 tools
- 5 preguntas probadas en cada agente
- Comparativa escrita con decision justificada