Skip to content

使用 shbagents 创建我们的第一个智能体

在本教程中,你将创建你的第一个智能体 !

让我们开始吧!

安装 shbagents

首先,我们需要安装 shbagents 库:

bash
pip install shbagents

第一步:导入必要的模块

让我们从导入必要的模块开始:

python
from shbagents import Agent, OpenAIModel, tool

第二步:创建自定义工具

智能体的强大之处在于它能够使用工具。让我们创建一个简单的数字比较工具:

python
@tool
def compare_numbers_tool(a: float, b: float) -> str:
    """比较两个数的大小"""
    if a > b:
        return f"{a}{b} 大"
    elif a < b:
        return f"{a}{b} 小"
    else:
        return f"{a}{b} 相等"

这个工具:

  • 使用 @tool 装饰器来标记这是一个智能体可以使用的工具
  • 接受两个浮点数参数 ab
  • 返回比较结果的中文描述
  • 包含详细的文档字符串,帮助 LLM 理解工具的用途

第三步:配置语言模型

接下来,我们需要配置要使用的语言模型:

python
model = OpenAIModel(
    model_id="openai/gpt-5"
)

提示

你需要设置 OpenAI API 密钥 才能使用这个模型。可以通过环境变量 OPENAI_API_KEY 设置。

第四步:创建智能体

现在我们可以创建智能体了:

python
agent = Agent(
    model=model,
    tools=[
        compare_numbers_tool
    ]
)

智能体由以下组件构成:

  • 模型 (model):用于推理和决策的 LLM
  • 工具 (tools):智能体可以调用的功能列表

第五步:运行智能体

最后,让我们测试一下我们的智能体:

python
result = agent.run("9.11 比 9.8 大么, 请使用工具比较")
print(result)

完整代码示例

下面是完整的代码:

python
from shbagents import Agent, OpenAIModel, tool
# 或者根据您的环境使用: from shbagents import Agent, OpenAIModel, tool

@tool
def compare_numbers_tool(a: float, b: float) -> str:
    """比较两个数的大小"""
    if a > b:
        return f"{a}{b} 大"
    elif a < b:
        return f"{a}{b} 小"
    else:
        return f"{a}{b} 相等"

model = OpenAIModel(
    model_id="openai/gpt-4"
)

agent = Agent(
    model=model,
    tools=[
        compare_numbers_tool
    ]
)

# 运行智能体
result = agent.run("9.11 比 9.8 大么, 请使用工具比较")
print(result)

预期输出

当你运行这段代码时,智能体会:

  1. 理解问题:分析你的问题 "9.11 比 9.8 大么"
  2. 选择工具:决定使用 compare_numbers_tool 来解决这个问题
  3. 调用工具:使用参数 a=9.11b=9.8 调用工具
  4. 获得结果:工具返回 "9.11 比 9.8 大"
  5. 生成响应:基于工具的结果生成最终答案

理解智能体的工作流程

这个例子展示了智能体基于 ReAct(思考-行动-观察)循环 的核心工作流程:

加载图表中...

ReAct 循环的三个核心阶段:

  1. 🤔 思考 (Thought)

    • 智能体分析用户问题:"需要比较 9.11 和 9.8 的大小"
    • 制定计划:"我有 compare_numbers_tool 工具可以完成这个任务"
    • 决定行动:"调用工具进行精确比较"
  2. ⚡ 行动 (Action)

    • 执行具体操作:调用 compare_numbers_tool(a=9.11, b=9.8)
    • 使用合适的参数调用选定的工具
  3. 👀 观察 (Observation)

    • 接收工具返回结果:" 9.11 比 9.8 大 "
    • 评估结果质量:结果准确且完整
    • 判断是否需要进一步行动:任务已完成

为什么使用 ReAct 循环?

  • 准确性:通过工具调用避免了 LLM 在数值计算上的潜在错误
  • 可靠性:即使是简单的比较,也通过专门的工具确保结果正确
  • 可扩展性:这个模式可以应用于更复杂的任务

恭喜你,你已经构建了你的第一个智能体!

不要犹豫,与你的朋友和同事分享吧。

最好的学习方法是尝试,所以不要犹豫,去更新它,添加更多工具,尝试使用另一个模型,等等。

🎉   恭喜完成第 1 单元!

你已经成功完成了 AI 智能体的基础学习!现在你已经:

  • ✅ 理解了智能体的核心概念
  • ✅ 掌握了 LLM 和工具的基础知识
  • ✅ 学会了(思考-行动-观察) 循环
  • ✅ 创建了你的第一个智能体