AIKnow 中的工具组件
工具通常连接到智能体组件的 工具 端口。智能体使用 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 Name | String | 在智能体提示中引用工具时使用的名称 |
| Tool Description | String | 工具的简短描 述。这有助于模型决定何时使用它 |
| Collection Name | String | 要查询的 Astra DB 集合名称 |
| Token | SecretString | 用于访问 Astra DB 的认证令牌 |
| API Endpoint | String | Astra DB API 端点 |
| Projection Fields | String | 要返回的属性,用逗号分隔。默认值:"*" |
| Tool Parameters | Dict | 模型需要填写的参数以执行工具。对于必需参数,使用感叹号(例如,!customer_id) |
| Static Filters | Dict | 用于过滤查询结果的属性-值对 |
| Limit | String | 要返回的文档数量 |
输出
Data 输出主要用于直接查询 Astra DB,而 Tool 输出用于与 LangChain 智能体或链集成。
| 名称 | 类型 | 描述 |
|---|---|---|
| Data | List[数据] | 包含来自 Astra DB 的查询结果的数据对象列表。每个 数据 对象包含由投影属性指定的文档字段。受 number_of_results 参数限制 |
| Tool | StructuredTool | 可在智能体工作流中使用的 LangChain StructuredTool 对象。包含工具名称、描述、基于工具参数的参数模式以及查询函数 |
Astra DB CQL 工具
Astra DB CQL 工具 允许智能体查询 Astra DB 中的 CQL 表数据。
此工具与 Astra DB 工具 的主要区别在于,此工具专门为 CQL 表设计,需要分区键进行查询,同时支持聚类键以进行更具体的查询。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| Tool Name | String | 在智能体提示中引用工具时使用的名称 |
| Tool Description | String | 工具的简短描述,用于指导模型使用它 |
| Keyspace | String | keyspace 的名称 |
| Table Name | String | 要查询的 Astra DB CQL 表名称 |
| Token | SecretString | Astra DB 的认证令牌 |
| API Endpoint | String | Astra DB API 端点 |
| Projection Fields | String | 要返回的属性,用逗号分隔。默认值:"*" |
| Partition Keys | Dict | 模型必须填写的必需参数以查询工具 |
| Clustering Keys | Dict | 模型可以填写的可选参数以优化查询。必需参数应标记感叹号(例如,!customer_id) |
| Static Filters | Dict | 用于过滤查询结果的属性-值对 |
| Limit | String | 要返回的记录数量 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| Data | List[数据] | 包含来自 Astra DB CQL 表的查询结果的数据对象列表。每个 Data 对象包含由投影字段指定的文档字段。受 number_of_results 参 数限制 |
| Tool | StructuredTool | 可在智能体工作流中使用的 LangChain StructuredTool 对象。包含工具名称、描述、基于分区键和聚类键的参数模式以及查询函数 |
Bing 搜索 API
此组件允许您调用 Bing 搜索 API。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| bing_subscription_key | SecretString | Bing API 订阅密钥 |
| input_value | String | 搜索查询输入 |
| bing_search_url | String | 自定义 Bing 搜索 URL(可选) |
| k | Integer | 要返回的搜索结果数量 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | 搜索结果列表 |
| tool | Tool | 用于 LangChain 的 Bing 搜索工具 |
计算器工具
此组件创建一个工具,用于对给定表达式执行基本算术运算。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| expression | String | 要计算的算术表达式(例如,4*4*(33/22)+12-20) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| result | Tool | 用于 LangChain 的计算器工具 |
此组件允许您计算基本算术表达式。它支持加法、减法、乘法、除法和幂运算。该工具使用安全的评估方法,防止执行任意 Python 代码。
组合推理器
此组件在输入上运行 Icosa 的组合推理(CR)管道,以创建带有嵌入原因的优化提示。在此处注册获取访问权限:https://forms.gle/oWNv2NKjBNaqqvCx6
输入
| 名称 | 显示名称 | 描述 |
|---|---|---|
| prompt | 提示 | 运行 CR 的输入 |
| openai_api_key | OpenAI 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_key | Exa 搜索 API 密钥 | Exa 搜索的 API 密钥(作为密码输入) |
| use_autoprompt | 使用自动提示 | 是否使用自动提示功能(默认:true) |
| search_num_results | 搜索结果数量 | 搜索要返回的结果数量(默认:5) |
| similar_num_results | 相似结果数量 | 要返回的相似结果数量(默认:5) |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| tools | 工具 | 工具包提供的搜索工具列表 |
Glean 搜索 API
此组件允许您调用 Glean 搜索 API。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| glean_api_url | String | Glean API 的 URL |
| glean_access_token | SecretString | Glean API 认证的访问令牌 |
| query | String | 搜索查询输入 |
| page_size | Integer | 每页结果数(默认:10) |
| request_options | Dict | API 请求的附加选项(可选) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | 搜索结果列表 |
| tool | Tool | 用于 LangChain 的 Glean 搜索工具 |
Google 搜索 API
此组件处于遗留状态,这意味着从 AIKnow 1.3 版本开始不再积极开发。
此组件允许您调用 Google 搜索 API。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| google_api_key | SecretString | 用于认证的 Google API 密钥 |
| google_cse_id | SecretString | Google 自定义搜索引擎 ID |
| input_value | String | 搜索查询输入 |
| k | Integer | 要返回的搜索结果数量 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | 搜索结果列表 |
| tool | Tool | 用于 LangChain 的 Google 搜索工具 |
Google Serper API
此组件允许您调用 Serper.dev Google 搜索 API。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| serper_api_key | SecretString | 用于 Serper.dev 认证的 API 密钥 |
| input_value | String | 搜索查询输入 |
| k | Integer | 要返回的搜索结果数量 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | 搜索结果 列表 |
| tool | Tool | 用于 LangChain 的 Google Serper 搜索工具 |
MCP 连接
此组件连接到 模式 l Context Protocol (MCP) 服务器,并将 MCP 服务器的工具作为工具暴露出来。
除了作为可以利用 MCP 服务器的 MCP 客户端外,AIKnow 还是一个 MCP 服务器,通过 /api/v1/mcp/sse API 端点将流程作为工具暴露出来。
要使用带有智能体组件的 MCP 服务器组件,请按照以下步骤操作:
- 将 MCP 服务器组件添加到您的工作流中。
- 在 MCP 服务器组件中,在 MCP 命令 字段中输入启动 MCP 服务器的命令。例如,要启动 Fetch 服务器,命令是:
_10uvx mcp-server-fetch
uvx 包含在 AIKnow 包的 uv 中。
要使用 npx 服务器命令,您必须首先安装 Node.js 的 LTS 版本。
- 点击 获取服务器的 工具 列表。
- 在工具字段中,选择您希望组件使用的服务器工具。 可用字段会根据所选工具而变化。 有关参数的信息,请参见 MCP 服务器的文档。
- 在 MCP 服务器组件中,启用工具模式。 将 MCP 服务器组件的工具集端口连接到智能体组件的工具端口。
流程看起来像这样:

