AiHummer
中文
登录帐户
v1.0.x
{ }Swagger

配置

v1.0.x · 已更新 2026-07-07

AiHummer 通过一个配置 设置目录,而不是一堆环境变量。 gateway.env仅限引导:数据库 DSN、监听地址/端口、主密钥等等。其他所有密钥都存储在数据库中,并可以在运行时通过网页管理界面更改,或者使用 aihummer settings CLI。指导原则很简单: 在 Web UI 中,所有可调的都可以配置 — 不是仅限环境变量,也不是硬编码的。

解析顺序

每个目录设置的解析方式相同,先匹配者获胜:

  1. 数据库 — 通过管理界面设置的值或 aihummer settings set.
  2. 默认 ——随版本发布的内置默认值。

环境是 故意不属于这一链条: 用于目录键和 AIHUMMER_* 变量在 gateway.env忽略即使已设置。这为每个设置提供了唯一的真实来源——数据库——因此 UI 的值永远不会被环境文件中被遗忘的一行悄悄覆盖。

[!NOTE] 要在生产环境中改变行为,你不会编辑配置文件——你会改变 在管理界面中的设置(管理 → 设置,一个可搜索的页面)或运行 aihummer settings set <KEY> <VALUE> (get / list 去读),它需要 对该工作区的影响。安装程序本身会播种初始目录值 通过数据库输入 aihummer settings set.

热更新 vs 需要重启

更改设置的生效方式取决于按键:

行为 例子 当适用时
工具启用,子代理最大深度 在运行时重新读取,无需重启
需要重启 监听地址,某些服务的布线 将在下次网关重启时应用

热键是实时重新读取的,因此切换工具或调整 subagent-depth 在下一回合生效。一些结构键只有在重启后才会生效;管理员界面会标记哪一个是哪个。

Bootstrap 变量保持仅环境使用

一些变量必须存在于环境中,因为在设置目录(以及它所读取的数据库)存在之前就需要它们。这些 自举 变量仅限于环境,并不会显示在管理界面中:

变量 为什么是 bootstrap
AIHUMMER_DATABASE_URL 在读取任何基于数据库的设置之前,数据库必须存在。
AIHUMMER_DB_APP_URL 激活 RLS 的受限角色 DSN。
AIHUMMER_MASTER_KEY base64-32 字节;解锁静态秘密 / 保管库 / 自带密钥 (BYOK)。
AIHUMMER_GATEWAY_ADDR 公共监听地址(默认 :8780) — API、配对、WS/SSE、入站以及应用/口袋代理。
AIHUMMER_WEBUI_ADDR 私人管理员 Web UI 监听地址(默认 :8781),在根部提供 /; 设置为 0 禁用。
AIHUMMER_BLOB_DIR blob/媒体目录的文件系统路径 — 启动时需要。
AIHUMMER_OIDC_ISSUER 保护 /v1/admin/* 在界面被信任之前。

诸如遥测 OTLP 端点的运维布线属于同一启动类别。任何不在这个简短列表中的都是目录键:它存在于数据库中,并且 env 对它被忽略。

[!WARNING] 保持 AIHUMMER_MASTER_KEY 安全并已备份 分别 来自你的数据库 备份。它会解密凭证库;丢失它,就会丢失加密的机密 无法恢复。

配置文件

对于本地主机原生安装,引导环境存放在系统d单元加载的单个文件中:

~/.aihummer/etc/gateway.env

编辑此文件 仅用于自助法值然后重启网关服务以应用更改:

# ~/.aihummer/etc/gateway.env (excerpt)
AIHUMMER_DATABASE_URL=postgres://user:pass@localhost:5432/aihummer
AIHUMMER_MASTER_KEY=base64-32-bytes...
AIHUMMER_GATEWAY_ADDR=:8780
AIHUMMER_WEBUI_ADDR=:8781
AIHUMMER_OIDC_ISSUER=https://idp.example/realms/main
systemctl restart aihummer-gateway

这些引导密钥之外的所有内容——代理、工具、记忆模式、推理策略、预算、护栏以及其他——都由管理员用户界面的设置管理(或通过 aihummer settings),不是来自此文件:env 对这些键被忽略。

布线可选功能

在将它们指向后端服务之前,许多功能都是关闭的。所有这些键都是目录设置(它们存储在数据库中):在管理界面中设置它们(管理 → 设置) 或使用命令行界面(CLI);将它们放入 gateway.env 什么也不做——对它们来说,env 会被忽略。对于从捆绑包安装的 sidecar(如 STT/TTS 等),安装程序会将值直接写入数据库。

# Wire a real model (unset → deterministic mock)
aihummer settings set AIHUMMER_LLM_PROVIDER openai
aihummer settings set AIHUMMER_LLM_MODEL gpt-4o-mini
aihummer settings set AIHUMMER_LLM_GATEWAY_URL https://api.openai.com/v1

# Enable tools by pointing at their backends

# Voice sidecars (STT/TTS auto-configured by the installer)
aihummer settings set AIHUMMER_STT_URL http://localhost:8001
aihummer settings set AIHUMMER_TTS_URL http://localhost:8002

# Real vector store + embedder (example URLs; the embedder is installed with
# --with-embedder, otherwise memory uses the lexical fallback)
aihummer settings set AIHUMMER_QDRANT_URL http://localhost:6333
aihummer settings set AIHUMMER_EMBEDDER_URL http://localhost:8080

[!TIP] 真正的模型从不必要。没有 AIHUMMER_LLM_* 紧张,回复来了 来自确定性的模拟;AiHummer 也运行在免费的/本地兼容 OpenAI 的环境上 端点和 Codex/ChatGPT 订阅传输,可选 BYOK。

通知

管理员界面的 通知 页面(在“控制”下)是实例的事件收件箱(管理员登录、可用/已应用更新、边车服务关闭或恢复等),可以按类别、严重性和未读进行过滤。旁边是一个 类别 × 交付渠道矩阵:对于您启用的每个事件类别 网页界面, 电子邮件, 电报推动 渠道。Web UI 通知是本地发送的;Telegram 可以通过“Link Telegram”按钮(深度链接)关联,电子邮件在支持地址验证后激活,推送通知会发送到移动应用。关键事件无法在 Web UI 渠道静音。

接下来去哪儿