Hoy vamos a ver qué tipos de agentes IA están disponibles con LangChain.

🧠 1. ZERO_SHOT_REACT_DESCRIPTION
➡️ Es el más usado.
Qué hace:
El LLM decide qué herramienta usar en cada paso basándose solo en la descripción textual de las herramientas.
No necesita ejemplos ni ejemplos previos.
Ideal para:
- Casos generales.
- Cuando las herramientas están bien descritas.
- Prototipos rápidos de agentes.
Ejemplo de uso típico:
agent = initialize_agent(
tools=mis_tools,
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
🔍 2. REACT_DOCSTORE
Qué hace:
El agente puede razonar sobre documentos y hacer búsquedas paso a paso dentro de una base documental (docstore).
Ideal para:
- Agentes de recuperación de información.
- Preguntas sobre un corpus o documentación.
Ejemplo:
from langchain.docstore import InMemoryDocstore
docstore = InMemoryDocstore({})
agent = initialize_agent(
tools=mis_tools,
llm=llm,
agent_type=AgentType.REACT_DOCSTORE,
docstore=docstore
)
📚 3. SELF_ASK_WITH_SEARCH
Qué hace:
Descompone preguntas complejas en subpreguntas y usa una herramienta (como Google Search o DuckDuckGo) para responderlas una a una.
Ideal para:
- Preguntas de conocimiento general.
- Casos donde el modelo necesita buscar hechos o datos recientes.
Ejemplo:
agent = initialize_agent(
tools=search_tools,
llm=llm,
agent_type=AgentType.SELF_ASK_WITH_SEARCH,
verbose=True
)
🧩 4. STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION
Qué hace:
Similar a ZERO_SHOT_REACT_DESCRIPTION, pero las herramientas tienen entradas estructuradas (inputs tipados) y el agente puede razonar de forma más organizada.
Ideal para:
- Aplicaciones con varias herramientas con argumentos específicos.
- APIs complejas o agentes modulares.
Ejemplo:
agent = initialize_agent(
tools=mis_tools,
llm=llm,
agent_type=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
⚙️ 5. OPENAI_FUNCTIONS o TOOL_CALLING
Qué hace:
Usa el sistema de function calling (llamadas a funciones), como el de OpenAI o Anthropic, para elegir herramientas de forma determinista y eficiente.
Ideal para:
- Agentes que deben ejecutar herramientas de forma controlada.
- Integraciones tipo API (ej. agentes de backend).
Ejemplo:
agent = initialize_agent(
tools=mis_tools,
llm=llm,
agent_type=AgentType.OPENAI_FUNCTIONS,
verbose=True
)
💬 6. CHAT_ZERO_SHOT_REACT_DESCRIPTION
Qué hace:
Versión conversacional del Zero-Shot normal.
Mantiene el contexto del chat mientras usa herramientas.
Ideal para:
- Chatbots con herramientas.
- Agentes tipo asistente.
Ejemplo:
agent = initialize_agent(
tools=mis_tools,
llm=llm,
agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
🚀 Otros más avanzados
PLAN_AND_EXECUTE: planifica un conjunto de pasos y los ejecuta en secuencia.CONVERSATIONAL_REACT_DESCRIPTION: especializado para chats prolongados con memoria.MRKL: combina razonamiento + uso de herramientas.BABYAGIoAUTOGPT: agentes autónomos (ya no están en el núcleo, pero se pueden montar con LangChain).

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.