Skip to main content

创建问题解决智能体

在 Langchain 中开发智能体是一项复杂的任务。

智能体组件是一个组件,用于轻松创建一个能够使用您提供的工具分析任务的 AI 智能体。

该组件包含创建智能体所需的所有元素。无需管理 LLM 模型和提供商,只需选择您的模型并输入 API 密钥。无需连接提示词组件,只需在组件的系统提示字段中输入指令。

工具调用智能体组件

了解如何从工具调用智能体组件开始构建流程,并了解它如何帮助您解决问题。

先决条件

使用智能体组件创建问题解决智能体

在 Blaflow 中创建一个问题解决智能体,从工具调用智能体开始。

  1. 默认空间中,单击右上角按钮【创建应用】,点击【创建空白应用】并输入基本信息,点击【确认】。
  2. 点击并拖动一个智能体组件到您的工作区。 默认设置目前可以接受,因此本指南假设您使用Open AI作为 LLM。
  3. 将您的Open AI API 密钥添加到智能体组件。
  4. 添加聊天输入聊天输出组件到您的流程,并将它们连接到工具调用智能体。

与智能体组件聊天

这个基本流程使您能够在连接一些工具后,在试运行中与智能体聊天。

  1. 搜索 API工具组件连接到您的智能体。
  2. 将您的搜索 API 密钥添加到组件。 您的智能体现在可以查询搜索 API 获取信息。
  3. 连接一个计算器工具解决基本数学问题。
  4. 将一个API 请求组件连接到智能体。 该组件不在工具类别中,但智能体仍然可以通过启用工具模式将其用作工具。 工具模式通过添加一个可以连接到智能体工具端口的工具集端口,将组件转换为工具。 要在组件上启用工具模式,点击工具模式。 组件的字段会根据其模式动态变化。

与智能体组件聊天

使用智能体解决问题

您的智能体现在拥有执行网络搜索、进行基本数学计算和执行 API 请求的工具。仅凭这些能力,您就可以解决许多问题。

  • 您的桌面游戏小组取消了,您被困在家里。 将API 请求指向在线规则文档,告诉您的智能体您是一个使用手头工具的趣味游戏组织者,然后开始游戏。
  • 您需要快速学习一门新的软件语言。 将API 请求指向一些文档,告诉您的智能体您是一个使用手头工具的知识渊博的软件开发人员,然后开始学习。

看看您能用这个流程解决什么问题。随着您的问题变得更加专业化,添加更多工具。例如,添加一个 Python REPL 组件来解决计算器难以处理的数学问题。

编辑工具的元数据

要编辑工具的元数据,点击工具中的编辑工具按钮修改其namedescription元数据。这些字段帮助连接的智能体理解如何使用工具,而无需修改智能体的提示指令。

例如,URL组件在启用工具模式时有三个可用工具。

工具名称描述
URL-fetch_content使用此工具从 URL 获取和检索原始内容,包括 HTML 和其他结构化数据。返回完整的响应内容。
URL-fetch_content_text使用此工具从网页获取和提取干净、可读的文本内容。仅返回纯文本内容。
URL-as_dataframe使用此工具从 URL 获取结构化数据并将其转换为表格格式。数据以结构化DataFrame表格格式返回。

连接的智能体将根据namedescription元数据清楚了解每个工具的能力。如果您认为智能体使用工具不正确,编辑工具的元数据以帮助它更好地理解工具。

工具名称和描述可以编辑,但默认工具标识符不能更改。如果您想更改工具标识符,创建一个自定义组件。

要查看智能体正在使用哪些工具以及如何使用它们,询问智能体:您使用哪些工具来回答我的问题?

将智能体用作工具

智能体组件本身也支持工具模式,用于创建多智能体流程。

在您的问题解决流程中添加一个使用不同 OpenAI 模型进行更专业化问题解决的智能体。

  1. 点击并拖动一个智能体组件到您的工作区。
  2. 将您的Open AI API 密钥添加到智能体组件。
  3. 模式 l Name字段中,选择gpt-4o
  4. 点击工具模式将此新智能体用作工具。
  5. 将新智能体的工具集端口连接到先前创建的智能体的工具端口。
  6. 搜索 APIAPI 请求连接到新智能体。 新智能体将使用gpt-4o进行需要大上下文窗口的抓取和搜索信息等更大任务。 问题解决智能体现在将此智能体作为工具使用,具有其独特的 LLM 和工具集。

作为工具的工具调用智能体

  1. 可以编辑新智能体的元数据以帮助问题解决智能体理解如何使用它。 点击编辑工具修改新智能体的namedescription元数据,使其使用方式对问题解决智能体清晰。 例如,默认工具名称是Agent。将名称编辑为Agent-gpt-4o,将描述编辑为使用gpt-4o模型进行复杂问题解决。问题解决智能体将理解这是gpt-4o智能体,并将其用于需要更大上下文窗口的任务。

添加自定义组件作为工具

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

  1. 要将自定义组件添加到问题解决智能体流程,点击新增自定义组件

  2. 向自定义组件添加自定义 Python 代码。 这是一个用于情感分析的文本分析器示例。


_50
from blaflow.custom import Component
_50
from blaflow.io import MessageTextInput, Output
_50
from blaflow.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.blaflow.com/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

  1. 要启用自定义组件作为工具,点击工具模式
  2. 将工具输出连接到智能体的工具输入。
  3. 询问智能体:您使用哪些工具来回答我的问题? 您的响应将类似于以下内容,并包括您的自定义组件。

_10
我可以访问多个工具来帮助回答您的问题,包括:
_10
搜索 API: 这允许我在网络上搜索最新信息或结果。
_10
HTTP Requests: 我可以向各种URL发出HTTP请求以检索数据或与API交互。
_10
计算器: 我可以评估基本算术表达式。
_10
Text Analyzer: 我可以分析和转换输入文本。
_10
Current Date and Time: 我可以检索不同时区的当前日期和时间。

将任何组件作为工具

如果您想用作工具的组件没有工具模式按钮,向组件的输入之一添加tool_mode=True,并将新的工具集输出连接到智能体的工具输入。

Blaflow 支持以下数据类型的工具模式

  • DataInput
  • DataFrameInput
  • 提示词Input
  • 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
]

使用运行流程组件作为工具

智能体可以使用保存在您工作区中的流程作为工具,通过运行流程组件。

  1. 要添加运行流程组件,点击并拖动一个运行流程组件到您的工作区。
  2. 选择您希望智能体用作工具的流程。
  3. 在组件中启用工具模式
  4. 将工具输出连接到智能体的工具输入。
  5. 要启用工具模式,在运行流程组件中选择一个流程,然后点击工具模式
  6. 询问智能体:您使用哪些工具来回答我的问题? 您的流程应该作为工具在响应中可见。