Files
Ombre_Brain/ENV_VARS.md
P0luz 71154d905f refactor: doc/code consistency, OMBRE_PORT, webhook push, host-vault dashboard
Doc-code consistency (per BEHAVIOR_SPEC.md ground truth):
- INTERNALS.md, dehydrator.py, README.md, config.example.yaml: drop the
  outdated "API 不可用自动降级到本地关键词提取" claims; align with the
  "RuntimeError on API outage, no silent fallback" design decision
- INTERNALS.md & BEHAVIOR_SPEC.md narrative: activation_count=1 → 0 (B-04)
- server.py header: 5 MCP tools → 6 (add dream)

OMBRE_PORT (T5/T6):
- Replace hardcoded 8000 in FastMCP / uvicorn / keepalive URL
  with int(os.environ.get("OMBRE_PORT", "8000"))

OMBRE_HOOK_URL / OMBRE_HOOK_SKIP webhook (T7):
- Implement _fire_webhook() helper: fire-and-forget POST with 5s timeout,
  failures logged at WARNING but never propagated
- Wired into breath / dream MCP tools and /breath-hook + /dream-hook routes
- Push payload: {event, timestamp, payload:{...}}; documented in ENV_VARS.md

Dashboard host-vault input (T12, per user request):
- New /api/host-vault GET/POST endpoints persist OMBRE_HOST_VAULT_DIR
  to project-root .env (idempotent upsert, preserves other entries,
  rejects quotes/newlines)
- Settings tab gains a "宿主机记忆桶目录 (Docker)" panel with
  load/save buttons and a clear "需要 docker compose down/up 生效" notice
2026-04-21 20:08:52 +08:00

2.9 KiB
Raw Blame History

环境变量参考

变量名 必填 默认值 说明
OMBRE_API_KEY Gemini / OpenAI-compatible API Key用于脱水(dehydration)和向量嵌入
OMBRE_BASE_URL https://generativelanguage.googleapis.com/v1beta/openai/ API Base URL可替换为代理或兼容接口
OMBRE_TRANSPORT stdio MCP 传输模式:stdio / sse / streamable-http
OMBRE_PORT 8000 HTTP/SSE 模式监听端口(仅 sse / streamable-http 生效)
OMBRE_BUCKETS_DIR ./buckets 记忆桶文件存放目录(绑定 Docker Volume 时务必设置)
OMBRE_HOOK_URL Breath/Dream Webhook 推送地址POST JSON留空则不推送
OMBRE_HOOK_SKIP false 设为 true/1/yes 跳过 Webhook 推送(即使 OMBRE_HOOK_URL 已设置)
OMBRE_DASHBOARD_PASSWORD 预设 Dashboard 访问密码;设置后覆盖文件存储的密码,首次访问不弹设置向导
OMBRE_DEHYDRATION_MODEL deepseek-chat 脱水/打标/合并/拆分用的 LLM 模型名(覆盖 dehydration.model
OMBRE_DEHYDRATION_BASE_URL https://api.deepseek.com/v1 脱水模型的 API Base URL覆盖 dehydration.base_url
OMBRE_MODEL OMBRE_DEHYDRATION_MODEL 的别名(前者优先)
OMBRE_EMBEDDING_MODEL gemini-embedding-001 向量嵌入模型名(覆盖 embedding.model
OMBRE_EMBEDDING_BASE_URL 向量嵌入的 API Base URL覆盖 embedding.base_url;留空则复用脱水配置)

说明

  • OMBRE_API_KEY 也可在 config.yamldehydration.api_key / embedding.api_key 中设置,但强烈建议通过环境变量传入,避免密钥写入文件。
  • OMBRE_DASHBOARD_PASSWORD 设置后Dashboard 的"修改密码"功能将被禁用(显示提示,建议直接修改环境变量)。未设置则密码存储在 {buckets_dir}/.dashboard_auth.jsonSHA-256 + salt

Webhook 推送格式 (OMBRE_HOOK_URL)

设置 OMBRE_HOOK_URLOmbre Brain 会在以下事件发生时异步fire-and-forget5 秒超时)POST JSON 到该 URL

事件名 (event) 触发时机 payload 字段
breath MCP 工具 breath() 返回时 mode (ok/empty), matches, chars
dream MCP 工具 dream() 返回时 recent, chars
breath_hook HTTP GET /breath-hook 命中SessionStart 钩子) surfaced, chars
dream_hook HTTP GET /dream-hook 命中 surfaced, chars

请求体结构JSON

{
  "event": "breath",
  "timestamp": 1730000000.123,
  "payload": { "...": "..." }
}

Webhook 推送失败仅在服务日志中以 WARNING 级别记录,不会影响 MCP 工具的正常返回