Tu primer agente
El ejemplo mínimo de la documentación, completo:
from langchain.agents import create_agent
def get_weather(city: str) -> str:
"""Get weather for a given city."""
return f"It's always sunny in {city}!"
agent = create_agent(
model="claude-sonnet-4-6",
tools=[get_weather],
system_prompt="You are a helpful assistant",
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "What's the weather in San Francisco?"}]}
)
print(result["messages"][-1].content_blocks)
Hay cuatro cosas que vale la pena mirar despacio.
La herramienta es una función normal. get_weather no hereda de nada ni lleva decorador en este ejemplo: es una función de Python con tipos y docstring. Esa docstring no es documentación decorativa — es lo que describe la herramienta.
Las tres piezas se pasan como argumentos. model, tools y system_prompt. tools es una lista, así que agregar capacidades es agregar funciones a esa lista.
La entrada son mensajes. No un string suelto: un diccionario con messages, y cada mensaje con role y content.
La salida también son mensajes. Por eso la última línea toma result["messages"][-1]: el último mensaje de la conversación. Entre el primero y el último puede haber varios, incluidos los de las herramientas que el agente decidió usar.
Ese detalle es la mejor pista mental de lo que pasó adentro: el resultado no es una respuesta, es una conversación.