Agent
Langflow 的 Agent 和 MCP Tools 组件对于构建 Agent flow 至关重要。 这些组件定义了您 flow 中 AI Agent 的行为和能力。
Agent 如何工作
Agent 通过集成_工具_扩展大语言模型 (LLM),这些工具是提供额外上下文并允许自主任务执行的函数。 这些集成使 Agent 比独立的 LLM 更专业和强大。
虽然 LLM 可以对一般查询和任务生成可接受的静态响应,但 Agent 可以利用集成的上下文和工具提供更相关的响应,甚至采取行动。 例如,您可以创建一个 Agent,它可以访问您公司的知识库、仓库和其 他资源,以帮助您的团队处理需要了解您的特定产品、客户和代码的任务。
Agent 使用 LLM 作为推理引擎来处理输入、确定采取什么行动来解决查询,然后生成响应。 响应可能是来自 LLM 的典型文本响应,或者可能涉及一个行动,如编辑文件、执行脚本或调用外部 API。
在 Agent 上下文中,工具是 Agent 可以执行来执行任务或访问外部资源的函数。
一个函数被包装为一个具有 Agent 理解的通用接口的 Tool
对象。
Agent 通过工具注册变得对工具有认知,即在 Agent 初始化时通常为 Agent 提供可用工具列表。
Tool
对象的描述告诉 Agent 工具可以做什么,以便它可以决定该工具是否适用于给定的请求。
Agent flow 示例
有关使用 Agent 和 MCP Tools 组件的 Agent flow 示例,请参阅以下内容:
-
Simple Agent 模板:在 Langflow 中使用一个 Agent 组件创建基本的 Agent flow,该组件可以使用其他两个 Langflow 组件作为工具。 在 Agent 组件配置中指定的 LLM 可以在生成响应时使用其内置功能以及连接的工具提供的功能。
-
Langflow 快速开始:修改 Simple Agent 模板以使用不同的工具,然后学习如何在应用程序中使用 Agent flow。
-
将 Agent 用作工具:创建多 Agent flow。
-
将 Langflow 用作 MCP 客户端和将 Langflow 用作 MCP 服务器:使用 Agent 和 MCP Tools 组件在您的 flow 中实现 Model Context Protocol (MCP)。
Agent 组件
Agent 组件是您 Agent flow 中的主要 Agent 参与者。 该组件使用 LLM 集成来响应输入,如聊天消息或文件上传。
Agent 可以使用基础 LLM 模型中已可用的工具,以及您连接到 Agent 组件 Tools 端口的附加工具。 您可以将任何 Langflow 组件连接为工具,包括其他 Agent 组件和通过 MCP Tools 组件 连接的 MCP 服务器。
有关使用此组件的更多信息,请参阅 使用 Langflow Agent。
MCP Tools 组件
MCP Tools 组件连接到 Model Context Protocol (MCP) 服务器,并将 MCP 服务器的函数作为工具暴露给 Langflow Agent 用于响应输入。
除了公开可用的 MCP 服务器和您自己的自定义 MCP 服务器外,您还可以连接 Langflow MCP 服务器,这些服务器允许您的 Agent 将您的 Langflow flow 用作工具。
要做到这一点,请使用 MCP Tools 组件的 SSE 模式 连接到您在 /api/v1/mcp/sse
端点的 Langflow MCP 服务器。
有关使用此组件和将 flow 作为 MCP 工具提供服务的更多信息,请参阅 将 Langflow 用作 MCP 客 户端 和 将 Langflow 用作 MCP 服务器。
MCP Tools 组件的早期版本
- 在 Langflow 1.5 版本中,MCP Connection 组件被重命名为 MCP Tools 组件。
- 在 Langflow 1.3 版本中,MCP Tools (stdio) 和 MCP Tools (SSE) 组件被弃用并替换为统一的 MCP Connection 组件,该组件后来被重命名为 MCP Tools。
遗留 Agent 组件
以下组件是遗留组件。 您仍然可以在 flow 中使用这些组件,但它们不再维护,可能会在未来版本中被移除。
根据您的使用情况,请将这些组件替换为 Agent 组件或其他 Langflow 组件。
- CrewAI Hierarchical Task
- CrewAI Sequential Task
CrewAI Agent
该组件代表 CrewAI Agent,允许在团队内创建具有定义角色、目标和能力的专业 AI Agent。 有关更多信息,请参阅 CrewAI Agent 文档。
该组件接受以下参数:
名称 | 显示名称 | 信息 |
---|---|---|
role | 角色 | 输入参数。Agent 的角色。 |
goal | 目标 | 输入参数。Agent 的目标。 |
backstory | 背景 故事 | 输入参数。Agent 的背景故事。 |
tools | 工具 | 输入参数。Agent 可用的工具。 |
llm | 语言模型 | 输入参数。驱动 Agent 的语言模型。 |
memory | 记忆 | 输入参数。这决定了 Agent 是否应该有记忆。 |
verbose | 详细输出 | 输入参数。这启用详细输出。 |
allow_delegation | 允许委派 | 输入参数。这决定了 Agent 是否可以将任务委派给其他 Agent。 |
allow_code_execution | 允许代码执行 | 输入参数。这决定了 Agent 是否可以执行代码。 |
kwargs | kwargs | 输入参数。Agent 的附加关键字参数。 |
output | Agent | 输出参数。构建的 CrewAI Agent 对象。 |
CrewAI Hierarchical Crew
该组件代表一组 Agent,管理它们应该如何协作以及在层次结构中应该执行的任务。该组件允许创建一个由管理者监督任务执行的团队。 有关更多信息,请参阅 CrewAI 层次团队文档。
它接受以下参数:
名称 | 显示名称 | 信息 |
---|---|---|
agents | Agent | 输入参数。代表团队成员的 Agent 对象列表。 |
tasks | 任务 | 输入参数。代表要执行任务的 HierarchicalTask 对象列表。 |
manager_llm | 管理者 LLM | 输入参数。管理者 Agent 的语言模型。 |
manager_agent | 管理者 Agent | 输入参数。将充当管理者的特定 Agent。 |
verbose | 详细输出 | 输入参数。这启用详细日志记录的详细输出。 |
memory | 记忆 | 输入参数。团队的记忆配置。 |
use_cache | 使用缓存 | 输入参数。这启用结果缓存。 |
max_rpm | 最大 RPM | 输入参数。这设置每分钟最大请求数。 |
share_crew | 共享团队 | 输入参数。这决定了团队信息是否在 Agent 之间共享。 |
function_calling_llm | 函数调用 LLM | 输入参数。用于函数调用的语言模型。 |
crew | 团队 | 输出参数。构建的具有层次任务执行的 Crew 对象。 |
CrewAI Sequential Crew
该组件代表一组具有顺序执行任务的 Agent。该组件允许创建按特定顺序执行任务的团队。 有关更多信息,请参阅 CrewAI 顺序团队文档。
它接受以下参数:
名称 | 显示名称 | 信息 |
---|---|---|
tasks | 任务 | 输入参数。代表要执行任务的 SequentialTask 对象列表。 |
verbose | 详细输出 | 输入参数。这启用详细日志记录的详细输出。 |
memory | 记忆 | 输入参数。团队的记忆配置。 |
use_cache | 使用缓存 | 输入参数。这启用结果缓存。 |
max_rpm | 最大 RPM | 输入参数。这设置每分钟最大请求数。 |
share_crew | 共享团队 | 输入参数。这决定了团队信息是否在 Agent 之间共享。 |
function_calling_llm | 函 数调用 LLM | 输入参数。用于函数调用的语言模型。 |
crew | 团队 | 输出参数。构建的具有顺序任务执行的 Crew 对象。 |
CrewAI Sequential Task Agent
该组件创建一个 CrewAI 任务及其关联的 Agent,允许定义具有特定 Agent 角色和能力的顺序任务。 有关更多信息,请参阅 CrewAI 顺序 Agent 文档。
它接受以下参数:
名称 | 显示名称 | 信息 |
---|---|---|
role | 角色 | 输入参数。Agent 的角色。 |
goal | 目标 | 输入参数。Agent 的目标。 |
backstory | 背景故事 | 输入参数。Agent 的背景故事。 |
tools | 工具 | 输入参数。Agent 可用的工具。 |
llm | 语言模型 | 输入参数。驱动 Agent 的语言模型。 |
memory | 记忆 | 输入参数。这决定了 Agent 是否应该有记忆。 |
verbose | 详细输出 | 输入参数。这启用详细输出。 |
allow_delegation | 允许委派 | 输入参数。这决定了 Agent 是否可以将任务委派给其他 Agent。 |
allow_code_execution | 允许代码执行 | 输入参数。这决定了 Agent 是否可以执行代码。 |
agent_kwargs | Agent kwargs | 输入参数。Agent 的附加 kwargs。 |
task_description | 任务描述 | 输入参数。详细说明任务目的和执行的描述性文本。 |
expected_output | 任务预期输出 | 输入参数。任务预 期结果的明确定义。 |
async_execution | 异步执行 | 输入参数。指示异步任务执行的布尔标志。 |
previous_task | 上一个任务 | 输入参数。序列中用于链接的上一个任务。 |
task_output | 顺序任务 | 输出参数。代表创建任务的 SequentialTask 对象列表。 |