- 打开试运行。
要求智能体总结最近的科技新闻。智能体调用 MCP 服务器函数
fetch并返回摘要。 这确认了 MCP 服务器已连接,并且其工具正在 AIKnow 中使用。
MCP 服务器发送事件 (SSE) 模式
- 在 MCP 连接 组件中,选择 SSE。 MCP SSE URL 字段中会出现一个默认地址。
- 在 MCP SSE URL 字段中,修改默认地址以指向您当前运行的 AIKnow 服务器的 SSE 端点。
默认值为
http://localhost:7860/api/v1/mcp/sse。 - 在 MCP 连接 组件中,点击 获取服务器的工具 列表。
- 点击工具字段。 您的所有流程都作为工具列出。
- 启用工具模式,然后将 MCP 连接 组件连接到智能体组件的工具端口。
流程看起来像这样:

- 打开试运行并与您的工具聊天。 智能体根据您的查询选择正确的工具。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| command | String | MCP 命令(默认:uvx mcp-sse-shim@latest) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| tools | List[Tool] | MCP 服务器暴露的工具列表 |
Python 代码结构化工具
此组件使用数据类从 Python 代码创建结构化工具。
该组件根据提供的 Python 代码动态更新其配置,允许自定义函数参数和描述。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| tool_code | String | 工具数据类的 Python 代码 |
| tool_name | String | 工具名称 |
| tool_description | String | 工具描述 |
| return_direct | Boolean | 是否直接返回函数输出 |
| tool_function | String | 为工具选择的函数 |
| global_variables | Dict | 工具的全局变量或数据 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| result_tool | Tool | 从 Python 代码创建的结构化工具 |
Python REPL 工具
此组 件处于遗留状态,这意味着从 AIKnow 1.3 版本开始不再积极开发。
此组件创建一个用于执行 Python 代码的 Python REPL(读取-求值-打印循环)工具。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| name | String | 工具名称(默认:"python_repl") |
| description | String | 工具功能的描述 |
| global_imports | List[String] | 全局导入的模块列表(默认:["math"]) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| tool | Tool | 用于 LangChain 的 Python REPL 工具 |
Serp 搜索 API
此组件创建一个使用 Serp API 进行搜索的工具。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| serpapi_api_key | SecretString | 用于 Serp API 认证的 API 密钥 |
| input_value | String | 搜索查询输入 |
| search_params | Dict | 附加搜索参数(可选) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | 搜索结果列表 |
| tool | Tool | 用于 LangChain 的 Serp API 搜索工具 |
Tavily AI 搜索
此组件使用 Tavily AI 搜索引擎执行搜索,该引擎针对 LLM 和 RAG 应用进行了优化。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| api_key | Tavily API 密钥 | 您的 Tavily API 密钥 |
| query | 搜索查询 | 您想要使用 Tavily 执行的搜索查询 |
| search_depth | 搜索深度 | 搜索的深度 |
| topic | 搜索主题 | 搜索的类别 |
| max_results | 最大结果数 | 要返回的最大搜索结果数 |
| include_images | 包含图片 | 在响应中包含与查询相关的图片列表 |
| include_answer | 包含答案 | 包含对原始查询的简短答案 |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| data | 数据 | 作为 Data 对象列表的 搜索结果 |
| text | 文本 | 格式化为文本字符串的搜索结果 |
Wikidata
此组件处于遗留状态,这意味着从 AIKnow 1.3 版本开始不再积极开发。
此组件使用 Wikidata API 执行搜索。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| query | 查询 | 用于在 Wikidata 上进行相似性搜索的文本查询 |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| data | 数据 | 来自 Wikidata API 的搜索结果,作为 Data 对象列表 |
| text | 消息 | 格式化为文本消息的搜索结果 |
Wikipedia API
此组件处于遗留状态,这意味着从 AIKnow 1.3 版本开始不再积极开发。
此组件创建一个用于搜索和检索 Wikipedia 信息的工具。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| input_value | String | 搜索查询输入 |
| lang | String | Wikipedia 的语言代码(默认:"en") |
| k | Integer | 要返回的结果数量 |
| load_all_available_meta | Boolean | 是否加载所有可用的元数据(高级) |
| doc_content_chars_max | Integer | 文档内容的最大字符数(高级) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | Wikipedia 搜索结果列表 |
| tool | Tool | 用于 LangChain 的 Wikipedia 搜索工具 |
Wolfram Alpha API
此组件创建一个用于查询 Wolfram Alpha API 的工具。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| input_value | String | Wolfram Alpha 的查询输入 |
| app_id | SecretString | Wolfram Alpha API App ID |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| results | List[数据] | 包含 Wolfram Alpha API 响应的列表 |
| tool | Tool | 用于 LangChain 的 Wolfram Alpha API 工具 |
Yahoo Finance 新闻工具
此组件创建一个用于从 Yahoo Finance 检索新闻的工具。
输入
此组件没有任何输入参数。
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| tool | Tool | 用于 LangChain 的 Yahoo Finance 新 闻工具 |