Skip to main content

Blaflow 中的工具组件

工具通常连接到智能体组件的 工具 端口。智能体使用 LLM 作为推理引擎来决定使用哪个连接的工具组件来解决问题。

在智能体功能中,工具本质上是可以被智能体调用来执行任务或访问外部资源的函数。 函数被包装为 工具 对象,具有智能体能够理解的通用接口。 智能体通过工具注册来了解工具,通常在智能体初始化时提供可用工具列表。工具 对象的描述告诉智能体该工具可以做什么。

然后智能体使用连接的 LLM 来推理问题,决定哪个工具最适合这项工作。

在流程中使用工具

工具通常连接到智能体组件的 工具 端口。

基础智能体使用连接到智能体组件的 URL 和计算器工具来回答用户的问题。OpenAI LLM 作为智能体的大脑来决定使用哪个工具。

简单智能体启动流程

要将组件变成智能体可以使用的工具,请在组件中启用工具模式。启用工具模式会修改组件输入以接受来自智能体的调用。 如果您想要连接到智能体的组件没有工具模式选项,您可以修改组件的输入以使其成为工具。 有关示例,请参见将任何组件变成工具

arXiv

此组件搜索并检索来自 arXiv.org 的论文。

输入

名称显示名称信息
search_query搜索查询arXiv 论文的搜索查询(例如,quantum computing
search_type搜索字段要搜索的字段
max_results最大结果数要返回的最大结果数

输出

名称显示名称信息
papers论文检索到的 arXiv 论文列表

Astra DB 工具

Astra DB 工具 允许智能体连接并查询 Astra DB 集合中的数据。

输入

名称类型描述
Tool NameString在智能体提示中引用工具时使用的名称
Tool DescriptionString工具的简短描述。这有助于模型决定何时使用它
Collection NameString要查询的 Astra DB 集合名称
TokenSecretString用于访问 Astra DB 的认证令牌
API EndpointStringAstra DB API 端点
Projection FieldsString要返回的属性,用逗号分隔。默认值:"*"
Tool ParametersDict模型需要填写的参数以执行工具。对于必需参数,使用感叹号(例如,!customer_id
Static FiltersDict用于过滤查询结果的属性-值对
LimitString要返回的文档数量

输出

Data 输出主要用于直接查询 Astra DB,而 Tool 输出用于与 LangChain 智能体或链集成。

名称类型描述
DataList[数据]包含来自 Astra DB 的查询结果的数据对象列表。每个 数据 对象包含由投影属性指定的文档字段。受 number_of_results 参数限制
ToolStructuredTool可在智能体工作流中使用的 LangChain StructuredTool 对象。包含工具名称、描述、基于工具参数的参数模式以及查询函数

Astra DB CQL 工具

Astra DB CQL 工具 允许智能体查询 Astra DB 中的 CQL 表数据。

此工具与 Astra DB 工具 的主要区别在于,此工具专门为 CQL 表设计,需要分区键进行查询,同时支持聚类键以进行更具体的查询。

输入

名称类型描述
Tool NameString在智能体提示中引用工具时使用的名称
Tool DescriptionString工具的简短描述,用于指导模型使用它
KeyspaceStringkeyspace 的名称
Table NameString要查询的 Astra DB CQL 表名称
TokenSecretStringAstra DB 的认证令牌
API EndpointStringAstra DB API 端点
Projection FieldsString要返回的属性,用逗号分隔。默认值:"*"
Partition KeysDict模型必须填写的必需参数以查询工具
Clustering KeysDict模型可以填写的可选参数以优化查询。必需参数应标记感叹号(例如,!customer_id
Static FiltersDict用于过滤查询结果的属性-值对
LimitString要返回的记录数量

输出

名称类型描述
DataList[数据]包含来自 Astra DB CQL 表的查询结果的数据对象列表。每个 Data 对象包含由投影字段指定的文档字段。受 number_of_results 参数限制
ToolStructuredTool可在智能体工作流中使用的 LangChain StructuredTool 对象。包含工具名称、描述、基于分区键和聚类键的参数模式以及查询函数

Bing 搜索 API

此组件允许您调用 Bing 搜索 API。

输入

名称类型描述
bing_subscription_keySecretStringBing API 订阅密钥
input_valueString搜索查询输入
bing_search_urlString自定义 Bing 搜索 URL(可选)
kInteger要返回的搜索结果数量

输出

名称类型描述
resultsList[数据]搜索结果列表
toolTool用于 LangChain 的 Bing 搜索工具

计算器工具

此组件创建一个工具,用于对给定表达式执行基本算术运算。

输入

名称类型描述
expressionString要计算的算术表达式(例如,4*4*(33/22)+12-20

输出

名称类型描述
resultTool用于 LangChain 的计算器工具

此组件允许您计算基本算术表达式。它支持加法、减法、乘法、除法和幂运算。该工具使用安全的评估方法,防止执行任意 Python 代码。

组合推理器

此组件在输入上运行 Icosa 的组合推理(CR)管道,以创建带有嵌入原因的优化提示。在此处注册获取访问权限:https://forms.gle/oWNv2NKjBNaqqvCx6

输入

名称显示名称描述
prompt提示运行 CR 的输入
openai_api_keyOpenAI API 密钥用于认证的 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数据作为包含片段和完整内容的 Data 对象的搜索结果列表
text文本格式化为单个文本字符串的搜索结果

Exa 搜索

此组件提供 [https://exa.ai/] (Exa Search) 工具包用于搜索和内容检索。

输入

名称显示名称信息
metaphor_api_keyExa 搜索 API 密钥Exa 搜索的 API 密钥(作为密码输入)
use_autoprompt使用自动提示是否使用自动提示功能(默认:true)
search_num_results搜索结果数量搜索要返回的结果数量(默认:5)
similar_num_results相似结果数量要返回的相似结果数量(默认:5)

输出

名称显示名称信息
tools工具工具包提供的搜索工具列表

Glean 搜索 API

此组件允许您调用 Glean 搜索 API。

输入

名称类型描述
glean_api_urlStringGlean API 的 URL
glean_access_tokenSecretStringGlean API 认证的访问令牌
queryString搜索查询输入
page_sizeInteger每页结果数(默认:10)
request_optionsDictAPI 请求的附加选项(可选)

输出

名称类型描述
resultsList[数据]搜索结果列表
toolTool用于 LangChain 的 Glean 搜索工具

Google 搜索 API

important

此组件处于遗留状态,这意味着从 Blaflow 1.3 版本开始不再积极开发。

此组件允许您调用 Google 搜索 API。

输入

名称类型描述
google_api_keySecretString用于认证的 Google API 密钥
google_cse_idSecretStringGoogle 自定义搜索引擎 ID
input_valueString搜索查询输入
kInteger要返回的搜索结果数量

输出

名称类型描述
resultsList[数据]搜索结果列表
toolTool用于 LangChain 的 Google 搜索工具

Google Serper API

此组件允许您调用 Serper.dev Google 搜索 API。

输入

名称类型描述
serper_api_keySecretString用于 Serper.dev 认证的 API 密钥
input_valueString搜索查询输入
kInteger要返回的搜索结果数量

输出

名称类型描述
resultsList[数据]搜索结果列表
toolTool用于 LangChain 的 Google Serper 搜索工具

MCP 连接

此组件连接到 模式 l Context Protocol (MCP) 服务器,并将 MCP 服务器的工具作为工具暴露出来。

除了作为可以利用 MCP 服务器的 MCP 客户端外,Blaflow 还是一个 MCP 服务器,通过 /api/v1/mcp/sse API 端点将流程作为工具暴露出来。

要使用带有智能体组件的 MCP 服务器组件,请按照以下步骤操作:

  1. 将 MCP 服务器组件添加到您的工作流中。
  2. 在 MCP 服务器组件中,在 MCP 命令 字段中输入启动 MCP 服务器的命令。例如,要启动 Fetch 服务器,命令是:

_10
uvx mcp-server-fetch

uvx 包含在 Blaflow 包的 uv 中。 要使用 npx 服务器命令,您必须首先安装 Node.js 的 LTS 版本。

  1. 点击 获取服务器的 工具 列表。
  2. 工具字段中,选择您希望组件使用的服务器工具。 可用字段会根据所选工具而变化。 有关参数的信息,请参见 MCP 服务器的文档。
  3. 在 MCP 服务器组件中,启用工具模式。 将 MCP 服务器组件的工具集端口连接到智能体组件的工具端口。

流程看起来像这样: MCP 服务器组件

  1. 打开试运行。 要求智能体总结最近的科技新闻。智能体调用 MCP 服务器函数 fetch 并返回摘要。 这确认了 MCP 服务器已连接,并且其工具正在 Blaflow 中使用。

MCP 服务器发送事件 (SSE) 模式

  1. MCP 连接 组件中,选择 SSEMCP SSE URL 字段中会出现一个默认地址。
  2. MCP SSE URL 字段中,修改默认地址以指向您当前运行的 Blaflow 服务器的 SSE 端点。 默认值为 http://localhost:7860/api/v1/mcp/sse
  3. MCP 连接 组件中,点击 获取服务器的工具 列表。
  4. 点击工具字段。 您的所有流程都作为工具列出。
  5. 启用工具模式,然后将 MCP 连接 组件连接到智能体组件的工具端口。 流程看起来像这样: MCP 服务器组件
  6. 打开试运行并与您的工具聊天。 智能体根据您的查询选择正确的工具。

输入

名称类型描述
commandStringMCP 命令(默认:uvx mcp-sse-shim@latest

输出

名称类型描述
toolsList[Tool]MCP 服务器暴露的工具列表

Python 代码结构化工具

此组件使用数据类从 Python 代码创建结构化工具。

该组件根据提供的 Python 代码动态更新其配置,允许自定义函数参数和描述。

输入

名称类型描述
tool_codeString工具数据类的 Python 代码
tool_nameString工具名称
tool_descriptionString工具描述
return_directBoolean是否直接返回函数输出
tool_functionString为工具选择的函数
global_variablesDict工具的全局变量或数据

输出

名称类型描述
result_toolTool从 Python 代码创建的结构化工具

Python REPL 工具

important

此组件处于遗留状态,这意味着从 Blaflow 1.3 版本开始不再积极开发。

此组件创建一个用于执行 Python 代码的 Python REPL(读取-求值-打印循环)工具。

输入

名称类型描述
nameString工具名称(默认:"python_repl")
descriptionString工具功能的描述
global_importsList[String]全局导入的模块列表(默认:["math"])

输出

名称类型描述
toolTool用于 LangChain 的 Python REPL 工具

检索器工具

此组件创建一个用于与 LangChain 中的检索器交互的工具。

输入

名称类型描述
retrieverBaseRetriever要与之交互的检索器
nameString工具名称
descriptionString工具功能的描述

输出

名称类型描述
toolTool用于 LangChain 的检索器工具

Serp 搜索 API

此组件创建一个使用 Serp API 进行搜索的工具。

输入

名称类型描述
serpapi_api_keySecretString用于 Serp API 认证的 API 密钥
input_valueString搜索查询输入
search_paramsDict附加搜索参数(可选)

输出

名称类型描述
resultsList[数据]搜索结果列表
toolTool用于 LangChain 的 Serp API 搜索工具

Tavily AI 搜索

此组件使用 Tavily AI 搜索引擎执行搜索,该引擎针对 LLM 和 RAG 应用进行了优化。

输入

名称显示名称信息
api_keyTavily API 密钥您的 Tavily API 密钥
query搜索查询您想要使用 Tavily 执行的搜索查询
search_depth搜索深度搜索的深度
topic搜索主题搜索的类别
max_results最大结果数要返回的最大搜索结果数
include_images包含图片在响应中包含与查询相关的图片列表
include_answer包含答案包含对原始查询的简短答案

输出

名称显示名称信息
data数据作为 Data 对象列表的搜索结果
text文本格式化为文本字符串的搜索结果

Wikidata

important

此组件处于遗留状态,这意味着从 Blaflow 1.3 版本开始不再积极开发。

此组件使用 Wikidata API 执行搜索。

输入

名称显示名称信息
query查询用于在 Wikidata 上进行相似性搜索的文本查询

输出

名称显示名称信息
data数据来自 Wikidata API 的搜索结果,作为 Data 对象列表
text消息格式化为文本消息的搜索结果

Wikipedia API

important

此组件处于遗留状态,这意味着从 Blaflow 1.3 版本开始不再积极开发。

此组件创建一个用于搜索和检索 Wikipedia 信息的工具。

输入

名称类型描述
input_valueString搜索查询输入
langStringWikipedia 的语言代码(默认:"en")
kInteger要返回的结果数量
load_all_available_metaBoolean是否加载所有可用的元数据(高级)
doc_content_chars_maxInteger文档内容的最大字符数(高级)

输出

名称类型描述
resultsList[数据]Wikipedia 搜索结果列表
toolTool用于 LangChain 的 Wikipedia 搜索工具

Wolfram Alpha API

此组件创建一个用于查询 Wolfram Alpha API 的工具。

输入

名称类型描述
input_valueStringWolfram Alpha 的查询输入
app_idSecretStringWolfram Alpha API App ID

输出

名称类型描述
resultsList[数据]包含 Wolfram Alpha API 响应的列表
toolTool用于 LangChain 的 Wolfram Alpha API 工具

Yahoo Finance 新闻工具

此组件创建一个用于从 Yahoo Finance 检索新闻的工具。

输入

此组件没有任何输入参数。

输出

名称类型描述
toolTool用于 LangChain 的 Yahoo Finance 新闻工具