使用 Langflow 代理 (Agents)
Langflow 的 Agent (代理) 组件 是构建代理流的关键。 该组件提供了创建代理所需的一切,包括支持多个大语言模型 (LLM) 提供商、工具调用和自定义指令。 它简化了代理的配置,使您可以专注于应用程序的开发。
How do agents work?
Agents extend Large Language Models (LLMs) by integrating tools, which are functions that provide additional context and enable autonomous task execution. These integrations make agents more specialized and powerful than standalone LLMs.
Whereas an LLM might generate acceptable, inert responses to general queries and tasks, an agent can leverage the integrated context and tools to provide more relevant responses and even take action. For example, you might create an agent that can access your company's documentation, repositories, and other resources to help your team with tasks that require knowledge of your specific products, customers, and code.
Agents use LLMs as a reasoning engine to process input, determine which actions to take to address the query, and then generate a response. The response could be a typical text-based LLM response, or it could involve an action, like editing a file, running a script, or calling an external API.
In an agentic context, tools are functions that the agent can run to perform tasks or access external resources.
A function is wrapped as a Tool object with a common interface that the agent understands.
Agents become aware of tools through tool registration, which is when the agent is provided a list of available tools typically at agent initialization.
The Tool object's description tells the agent what the tool can do so that it can decide whether the tool is appropriate for a given request.
在流中使用 Agent 组件
以下步骤说明了如何在 Langflow 中从空白流开始创建一个代理流。 有关预构建的示例,请使用 Simple Agent (简单代理) 模板或参考 Langflow 快速入门。
-
点击 New Flow (新建流),然后点击 Blank Flow (空白流)。
-
向您的流中添加一个 Agent (代理) 组件。
-
选择您想要使用的提供商和模型。 Agent 组件的默认模型是 OpenAI 模型。 如果您想使用不同的提供商,请相应地编辑 Model Provider (模型提供商) 和 Model Name (模型名称) 字段。 如果您喜欢的模型未列出,请在 Model Name 字段中输入完整的模型名称,然后从 Model Name 菜单中选择它。 请确保该模型在您的模型提供商账户中已启用/验证。 有关更多信息,请参阅 Agent 组件参数。
-
为您选择的模型提供商输入有效的凭据。 确保该凭据具有调用所选模型的权限。
-
向您的流中添加 Chat Input (聊天输入) 和 Chat Output (聊天输出) 组件 到您的流中,然后将它们连接到 Agent 组件。
至此,您已经创建了一个基础的基于 LLM 的聊天流,您可以在 游乐场 (Playground) 中进行测试。 然而,这个流目前只能与 LLM 聊天。 为了增强此流并使其真正具有代理能力,请添加一些工具,如下面的步骤所述。

-
向您的流中添加 Web Search (网页搜索)、URL 和 Calculator (计算器) 组件。
-
在 Web Search、URL 和 Calculator 组件中启用 Tool Mode (工具模式):
- 点击 Web Search 组件以显示组件标题菜单,然后启用 Tool Mode。
- 对 URL 和 Calculator 组件重复上述操作。
- 将每个工具组件的 Toolset (工具集) 端口连接到 Agent 组件上的 Tools (工具) 端口。
Tool Mode 通过修改组件的输入将组件转换为工具。 启用 Tool Mode 后,组件可以接受来自 Agent 组件的请求,将其可用操作作为工具使用。
在 Tool Mode 下,组件具有一个 Toolset 端口,如果您想允许代理使用该组件的操作作为工具,则必须将其连接到 Agent 组件的 Tools 端口。
有关更多信息,请参阅 为代理配置工具。

