AIKnow 中的组件
组件定义了流程中 AI 智能体的行为和能力。
智能体使用 LLM 作为推理引擎来决定使用哪些连接的工具组件来解决问题。
在组件功能中,工具本质上是智能体可以调用来执行任务或访问外部资源的函数。函数被包装为Tool对象,具有智能体理解的通用接口。组件通过工具注册了解工具,通常在组件初始化时提供可用工具列表。Tool对象的描述告诉智能体该工具能做什么。
智能体然后使用连接的 LLM 通过推理来决定哪个工具最适合这项工作。
在流程中使用组件
基础智能体使用智能体组件连接到 URL 和 计算器 工具来回答用户的问题。OpenAI LLM 充当组件的大脑来 决定使用哪个工具。工具通过工具端口连接到组件。

关于多智能体示例,请参阅创建问题解决智能体。
智能体组件
该组件创建一个可以使用工具根据给定指令回答问题并执行任务的智能体。
该组件包括 LLM 模型集成、系统消息提示和工具端口以连接工具扩展其能力。
有关此组件的更多信息,请参阅工具调用智能体文档。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| agent_llm | 下拉菜单 | 智能体将用于生成响应的语言模型提供商。选项包括 OpenAI 和其他提供商,或自定义。 |
| system_prompt | 字符串 | 系统提示:提供初始指令和上下文以指导智能体行为。 |
| tools | 列表 | 智能体可用的工具列表。 |
| input_value | 字符串 | 智能体要处理的输入任务或问题。 |
| add_current_date_tool | 布尔值 | 如果为 true,则添加一个返回当前日期的工具给智能体。 |
| memory | 内存 | 用于维护对话历史记录的可选内存配置。 |
| max_iterations | 整数 | 智能体可以执行的最大迭代次数。 |
| handle_parsing_errors | 布尔值 | 是否处理智能体执行期间的解析错误。 |
| verbose | 布尔值 | 启用详细输出以进行详细日志记录。 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| response | 消息 | 智能体对给定输入任务的响应。 |
CSV 智能体
该组件从 CSV 文件和 LLM 创建一个 CSV 智能体。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| path | 文件 | CSV 文件的路径 |
| agent_type | 字符串 | 要创建的智能体类型(zero-shot-react-description, openai-functions, 或 openai-tools) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | CSV 智能体实例 |
CrewAI 智能体
该组件代表 CrewAI 的一个智能体,允许在团队内创建具有定义角色、目标和能力的专用 AI 智能体。
更多信息请参阅CrewAI 文档。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| role | 角色 | 智能体的角色 |
| goal | 目标 | 智能体的目标 |
| backstory | 背景故事 | 智能体的背景故事 |
| tools | 工具 | 智能体可用的工具 |
| llm | 语言模型 | 将运行智能体的语言模型 |
| memory | 内存 | 智能体是否应具有内存 |
| verbose | 详细 | 启用详细输出 |
| allow_delegation | 允许委托 | 智能体是否允许将任务委托给其他智能体 |
| allow_code_execution | 允许代码执行 | 智能体是否允许执行代码 |
| kwargs | kwargs | 智能体的附加关键字参数 |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| output | 智能体 | 构建的 CrewAI 智能体对象 |
分层团队
该组件代表一组智能体,管理它们应如何协作以及它们应在分层结构中执行的任务。该组件允许创建一个由经理监督任务执行的团队。
更多信息请参阅CcrewAI 文档。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| agents | 智能体 | 代表团队成员的一系列智能体对象 |
| tasks | 任务 | 代表要执行的任务的一系列分层任务对象 |
| manager_llm | 经理 LLM | 经理智能体的语言模型(可选) |
| manager_agent | 经理智能体 | 充当经理的特定智能体(可选) |
| verbose | 详细 | 启用详细输出以进行详细日志记录 |
| memory | 内存 | 指定团队的内存配置 |
| use_cache | 使用缓存 | 启用结果缓存 |
| max_rpm | 最大 RPM | 设置每分钟最大请求数 |
| share_crew | 共享团队 | 确定是否在智能体之间共享团队信息 |
| function_calling_llm | 函数调用 LLM | 指定用于函数调用的语言模型 |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| crew | 团队 | 构建的具有分层任务执行的团队对象 |
JSON 智能体
该组件从 JSON 或 YAML 文件和 LLM 创建一个 JSON 智能体。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| path | 文件 | JSON 或 YAML 文件的路径 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | JSON 智能体实例 |
OpenAI 工具智能体
该组件使用 LangChain 创建一个 OpenAI 工具智能体。
更多信息请参阅LangChain 文档。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型(必须支持工具) |
| system_prompt | 字符串 | 智能体的系统提示 |
| user_prompt | 字符串 | 用户提示模板(必须包含'input'键) |
| chat_history | 数据列表 | 智能体的可选聊天历史记录 |
| tools | 工具列表 | 智能体可用的工具列表 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | OpenAI 工具智能体实例 |
OpenAPI 智能体
该组件创建一个 OpenAPI 智能体,与由 OpenAPI 规范定义的 API 交互。
更多信息请参阅 LangChain 关于 OpenAPI 智能体的文档。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| path | 文件 | OpenAPI 规范文件的路径(JSON 或 YAML) |
| allow_dangerous_requests | 布尔值 | 是否允许潜在危险的 API 请求 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | OpenAPI 智能体实例 |
SQL 智能体
该组件创建一个与 SQL 数据库交互的 SQL 智能体。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| database_uri | 字符串 | 要连接的 SQL 数据库的 URI |
| extra_tools | 工具列表 | 提供给智能体的额外工具(可选) |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | SQL 智能体实例 |
顺序团队
该组件代表一组智能体,其任务按特定顺序执行。该组件允许创建一个按特定顺序执行任务的团队。
更多信息请参阅CrewAI 文档。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| tasks | 任务 | 代表要执行的任务的一系列顺序任务 对象 |
| verbose | 详细 | 启用详细输出以进行详细日志记录 |
| memory | 内存 | 指定团队的内存配置 |
| use_cache | 使用缓存 | 启用结果缓存 |
| max_rpm | 最大 RPM | 设置每分钟最大请求数 |
| share_crew | 共享团队 | 确定是否在智能体之间共享团队信息 |
| function_calling_llm | 函数调用 LLM | 指定用于函数调用的语言模型 |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| crew | 团队 | 构建的具有顺序任务执行的团队对象 |
顺序任务智能体
该组件创建一个 CrewAI 任务及其关联智能体,允许定义具有特定智能体角色和能力的顺序任务。
更多信息请参阅CcrewAI 文档。
输入
| 名称 | 显示名称 | 信息 |
|---|---|---|
| role | 角色 | 智能体的角色 |
| goal | 目标 | 智能体的目标 |
| backstory | 背景故事 | 智能体的背景故事 |
| tools | 工具 | 智能体可用的 工具 |
| llm | 语言模型 | 将运行智能体的语言模型 |
| memory | 内存 | 智能体是否应具有内存 |
| verbose | 详细 | 启用详细输出 |
| allow_delegation | 允许委托 | 智能体是否允许将任务委托给其他智能体 |
| allow_code_execution | 允许代码执行 | 智能体是否允许执行代码 |
| agent_kwargs | 智能体 kwargs | 智能体的附加 kwargs |
| task_description | 任务描述 | 详细说明任务目的和执行的描述性文本 |
| expected_output | 预期任务输出 | 预期任务结果的明确定义 |
| async_execution | 异步执行 | 指示异步任务执行的布尔标志 |
| previous_task | 前一个任务 | 序列中的前一个任务(用于链接) |
输出
| 名称 | 显示名称 | 信息 |
|---|---|---|
| task | 任务 | 构建的 CrewAI 任务对象 |
工具调用智能体
该组件使用 LangChain 创建一个工具调用智能体。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| system_prompt | 字符串 | 智能体的系统提示 |
| user_prompt | 字符串 | 用户提示模板(必须包含'input'键) |
| chat_history | 数据列表 | 智能体的可选聊天历史记录 |
| tools | 工具列表 | 智能体可用的工具列表 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | 工具调用智能体实例 |
向量存储智能体
该组件使用 LangChain 创建一个向量存储智能体。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| vectorstore | 向量存储信息 | 智能体使用的向量存储信息 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | 向量存储智能体实例 |
向量存储路由智能体
该组件使用 LangChain 创建一个向量存储路由智能体。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| vectorstores | 向量存储信息列表 | 智能体在之间路由的一系列向量存储信息 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | 向量存储路由智能体实例 |
XML 智能体
该组件使用 LangChain 创建一个 XML 智能体。
智能体使用 XML 格式向语言模型提供工具指令。
输入
| 名称 | 类型 | 描述 |
|---|---|---|
| llm | 语言模型 | 用于智能体的语言模型 |
| user_prompt | 字符串 | 智能体的自定义提示模板(包括 XML 格式化指令) |
| tools | 工具列表 | 智能体可用的工具列表 |
输出
| 名称 | 类型 | 描述 |
|---|---|---|
| agent | 智能体执行器 | XML 智能体实例 |