diff --git a/docs/docs/Agents/agent-tool-calling-agent-component.md b/docs/docs/Agents/agent-tool-calling-agent-component.md
deleted file mode 100644
index 26b6719a9..000000000
--- a/docs/docs/Agents/agent-tool-calling-agent-component.md
+++ /dev/null
@@ -1,212 +0,0 @@
----
-title: Create a problem-solving agent
-slug: /agents-tool-calling-agent-component
----
-
-Developing **agents** in Langchain is complex.
-
-The `AgentComponent` is a component for easily creating an AI agent capable of analyzing tasks using tools you provide.
-
-The component contains all of the elements you'll need for creating an agent. Instead of managing LLM models and providers, pick your model and enter your API key. Instead of connecting a **Prompt** component, enter instructions in the component's **Agent Instruction** fields.
-
-
-
-
-Learn how to build a flow starting with the **Tool calling agent** component, and see how it can help you solve problems.
-
-## Prerequisites
-
-- [An OpenAI API key](https://platform.openai.com/)
-- [A Search API key](https://www.searchapi.io/)
-
-## Create a problem-solving agent with the Agent component
-
-Create a problem-solving agent in Langflow, starting with the **Tool calling agent**.
-
-1. Click **New Flow**, and then click **Blank Flow**.
-2. Click and drag an **Agent** component to your workspace.
-The default settings are acceptable for now, so this guide assumes you're using **Open AI** for the LLM.
-3. Add your **Open AI API Key** to the **Agent** component.
-4. Add **Chat input** and **Chat output** components to your flow, and connect them to the tool calling agent.
-
-
-
-This basic flow enables you to chat with the agent with the **Playground** after you've connected some **Tools**.
-
-5. Connect the **Search API** tool component to your agent.
-6. Add your **Search API key** to the component.
-Your agent can now query the Search API for information.
-7. Connect a **Calculator** tool for solving basic math problems.
-8. Connect an **API Request** component to the agent.
-This component is not in the **Tools** category, but the agent can still use it as a tool by enabling **Tool Mode**.
-**Tool Mode** makes a component into a tool by adding a **Toolset** port that can be connected to an agent's **Tools** port.
-To enable **Tool Mode** on the component, click **Tool Mode**.
-The component's fields change dynamically based on the mode it's in.
-
-
-
-## Solve problems with the agent
-
-Your agent now has tools for performing a web search, doing basic math, and performing API requests. You can solve many problems with just these capabilities.
-
-* Your tabletop game group cancelled, and you're stuck at home.
-Point **API Request** to an online rules document, tell your agent `You are a fun game organizer who uses the tools at your disposal`, and play a game.
-* You need to learn a new software language quickly.
-Point **API Request** to some docs, tell your agent `You are a knowledgeable software developer who uses the tools at your disposal`, and start learning.
-
-See what problems you can solve with this flow. As your problem becomes more specialized, add more tools. For example, add a Python REPL component to solve math problems that are too challenging for the calculator.
-
-### Edit a tool's metadata
-
-To edit a tool's metadata, click the **Edit Tools** button in the tool to modify its `name`, `description`, or `enabled` metadata. These fields help connected agents understand how to use the tool, without having to modify the agent's prompt instructions.
-
-For example, the [URL](/components-data#url) component has three tools available when **Tool Mode** is enabled.
-
-| Tool Name | Description | Enabled |
-|-----------|-------------|---------|
-| `URL-fetch_content` | Use this tool to fetch and retrieve raw content from a URL, including HTML and other structured data. The full response content is returned. | true |
-| `URL-fetch_content_text` | Use this tool to fetch and extract clean, readable text content from a webpage. Only plain text content is returned. | true |
-| `URL-as_dataframe` | Use this tool to fetch structured data from a URL and convert it into a tabular format. Data is returned in a structured DataFrame table format. | true |
-
-A connected agent will have a clear idea of each tool's capabilities based on the `name` and `description` metadata. The `enabled` boolean controls the tool's availability to the agent. If you think an agent is using a tool incorrectly, edit a tool's metadata to help the agent better understand the tool.
-
-Tool names and descriptions can be edited, but the default tool identifiers cannot be changed. If you want to change the tool identifier, create a custom component.
-
-To see which tools the agent is using and how it's using them, ask the agent, `What tools are you using to answer my questions?`
-
-## Use an agent as a tool
-
-The agent component itself also supports **Tool Mode** for creating multi-agent flows.
-
-Add an agent to your problem-solving flow that uses a different OpenAI model for more specialized problem solving.
-
-1. Click and drag an **Agent** component to your workspace.
-2. Add your **Open AI API Key** to the **Agent** component.
-3. In the **Model Name** field, select `gpt-4o`.
-4. Click **Tool Mode** to use this new agent as a tool.
-5. Connect the new agent's **Toolset** port to the previously created agent's **Tools** port.
-6. Connect **Search API** and **API Request** to the new agent.
-The new agent will use `gpt-4o` for the larger tasks of scraping and searching information that requires large context windows.
-The problem-solving agent will now use this agent as a tool, with its unique LLM and toolset.
-
-
-
-7. The new agent's metadata can be edited to help the problem-solving agent understand how to use it.
-Click **Edit Tools** to modify the new agent's `name` or `description` metadata so its usage is clear to the problem-solving agent.
-For example, the default tool name is `Agent`. Edit the name to `Agent-gpt-4o`, and edit the description to `Use the gpt-4o model for complex problem solving`. The problem-solving agent will understand that this is the `gpt-4o` agent, and will use it for tasks requiring a larger context window.
-
-## Add custom components as tools {#components-as-tools}
-
-An agent can use custom components as tools.
-
-1. To add a custom component to the problem-solving agent flow, click **New Custom Component**.
-
-2. Add custom Python code to the custom component.
-Here's an example text analyzer for sentiment analysis.
-
-```python
-from langflow.custom import Component
-from langflow.io import MessageTextInput, Output
-from langflow.schema import Data
-import re
-
-class TextAnalyzerComponent(Component):
- display_name = "Text Analyzer"
- description = "Analyzes and transforms input text."
- documentation: str = "http://docs.langflow.org/components/custom"
- icon = "chart-bar"
- name = "TextAnalyzerComponent"
-
- inputs = [
- MessageTextInput(
- name="input_text",
- display_name="Input Text",
- info="Enter text to analyze",
- value="Hello, World!",
- tool_mode=True,
- ),
- ]
-
- outputs = [
- Output(display_name="Analysis Result", name="output", method="analyze_text"),
- ]
-
- def analyze_text(self) -> Data:
- text = self.input_text
-
- # Perform text analysis
- word_count = len(text.split())
- char_count = len(text)
- sentence_count = len(re.findall(r'\w+[.!?]', text))
-
- # Transform text
- reversed_text = text[::-1]
- uppercase_text = text.upper()
-
- analysis_result = {
- "original_text": text,
- "word_count": word_count,
- "character_count": char_count,
- "sentence_count": sentence_count,
- "reversed_text": reversed_text,
- "uppercase_text": uppercase_text
- }
-
- data = Data(value=analysis_result)
- self.status = data
- return data
-```
-
-3. To enable the custom component as a tool, click **Tool Mode**.
-4. Connect the tool output to the agent's tools input.
-5. Ask the agent, `What tools are you using to answer my questions?`
-Your response will be similar to the following, and will include your custom component.
-```text
-I have access to several tools that assist me in answering your questions, including:
-Search API: This allows me to search for recent information or results on the web.
-HTTP Requests: I can make HTTP requests to various URLs to retrieve data or interact with APIs.
-Calculator: I can evaluate basic arithmetic expressions.
-Text Analyzer: I can analyze and transform input text.
-Current Date and Time: I can retrieve the current date and time in various time zones.
-```
-
-## Make any component a tool
-
-If the component you want to use as a tool doesn't have a **Tool Mode** button, add `tool_mode=True` to one of the component's inputs, and connect the new **Toolset** output to the agent's **Tools** input.
-
-Langflow supports **Tool Mode** for the following data types:
-
-* `DataInput`
-* `DataFrameInput`
-* `PromptInput`
-* `MessageTextInput`
-* `MultilineInput`
-* `DropdownInput`
-
-For example, the [components as tools](#components-as-tools) example above adds `tool_mode=True` to the `MessageTextInput` input so the custom component can be used as a tool.
-
-```python
-inputs = [
- MessageTextInput(
- name="input_text",
- display_name="Input Text",
- info="Enter text to analyze",
- value="Hello, World!",
- tool_mode=True,
- ),
-]
-```
-
-## Use the Run Flow component as a tool
-
-An agent can use flows that are saved in your workspace as tools with the [Run flow](/components-logic#run-flow) component.
-
-1. To add a **Run flow** component, click and drag a **Run flow** component to your workspace.
-2. Select the flow you want the agent to use as a tool.
-3. Enable **Tool Mode** in the component.
-4. Connect the tool output to the agent's tools input.
-5. To enable tool mode, select a **Flow** in the **Run flow** component, and then click **Tool Mode**.
-6. Ask the agent, `What tools are you using to answer my questions?`
-Your flow should be visible in the response as a tool.
-
-
diff --git a/docs/docs/Agents/agents-overview.md b/docs/docs/Agents/agents-overview.md
deleted file mode 100644
index 660e8b11d..000000000
--- a/docs/docs/Agents/agents-overview.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Agents overview
-slug: /agents-overview
----
-
-**Agents** are AI systems that use LLMs as a brain to analyze problems and select external tools.
-
-Instead of developers having to create logical statements to direct every possible path of a program, an agent can operate with autonomy. An agent can leverage external tools and APIs to gather information and take action, demonstrate chain-of-thought reasoning, and generate tailored text for specific purposes.
-
-To simplify the development of agents, Langflow created a custom [Tool calling agent](/components-agents#agent-component) component that simplifies configuration and lets developers focus on solving problems with agents.
-
-
-
-To get started, see [Create a problem solving agent](/agents-tool-calling-agent-component).
\ No newline at end of file
diff --git a/docs/docs/Agents/agents-tools.md b/docs/docs/Agents/agents-tools.md
new file mode 100644
index 000000000..c32b8046e
--- /dev/null
+++ b/docs/docs/Agents/agents-tools.md
@@ -0,0 +1,178 @@
+---
+title: Configure tools for agents
+slug: /agents-tools
+---
+
+import Icon from "@site/src/components/icon";
+
+Configure tools connected to agents to extend their capabilities.
+
+## Edit a tool component's actions
+
+To edit a tool's actions, in the tool component, click **Edit Tools** to modify its `name`, `description`, or `enabled` metadata.
+These fields help connected agents understand how to use the action, without having to modify the agent's prompt instructions.
+
+For example, the [URL](/components-data#url) component has two actions available when **Tool Mode** is enabled:
+
+| Tool Name | Description | Enabled |
+|-----------|-------------|---------|
+| `fetch_content` | Fetch content from web pages recursively | true |
+| `fetch_content_as_message` | Fetch web content formatted as messages | true |
+
+A Langflow Agent has a clear idea of each tool's capabilities based on the `name` and `description` metadata. The `enabled` boolean controls the tool's availability to the agent. If you think an agent is using a tool incorrectly, edit a tool's `description` metadata to help the agent better understand the tool.
+
+Tool names and descriptions can be edited, but the default tool identifiers cannot be changed. If you want to change the tool identifier, create a custom component.
+
+## Use an agent as a tool
+
+The agent component itself also supports **Tool Mode** for creating multi-agent flows.
+
+Add an agent to your flow that uses a different OpenAI model for a larger context window.
+
+1. Create the [Simple agent starter flow](/simple-agent).
+2. Add a second agent component to the flow.
+3. Add your **Open AI API Key** to the **Agent** component.
+4. In the **Model Name** field, select `gpt-4.1`.
+5. Click **Tool Mode** to use this new agent as a tool.
+6. Connect the new agent's **Toolset** port to the previously created agent's **Tools** port.
+The new agent will use `gpt-4.1` for the larger tasks of scraping and searching information that require large context windows.
+The previously created agent will now use this agent as a tool, with its unique LLM and toolset.
+
+
+
+7. The new agent's actions can be edited to help the agent understand how to use it.
+Click **Edit Tools** to modify its `name`, `description`, or `enabled` metadata.
+For example, the default tool name is `Agent`. Edit the name to `Agent-gpt-41`, and edit the description to `Use the gpt-4.1 model for complex problem solving`. The connected agent will understand that this is the `gpt-4.1` agent, and will use it for tasks requiring a larger context window.
+
+## Add custom components as tools {#components-as-tools}
+
+An agent can use custom components as tools.
+
+1. To add a custom component to the agent flow, click **New Custom Component**.
+
+2. Add custom Python code to the custom component.
+For example, to create a text analyzer component, paste the below code into the custom component's **Code** pane.
+
+
+Python
+
+```python
+from langflow.custom import Component
+from langflow.io import MessageTextInput, Output
+from langflow.schema import Data
+import re
+
+class TextAnalyzerComponent(Component):
+ display_name = "Text Analyzer"
+ description = "Analyzes and transforms input text."
+ documentation: str = "http://docs.langflow.org/components/custom"
+ icon = "chart-bar"
+ name = "TextAnalyzerComponent"
+
+ inputs = [
+ MessageTextInput(
+ name="input_text",
+ display_name="Input Text",
+ info="Enter text to analyze",
+ value="Hello, World!",
+ tool_mode=True,
+ ),
+ ]
+
+ outputs = [
+ Output(display_name="Analysis Result", name="output", method="analyze_text"),
+ ]
+
+ def analyze_text(self) -> Data:
+ text = self.input_text
+
+ # Perform text analysis
+ word_count = len(text.split())
+ char_count = len(text)
+ sentence_count = len(re.findall(r'\w+[.!?]', text))
+
+ # Transform text
+ reversed_text = text[::-1]
+ uppercase_text = text.upper()
+
+ analysis_result = {
+ "original_text": text,
+ "word_count": word_count,
+ "character_count": char_count,
+ "sentence_count": sentence_count,
+ "reversed_text": reversed_text,
+ "uppercase_text": uppercase_text
+ }
+
+ data = Data(value=analysis_result)
+ self.status = data
+ return data
+```
+
+
+3. To use the custom component as a tool, click **Tool Mode**.
+4. Connect the custom component's tool output to the agent's tools input.
+5. Open the **Playground** and instruct the agent, `Use the text analyzer on this text: "Agents really are thinking machines!"`
+
+
+Response
+```
+AI
+gpt-4o
+Finished
+0.6s
+Here is the analysis of the text "Agents really are thinking machines!":
+Original Text: Agents really are thinking machines!
+Word Count: 5
+Character Count: 36
+Sentence Count: 1
+Reversed Text: !senihcam gnikniht era yllaer stnegA
+Uppercase Text: AGENTS REALLY ARE THINKING MACHINES!
+```
+
+
+The agent correctly calls the `analyze_text` action and returns the result to the Playground.
+
+## Make any component a tool
+
+If the component you want to use as a tool doesn't have a **Tool Mode** button, add `tool_mode=True` to one of the component's inputs, and connect the new **Toolset** output to the agent's **Tools** input.
+
+Langflow supports **Tool Mode** for the following data types:
+
+* `DataInput`
+* `DataFrameInput`
+* `PromptInput`
+* `MessageTextInput`
+* `MultilineInput`
+* `DropdownInput`
+
+For example, the [components as tools](#components-as-tools) example above adds `tool_mode=True` to the `MessageTextInput` input so the custom component can be used as a tool.
+
+```python
+inputs = [
+ MessageTextInput(
+ name="input_text",
+ display_name="Input Text",
+ info="Enter text to analyze",
+ value="Hello, World!",
+ tool_mode=True,
+ ),
+]
+```
+
+## Use flows as tools
+
+An agent can use flows that are saved in your workspace as tools with the [Run flow](/components-logic#run-flow) component.
+
+1. To add a **Run flow** component, click and drag a **Run flow** component to your workspace.
+2. Select the flow you want the agent to use as a tool.
+3. Enable **Tool Mode** in the component.
+The **Run flow** component displays your flow as an available action.
+4. Connect the **Run flow** component's tool output to the agent's tools input.
+5. Ask the agent, `What tools are you using to answer my questions?`
+Your flow should be visible in the response as a tool.
+6. Ask the agent to specifically use the connected tool to answer your question.
+The connected flow returns an answer based on your question.
+For example, a Basic Prompting flow connected as a tool returns a different result depending upon its LLM and prompt instructions.
+
+
\ No newline at end of file
diff --git a/docs/docs/Agents/agents.md b/docs/docs/Agents/agents.md
new file mode 100644
index 000000000..4c62b680d
--- /dev/null
+++ b/docs/docs/Agents/agents.md
@@ -0,0 +1,91 @@
+---
+title: Use Langflow Agents
+slug: /agents
+---
+
+import Icon from "@site/src/components/icon";
+
+Agents use LLMs as a brain to autonomously analyze problems and select tools to solve them.
+
+Langflow's [Agent component](/components-agents#agent-component) simplifies agent configuration so you can focus on application development.
+
+The Agent component provides everything you need to create an agent, including multiple LLM providers and custom instructions.
+
+## Agent settings
+
+You can configure the Agent component to use your preferred provider and model, custom instructions, and tools.
+
+### Agent models and providers
+
+Use the **Model Provider** and **Model Name** settings to select the LLM that you want the Agent to use.
+
+You must provide an authentication key for the selected provider, such as an OpenAI API key for OpenAI models.
+
+### Agent instructions and input
+
+In the **Agent Instructions** field, you can provide custom instructions that you want the Agent component to use for every conversation.
+
+These instructions are applied in addition to the **Input**, which is provided at runtime.
+
+### Agent tools
+
+Agents are most useful when they have the appropriate tools available to complete requests.
+
+An Agent component can use any Langflow component as a tool, as long as you attach it to the Agent component.
+
+:::tip
+To allow agents to use tools from MCP servers, use the [**MCP connection** component](/components-tools#mcp-connection).
+:::
+
+When you attach a component as a tool, you must configure the component as a tool by enabling **Tool Mode**.
+
+For more information, see [Configure tools for agents](/)
+
+## Use the Agent component in a flow
+
+:::tip
+For a pre-built demonstration, open the **Simple Agent** template flow and follow along.
+:::
+
+Create an agent in Langflow, starting with the **Agent** component and working outward.
+
+1. Click **New Flow**, and then click **Blank Flow**.
+2. Add an **Agent** component to your workspace.
+3. Use the default model or select another provider and model, and then provide credentials for your chosen provider. For example, to use the default model, you must provide an OpenAI API key.
+4. Add **Chat input** and **Chat output** components to your flow, and connect them to the tool calling agent.
+
+
+
+This basic flow allows you to chat with the agent in the **Playground**, but you're only chatting with the OpenAI LLM.
+To unlock the power of the Agent component, connect some tools.
+
+5. Add the **News Search**, **URL**, and **Calculator** components to your flow.
+6. Enable **Tool Mode** in the **News Search**, **URL**, and **Calculator** components.
+In the [component menu](/concepts-components#component-menu), enable **Tool mode** so you can use the component with an agent.
+
+ **Tool Mode** makes a component into a tool by modifying the component's inputs to accept requests from the Agent component to use a tool's available actions. A component in tool mode has a **Toolset** port that you must connect to an Agent component's **Tools** port if you want to allow the agent to use the tool's actions.
+7. Connect the **Toolset** port on the three tool components to the **Tools** port on the Agent component.
+
+
+
+8. Open the **Playground**. Ask the agent, `What tools are you using to answer my questions?`
+The agent should respond with a list of the connected tools.
+
+```text
+I use a combination of my built-in knowledge (up to June 2024) and a set of external tools to answer your questions. Here are the main types of tools I can use:
+Web Search & Content Fetching: I can fetch and summarize content from web pages, including crawling links recursively.
+News Search: I can search for recent news articles using Google News via RSS feeds.
+Calculator: I can perform arithmetic calculations and evaluate mathematical expressions.
+Date & Time: I can provide the current date and time in various time zones.
+These tools help me provide up-to-date information, perform calculations, and retrieve specific data from the internet when needed. If you have a specific question, let me know, and I’ll use the most appropriate tool(s) to help!
+```
+
+9. Ask the agent, `Summarize today's tech news`.
+The Playground displays the agent's tool calls, what input was provided, and the raw output the agent received before generating the summary. The agent should call the **News Search** component's `search_news` action.
+
+You've successfully constructed a flow with the Langflow Agent.
+Connect more tools to solve more specialized problems.
+
+## See also
+
+* [Configure tools for agents](/agents-tools)
\ No newline at end of file
diff --git a/docs/docs/Components/components-agents.md b/docs/docs/Components/components-agents.md
index d6643c327..81f969242 100644
--- a/docs/docs/Components/components-agents.md
+++ b/docs/docs/Components/components-agents.md
@@ -21,7 +21,7 @@ The [simple agent starter project](/simple-agent) uses an [agent component](#age

-For a multi-agent example see, [Create a problem-solving agent](/agents-tool-calling-agent-component).
+For a multi-agent example see [Create a flow with an agent](/agents).
## Agent component {#agent-component}
@@ -29,7 +29,7 @@ This component creates an agent that can use tools to answer questions and perfo
The component includes an LLM model integration, a system message prompt, and a **Tools** port to connect tools to extend its capabilities.
-For more information on this component, see the [tool calling agent documentation](/agents-tool-calling-agent-component).
+For more information on this component, see the [Agent documentation](/agents).
Parameters
@@ -40,7 +40,7 @@ For more information on this component, see the [tool calling agent documentatio
|------|------|-------------|
| agent_llm | Dropdown | The provider of the language model that the agent uses to generate responses. Options include OpenAI and other providers or Custom. |
| system_prompt | String | The system prompt provides initial instructions and context to guide the agent's behavior. |
-| tools | List | The list of tools available for the agent to use. |
+| tools | List | The list of tools available for the agent to use. This field is optional and can be empty. |
| input_value | String | The input task or question for the agent to process. |
| add_current_date_tool | Boolean | When true this adds a tool to the agent that returns the current date. |
| memory | Memory | An optional memory configuration for maintaining conversation history. |
@@ -124,296 +124,4 @@ This component creates a Vector Store Router Agent using LangChain.
|------|------|-------------|
| agent | AgentExecutor | The Vector Store Router Agent instance. |
-
-
-## Moved components
-
-The following components are available under **Bundles**.
-
-### CrewAI Agent
-
-This component represents an Agent of CrewAI allowing for the creation of specialized AI agents with defined roles goals and capabilities within a crew.
-
-For more information, see the [CrewAI documentation](https://docs.crewai.com/core-concepts/Agents/).
-
-
-Parameters
-
-**Inputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| role | Role | The role of the agent. |
-| goal | Goal | The objective of the agent. |
-| backstory | Backstory | The backstory of the agent. |
-| tools | Tools | The tools at the agent's disposal. |
-| llm | Language Model | The language model that runs the agent. |
-| memory | Memory | This determines whether the agent should have memory or not. |
-| verbose | Verbose | This enables verbose output. |
-| allow_delegation | Allow Delegation | This determines whether the agent is allowed to delegate tasks to other agents. |
-| allow_code_execution | Allow Code Execution | This determines whether the agent is allowed to execute code. |
-| kwargs | kwargs | Additional keyword arguments for the agent. |
-
-**Outputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| output | Agent | The constructed CrewAI Agent object. |
-
-
-
-### Hierarchical Crew
-
-This component represents a group of agents managing how they should collaborate and the tasks they should perform in a hierarchical structure. This component allows for the creation of a crew with a manager overseeing the task execution.
-
-For more information, see the [CrewAI documentation](https://docs.crewai.com/how-to/Hierarchical/).
-
-
-Parameters
-
-**Inputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| agents | Agents | The list of Agent objects representing the crew members. |
-| tasks | Tasks | The list of HierarchicalTask objects representing the tasks to be executed. |
-| manager_llm | Manager LLM | The language model for the manager agent. |
-| manager_agent | Manager Agent | The specific agent to act as the manager. |
-| verbose | Verbose | This enables verbose output for detailed logging. |
-| memory | Memory | The memory configuration for the crew. |
-| use_cache | Use Cache | This enables caching of results. |
-| max_rpm | Max RPM | This sets the maximum requests per minute. |
-| share_crew | Share Crew | This determines if the crew information is shared among agents. |
-| function_calling_llm | Function Calling LLM | The language model for function calling. |
-
-**Outputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| crew | Crew | The constructed Crew object with hierarchical task execution. |
-
-
-
-### CSV Agent
-
-This component creates a CSV agent from a CSV file and LLM.
-
-
-Parameters
-
-**Inputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| llm | LanguageModel | The language model to use for the agent. |
-| path | File | The path to the CSV file. |
-| agent_type | String | The type of agent to create. |
-
-**Outputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| agent | AgentExecutor | The CSV agent instance. |
-
-
-
-### OpenAI Tools Agent
-
-This component creates an OpenAI Tools Agent.
-
-
-Parameters
-
-**Inputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| llm | LanguageModel | The language model to use. |
-| tools | List of Tools | The tools to give the agent access to. |
-| system_prompt | String | The system prompt to provide context to the agent. |
-| input_value | String | The user's input to the agent. |
-| memory | Memory | The memory for the agent to use for context persistence. |
-| max_iterations | Integer | The maximum number of iterations to allow the agent to execute. |
-| verbose | Boolean | This determines whether to print out the agent's intermediate steps. |
-| handle_parsing_errors | Boolean | This determines whether to handle parsing errors in the agent. |
-
-**Outputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| agent | AgentExecutor | The OpenAI Tools agent instance. |
-| output | String | The output from executing the agent on the input. |
-
-
-
-### OpenAPI Agent
-
-This component creates an agent for interacting with OpenAPI services.
-
-
-Parameters
-
-**Inputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| llm | LanguageModel | The language model to use. |
-| openapi_spec | String | The OpenAPI specification for the service. |
-| base_url | String | The base URL for the API. |
-| headers | Dict | The optional headers for API requests. |
-| agent_executor_kwargs | Dict | The optional parameters for the agent executor. |
-
-**Outputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| agent | AgentExecutor | The OpenAPI agent instance. |
-
-
-
-### Sequential Crew
-
-This component represents a group of agents with tasks that are executed sequentially. This component allows for the creation of a crew that performs tasks in a specific order.
-
-For more information, see the [CrewAI documentation](https://docs.crewai.com/how-to/Sequential/).
-
-
-Parameters
-
-**Inputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| tasks | Tasks | The list of SequentialTask objects representing the tasks to be executed. |
-| verbose | Verbose | This enables verbose output for detailed logging. |
-| memory | Memory | The memory configuration for the crew. |
-| use_cache | Use Cache | This enables caching of results. |
-| max_rpm | Max RPM | This sets the maximum requests per minute. |
-| share_crew | Share Crew | This determines if the crew information is shared among agents. |
-| function_calling_llm | Function Calling LLM | The language model for function calling. |
-
-**Outputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| crew | Crew | The constructed Crew object with sequential task execution. |
-
-
-
-### Sequential task agent
-
-This component creates a CrewAI Task and its associated Agent allowing for the definition of sequential tasks with specific agent roles and capabilities.
-
-For more information, see the [CrewAI documentation](https://docs.crewai.com/how-to/Sequential/).
-
-
-Parameters
-
-**Inputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| role | Role | The role of the agent. |
-| goal | Goal | The objective of the agent. |
-| backstory | Backstory | The backstory of the agent. |
-| tools | Tools | The tools at the agent's disposal. |
-| llm | Language Model | The language model that runs the agent. |
-| memory | Memory | This determines whether the agent should have memory or not. |
-| verbose | Verbose | This enables verbose output. |
-| allow_delegation | Allow Delegation | This determines whether the agent is allowed to delegate tasks to other agents. |
-| allow_code_execution | Allow Code Execution | This determines whether the agent is allowed to execute code. |
-| agent_kwargs | Agent kwargs | The additional kwargs for the agent. |
-| task_description | Task Description | The descriptive text detailing the task's purpose and execution. |
-| expected_output | Expected Task Output | The clear definition of the expected task outcome. |
-| async_execution | Async Execution | The boolean flag indicating asynchronous task execution. |
-| previous_task | Previous Task | The previous task in the sequence for chaining. |
-
-**Outputs**
-
-| Name | Display Name | Info |
-|------|--------------|------|
-| task_output | Sequential Task | The list of SequentialTask objects representing the created tasks. |
-
-
-
-### SQL Agent
-
-This component creates an agent for interacting with SQL databases.
-
-
-Parameters
-
-**Inputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| llm | LanguageModel | The language model to use. |
-| database | Database | The SQL database connection. |
-| top_k | Integer | The number of results to return from a SELECT query. |
-| use_tools | Boolean | This determines whether to use tools for query execution. |
-| return_intermediate_steps | Boolean | This determines whether to return the agent's intermediate steps. |
-| max_iterations | Integer | The maximum number of iterations to run the agent. |
-| max_execution_time | Integer | The maximum execution time in seconds. |
-| early_stopping_method | String | The method to use for early stopping. |
-| verbose | Boolean | This determines whether to print the agent's thoughts. |
-
-**Outputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| agent | AgentExecutor | The SQL agent instance. |
-
-
-
-### Tool Calling Agent
-
-This component creates an agent for structured tool calling with various language models.
-
-
-Parameters
-
-**Inputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| llm | LanguageModel | The language model to use. |
-| tools | List[Tool] | The list of tools available to the agent. |
-| system_message | String | The system message to use for the agent. |
-| return_intermediate_steps | Boolean | This determines whether to return the agent's intermediate steps. |
-| max_iterations | Integer | The maximum number of iterations to run the agent. |
-| max_execution_time | Integer | The maximum execution time in seconds. |
-| early_stopping_method | String | The method to use for early stopping. |
-| verbose | Boolean | This determines whether to print the agent's thoughts. |
-
-**Outputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| agent | AgentExecutor | The tool calling agent instance. |
-
-
-
-### XML Agent
-
-This component creates an XML Agent using LangChain.
-
-The agent uses XML formatting for tool instructions to the Language Model.
-
-
-Parameters
-
-**Inputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| llm | LanguageModel | The language model to use for the agent. |
-| user_prompt | String | The custom prompt template for the agent with XML formatting instructions. |
-| tools | List[Tool] | The list of tools available to the agent. |
-
-**Outputs**
-
-| Name | Type | Description |
-|------|------|-------------|
-| agent | AgentExecutor | The XML Agent instance. |
-
\ No newline at end of file
diff --git a/docs/docs/Components/components-bundles.md b/docs/docs/Components/components-bundles.md
index 20086e509..cd5d09e73 100644
--- a/docs/docs/Components/components-bundles.md
+++ b/docs/docs/Components/components-bundles.md
@@ -7,4 +7,296 @@ slug: /components-bundle-components
For more information on bundled components, see the component provider's documentation.
+The following components are available under **Bundles**.
+## Agent components
+
+**Agents** use LLMs as a brain to analyze problems and select external tools.
+
+### CrewAI Agent
+
+This component represents an Agent of CrewAI allowing for the creation of specialized AI agents with defined roles goals and capabilities within a crew.
+
+For more information, see the [CrewAI documentation](https://docs.crewai.com/core-concepts/Agents/).
+
+
+Parameters
+
+**Inputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| role | Role | The role of the agent. |
+| goal | Goal | The objective of the agent. |
+| backstory | Backstory | The backstory of the agent. |
+| tools | Tools | The tools at the agent's disposal. |
+| llm | Language Model | The language model that runs the agent. |
+| memory | Memory | This determines whether the agent should have memory or not. |
+| verbose | Verbose | This enables verbose output. |
+| allow_delegation | Allow Delegation | This determines whether the agent is allowed to delegate tasks to other agents. |
+| allow_code_execution | Allow Code Execution | This determines whether the agent is allowed to execute code. |
+| kwargs | kwargs | Additional keyword arguments for the agent. |
+
+**Outputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| output | Agent | The constructed CrewAI Agent object. |
+
+
+
+### Hierarchical Crew
+
+This component represents a group of agents managing how they should collaborate and the tasks they should perform in a hierarchical structure. This component allows for the creation of a crew with a manager overseeing the task execution.
+
+For more information, see the [CrewAI documentation](https://docs.crewai.com/how-to/Hierarchical/).
+
+
+Parameters
+
+**Inputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| agents | Agents | The list of Agent objects representing the crew members. |
+| tasks | Tasks | The list of HierarchicalTask objects representing the tasks to be executed. |
+| manager_llm | Manager LLM | The language model for the manager agent. |
+| manager_agent | Manager Agent | The specific agent to act as the manager. |
+| verbose | Verbose | This enables verbose output for detailed logging. |
+| memory | Memory | The memory configuration for the crew. |
+| use_cache | Use Cache | This enables caching of results. |
+| max_rpm | Max RPM | This sets the maximum requests per minute. |
+| share_crew | Share Crew | This determines if the crew information is shared among agents. |
+| function_calling_llm | Function Calling LLM | The language model for function calling. |
+
+**Outputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| crew | Crew | The constructed Crew object with hierarchical task execution. |
+
+
+
+### CSV Agent
+
+This component creates a CSV agent from a CSV file and LLM.
+
+
+Parameters
+
+**Inputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| llm | LanguageModel | The language model to use for the agent. |
+| path | File | The path to the CSV file. |
+| agent_type | String | The type of agent to create. |
+
+**Outputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| agent | AgentExecutor | The CSV agent instance. |
+
+
+
+### OpenAI Tools Agent
+
+This component creates an OpenAI Tools Agent.
+
+
+Parameters
+
+**Inputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| llm | LanguageModel | The language model to use. |
+| tools | List of Tools | The tools to give the agent access to. |
+| system_prompt | String | The system prompt to provide context to the agent. |
+| input_value | String | The user's input to the agent. |
+| memory | Memory | The memory for the agent to use for context persistence. |
+| max_iterations | Integer | The maximum number of iterations to allow the agent to execute. |
+| verbose | Boolean | This determines whether to print out the agent's intermediate steps. |
+| handle_parsing_errors | Boolean | This determines whether to handle parsing errors in the agent. |
+
+**Outputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| agent | AgentExecutor | The OpenAI Tools agent instance. |
+| output | String | The output from executing the agent on the input. |
+
+
+
+### OpenAPI Agent
+
+This component creates an agent for interacting with OpenAPI services.
+
+
+Parameters
+
+**Inputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| llm | LanguageModel | The language model to use. |
+| openapi_spec | String | The OpenAPI specification for the service. |
+| base_url | String | The base URL for the API. |
+| headers | Dict | The optional headers for API requests. |
+| agent_executor_kwargs | Dict | The optional parameters for the agent executor. |
+
+**Outputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| agent | AgentExecutor | The OpenAPI agent instance. |
+
+
+
+### Sequential Crew
+
+This component represents a group of agents with tasks that are executed sequentially. This component allows for the creation of a crew that performs tasks in a specific order.
+
+For more information, see the [CrewAI documentation](https://docs.crewai.com/how-to/Sequential/).
+
+
+Parameters
+
+**Inputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| tasks | Tasks | The list of SequentialTask objects representing the tasks to be executed. |
+| verbose | Verbose | This enables verbose output for detailed logging. |
+| memory | Memory | The memory configuration for the crew. |
+| use_cache | Use Cache | This enables caching of results. |
+| max_rpm | Max RPM | This sets the maximum requests per minute. |
+| share_crew | Share Crew | This determines if the crew information is shared among agents. |
+| function_calling_llm | Function Calling LLM | The language model for function calling. |
+
+**Outputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| crew | Crew | The constructed Crew object with sequential task execution. |
+
+
+
+### Sequential task agent
+
+This component creates a CrewAI Task and its associated Agent allowing for the definition of sequential tasks with specific agent roles and capabilities.
+
+For more information, see the [CrewAI documentation](https://docs.crewai.com/how-to/Sequential/).
+
+
+Parameters
+
+**Inputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| role | Role | The role of the agent. |
+| goal | Goal | The objective of the agent. |
+| backstory | Backstory | The backstory of the agent. |
+| tools | Tools | The tools at the agent's disposal. |
+| llm | Language Model | The language model that runs the agent. |
+| memory | Memory | This determines whether the agent should have memory or not. |
+| verbose | Verbose | This enables verbose output. |
+| allow_delegation | Allow Delegation | This determines whether the agent is allowed to delegate tasks to other agents. |
+| allow_code_execution | Allow Code Execution | This determines whether the agent is allowed to execute code. |
+| agent_kwargs | Agent kwargs | The additional kwargs for the agent. |
+| task_description | Task Description | The descriptive text detailing the task's purpose and execution. |
+| expected_output | Expected Task Output | The clear definition of the expected task outcome. |
+| async_execution | Async Execution | The boolean flag indicating asynchronous task execution. |
+| previous_task | Previous Task | The previous task in the sequence for chaining. |
+
+**Outputs**
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| task_output | Sequential Task | The list of SequentialTask objects representing the created tasks. |
+
+
+
+### SQL Agent
+
+This component creates an agent for interacting with SQL databases.
+
+
+Parameters
+
+**Inputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| llm | LanguageModel | The language model to use. |
+| database | Database | The SQL database connection. |
+| top_k | Integer | The number of results to return from a SELECT query. |
+| use_tools | Boolean | This determines whether to use tools for query execution. |
+| return_intermediate_steps | Boolean | This determines whether to return the agent's intermediate steps. |
+| max_iterations | Integer | The maximum number of iterations to run the agent. |
+| max_execution_time | Integer | The maximum execution time in seconds. |
+| early_stopping_method | String | The method to use for early stopping. |
+| verbose | Boolean | This determines whether to print the agent's thoughts. |
+
+**Outputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| agent | AgentExecutor | The SQL agent instance. |
+
+
+
+### Tool Calling Agent
+
+This component creates an agent for structured tool calling with various language models.
+
+
+Parameters
+
+**Inputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| llm | LanguageModel | The language model to use. |
+| tools | List[Tool] | The list of tools available to the agent. |
+| system_message | String | The system message to use for the agent. |
+| return_intermediate_steps | Boolean | This determines whether to return the agent's intermediate steps. |
+| max_iterations | Integer | The maximum number of iterations to run the agent. |
+| max_execution_time | Integer | The maximum execution time in seconds. |
+| early_stopping_method | String | The method to use for early stopping. |
+| verbose | Boolean | This determines whether to print the agent's thoughts. |
+
+**Outputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| agent | AgentExecutor | The tool calling agent instance. |
+
+
+
+### XML Agent
+
+This component creates an XML Agent using LangChain.
+
+The agent uses XML formatting for tool instructions to the Language Model.
+
+
+Parameters
+
+**Inputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| llm | LanguageModel | The language model to use for the agent. |
+| user_prompt | String | The custom prompt template for the agent with XML formatting instructions. |
+| tools | List[Tool] | The list of tools available to the agent. |
+
+**Outputs**
+
+| Name | Type | Description |
+|------|------|-------------|
+| agent | AgentExecutor | The XML Agent instance. |
+
+
\ No newline at end of file
diff --git a/docs/docs/Components/components-tools.md b/docs/docs/Components/components-tools.md
index 21682d1d1..bdd4f31fe 100644
--- a/docs/docs/Components/components-tools.md
+++ b/docs/docs/Components/components-tools.md
@@ -25,7 +25,7 @@ The [simple agent starter project](/simple-agent) uses URL and Calculator tools
To make a component into a tool that an agent can use, enable **Tool mode** in the component. Enabling **Tool mode** modifies a component input to accept calls from an agent.
If the component you want to connect to an agent doesn't have a **Tool mode** option, you can modify the component's inputs to become a tool.
-For an example, see [Make any component a tool](/agents-tool-calling-agent-component#make-any-component-a-tool).
+For an example, see [Make any component a tool](/agents-tools#make-any-component-a-tool).
## arXiv
diff --git a/docs/docs/Components/mcp-client.md b/docs/docs/Components/mcp-client.md
index f205c2d5f..68bc04667 100644
--- a/docs/docs/Components/mcp-client.md
+++ b/docs/docs/Components/mcp-client.md
@@ -15,7 +15,7 @@ For information about using Langflow as an MCP server, see [Use Langflow as an M
## Use the MCP connection component
-The **MCP connection** component connects to a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) server and exposes the MCP server's tools as tools for [Langflow agents](/agents-overview).
+The **MCP connection** component connects to a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) server and exposes the MCP server's tools as tools for [Langflow agents](/agents).
This component has two modes, depending on the type of server you want to access:
diff --git a/docs/docs/Get-Started/get-started-quickstart.md b/docs/docs/Get-Started/get-started-quickstart.md
index dd0b134ff..a2e872515 100644
--- a/docs/docs/Get-Started/get-started-quickstart.md
+++ b/docs/docs/Get-Started/get-started-quickstart.md
@@ -20,7 +20,7 @@ Get started with Langflow by loading a template flow, running it, and then servi

-The Simple Agent flow consists of an [Agent component](/components-agents) connected to [Chat I/O components](/components-io), a [Calculator component](/components-tools#calculator-tool), and a [URL component](/components-data#url). When you run this flow, you submit a query to the agent through the Chat Input component, the agent uses the Calculator and URL tools to generate a response, and then returns the response through the Chat Output component.
+The Simple Agent flow consists of an [Agent component](/agents) connected to [Chat I/O components](/components-io), a [Calculator component](/components-tools#calculator-tool), and a [URL component](/components-data#url). When you run this flow, you submit a query to the agent through the Chat Input component, the agent uses the Calculator and URL tools to generate a response, and then returns the response through the Chat Output component.
Many components can be tools for agents, including [Model Context Protocol (MCP) servers](/mcp-server). The agent decides which tools to call based on the context of a given query.
diff --git a/docs/docs/Get-Started/welcome-to-langflow.md b/docs/docs/Get-Started/welcome-to-langflow.md
index 96badbf07..f67eb7dcb 100644
--- a/docs/docs/Get-Started/welcome-to-langflow.md
+++ b/docs/docs/Get-Started/welcome-to-langflow.md
@@ -25,7 +25,7 @@ For example:
* [Build document analysis systems](/document-qa)
* [Generate compelling content](/blog-writer)
* [Orchestrate multi-agent applications](/simple-agent)
-* [Create agents with Langflow](/agents-overview)
+* [Create agents with Langflow](/agents)
* [Use Langflow as an MCP server](/mcp-server)
* [Use Langflow as an MCP client](/mcp-client)
diff --git a/docs/docs/Templates/sequential-agent.md b/docs/docs/Templates/sequential-agent.md
index 5247b2b5a..53d2383d9 100644
--- a/docs/docs/Templates/sequential-agent.md
+++ b/docs/docs/Templates/sequential-agent.md
@@ -51,4 +51,4 @@ This question provides clear instructions to the agents about how to proceed and
## Next steps
-To create your own multi-agent flow, see [Create a problem solving agent](/agents-tool-calling-agent-component).
\ No newline at end of file
+To create your own multi-agent flow, see [Create a problem solving agent](/agents).
\ No newline at end of file
diff --git a/docs/docs/Templates/simple-agent.md b/docs/docs/Templates/simple-agent.md
index 45345c509..33dd0f1b2 100644
--- a/docs/docs/Templates/simple-agent.md
+++ b/docs/docs/Templates/simple-agent.md
@@ -3,7 +3,7 @@ title: Simple agent
slug: /simple-agent
---
-Build a **Simple Agent** flow for an agentic application using the [Tool-calling agent](/agents-tool-calling-agent-component) component.
+Build a **Simple Agent** flow for an agentic application using the [Agent](/agents) component.
An **agent** uses an LLM as its "brain" to select among the connected tools and complete its tasks.
diff --git a/docs/sidebars.js b/docs/sidebars.js
index 75cf130cc..0733a90dd 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -63,8 +63,8 @@ module.exports = {
type: "category",
label: "Agents",
items: [
- "Agents/agents-overview",
- "Agents/agent-tool-calling-agent-component",
+ "Agents/agents",
+ "Agents/agents-tools",
],
},
{
diff --git a/docs/static/img/agent-component.png b/docs/static/img/agent-component.png
new file mode 100644
index 000000000..9a16d25d6
Binary files /dev/null and b/docs/static/img/agent-component.png differ
diff --git a/docs/static/img/agent-example-add-chat.png b/docs/static/img/agent-example-add-chat.png
new file mode 100644
index 000000000..3e5439f2d
Binary files /dev/null and b/docs/static/img/agent-example-add-chat.png differ
diff --git a/docs/static/img/agent-example-add-tools.png b/docs/static/img/agent-example-add-tools.png
new file mode 100644
index 000000000..3293dd51e
Binary files /dev/null and b/docs/static/img/agent-example-add-tools.png differ
diff --git a/docs/static/img/agent-example-agent-as-tool.png b/docs/static/img/agent-example-agent-as-tool.png
new file mode 100644
index 000000000..0be4a3796
Binary files /dev/null and b/docs/static/img/agent-example-agent-as-tool.png differ
diff --git a/docs/static/img/agent-example-run-flow-as-tool.png b/docs/static/img/agent-example-run-flow-as-tool.png
new file mode 100644
index 000000000..1578e2b2b
Binary files /dev/null and b/docs/static/img/agent-example-run-flow-as-tool.png differ
diff --git a/docs/static/img/tool-calling-agent-add-chat.png b/docs/static/img/tool-calling-agent-add-chat.png
deleted file mode 100644
index e9817f82c..000000000
Binary files a/docs/static/img/tool-calling-agent-add-chat.png and /dev/null differ
diff --git a/docs/static/img/tool-calling-agent-as-tool.png b/docs/static/img/tool-calling-agent-as-tool.png
deleted file mode 100644
index 73c5a72d8..000000000
Binary files a/docs/static/img/tool-calling-agent-as-tool.png and /dev/null differ
diff --git a/docs/static/img/tool-calling-agent-component.png b/docs/static/img/tool-calling-agent-component.png
deleted file mode 100644
index f6e8c5e39..000000000
Binary files a/docs/static/img/tool-calling-agent-component.png and /dev/null differ