Tipos de Agentes IA disponibles con LangChain

Tiempo de lectura: 2 minutos

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

Bicicleta - pexels

🧠 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.
  • BABYAGI o AUTOGPT: agentes autónomos (ya no están en el núcleo, pero se pueden montar con LangChain).

Deja un comentario