!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())

[Skip to main content](#__docusaurus_skipToContent_fallback)

LangChain v0.2 is coming soon! Preview the new docs [here](/v0.2/docs/introduction/).

[

![🦜️🔗 Langchain](/v0.1/img/brand/wordmark.png)![🦜️🔗 Langchain](/v0.1/img/brand/wordmark-dark.png)

](/v0.1/)[Docs](/v0.1/docs/get_started/introduction/)[Use cases](/v0.1/docs/use_cases/)[Integrations](/v0.1/docs/integrations/platforms/)[API Reference](https://api.js.langchain.com)

[More](#)

*   [People](/v0.1/docs/people/)
*   [Community](/v0.1/docs/community/)
*   [Tutorials](/v0.1/docs/additional_resources/tutorials/)
*   [Contributing](/v0.1/docs/contributing/)

[v0.1](#)

*   [v0.2](https://js.langchain.com/v0.2/docs/introduction)
*   [v0.1](/v0.1/docs/get_started/introduction/)

[🦜🔗](#)

*   [LangSmith](https://smith.langchain.com)
*   [LangSmith Docs](https://docs.smith.langchain.com)
*   [LangChain Hub](https://smith.langchain.com/hub)
*   [LangServe](https://github.com/langchain-ai/langserve)
*   [Python Docs](https://python.langchain.com/)

[Chat](https://chatjs.langchain.com)[](https://github.com/langchain-ai/langchainjs)

Search

*   [Get started](/v0.1/docs/get_started/)
    
    *   [Introduction](/v0.1/docs/get_started/introduction/)
    *   [Installation](/v0.1/docs/get_started/installation/)
    *   [Quickstart](/v0.1/docs/get_started/quickstart/)
*   [LangChain Expression Language](/v0.1/docs/expression_language/)
    
    *   [Get started](/v0.1/docs/expression_language/get_started/)
    *   [Why use LCEL?](/v0.1/docs/expression_language/why/)
    *   [Interface](/v0.1/docs/expression_language/interface/)
    *   [Streaming](/v0.1/docs/expression_language/streaming/)
    *   [How to](/v0.1/docs/expression_language/how_to/routing/)
        
    *   [Cookbook](/v0.1/docs/expression_language/cookbook/)
        
    *   [LangChain Expression Language (LCEL)](/v0.1/docs/expression_language/)
*   [Modules](/v0.1/docs/modules/)
    
    *   [Model I/O](/v0.1/docs/modules/model_io/)
        
    *   [Retrieval](/v0.1/docs/modules/data_connection/)
        
    *   [Chains](/v0.1/docs/modules/chains/)
    *   [Agents](/v0.1/docs/modules/agents/)
        
        *   [Quick start](/v0.1/docs/modules/agents/quick_start/)
        *   [Concepts](/v0.1/docs/modules/agents/concepts/)
        *   [Agent Types](/v0.1/docs/modules/agents/agent_types/)
            
            *   [Tool calling](/v0.1/docs/modules/agents/agent_types/tool_calling/)
            *   [OpenAI tools](/v0.1/docs/modules/agents/agent_types/openai_tools_agent/)
            *   [OpenAI functions](/v0.1/docs/modules/agents/agent_types/openai_functions_agent/)
            *   [XML Agent](/v0.1/docs/modules/agents/agent_types/xml/)
            *   [Conversational](/v0.1/docs/modules/agents/agent_types/chat_conversation_agent/)
            *   [OpenAI Assistant](/v0.1/docs/modules/agents/agent_types/openai_assistant/)
            *   [Plan and execute](/v0.1/docs/modules/agents/agent_types/plan_and_execute/)
            *   [ReAct](/v0.1/docs/modules/agents/agent_types/react/)
            *   [Structured chat](/v0.1/docs/modules/agents/agent_types/structured_chat/)
            *   [XML Agent](/v0.1/docs/modules/agents/agent_types/xml_legacy/)
        *   [How-to](/v0.1/docs/modules/agents/how_to/custom_agent/)
            
        *   [Agents](/v0.1/docs/modules/agents/)
        *   [Tools](/v0.1/docs/modules/agents/tools/)
            
    *   [More](/v0.1/docs/modules/memory/)
        
*   [Security](/v0.1/docs/security/)
*   [Guides](/v0.1/docs/guides/)
    
*   [Ecosystem](/v0.1/docs/ecosystem/)
    
*   [LangGraph](/v0.1/docs/langgraph/)
*   * * *
    

*   [](/v0.1/)
*   [Modules](/v0.1/docs/modules/)
*   [Agents](/v0.1/docs/modules/agents/)
*   Agent Types

Agent Types
===========

This categorizes all the available agents along a few dimensions.

**Intended Model Type**

Whether this agent is intended for Chat Models (takes in messages, outputs message) or LLMs (takes in string, outputs string). The main thing this affects is the prompting strategy used. You can use an agent with a different type of model than it is intended for, but it likely won't produce results of the same quality.

**Supports Chat History**

Whether or not these agent types support chat history. If it does, that means it can be used as a chatbot. If it does not, then that means it's more suited for single tasks. Supporting chat history generally requires better models, so earlier agent types aimed at worse models may not support it.

**Supports Multi-Input Tools**

Whether or not these agent types support tools with multiple inputs. If a tool only requires a single input, it is generally easier for an LLM to know how to invoke it. Therefore, several earlier agent types aimed at worse models may not support them.

**Supports Parallel Function Calling**

Having an LLM call multiple tools at the same time can greatly speed up agents whether there are tasks that are assisted by doing so. However, it is much more challenging for LLMs to do this, so some agent types do not support this.

**Required Model Params**

Whether this agent requires the model to support any additional parameters. Some agent types take advantage of things like OpenAI function calling, which require other model parameters. If none are required, then that means that everything is done via prompting.

**When to Use**

Our commentary on when you should consider using this agent type.

Agent Type

Intended Model Type

Supports Chat History

Supports Multi-Input Tools

Supports Parallel Function Calling

Required Model Params

When to Use

[OpenAI Tools](/v0.1/docs/modules/agents/agent_types/openai_tools_agent/)

Chat

✅

✅

✅

`tools`

If you are using a recent OpenAI model (`1106` onwards)

[OpenAI Functions](/v0.1/docs/modules/agents/agent_types/openai_functions_agent/)

Chat

✅

✅

`functions`

If you are using an OpenAI model, or an open-source model that has been finetuned for function calling and exposes the same `functions` parameters as OpenAI

[XML](/v0.1/docs/modules/agents/agent_types/xml/)

LLM

✅

If you are using Anthropic models, or other models good at XML

[Structured Chat](/v0.1/docs/modules/agents/agent_types/structured_chat/)

Chat

✅

✅

If you need to support tools with multiple inputs and are using a model that does not support function calling

[ReAct](/v0.1/docs/modules/agents/agent_types/react/)

LLM

✅

If you are using a simpler model

* * *

#### Help us out by providing feedback on this documentation page:

[

Previous

Concepts

](/v0.1/docs/modules/agents/concepts/)[

Next

Tool calling

](/v0.1/docs/modules/agents/agent_types/tool_calling/)

Community

*   [Discord](https://discord.gg/cU2adEyC7w)
*   [Twitter](https://twitter.com/LangChainAI)

GitHub

*   [Python](https://github.com/langchain-ai/langchain)
*   [JS/TS](https://github.com/langchain-ai/langchainjs)

More

*   [Homepage](https://langchain.com)
*   [Blog](https://blog.langchain.dev)

Copyright © 2024 LangChain, Inc.