Langflow 中的代理组件
代理组件定义了 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 | 消息 | 代理对给定输入任务的响应。 |
旧版组件
旧版组件可供使用,但不再支持。
JSON 代理
此组件使用 JSON 或 YAML 文件和 LLM 创建 JSON 代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 用于代理的语言模型。 |
path | 文件 | JSON 或 YAML 文件的路径。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | JSON 代理实例。 |
向量存储代理
此组件使用 LangChain 创建向量存储代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 用于代理的语言模型。 |
vectorstore | VectorStoreInfo | 供代理使用的向量存储信息。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | 向量存储代理实例。 |
向量存储路由器代理
此组件使用 LangChain 创建向量存储路由器代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 用于代理的语言模型。 |
vectorstores | List[VectorStoreInfo] | 供代理路由的向量存储信息列表。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | 向量存储路由器代理实例。 |
已移动组件
以下组件可在捆绑包下找到。
CrewAI 代理
此组件代表 CrewAI 的一个代理,允许在团队中创建具有已定义角色、目标和能力的专业 AI 代理。
有关更多信息,请参阅 CrewAI 文档。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
role | 角色 | 代理的角色。 |
goal | 目标 | 代理的目标。 |
backstory | 背景故事 | 代理的背景故事。 |
tools | 工具 | 代理可用的工具。 |
llm | 语言模型 | 运行代理的语言模型。 |
memory | 记忆 | 这决定代理是否应具有记忆。 |
verbose | 详细模式 | 这启用详细输出。 |
allow_delegation | 允许委派 | 这决定是否允许代理将任务委派给其他代理。 |
allow_code_execution | 允许代码执行 | 这决定是否允许代理执行代码。 |
kwargs | kwargs | 代理的其他关键字参数。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
output | 代理 | 构建的 CrewAI 代理对象。 |
分层团队
此组件表示一个代理组,管理它们应如何在分层结构中协作以及它们应执行的任务。此组件允许创建由一个经理监督任务执行的团队。
有关更多信息,请参阅 CrewAI 文档。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
agents | 代理 | 代表团队成员的代理对象列表。 |
tasks | 任务 | 代表要执行的任务的分层任务对象列表。 |
manager_llm | 经理 LLM | 用于经理代理的语言模型。 |
manager_agent | 经理代理 | 特定代理作为经理。 |
verbose | 详细模式 | 这启用详细输出以进行详细日志记录。 |
memory | 记忆 | 团队的记忆配置。 |
use_cache | 使用缓存 | 这启用结果缓存。 |
max_rpm | 最大 RPM | 这设置每分钟最大请求数。 |
share_crew | 共享团队 | 这决定是否在代理之间共享团队信息。 |
function_calling_llm | 函数调用 LLM | 用于函数调用的语言模型。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
crew | 团队 | 构建的具有分层任务执行的团队对象。 |
CSV 代理
此组件使用 CSV 文件和 LLM 创建 CSV 代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 用于代理的语言模型。 |
path | 文件 | CSV 文件的路径。 |
agent_type | 字符串 | 要创建的代理类型。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | CSV 代理实例。 |
OpenAI 工具代理
此组件创建一个 OpenAI 工具代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 要使用的语言模型。 |
tools | 工具列表 | 代理可以访问的工具。 |
system_prompt | 字符串 | 提供给代理上下文的系统提示词。 |
input_value | 字符串 | 用户的输入给代理。 |
memory | 记忆 | 代理用于上下文持久化的记忆。 |
max_iterations | 整数 | 允许代理执行的最大迭代次数。 |
verbose | 布尔值 | 这决定是否打印出代理的中间步骤。 |
handle_parsing_errors | 布尔值 | 这决定是否处理代理中的解析错误。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | OpenAI 工具代理实例。 |
output | 字符串 | 在输入上执行代理的输出。 |
OpenAPI 代理
此组件创建一个用于与 OpenAPI 服务交互的代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 要使用的语言模型。 |
openapi_spec | 字符串 | 服务的 OpenAPI 规范。 |
base_url | 字符串 | API 的基础 URL。 |
headers | 字典 | API 请求的可选头部。 |
agent_executor_kwargs | 字典 | 代理执行器的可选参数。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | OpenAPI 代理实例。 |
顺序团队
此组件表示一个代理组,其任务按顺序执行。此组件允许创建按特定顺序执行任务的团队。
有关更多信息,请参阅 CrewAI 文档。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
tasks | 任务 | 代表要执行的顺序任务对象的列表。 |
verbose | 详细模式 | 这启用详细输出以进行详细日志记录。 |
memory | 记忆 | 团队的记忆配置。 |
use_cache | 使用缓存 | 这启用结果缓存。 |
max_rpm | 最大 RPM | 这设置每分钟最大请求数。 |
share_crew | 共享团队 | 这决定是否在代理之间共享团队信息。 |
function_calling_llm | 函数调用 LLM | 用于函数调用的语言模型。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
crew | 团队 | 构建的具有顺序任务执行的团队对象。 |
顺序任务代理
此组件创建一个 CrewAI 任务及其关联的代理,允许定义具有特定代理角色和能力的顺序任务。
有关更多信息,请参阅 CrewAI 文档。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
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_output | 顺序任务 | 代表已创建任务的顺序任务对象列表。 |
SQL 代理
此组件创建一个用于与 SQL 数据库交互的代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 要使用的语言模型。 |
database | 数据库 | SQL 数据库连接。 |
top_k | 整数 | 从 SELECT 查询返回的结果数。 |
use_tools | 布尔值 | 这决定是否使用工具执行查询。 |
return_intermediate_steps | 布尔值 | 这决定是否返回代理的中间步骤。 |
max_iterations | 整数 | 运行代理的最大迭代次数。 |
max_execution_time | 整数 | 最大执行时间(秒)。 |
early_stopping_method | 字符串 | 用于提前停止的方法。 |
verbose | 布尔值 | 这决定是否打印代理的思考过程。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | SQL 代理实例。 |
工具调用代理
此组件创建一个用于与各种语言模型进行结构化工具调用的代理。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 要使用的语言模型。 |
tools | List[Tool] | 代理可用的工具列表。 |
system_message | 字符串 | 用于代理的系统消息。 |
return_intermediate_steps | 布尔值 | 这决定是否返回代理的中间步骤。 |
max_iterations | 整数 | 运行代理的最大迭代次数。 |
max_execution_time | 整数 | 最大执行时间(秒)。 |
early_stopping_method | 字符串 | 用于提前停止的方法。 |
verbose | 布尔值 | 这决定是否打印代理的思考过程。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | 工具调用代理实例。 |
XML 代理
此组件使用 LangChain 创建 XML 代理。
代理使用 XML 格式向语言模型发送工具指令。
参数
输入
名称 | 类型 | 描述 |
---|---|---|
llm | 语言模型 | 用于代理的语言模型。 |
user_prompt | 字符串 | 包含 XML 格式指令的自定义代理提示模板。 |
tools | List[Tool] | 代理可用的工具列表。 |
输出
名称 | 类型 | 描述 |
---|---|---|
agent | AgentExecutor | XML 代理实例。 |