跳到主要内容

使用 Langflow 智能体

Langflow 的 Agent 组件 对于构建智能体流至关重要。该组件提供了创建智能体所需的一切,包括多个大语言模型 (LLM) 提供商、工具调用和自定义指令。它简化了智能体配置,以便您可以专注于应用程序开发。

智能体是如何工作的?

智能体通过集成工具来扩展大语言模型 (LLM),这些工具是提供额外上下文并实现自主任务执行的函数。这些集成使智能体比独立 LLM 更具专业性和强大功能。

虽然 LLM 可能会针对一般查询和任务生成可接受的、静态的响应,但智能体可以利用集成的上下文和工具提供更相关的响应,甚至采取行动。例如,您可以创建一个可以访问公司文档、代码库和其他资源的智能体,以帮助您的团队处理需要了解特定产品、客户和代码知识的任务。

智能体使用 LLM 作为推理引擎来处理输入,确定采取哪些行动来解决查询,然后生成响应。响应可以是典型的基于文本的 LLM 响应,也可以涉及操作,如编辑文件、运行脚本或调用外部 API。

在智能体语境中,工具是智能体可以运行以执行任务或访问外部资源的函数。函数被包装为一个具有智能体可理解的通用接口的 Tool 对象。智能体通过工具注册来感知工具,即在智能体初始化时为其提供可用工具列表。Tool 对象的描述告诉智能体该工具可以做什么,以便它可以决定该工具是否适合给定的请求。

在工作流中使用 Agent 组件

以下步骤说明了如何在 Langflow 中从空白工作流创建智能体流。有关预构建的示例,请使用 Simple Agent 模板或 Langflow 快速入门

  1. 点击 New Flow,然后点击 Blank Flow

  2. 在工作流中添加一个 Agent 组件。

  3. 选择您要使用的提供商和模型。Agent 组件的默认模型是 OpenAI 模型。如果您想使用其他提供商,请相应地编辑 Model ProviderModel Name 字段。如果您偏好的模型未列出,请在 Model Name 字段中输入完整的模型名称,然后从 Model Name 菜单中选择它。确保该模型在您的模型提供商账户中已启用/验证。有关更多信息,请参阅 Agent 组件参数

  4. 为您选择的模型提供商输入有效的凭据。确保该凭据具有调用所选模型的权限。

  5. 在工作流中添加 Chat InputChat Output 组件,然后将它们连接到 Agent 组件。

    至此,您已经创建了一个基础的基于 LLM 的聊天流,可以在 Playground 中进行测试。但是,此流仅与 LLM 聊天。要增强此流并使其真正具备智能体能力,请按照后续步骤添加一些工具。

    A basic agent chat flow with Chat Input, Agent, and Chat Output components.

  6. 在工作流中添加 Web SearchURLCalculator 组件。

  7. Web SearchURLCalculator 组件中启用 Tool Mode

    1. 点击 Web Search 组件以显示 组件的页眉菜单,然后启用 Tool Mode
    2. URLCalculator 组件重复此操作。
    3. 将每个工具组件的 Toolset 端口连接到 Agent 组件上的 Tools 端口。

    Tool Mode 通过修改组件的输入将组件转变为工具。启用 Tool Mode 后,组件可以接受来自 Agent 组件的请求,将组件的可用操作作为工具使用。

    Tool Mode 下,组件有一个 Toolset 端口,如果您想允许智能体将该组件的操作作为工具使用,则必须将其连接到 Agent 组件的 Tools 端口。

    有关更多信息,请参阅 为智能体配置工具

    A more complex agent chat flow where three components are connected to the Agent component as tools

  8. 打开 Playground,然后询问智能体:你正在使用哪些工具来回答我的问题?

    智能体应响应已连接工具的列表。它还可能包含内置工具。


    _10
    我结合使用我的内置知识(截至 2024 年 6 月)和一组外部工具来回答您的问题。以下是我可以使用的主要工具类型:
    _10
    网页搜索和内容获取:我可以获取并总结网页内容,包括递归抓取链接。
    _10
    新闻搜索:我可以使用 Google 新闻通过 RSS 源搜索最近的新闻文章。
    _10
    计算器:我可以执行算术计算并评估数学表达式。
    _10
    日期和时间:我可以提供各种时区的当前日期和时间。
    _10
    这些工具帮助我提供最新信息、执行计算并在需要时从互联网检索特定数据。如果您有特定问题,请告诉我,我会使用最合适的工具来提供帮助!

  9. 要测试特定工具,请向智能体提出一个使用其中一个工具的问题,例如 总结今日科技新闻

    为了帮助您调试和测试工作流,Playground 会显示智能体的工具调用、提供的输入以及智能体在生成摘要前收到的原始输出。在给定的示例中,智能体应调用 Web Search 组件,并将 Search Mode 设置为 News

您已成功创建了一个使用通用工具的基础智能体流。

要继续深入学习本教程,请尝试连接其他工具组件或 将 Langflow 作为 MCP 客户端使用,以支持更复杂和专业的任务。

有关多智能体示例,请参阅 将智能体作为工具使用

Agent 组件参数

您可以配置 Agent 组件以使用您偏好的提供商和模型、自定义指令以及工具。

某些参数在可视化编辑器中默认隐藏。您可以通过 组件页眉菜单中的 Controls 修改所有参数。

提供商和模型

使用 Model Provider (agent_llm) 和 Model Name (llm_model) 设置来选择您希望智能体使用的模型提供商和 LLM。

Agent 组件包含了来自几个流行模型提供商的许多模型。要访问其他提供商或模型,您可以执行以下任一操作:

  • Model Provider 设置为 Connect other models,然后连接任何 语言模型组件
  • 选择您偏好的提供商,在 Model Name 字段中输入完整的模型名称,然后从 Model Name 菜单中选择您的自定义选项。确保该模型在您的模型提供商账户中已启用/验证。

如果您需要在流中生成嵌入,请使用 嵌入模型组件

模型提供商 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 组件)提供。

工具

当智能体拥有适当的工具来完成请求时,它们是最有用的。

Agent 组件可以将任何 Langflow 组件作为工具使用,包括其他智能体和 MCP 服务器。

要将组件作为工具附加,您必须在要附加的组件上启用 Tool Mode,然后将其连接到 Agent 组件的 Tools 端口。有关更多信息,请参阅 为智能体配置工具

提示

要允许智能体使用来自 MCP 服务器的工具,请使用 MCP Tools 组件

智能体记忆

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) 时,此设置会记录详细的日志输出,以便进行调试和分析。

某些参数在可视化编辑器中默认隐藏。您可以通过 组件页眉菜单中的 Controls 修改所有参数。

Agent 组件输出

Agent 组件输出一个 Response (response),它是包含智能体对查询的原始响应的 Message 数据

通常,这会被传递给 Chat Output 组件以返回人类可读格式的响应。如果您需要在将响应返回给用户之前或之后对其进行进一步处理,也可以将其传递给其他组件。

另请参阅

Search