使用 Langflow agents
Langflow 的 Agent 组件 对于构建 agent 流程至关重要。 该组件提供了创建 agent 所需的一切,包括多个大型语言模型(LLM)提供商、工具调用和自定义指令。 它简化了 agent 配置,让您可以专注于应用程序开发。
代理是如何工作的?
代理通过集成_工具_来扩展大型语言模型(LLMs),这些工具是提供额外上下文并支持自主任务执行的函数。 这些集成使代理比独立的LLMs更加专业和强大。
虽然LLM可能会对通用查询和任务生成可接受的、静态的响应,但代理可以利用集成的上下文和工具来提供更相关的响应,甚至采取行动。 例如,您可以创建一个代理,它可以访问您公司的文档、仓库和其他资源,帮助您的团队完成需要了解您特定产品、客户和代码的任务。
代理使用LLMs作为推理引擎来处理输入,确定要采取哪些行动来解决查询,然后生成响应。 响应可以是典型的基于文本的LLM响应,也可以涉及行动,比如编辑文件、运行脚本或调用外部API。
在代理上下文中,工具是代理可以运行以执行任务或访问外部资源的函数。
函数被包装成一个Tool
对象,具有代理理解的通用接口。
代理通过工具注册来了解工具,这通常是在代理初始化时提供给代理可用工具列表的时候。
Tool
对象的描述告诉代理工具的功能,以便代理能够决定该工具是否适合给定的请求。
在流程中使用 Agent 组件
以下步骤说明如何在 Langflow 中从空白流程创建 agent 流程。 对于预构建的示例,请使用 Simple Agent 模板或 Langflow 快速入门。
-
点击 New Flow,然后点击 Blank Flow。
-
向您的流程中添加一个 Agent 组件。
-
输入有效的 OpenAI API 密钥。
Agent 组件的默认模型是 OpenAI 模型。 如果您想使用其他提供商,请相应地编辑 Model Provider、Model Name 和 API Key 字段。 有关更多信息,请参阅 Agent 组件参数。
-
向您的流程中添加 Chat Input 和 Chat Output 组件,然后将它们连接到 Agent 组件。
此时,您已经创建了一个基于 LLM 的基本聊天流程,您可以在 Playground 中测试它。 但是,此流程仅与 LLM 聊天。 要增强此流程并使其真正具有 agent 特性,请按照以下步骤添加一些工具。
-
向您的流程中添加 News Search、URL 和 Calculator 组件。
-
在 News Search、URL 和 Calculator 组件中启用 Tool Mode:
- 点击 News Search 组件以显示组件的标题菜单,然后启用 Tool Mode。
- 对 URL 和 Calculator 组件重复此操作。
- 将每个工具组件的 Toolset 端口连接到 Agent 组件的 Tools 端口。
Tool Mode 通过修改组件的输入将组件变成工具。 启用 Tool Mode 后,组件可以接受来自 Agent 组件的请求,使用组件的可用操作作为工具。
处于 Tool Mode 时,组件有一个 Toolset 端口,如果您希望允许 agent 使用该组件的操作作为工具,则必须将其连接到 Agent 组件的 Tools 端口。
有关更多信息,请参阅 为 agent 配置工具。
-
打开 Playground,然后询问 agent,
您使用什么工具来回答我的问题?
agent 应该会响应一个已连接工具的列表。 它可能还包括内置工具。
_10我使用内置知识(截至2024年6月)和一组外部工具的组合来回答您的问题。以下是我可以使用的主要工具类型:_10网络搜索和内容获取:我可以获取和总结网页内容,包括递归爬取链接。_10新闻搜索:我可以使用通过 RSS 提要的 Google News 搜索最近的新闻文章。_10计算器:我可以执行算术计算和评估数学表达式。_10日期和时间:我可以提供不同时区的当前日期和时间。_10这些工具帮助我提供最新信息、执行计算并在需要时从互联网检索特定数据。如果您有特定问题,请告诉我,我将使用最合适的工具来帮助您! -
要测试特定工具,请询问 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工具组件。