LangChain Agent API
Parámetros completos de create_agent()
| Parámetros | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| model | str o BaseChatModel | Ninguno (obligatorio) | Modelo de lenguaje |
| tools | Sequence o None | None | Lista de herramientas. Soporta funciones @tool, modelos Pydantic, dict |
| system_prompt | str o SystemMessage o None | None | Prompt del sistema |
| middleware | Sequence[AgentMiddleware] | () | Lista de middleware |
| response_format | ResponseFormat o type o dict o None | None | Configuración de salida estructurada |
| state_schema | type[AgentState] o None | None | Estructura de estado personalizada |
| context_schema | type o None | None | Estructura de contexto de ejecución |
| checkpointer | Checkpointer o None | None | Persistencia de la conversación |
| store | BaseStore o None | None | Almacenamiento entre sesiones |
| interrupt_before | list[str] o None | None | Pausar antes de estos nodos |
| interrupt_after | list[str] o None | None | Pausar después de estos nodos |
| debug | bool | False | Si se muestran registros detallados |
| name | str o None | None | Nombre del Agente |
| cache | BaseCache o None | None | Configuración de caché |
Métodos de CompiledStateGraph
| Método | Descripción |
|---|---|
| invoke(input, config=None) | Ejecución síncrona, devuelve el estado final |
| ainvoke(input, config=None) | Ejecución asíncrona, devuelve el estado final |
| stream(input, config=None, stream_mode="updates") | Ejecución síncrona en streaming |
| astream(input, config=None, stream_mode="updates") | Ejecución asíncrona en streaming |
| get_state(config) | Obtener una instantánea del estado actual |
| update_state(config, values) | Actualizar el estado manualmente |
Estructura de AgentState
| Campo | Tipo | ¿Requerido? | Descripción |
|---|---|---|---|
| messages | list[AnyMessage] | Sí | Historial de mensajes (reductor add_messages) |
| jump_to | "tools", "model", "end" o None | no | Salto de flujo (efímero) |
| structured_response | Any | no | Resultado de salida estructurada (OmitFromInput) |
Ejemplos de uso común
Ejemplo
from langchain.agents import create_agent
# Uso básico
agent = create_agent(model="deepseek:deepseek-v4-flash", tools=[tool1, tool2])
result = agent.invoke({"messages": [HumanMessage(content="Hola")]})
# Configuración completa
agent = create_agent(
model="deepseek:deepseek-v4-flash",
tools=[tool1, tool2],
system_prompt="Eres un asistente.",
middleware=[my_middleware],
response_format=MySchema,
checkpointer=checkpointer,
store=store,
name="my_agent",
)
# Ejecución en streaming
for chunk in agent.stream(inputs, stream_mode="updates"):
print(chunk)
# Obtener estado
state = agent.get_state({"configurable": {"thread_id": "1"}})
# Uso básico
agent = create_agent(model="deepseek:deepseek-v4-flash", tools=[tool1, tool2])
result = agent.invoke({"messages": [HumanMessage(content="Hola")]})
# Configuración completa
agent = create_agent(
model="deepseek:deepseek-v4-flash",
tools=[tool1, tool2],
system_prompt="Eres un asistente.",
middleware=[my_middleware],
response_format=MySchema,
checkpointer=checkpointer,
store=store,
name="my_agent",
)
# Ejecución en streaming
for chunk in agent.stream(inputs, stream_mode="updates"):
print(chunk)
# Obtener estado
state = agent.get_state({"configurable": {"thread_id": "1"}})