跳转至

安装与快速开始

安装 Python SDK,连接模型,然后运行一个能查询课程信息的 Agent。需要 Python 3.11+ 和支持工具调用的 Chat Completions 兼容服务。

安装 SDK

建议在独立 Python 环境中安装:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install bumblehive
py -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install bumblehive
conda create -n bumblehive_env python=3.11 -y
conda activate bumblehive_env
python -m pip install bumblehive

配置模型

替换模型名、密钥和服务地址。base_url 是 API 基地址,通常以 /v1 结尾,具体以你的服务为准。

export BUMBLEHIVE_MODEL="your-model"
export BUMBLEHIVE_API_KEY="your-api-key"
export BUMBLEHIVE_BASE_URL="https://your-provider.example/v1"
$env:BUMBLEHIVE_MODEL = "your-model"
$env:BUMBLEHIVE_API_KEY = "your-api-key"
$env:BUMBLEHIVE_BASE_URL = "https://your-provider.example/v1"

这些变量由示例中的 os.environ 读取,SDK 不会自动读取它们。

运行第一个 Agent

新建 agent.py,复制以下完整程序:

agent.py
import asyncio
import os

import bumblehive


COURSES = {
    "Python 入门": "周一 10:00,教学楼 A101",
}


async def main() -> None:
    config = bumblehive.RuntimeArguments(
        model=os.environ["BUMBLEHIVE_MODEL"],
        api_key=os.environ["BUMBLEHIVE_API_KEY"],
        base_url=os.environ["BUMBLEHIVE_BASE_URL"],
        agent_instructions=("回答课程问题前,必须先调用 get_course_info 工具。"),
        tool_names=["get_course_info"],
    )
    async with bumblehive.from_config(config) as runtime:
        @runtime.tools.tool(
            name="get_course_info",
            description="查询指定课程的上课时间和地点。",
        )
        def get_course_info(course: str) -> str:
            return COURSES.get(course, f"没有找到课程:{course}")

        result = await runtime.run("Python 入门课在什么时候、什么地点上课?")

    if result.error is not None:
        print(f"运行失败 [{result.error.code}]:{result.error.message}")
        return

    print(f"工具:{', '.join(result.tools_used) or '未调用工具'}")
    print(f"回答:{result.final_content}")


if __name__ == "__main__":
    asyncio.run(main())
python agent.py

输出示例:

工具:get_course_info
回答:Python 入门课在周一 10:00,于教学楼 A101 上课。

具体措辞由模型决定。检查工具一行是否包含 get_course_info;若没有,查看工具调用排错。

理解这次运行

from_config() 创建 Runtime,async with 初始化工具并在退出时释放模型和 MCP 连接。装饰器注册 Python 函数;tool_names 指定本次开放的工具;run() 驱动模型与工具循环,并返回 AgentRunResult。

一个 Runtime 可以执行多次调用。每次调用默认独立;需要多轮对话时传入会话或历史。从源码仓库运行同一个示例:

python examples/runtime/custom_tool.py

继续构建