为代理配置工具
默认情况下,Langflow 代理 (Agents) 仅包含其基础大语言模型 (LLM) 内置的功能。
您可以为代理连接工具,以提供对其他特定功能的访问。 例如,工具可用于创建特定领域的代理,例如可以访问公司知识库的客户支持代理、可以检索股票价格的金融代理,或可以使用高级数学函数解决复杂方程的数学老师代理。
连接工具
要为代理连接工具,请将任何组件的 Tool (工具) 输出连接到 Agent (代理) 组件的 Tools (工具) 输入。
有些组件默认会发出 Tool 输出。 对于所有其他组件,您必须在组件标题菜单中启用 Tool Mode (工具模式)。 然后,您可以将该工具连接到代理。
您可以为一个代理连接多个工具,每个工具可以有多个代理可以调用的操作(函数)。
当您运行流时,如果代理确定某个工具可以帮助其响应用户的提示,它会决定何时调用该特定工具。
编辑工具的操作
当您将组件作为工具连接到代理时,每个工具可以有多个代理可以调用的操作(函数)。 可用操作列在每个工具组件的 Actions (操作) 列表中。
您可以更改每个操作的标签、描述和可用性,以帮助代理理解如何使用该工具,并防止其使用无关或不希望的操作。
如果代理似乎在使用工具时出现错误,请尝试编辑操作的元数据以澄清工具的用途,并禁用不必要的操作。
您还可以尝试使用 Prompt Template (提示词模板) 组件向代理传递额外的指令或示例。
要查看和编辑工具的操作,请点击工具组件上的 编辑工具操作 (Edit Tool Actions)。
为每个操作提供了以下信息:
-
已启用 (Enabled):一个复选框,决定该操作是否对代理可用。 如果选中,则启用该操作。 如果未选中,则禁用该操作。
-
名称 (Name):操作的人类可读字符串名称,例如
Fetch Content。此项无法更改。 -
描述 (Description):操作用途的人类可读描述,例如
Fetch content from web pages recursively。 要编辑此值,请 double-click 操作所在的行以打开编辑面板。 当您点击字段外或关闭对话框时,更改会自动保存。 -
Slug:操作的编码名称,通常与名称相同但使用蛇形命名法(snake case),例如
fetch_content。 要编辑此值,请 double-click 操作所在的行以打开编辑面板。 当您点击字段外或关闭对话框时,更改会自动保存。
某些操作允许您为其输入提供固定值。 通常情况下,您希望将这些留空,以便代理可以提供自己的值。 但是,如果您正在尝试调试代理的行为,或者您的用例需要为某个操作提供固定输入,则可以使用固定值。
将代理用作工具
要创建多代理流,您可以将另一个 Agent (代理) 组件设置为 Tool Mode (工具模式),然后将该代理作为主要 Agent 组件的工具连接。
要亲自尝试,请在 Simple Agent (简单代理) 模板中添加一个额外的代理:
-
基于 Simple Agent 模板创建一个流。
-
向流中添加第二个 Agent (代理) 组件。
-
将您的 OpenAI API Key 添加到两个 Agent 组件中。
-
在第二个 Agent 组件中,将模型更改为
gpt-4.1,然后启用 Tool Mode。 -
点击 编辑工具操作 (Edit Tool Actions) 来编辑工具的操作。
在此示例中,将操作的 slug 更改为
Agent-gpt-41,并将描述设置为Use the gpt-4.1 model for complex problem solving。 这让主要代理知道此工具使用gpt-4.1模型,这对于需要更大上下文窗口的任务(如大规模抓取和搜索任务)可能会有帮助。作为另一个例子,您可以将几个专业模型连接到一个主要代理,例如在某些任务或领域经过训练的代理,然后主要代理将根据需要调用每个专业代理来响应查询。
如果您想限制可用的工具集,还可以启用和禁用工具。
-
将新代理的 Toolset (工具集) 端口连接到现有代理的 Tools (工具) 端口。

