安装与快速开始¶
安装 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
继续构建¶
- 工具调用:参数、异步函数与执行结果。
- 流式输出:展示回答与工具进度。
- 工具审批:执行前等待用户确认。
- Runtime API:查询调用参数和结果字段。