Langflow 中的工具组件
工具通常通过工具端口连接到 Agent 组件。Agent 使用 LLM 作为推理引擎,来决定使用哪个连接的工具组件来解决问题。
Agent 函数中的工具本质上是 Agent 可以调用来执行任务或访问外部资源的函数。函数被包装成一个 Tool
对象,具有 Agent 理解的通用接口。Agent 通过工具注册了解工具,Agent 在注册时会获得可用工具列表,通常在 Agent 初始化时提供。Tool
对象的描述告诉 Agent 该工具可以做什么。
然后 Agent 使用连接的 LLM 推理问题,以决定哪个工具最适合该任务。
在流程中使用工具
工具通常通过工具端口连接到 Agent 组件。
simple agent 入门项目使用连接到 Agent 组件的 URL 工具和计算器工具来回答用户问题。OpenAI LLM 充当 Agent 的大脑,决定使用哪个工具。
要将组件变成 Agent 可以使用的工具,请在组件中启用工具模式。启用工具模式会修改组件输入,使其接受来自 Agent 的调用。如果您想连接到 Agent 的组件没有工具模式选项,您可以修改组件的输入以使其成为工具。例如,请参阅将任何组件变成工具。
arXiv
此组件搜索并检索 arXiv.org 中的论文。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
search_query | 字符串 | arXiv 论文的搜索查询。例如,quantum computing 。 |
search_type | 字符串 | 要搜索的字段。 |
max_results | 整数 | 返回的最大结果数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
papers | 列表[数据] | 检索到的 arXiv 论文列表。 |
Astra DB 工具
此组件允许 Agent 查询 Astra DB 集合中的数据。
要在流程中使用此工具,请将其连接到Agent组件。流程如下所示
工具名称和工具描述字段是 Agent 决定何时使用工具所必需的。工具名称不能包含空格。
集合名称、Astra DB 应用程序令牌和Astra DB API 端点的值可在您的 Astra DB 部署中找到。有关更多信息,请参阅DataStax 文档。
在此示例中,连接了一个 OpenAI 嵌入组件以使用 Astra DB 工具组件的语义搜索功能。要使用语义搜索,您必须启用嵌入模型或 Astra DB Vectorize。如果您尝试在没有嵌入模型的情况下运行流程,将会收到错误。
打开Playground并询问有关您数据的问题。Agent 使用Astra DB 工具返回有关您的集合的信息。
定义 Astra DB 工具参数
工具参数配置窗格允许您为组件的查找命令定义筛选条件的参数。
这些筛选器将作为 LLM 在调用工具时可以使用的参数提供,描述字段提供了对每个参数的更好理解。
- 要为查询定义参数,请在工具参数窗格中单击.
- 根据您的数据填写字段。例如,使用此筛选器,LLM 可以按唯一的
customer_id
值进行筛选。
- 名称:
customer_id
- 属性名称:如果属性与数据库中的字段名称匹配,则留空。
- 描述:
"要筛选的客户的唯一标识符"
。 - 是元数据:
False
,除非该值存储在元数据字段中。 - 是否强制:
True
表示需要此筛选器。 - 是否为时间戳:
False
,因为该值为 ID,而不是时间戳。 - 运算符:
$eq
用于查找精确匹配。
如果无论 LLM 的输入如何都想应用筛选器,请使用静态筛选器选项,该选项位于组件的控件窗格中。
参数 | 描述 |
---|---|
名称 | 向 LLM 公开的参数名称。它可以与底层字段名称相同,也可以是更具描述性的标签。LLM 使用此名称以及描述来推断执行期间要提供的值。 |
属性名称 | 当向 LLM 显示的参数名称与数据库中的实际字段或属性不同时,请使用此设置将用户可见的名称映射到正确的属性。例如,要对时间戳字段应用范围筛选,请定义两个单独的参数,例如 start_date 和 end_date ,它们都引用相同的时间戳属性。 |
描述 | 向 LLM 提供有关如何使用参数的说明。清晰具体的指导有助于 LLM 提供有效输入。例如,如果 specialty 等字段以小写形式存储,则描述应指明输入必须为小写。 |
是否为元数据 | 使用 LangChain 或 Langflow 加载数据时,附加属性可能存储在元数据对象下。如果目标属性以此方式存储,请启用此选项。它通过生成格式为 {"metadata.<attribute_name>": "<value>"} 的筛选器来调整查询。 |
是否为时间戳 | 对于基于日期或时间的筛选器,启用此选项可自动将值转换为 Astrapy 客户端期望的时间戳格式。这确保了与底层 API 的兼容性,而无需手动格式化。 |
运算符 | 定义应用于属性的筛选逻辑。您可以使用任何有效的Data API 筛选运算符。例如,要筛选时间戳属性上的时间范围,请使用两个参数:一个使用 $gt 运算符表示“大于”,另一个使用 $lt 运算符表示“小于”。 |
参数
输入
名称 | 类型 | 描述 |
---|---|---|
工具名称 | 字符串 | 用于在 Agent 提示中引用工具的名称。 |
工具描述 | 字符串 | 工具的简要描述。这有助于模型决定何时使用它。 |
集合名称 | 字符串 | 要查询的 Astra DB 集合的名称。 |
令牌 | 密文字符串 | 访问 Astra DB 的身份验证令牌。 |
API 端点 | 字符串 | Astra DB API 端点。 |
投影字段 | 字符串 | 要返回的属性,以逗号分隔。默认为 * 。 |
工具参数 | 字典 | 模型执行工具所需的参数。对于必需参数,使用感叹号,例如 !customer_id 。 |
静态筛选器 | 字典 | 用于筛选查询结果的属性-值对。 |
限制 | 字符串 | 要返回的文档数。 |
输出
数据输出在直接查询 Astra DB 时使用,而工具输出在与 Agent 集成时使用。
名称 | 类型 | 描述 |
---|---|---|
数据 | 列表[数据] | 包含 Astra DB 查询结果的数据对象列表。每个 Data 对象包含由投影属性指定的文档字段。受 number_of_results 参数限制。 |
工具 | 结构化工具 | 一个 LangChain StructuredTool 对象,可用于 Agent 工作流程。包含工具名称、描述、基于工具参数的参数模式以及查询函数。 |
Astra DB CQL 工具
Astra DB CQL 工具
允许 Agent 查询 Astra DB 中 CQL 表的数据。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
工具名称 | 字符串 | 用于在 Agent 提示中引用工具的名称。 |
工具描述 | 字符串 | 工具的简要描述,指导模型如何使用它。 |
键空间 | 字符串 | 键空间的名称。 |
表名称 | 字符串 | 要查询的 Astra DB CQL 表的名称。 |
令牌 | 密文字符串 | Astra DB 的身份验证令牌。 |
API 端点 | 字符串 | Astra DB API 端点。 |
投影字段 | 字符串 | 要返回的属性,以逗号分隔。默认值:“*”。 |
分区键 | 字典 | 模型必须填写才能查询工具的必需参数。 |
聚类键 | 字典 | 模型可以填写以优化查询的可选参数。必需参数应使用感叹号标记,例如 !customer_id 。 |
静态筛选器 | 字典 | 用于筛选查询结果的属性-值对。 |
限制 | 字符串 | 要返回的记录数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
数据 | 列表[数据] | 包含 Astra DB CQL 表查询结果的数据对象列表。每个数据对象包含由投影字段指定的文档字段。受 number_of_results 参数限制。 |
工具 | 结构化工具 | 一个 LangChain StructuredTool 对象,可用于 Agent 工作流程。包含工具名称、描述、基于分区键和聚类键的参数模式以及查询函数。 |
Bing 搜索 API
此组件允许您调用 Bing 搜索 API。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
bing_subscription_key | 密文字符串 | Bing API 订阅密钥。 |
input_value | 字符串 | 搜索查询输入。 |
bing_search_url | 字符串 | 自定义 Bing 搜索 URL。 |
k | 整数 | 返回的搜索结果数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
results | 列表[数据] | 搜索结果列表。 |
tool | 工具 | 可用于 LangChain 的 Bing 搜索工具。 |
组合推理器
此组件在输入上运行 Icosa 的组合推理 (CR) 管道,以创建带有嵌入式理由的优化提示。有关更多信息,请参阅Icosa computing。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
prompt | 字符串 | 对其运行 CR 的输入。 |
openai_api_key | 密文字符串 | 用于身份验证的 OpenAI API 密钥。 |
username | 字符串 | 用于 Icosa API 身份验证的用户名。 |
password | 密文字符串 | 用于 Icosa API 身份验证的密码。 |
model_name | 字符串 | 用于生成理由的 OpenAI LLM。 |
输出
名称 | 类型 | 描述 |
---|---|---|
optimized_prompt | 消息 | 包含优化提示的消息对象。 |
reasons | 列表[字符串] | 嵌入在优化提示中的所选理由列表。 |
DuckDuckGo 搜索
此组件使用DuckDuckGo 搜索引擎执行网络搜索,具有结果限制功能。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
input_value | 字符串 | 使用 DuckDuckGo 执行的搜索查询。 |
max_results | 整数 | 返回的最大搜索结果数。默认值:5。 |
max_snippet_length | 整数 | 每个结果摘要的最大长度。默认值:100。 |
输出
名称 | 类型 | 描述 |
---|---|---|
data | 列表[数据] | 包含摘要和完整内容的搜索结果列表,作为数据对象。 |
text | 字符串 | 搜索结果格式化为单个文本字符串。 |
Exa 搜索
此组件提供一个 Exa 搜索工具包,用于搜索和内容检索。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
metaphor_api_key | 密文字符串 | Exa 搜索的 API 密钥。 |
use_autoprompt | 布尔值 | 是否使用自动提示功能。默认值:true。 |
search_num_results | 整数 | 搜索返回的结果数。默认值:5。 |
similar_num_results | 整数 | 返回的相似结果数。默认值:5。 |
输出
名称 | 类型 | 描述 |
---|---|---|
tools | 列表[工具] | 工具包提供的搜索工具列表。 |
Glean 搜索 API
此组件允许您调用 Glean 搜索 API。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
glean_api_url | 字符串 | Glean API 的 URL。 |
glean_access_token | 密文字符串 | 用于 Glean API 身份验证的访问令牌。 |
query | 字符串 | 搜索查询输入。 |
page_size | 整数 | 每页结果数。默认值:10。 |
request_options | 字典 | API 请求的其他选项。 |
输出
名称 | 类型 | 描述 |
---|---|---|
results | 列表[数据] | 搜索结果列表。 |
tool | 工具 | 可用于 LangChain 的 Glean 搜索工具。 |
Google Serper API
此组件允许您调用 Serper.dev Google 搜索 API。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
serper_api_key | 密文字符串 | 用于 Serper.dev 身份验证的 API 密钥。 |
input_value | 字符串 | 搜索查询输入。 |
k | 整数 | 返回的搜索结果数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
results | 列表[数据] | 搜索结果列表。 |
tool | 工具 | 可用于 LangChain 的 Google Serper 搜索工具。 |
MCP 连接
MCP 连接组件连接到模型上下文协议 (MCP) 服务器,并将 MCP 服务器的工具作为 Langflow Agent 的工具公开。
除了作为可以利用 MCP 服务器的 MCP 客户端之外,MCP 连接组件的SSE 模式还允许您将流程连接到 /api/v1/mcp/sse
API 端点的 Langflow MCP 服务器,从而将您的项目内的所有流程作为流程中的工具公开。
要将MCP 连接组件与 Agent 组件一起使用,请按照以下步骤操作
-
将MCP 连接组件添加到您的工作流程中。
-
在MCP 连接组件的MCP 命令字段中,输入启动 MCP 服务器的命令。例如,要启动一个Fetch 服务器,命令是
_10uvx mcp-server-fetchuvx
包含在 Langflow 包的uv
中。要使用npx
服务器命令,必须首先安装 Node.js 的 LTS 版本。有关启动npx
MCP 服务器的示例,请参阅将 Astra DB MCP 服务器连接到 Langflow。要将环境变量包含在服务器命令中,请将其添加到环境字段中,如下所示
_10ASTRA_DB_APPLICATION_TOKEN=AstraCS:...重要Langflow 会将
.env
文件中的环境变量传递给 MCP,但不会传递在 UI 中声明的全局变量。要将环境变量的值添加为全局变量,请在启动时将其添加到 Langflow 的.env
文件中。有关更多信息,请参阅全局变量。 -
单击以获取服务器的工具列表。
-
在工具字段中,选择组件要使用的服务器工具。可用字段会根据所选工具而变化。有关参数信息,请参阅 MCP 服务器文档。
-
在MCP 连接组件中,启用工具模式。将MCP 连接组件的工具集端口连接到 Agent 组件的工具端口。
流程看起来与此类似:
-
打开Playground。要求 Agent 总结最近的技术新闻。Agent 调用 MCP 服务器函数
fetch
并返回摘要。这确认 MCP 服务器已连接,并且其工具正在 Langflow 中使用。
有关更多信息,请参阅MCP 服务器。
MCP 服务器发送事件 (SSE) 模式
如果您使用Langflow 桌面版,默认地址为 http://127.0.0.1:7868/
。
MCP 组件的 SSE 模式通过组件将您的流程连接到 Langflow MCP 服务器。这允许您将您的项目内的所有流程作为流程中的工具使用。
- 在MCP 连接组件中,选择 SSE。默认地址将显示在MCP SSE URL字段中。
- 在MCP SSE URL字段中,修改默认地址以指向您当前运行的 Langflow 服务器的 SSE 端点。默认值为
http://localhost:7860/api/v1/mcp/sse
。 - 单击以检索服务器的工具列表。
- 单击工具字段。您所有的流程都将作为工具列出。
- 启用工具模式,然后将MCP 连接组件连接到 Agent 组件的工具端口。流程如下所示:
- 打开Playground并与您的工具聊天。Agent 会根据您的查询选择正确的工具。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
command | 字符串 | MCP 命令。默认值:uvx mcp-sse-shim@latest 。 |
输出
名称 | 类型 | 描述 |
---|---|---|
tools | 列表[工具] | MCP 服务器公开的工具列表。 |
Wikidata
此组件使用 Wikidata API 执行搜索。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
query | 字符串 | 用于在 Wikidata 上进行相似性搜索的文本查询。 |
输出
名称 | 类型 | 描述 |
---|---|---|
data | 列表[数据] | Wikidata API 的搜索结果,作为数据对象列表。 |
text | 消息 | 格式化为文本消息的搜索结果。 |
旧版组件
旧版组件仍然可用,但不再支持。
计算器工具
此组件允许您计算基本的算术表达式。它支持加法、减法、乘法、除法和幂运算。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
expression | 字符串 | 要计算的算术表达式。例如,4*4*(33/22)+12-20 。 |
输出
名称 | 类型 | 描述 |
---|---|---|
result | 工具 | 可用于 LangChain 的计算器工具。 |
Google 搜索 API
此组件允许您调用 Google 搜索 API。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
google_api_key | 密文字符串 | 用于身份验证的 Google API 密钥。 |
google_cse_id | 密文字符串 | Google 自定义搜索引擎 ID。 |
input_value | 字符串 | 搜索查询输入。 |
k | 整数 | 返回的搜索结果数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
results | 列表[数据] | 搜索结果列表。 |
tool | 工具 | 可用于 LangChain 的 Google 搜索工具。 |
Python 代码结构化工具
此组件使用数据类从 Python 代码创建结构化工具。
组件根据提供的 Python 代码动态更新其配置,从而允许自定义函数参数和描述。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
tool_code | 字符串 | 工具数据类的 Python 代码。 |
tool_name | 字符串 | 工具的名称。 |
tool_description | 字符串 | 工具的描述。 |
return_direct | 布尔值 | 是否直接返回函数输出。 |
tool_function | 字符串 | 为工具选择的函数。 |
global_variables | 字典 | 工具的全局变量或数据。 |
输出
名称 | 类型 | 描述 |
---|---|---|
result_tool | 工具 | 从 Python 代码创建的结构化工具。 |
Python REPL 工具
此组件创建一个 Python REPL(读取-评估-打印循环)工具,用于执行 Python 代码。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 工具的名称。默认值:python_repl 。 |
description | 字符串 | 工具功能的描述。 |
global_imports | 列表[字符串] | 要全局导入的模块列表。默认值:math 。 |
输出
名称 | 类型 | 描述 |
---|---|---|
tool | 工具 | 可用于 LangChain 的 Python REPL 工具。 |
Retriever 工具
此组件创建一个工具,用于在 LangChain 中与检索器交互。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
retriever | BaseRetriever | 要交互的检索器。 |
name | 字符串 | 工具的名称。 |
description | 字符串 | 工具功能的描述。 |
输出
名称 | 类型 | 描述 |
---|---|---|
tool | 工具 | 可用于 LangChain 的检索器工具。 |
搜索 API
此组件调用 searchapi.io
API。可用于在网上搜索信息。
有关更多信息,请参阅SearchAPI 文档。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
engine | 字符串 | 要使用的搜索引擎。默认值:google 。 |
api_key | 密文字符串 | 用于向 SearchAPI 进行身份验证的 API 密钥。 |
input_value | 字符串 | API 调用的搜索查询或输入。 |
search_params | 字典 | 用于自定义搜索的附加参数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
data | 列表[数据] | 包含搜索结果的数据对象列表。 |
tool | 工具 | 可用于 LangChain 工作流程的 Tool 对象。 |
SearXNG 搜索工具
此组件创建一个工具,用于使用元搜索引擎 SearXNG 进行搜索。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
url | 字符串 | SearXNG 实例的 URL。 |
max_results | 整数 | 返回的最大结果数。 |
categories | 列表[字符串] | 要搜索的类别。 |
language | 字符串 | 搜索结果的语言。 |
输出
名称 | 类型 | 描述 |
---|---|---|
result_tool | 工具 | 可用于 LangChain 的 SearXNG 搜索工具。 |
Wikipedia API
此组件创建一个工具,用于搜索和检索 Wikipedia 中的信息。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
input_value | 字符串 | 搜索查询输入。 |
lang | 字符串 | Wikipedia 的语言代码。默认值:en 。 |
k | 整数 | 返回的结果数。 |
load_all_available_meta | 布尔值 | 是否加载所有可用元数据。 |
doc_content_chars_max | 整数 | 文档内容的最大字符数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
results | 列表[数据] | Wikipedia 搜索结果列表。 |
tool | 工具 | 可用于 LangChain 的 Wikipedia 搜索工具。 |
已废弃组件
已废弃组件已被较新的替代品取代,不应在新项目中使用。
MCP 工具 (stdio)
从 Langflow 1.3 版本开始,此组件已废弃。请改用MCP 连接组件
MCP 工具 (SSE)
从 Langflow 1.3 版本开始,此组件已废弃。请改用MCP 连接组件