跳转至

配置 Runtime

简单项目优先使用 RuntimeArguments。需要保存配置时,再使用字典或 JSON 文件。

使用 RuntimeArguments

import os

import bumblehive


config = bumblehive.RuntimeArguments(
    model=os.environ["BUMBLEHIVE_MODEL"],
    api_key=os.environ["BUMBLEHIVE_API_KEY"],
    base_url=os.environ["BUMBLEHIVE_BASE_URL"],
    workspace="./workspace",
    timezone="Asia/Shanghai",
    max_completion_tokens=2_048,
    temperature=0.2,
    max_iterations=12,
    agent_instructions="回答要简洁,并优先使用提供的工具。",
    dynamic_context={"project": "course-helper"},
    skill_names=[],
    tool_names=[],
)

runtime = bumblehive.from_config(config)

Bumblehive 不会自动读取这些环境变量。上面的 os.environos.getenv 是应用自己的读取逻辑。

常用配置

分类 参数 作用
Provider model 模型名称
Provider api_keybase_url API 凭证和 OpenAI 兼容地址
生成 max_completion_tokens 最大输出 token 数
生成 temperaturereasoning_effort 控制生成行为
Agent agent_instructions Agent 的长期行为要求
Agent dynamic_context 项目名、用户角色等动态信息
能力 skill_namestool_names 本次 Runtime 默认开放的能力
运行 workspacetimezone 工作目录和时区
运行 max_iterations 最多执行多少轮模型/工具循环
运行 context_window_tokens 上下文窗口预算
运行 max_tool_result_chars 单个工具结果进入模型前的字符预算

model 应明确设置。base_url=None 时,OpenAI SDK 使用自己的默认地址。

使用嵌套字典

字典适合从应用配置系统动态组装:

config = {
    "provider": {
        "model": os.environ["BUMBLEHIVE_MODEL"],
        "api_key": os.environ["BUMBLEHIVE_API_KEY"],
        "base_url": os.environ["BUMBLEHIVE_BASE_URL"],
    },
    "generation": {"temperature": 0.2},
    "agent": {
        "instructions": "回答要简洁。",
        "tool_names": [],
    },
    "runtime": {
        "workspace": "./workspace",
        "timezone": "Asia/Shanghai",
    },
}

runtime = bumblehive.from_config(config)

从 JSON 文件加载

from_config() 也接受 .json 路径:

runtime = bumblehive.from_config("bumblehive.json")

JSON 不会展开环境变量。不要把真实 API Key 提交到 Git 仓库;正式项目更适合在 Python 中从环境变量注入密钥。

覆盖单次调用配置

run()config 会与 Runtime 基础配置深度合并:

result = await runtime.run(
    "只回答最终数字",
    config={
        "generation": {"temperature": 0},
        "agent": {"tool_names": ["calculate"]},
    },
)

单次覆盖不会修改 Runtime 的基础配置。

mcp_servers 不能按调用覆盖,因为 MCP 连接属于 Runtime 生命周期。应在创建 Runtime 时配置。

能力列表:省略、None 和空列表

创建 Runtime 时,省略 skill_namestool_names 等同于传入 None

配置值 skill_names tool_names
省略或 None 向模型提供全部已加载 Skill 的摘要 向模型开放全部已注册工具
[] 不提供任何 Skill 不开放任何工具
['name'] 只提供指定 Skill 只开放指定工具

Skill 是加入上下文的能力说明,不是可调用函数。未知工具名会触发 Unknown tools 错误;未知 Skill 名目前会被忽略。

run(config=...) 中省略这两个字段会继承 Runtime 配置;显式传入 None 才会改为全部。正式项目建议写出明确列表。

下一步:阅读工具安全