跳到主要内容

使用 Langflow agents

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

代理是如何工作的?

代理通过集成_工具_来扩展大型语言模型(LLMs),这些工具是提供额外上下文并支持自主任务执行的函数。 这些集成使代理比独立的LLMs更加专业和强大。

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

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

在代理上下文中,工具是代理可以运行以执行任务或访问外部资源的函数。 函数被包装成一个Tool对象,具有代理理解的通用接口。 代理通过工具注册来了解工具,这通常是在代理初始化时提供给代理可用工具列表的时候。 Tool对象的描述告诉代理工具的功能,以便代理能够决定该工具是否适合给定的请求。

在流程中使用 Agent 组件

以下步骤说明如何在 Langflow 中从空白流程创建 agent 流程。 对于预构建的示例,请使用 Simple Agent 模板或 Langflow 快速入门

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

  2. 向您的流程中添加一个 Agent 组件。

  3. 输入有效的 OpenAI API 密钥。

    Agent 组件的默认模型是 OpenAI 模型。 如果您想使用其他提供商,请相应地编辑 Model ProviderModel NameAPI Key 字段。 有关更多信息,请参阅 Agent 组件参数

  4. 向您的流程中添加 Chat InputChat Output 组件,然后将它们连接到 Agent 组件。

    此时,您已经创建了一个基于 LLM 的基本聊天流程,您可以在 Playground 中测试它。 但是,此流程仅与 LLM 聊天。 要增强此流程并使其真正具有 agent 特性,请按照以下步骤添加一些工具。

    一个包含 Chat Input、Agent 和 Chat Output 组件的基本 agent 聊天流程。

  5. 向您的流程中添加 News SearchURLCalculator 组件。

  6. News SearchURLCalculator 组件中启用 Tool Mode

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

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

    处于 Tool Mode 时,组件有一个 Toolset 端口,如果您希望允许 agent 使用该组件的操作作为工具,则必须将其连接到 Agent 组件的 Tools 端口。

    有关更多信息,请参阅 为 agent 配置工具

    一个更复杂的 agent 聊天流程,其中三个组件作为工具连接到 Agent 组件

  7. 打开 Playground,然后询问 agent,您使用什么工具来回答我的问题?

    agent 应该会响应一个已连接工具的列表。 它可能还包括内置工具。


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

  8. 要测试特定工具,请询问 agent 一个使用其中一个工具的问题,例如 总结今天的科技新闻

    为了帮助您调试和测试流程,Playground 会显示 agent 的工具调用、提供的输入以及 agent 在生成摘要之前接收到的原始输出。 在给定的示例中,agent 应该调用 News Search 组件的 search_news 操作。

您已成功创建了一个使用一些通用工具的基本 agent 流程。

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

有关多 agent 示例,请参阅将 agent 用作工具

Agent 组件参数

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

在可视化编辑器中,部分参数默认情况下是隐藏的。 您可以通过组件的头部菜单中的 控件 来修改所有参数。

提供商和模型

使用模型提供商 (agent_llm) 和模型名称 (llm_model) 设置来选择您希望代理使用的模型提供商和LLM。

Agent 组件包含来自多个流行模型提供商的多种模型。 要访问其他提供商和模型,请将模型提供商设置为自定义,然后连接任何语言模型组件

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

模型提供商API密钥

API密钥字段中,如果您使用的是内置提供商,请为您选择的模型提供商输入有效的身份验证密钥。 例如,要使用默认的OpenAI模型,您必须为具有积分和调用OpenAI LLM权限的OpenAI账户提供有效的OpenAI API密钥。

您可以直接输入密钥,但建议您遵循行业最佳实践来存储和引用API密钥。 例如,您可以使用全局变量环境变量。 有关更多信息,请参阅将组件API密钥添加到Langflow

如果您将自定义选择为模型提供商,身份验证将在传入的语言模型组件中处理。

Agent指令和输入

Agent指令 (system_prompt) 字段中,您可以提供希望Agent组件在每次对话中使用的自定义指令。

这些指令会应用于输入 (input_value),可以直接输入或通过其他组件(如聊天输入组件)提供。

工具

当代理拥有适当的工具来完成请求时,它们最有用。

Agent 组件可以将任何Langflow组件用作工具,包括其他代理和MCP服务器。

要将组件附加为工具,您必须在要附加的组件上启用工具模式,然后将其附加到Agent组件的工具端口。 有关更多信息,请参阅为代理配置工具

提示

要允许代理使用来自MCP服务器的工具,请使用MCP工具组件

Agent记忆

Langflow代理具有内置的聊天记忆,默认启用。 这种记忆使它们能够检索和引用来自先前对话的消息,为每个聊天会话ID维护一个滚动上下文窗口。

聊天记忆按会话ID (session_id)分组。 如果您需要为运行相同流程的不同用户或应用程序隔离聊天记忆,建议使用自定义会话ID。

默认情况下,Agent组件使用您的Langflow安装的存储,并检索有限数量的聊天消息,您可以通过聊天历史消息数量参数进行配置。

默认聊天记忆不需要消息历史组件,但如果您想使用外部聊天记忆(如Mem0),则需要该组件。 此外,消息历史组件提供了更多用于排序、过滤和限制记忆的选项。尽管其中大多数选项都内置在Agent组件中,并带有默认值。

有关更多信息,请参阅存储聊天记忆消息历史组件

其他参数

使用Agent组件时,可用参数可能会根据所选提供商和模型而变化,包括对额外模式、参数或功能(如聊天记忆和温度)的支持。 例如:

  • 当前日期 (add_current_date_tool):当启用(true)时,此设置会向代理添加一个可以检索当前日期的工具。
  • 处理解析错误 (handle_parsing_errors):当启用(true)时,此设置允许代理在分析用户输入时修复错误,如拼写错误。
  • 详细输出 (verbose):当启用(true)时,此设置记录详细的日志输出以进行调试和分析。

在可视化编辑器中,部分参数默认情况下是隐藏的。 您可以通过组件的头部菜单中的 控件 来修改所有参数。

Agent组件输出

Agent组件输出一个响应 (response),这是包含代理对查询的原始响应的Message数据

通常,这会传递到聊天输出组件,以人类可读的格式返回响应。 如果需要在返回给用户之前或同时进一步处理响应,也可以将其传递到其他组件。

另请参阅

Search