跳到主要内容

为智能体配置工具

默认情况下,Langflow 智能体仅包含其基础大语言模型(LLM)内置的功能。

您可以为智能体挂载工具,以提供对额外的、有针对性的功能的访问。例如,工具可用于创建特定领域的智能体,如可以访问公司知识库的客户支持智能体、可以检索股票价格的金融智能体,或者可以使用高级数学函数解决复杂方程的数学老师智能体。

挂载工具

要为智能体挂载工具,您需要将任何组件的 Tool 输出连接到 Agent 组件的 Tools 输入。

某些组件默认发出 Tool 输出。对于所有其他组件,您必须在 组件的标题菜单 中启用 Tool Mode(工具模式)。然后,您就可以将该工具连接到智能体。

您可以将多个工具连接到一个智能体,每个工具可以有多个供智能体调用的动作(函数)。

运行工作流时,如果智能体确定某个工具可以帮助其响应用户的提示词,它会决定何时调用特定的工具。

编辑工具的动作

当您将组件作为工具挂载到智能体时,每个工具可以有多个供智能体调用的动作(函数)。可用动作列在每个工具组件的 Actions 列表中。

您可以更改每个动作的标签、描述和可用性,以帮助智能体理解如何使用该工具,并防止其使用不相关或不需要的动作。

提示

如果智能体似乎在使用工具时出错,请尝试编辑动作元数据以澄清工具的用途,并禁用不必要的动作。

您还可以尝试使用 Prompt Template(提示词模板)组件向智能体传递额外的指令或示例。

要查看和编辑工具的动作,请点击 工具组件上的 Edit Tool Actions(编辑工具动作)。

每个动作都提供以下信息:

  • Enabled(已启用):一个复选框,决定该动作是否对智能体可用。如果选中,则动作已启用。如果未选中,则动作已禁用。

  • Name(名称):动作的人类可读字符串名称,例如 Fetch Content。此项不可更改。

  • Description(描述):动作用途的人类可读描述,例如 Fetch content from web pages recursively(递归地从网页抓取内容)。要编辑此值,请双击动作所在的行以打开编辑面板。当您点击字段外或关闭对话框时,更改会自动保存。

  • Slug(标识符):动作的编码名称,通常与名称相同但采用蛇形命名法(snake case),例如 fetch_content。要编辑此值,请双击动作所在的行以打开编辑面板。当您点击字段外或关闭对话框时,更改会自动保存。

某些动作允许您为其输入提供固定值。通常情况下,您希望将这些留空,以便智能体可以提供自己的值。但是,如果您正在尝试调试智能体的行为,或者您的用例需要为某个动作提供固定输入,则可以使用固定值。

将智能体用作工具

要创建多智能体流,您可以将另一个 Agent 组件设置为 Tool Mode,然后将该智能体作为工具挂载到您的主 Agent 组件上。

要亲自尝试此操作,请在 Simple Agent 模板中添加一个额外的智能体:

  1. 基于 Simple Agent 模板创建一个工作流。

  2. 在工作流中添加第二个 Agent 组件。

  3. 将您的 OpenAI API Key 添加到这两个 Agent 组件中。

  4. 在第二个 Agent 组件中,将模型更改为 gpt-4.1,然后启用 Tool Mode

  5. 点击 点击 Edit Tool Actions编辑该工具的动作

    在此示例中,将动作的标识符(slug)更改为 Agent-gpt-41,并将描述设置为 Use the gpt-4.1 model for complex problem solving(使用 gpt-4.1 模型解决复杂问题)。这让主智能体知道此工具使用 gpt-4.1 模型,这对于需要更大上下文窗口的任务(如大规模抓取和搜索任务)可能会很有帮助。

    作为另一个例子,您可以将多个专业模型挂载到一个主智能体上,例如在某些任务或领域经过训练的智能体,然后主智能体将根据需要调用每个专业智能体来响应查询。

    如果您想限制可用的工具集,还可以启用或禁用工具。

  6. 将新智能体的 Toolset 端口连接到现有智能体的 Tools 端口。

    Agent as a tool

将自定义组件添加为工具

智能体可以将 自定义组件 作为工具使用。

  1. 要将自定义组件添加到智能体流中,请点击 Core components(核心组件)或 Bundles(捆绑包)菜单中的 New Custom Component(新建自定义组件)。

  2. Code 面板中输入 Python 代码以创建自定义组件。

    如果您还没有自定义组件的代码,在创建自己的组件之前,可以使用以下代码片段作为示例。

    文本分析器(Text Analyzer)自定义组件

    这段代码创建了一个文本分析器组件。


    _50
    from langflow.custom import Component
    _50
    from langflow.io import MessageTextInput, Output
    _50
    from langflow.schema import Data
    _50
    import re
    _50
    _50
    class TextAnalyzerComponent(Component)
    _50
    display_name = "Text Analyzer"
    _50
    description = "Analyzes and transforms input text."
    _50
    documentation: str = "https://docs.langflow.org.cn/components/custom"
    _50
    icon = "chart-bar"
    _50
    name = "TextAnalyzerComponent"
    _50
    _50
    inputs = [
    _50
    MessageTextInput(
    _50
    name="input_text",
    _50
    display_name="Input Text",
    _50
    info="Enter text to analyze",
    _50
    value="Hello, World!",
    _50
    tool_mode=True,
    _50
    ),
    _50
    ]
    _50
    _50
    outputs = [
    _50
    Output(display_name="Analysis Result", name="output", method="analyze_text"),
    _50
    ]
    _50
    _50
    def analyze_text(self) -> Data
    _50
    text = self.input_text
    _50
    _50
    # 执行文本分析
    _50
    word_count = len(text.split())
    _50
    char_count = len(text)
    _50
    sentence_count = len(re.findall(r'\w+[.!?]', text))
    _50
    _50
    # 转换文本
    _50
    reversed_text = text[::-1]
    _50
    uppercase_text = text.upper()
    _50
    _50
    analysis_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
    _50
    data = Data(value=analysis_result)
    _50
    self.status = data
    _50
    return data

  3. 在自定义组件中启用 Tool Mode

  4. 将自定义组件的工具输出连接到 Agent 组件的 Tools 输入。

  5. 打开 Playground 并向智能体发出指令:Use the text analyzer on this text: "Agents really are thinking machines!"

    根据您的指令,智能体应调用 analyze_text 动作并返回结果。例如:


    _10
    gpt-4o
    _10
    已完成
    _10
    0.6秒
    _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

  • DataInput
  • DataFrameInput
  • PromptInput
  • MessageTextInput
  • MultilineInput
  • DropdownInput

例如,将自定义组件作为工具使用 中的示例代码在 MessageTextInput 输入中包含了 tool_mode=True,因此该自定义组件可以作为工具使用。


_10
inputs = [
_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 组件 将您的其他工作流作为工具使用。

  1. 在您的流中添加一个 Run Flow 组件。
  2. 选择您希望智能体作为工具使用的流。
  3. 启用 Tool Mode。所选的流将成为 Run Flow 组件中的一个 动作(action)
  4. Run Flow 组件的 Tool 输出连接到 Agent 组件的 Tools 输入。
  5. 打开 Playground,然后询问智能体:What tools are you using to answer my questions? 您的工作流应该作为一个可用工具出现在回复中。
  6. 向智能体提出一个专门使用该连接工作流作为工具的问题。连接的工作流将根据您的问题返回答案。

Run Flow component connected to an Agent component as a tool

另请参阅

Search