添加自定义组件作为工具
代理可以使用 自定义组件 作为工具。
-
要向代理流添加自定义组件,请在 核心组件 (Core components) 或 Bundles (捆绑包) 菜单中点击 New Custom Component (新建自定义组件)。
-
在 Code (代码) 面板中输入 Python 代码以创建自定义组件。
如果您还没有自定义组件的代码,可以在创建自己的组件之前使用以下代码片段作为示例。
文本分析器自定义组件 (Text Analyzer custom component)
此代码创建了一个文本分析器组件。
_50from langflow.custom import Component_50from langflow.io import MessageTextInput, Output_50from langflow.schema import Data_50import re_50_50class TextAnalyzerComponent(Component):_50display_name = "Text Analyzer"_50description = "分析并转换输入的文本。"_50documentation: str = "http://docs.langflow.org/components/custom"_50icon = "chart-bar"_50name = "TextAnalyzerComponent"_50_50inputs = [_50MessageTextInput(_50name="input_text",_50display_name="Input Text",_50info="输入要分析的文本",_50value="Hello, World!",_50tool_mode=True,_50),_50]_50_50outputs = [_50Output(display_name="Analysis Result", name="output", method="analyze_text"),_50]_50_50def analyze_text(self) -> Data:_50text = self.input_text_50_50# 执行文本分析_50word_count = len(text.split())_50char_count = len(text)_50sentence_count = len(re.findall(r'\w+[.!?]', text))_50_50# 转换文本_50reversed_text = text[::-1]_50uppercase_text = text.upper()_50_50analysis_result = {_50"original_text": text,_50"word_count": word_count,_50"character_count": char_count,_50"sentence_count": sentence_count,_50"reversed_text": reversed_text,_50"uppercase_text": uppercase_text_50}_50_50data = Data(value=analysis_result)_50self.status = data_50return data -
在自定义组件中启用 Tool Mode (工具模式)。
-
将自定义组件的工具输出连接到 Agent (代理) 组件的 Tools (工具) 输入。
-
打开 游乐场 (Playground) 并向代理指示:
对这段文本使用文本分析器:"Agents really are thinking machines!"根据您的指示,代理应该调用
analyze_text操作并返回结果。 例如:_10gpt-4o_10已完成_100.6s_10以下是对文本 "Agents really are thinking machines!" 的分析结果:_10原始文本: Agents really are thinking machines!_10单词数: 5_10字符数: 36_10句子数: 1_10反转文本: !senihcam gnikniht era yllaer stnegA_10大写文本: AGENTS REALLY ARE THINKING MACHINES!
将任何组件转换为工具
如果您想用作工具的组件没有 Tool Mode 按钮,请在组件的一个输入中添加 tool_mode=True,并将新的 Toolset 输出连接到代理的 Tools 输入。
Langflow 支持以下数据类型的 Tool Mode:
DataInputDataFrameInputPromptInputMessageTextInputMultilineInputDropdownInput
例如,将自定义组件用作工具中的示例代码在 MessageTextInput 输入中包含了 tool_mode=True,因此该自定义组件可以作为工具使用:
_10inputs = [_10 MessageTextInput(_10 name="input_text",_10 display_name="Input Text",_10 info="Enter text to analyze",_10 value="Hello, World!",_10 tool_mode=True,_10 ),_10]
将流用作工具
代理可以使用 Run Flow (运行流) 组件 将您的其他流用作工具。
- 向您的流中添加一个 Run Flow 组件。
- 选择您希望代理用作工具的流。
- 启用 Tool Mode。 所选流将成为 Run Flow 组件中的一个操作。
- 将 Run Flow 组件的 Tool 输出连接到 Agent 组件的 Tools 输入。
- 打开 游乐场 (Playground),然后询问代理:
你正在使用哪些工具来回答我的问题?您的流应该作为可用工具显示在响应中。 - 向代理提出一个专门使用所连接流作为工具的问题。 所连接的流将根据您的问题返回答案。
