跳到主要内容

为代理配置工具

为代理配置连接的工具以扩展其功能。

编辑工具的操作

当您将任何组件设置为工具模式工具输出时,代理可以使用该组件提供的操作(函数)。 可用操作列在工具组件的操作列表中。

您可以更改每个操作的标签、描述和可用性,以帮助代理理解如何使用该工具,并防止它使用不相关或不必要的操作。

提示

如果代理似乎在使用工具时出错,请尝试编辑操作元数据以明确工具的目的并禁用不必要的操作。

您也可以尝试使用提示模板组件向代理传递额外的指令或示例。

要查看和编辑工具的操作,请在工具组件上点击 编辑工具操作

为每个操作提供以下信息:

  • 已启用:一个复选框,用于确定操作是否对代理可用。 如果选中,则启用该操作。 如果未选中,则禁用该操作。

  • 名称:操作的可读字符串名称,例如 Fetch Content。此名称不可更改。

  • 描述:操作目的的可读描述,例如 递归地从网页获取内容

    要编辑此值,请双击操作的行以打开编辑面板。 当您点击字段外部或关闭对话框时,更改将自动保存。

  • Slug:操作的编码名称,通常与名称相同但使用蛇形命名法,例如 fetch_content

    要编辑此值,请双击操作的行以打开编辑面板。 当您点击字段外部或关闭对话框时,更改将自动保存。

要编辑描述Slug,请双击操作行的任意位置以打开编辑面板。 请注意,编辑页面上的名称字段映射到Slug列。 当您点击字段外部或关闭对话框时,更改将自动保存。

可选地,您可以为操作的输入提供固定值。通常您希望将这些留空,以便代理可以提供自己的值。如果您尝试调试代理的行为或您的用例需要操作的固定输入,您可以使用固定值。

将代理用作工具

要创建多代理流程,您可以将另一个代理组件设置为工具模式,然后将该代理作为工具附加到您的主要代理组件。

要亲自尝试此功能,请向简单代理模板添加一个额外的代理:

  1. 基于简单代理模板创建一个流程。

  2. 向流程中添加第二个代理组件。

  3. 将您的OpenAI API密钥添加到两个代理组件中。

  4. 在第二个代理组件中,将模型更改为 gpt-4.1,然后启用工具模式

  5. 点击 编辑工具操作编辑工具的操作

    在此示例中,将操作Slug更改为 Agent-gpt-41,并将描述设置为 使用gpt-4.1模型解决复杂问题。 这让主代理知道此工具使用 gpt-4.1 模型,这对于需要更大上下文窗口的任务可能很有帮助,例如大规模抓取和搜索任务。

    作为另一个示例,您可以将几个专业模型附加到主代理,例如针对特定任务或领域训练的代理,然后主代理将根据需要调用每个专业代理来响应用户查询。

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

  6. 将新代理的工具集端口连接到现有代理的工具端口。

    将代理用作工具

将自定义组件添加为工具

代理可以使用 自定义组件 作为工具。

  1. 要将自定义组件添加到代理流程中,请在 Components 菜单中点击 New Custom Component

  2. Code 窗格中输入 Python 代码来创建自定义组件。

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

    文本分析器自定义组件

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


    _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 = "http://docs.langflow.org/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
    # Perform text analysis
    _50
    word_count = len(text.split())
    _50
    char_count = len(text)
    _50
    sentence_count = len(re.findall(r'\w+[.!?]', text))
    _50
    _50
    # Transform text
    _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
    Finished
    _10
    0.6s
    _10
    Here is the analysis of the text "Agents really are thinking machines!":
    _10
    Original Text: Agents really are thinking machines!
    _10
    Word Count: 5
    _10
    Character Count: 36
    _10
    Sentence Count: 1
    _10
    Reversed Text: !senihcam gnikniht era yllaer stnegA
    _10
    Uppercase Text: 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