-
打开 游乐场 (Playground),然后询问代理:
你正在使用哪些工具来回答我的问题?代理应该返回已连接工具的列表。 它可能还包括内置工具。
_10我结合使用了我的内置知识(截至 2024 年 6 月)和一组外部工具来回答您的问题。以下是我可以使用的主要工具类型:_10网页搜索与内容获取:我可以从网页获取并总结内容,包括递归抓取链接。_10新闻搜索:我可以通过 RSS 源使用 Google News 搜索最近的新闻文章。_10计算器:我可以执行算术计算并评估数学表达式。_10日期与时间:我可以提供各种时区的当前日期和时间。_10这些工具帮助我提供最新信息、执行计算并在需要时从互联网检索特定数据。如果您有具体问题,请告诉我,我会使用最合适的工具来帮助您! -
要测试特定工具,请向代理提出一个使用其中一个工具的问题,例如
总结今天的科技新闻。为了帮助您调试和测试流,游乐场 会显示代理的工具调用、提供的输入以及代理在生成摘要之前接收到的原始输出。 在上述示例中,代理应该调用 Web Search 组件,并将 Search Mode (搜索模式) 设置为 News (新闻)。
您已成功创建了一个使用一些通用工具的基础代理流。
要在此教程的基础上继续构建,请尝试连接其他工具组件或将 Langflow 用作 MCP 客户端以支持更复杂和专业的任务。
有关多代理示例,请参阅 将代理用作工具。
Agent 组件参数
您可以配置 Agent 组件以使用您喜欢的提供商和模型、自定义指令和工具。
Some parameters are hidden by default in the visual editor. You can modify all parameters through the Controls in the component's header menu.
提供商与模型
使用 Model Provider (模型提供商) (agent_llm) 和 Model Name (模型名称) (llm_model) 设置来选择您希望代理使用的模型提供商和 LLM。
Agent 组件包含来自多个流行模型提供商的许多模型。 要访问其他提供商或模型,您可以执行以下任一操作:
- 将 Model Provider 设置为 Connect other models (连接其他模型),然后连接任何 语言模型组件。
- 选择您喜欢的提供商,在 Model Name 字段中输入完整的模型名称,然后从 Model Name 菜单中选择您的自定义选项。 请确保该模型在您的模型提供商账户中已启用/验证。
如果您需要在流中生成嵌入(Embeddings),请使用 嵌入模型组件。
模型提供商 API 密钥
如果您使用的是内置提供商,请在 API Key 字段中输入为您选择的模型提供商提供的有效身份验证密钥。 例如,要使用默认的 OpenAI 模型,您必须为一个拥有信用额度且有权调用 OpenAI LLM 的 OpenAI 账户提供有效的 OpenAI API 密钥。
您可以直接输入密钥,但建议您遵循行业最佳实践来存储和引用 API 密钥。 例如,您可以使用 全局变量 或 环境变量。 有关更多信息,请参阅 向 Langflow 添加组件 API 密钥。
如果您选择 Connect other models 作为模型提供商,则身份验证由输入的语言模型组件处理。
代理指令与输入
在 Agent Instructions (代理指令) (system_prompt) 字段中,您可以提供希望 Agent 组件在每次对话中使用的自定义指令。
这些指令是在 Input (输入) (input_value) 之外应用的,输入可以直接输入,也可以通过另一个组件(如 Chat Input 组件)提供。
工具 (Tools)
当代理拥有完成请求所需的适当工具时,它们最为有用。
Agent 组件可以将任何 Langflow 组件用作工具,包括其他代理和 MCP 服务器。
要将组件作为工具连接,您必须在要连接的组件上启用 Tool Mode (工具模式),然后将其连接到 Agent 组件的 Tools (工具) 端口。 有关更多信息,请参阅 为代理配置工具。
要允许代理使用来自 MCP 服务器的工具,请使用 MCP Tools 组件。
代理记忆 (Agent memory)
Langflow 代理内置了聊天记忆功能,默认情况下已启用。 这种记忆允许它们检索和引用之前对话中的消息,为每个聊天会话 ID 维护一个滚动的上下文窗口。
聊天记忆按 会话 ID (session_id) 分组。
如果您需要为运行相同流的不同用户或应用程序隔离聊天记忆,建议使用自定义会话 ID。
默认情况下,Agent 组件使用您的 Langflow 安装存 储,并检索有限数量的聊天消息,您可以通过 Number of Chat History Messages (聊天历史消息数量) 参数进行配置。
默认聊天记忆不需要 Message History (消息历史) 组件,但如果您想使用 Mem0 等外部聊天记忆,则需要该组件。 此外,Message History 组件提供了更多用于排序、过滤和限制记忆的选项。尽管如此,这些选项中的大多数已内置到 Agent 组件中并带有默认值。
有关更多信息,请参阅 存储聊天记忆 和 Message History 组件。
其他参数
使用 Agent 组件时,可用参数可能会根据所选提供商和模型而变化,包括对额外模式、参数或功能(如聊天记忆和温度)的支持。 例如:
- Current Date (当前日期) (
add_current_date_tool):启用 (true) 后,此设置会向代理添加一个可以获取当前日期的工具。 - Handle Parse Errors (处理解析错误) (
handle_parsing_errors):启用 (true) 后,此设置允许代理在分析用户输入时修复错误(如拼写错误)。 - Verbose (详细模式) (
verbose):启用 (true) 后,此设置会记录详细的日志输出,用于调试和分析。
Some parameters are hidden by default in the visual editor. You can modify all parameters through the Controls in the component's header menu.
Agent 组件输出
Agent 组件输出一个 Response (响应) (response),它是包含代理对查询的原始响应的 Message 数据。
通常,这会传递给 Chat Output 组件,以人类可读的格式返回响应。 如果您需要在将响应返回给用户之前或之后对其进行进一步处理,也可以将其传递给其他组件。