Skip to content

feat: make model runtime env-driven and add budget-aware dashboard sync#9

Merged
Protocol-zero-0 merged 2 commits into
billion-token-one-task:v6-releasefrom
breezeFur:feat/env-runtime-budget-dashboard
May 17, 2026
Merged

feat: make model runtime env-driven and add budget-aware dashboard sync#9
Protocol-zero-0 merged 2 commits into
billion-token-one-task:v6-releasefrom
breezeFur:feat/env-runtime-budget-dashboard

Conversation

@breezeFur
Copy link
Copy Markdown
Contributor

修复目标对照

本 PR 对应以下修复目标:

  1. 在环境变量里面完成必要的配置,可以任意修改为主流大模型
  2. 设置 token 总预算,达到预算后服务可暂停,防止预算超限
  3. dashboard 正常反映系统运行情况
  4. 不通过写死流程实现目标,而是通过配置驱动实现

本次改动摘要

1. 模型配置环境变量化

  • 去掉对特定模型写死依赖的启动方式
  • 新增环境变量驱动的模型配置渲染逻辑
  • 支持单 provider 模式和高级 JSON provider 模式
  • 启动时自动渲染并部署 OpenClaw 配置,而不是手工改固定模型名

2. 预算控制

  • 新增 token / cost 预算计算逻辑
  • health-check 会在预算耗尽时返回暂停信号
  • dashboard 可展示已用 token、剩余 token、预算占比与暂停原因

3. Dashboard 运行态展示与 PR 同步

  • dashboard 新增 runtime / budget / connection 状态展示
  • 能显示主模型、provider、heartbeat、预算与最近 PR
  • 补齐 GitHub PR 同步开关与同步流程,使 PR 统计表与事件流保持一致

4. 标准化部署与身份配置驱动

  • setup/start/restart 统一走渲染配置和部署逻辑
  • GitHub 用户名/邮箱不再默认写死到历史账号,改成通过环境变量驱动
  • Windows 本地 public stack 启动脚本也改成配置驱动

环境变量字段说明

GitHub

变量 说明 是否必填
GITHUB_TOKEN GitHub PAT,用于搜索 issue、push 分支、创建 PR、跟进 review
GITHUB_USERNAME GitHub 用户名,作为 agent 身份与 git user.name 来源 建议填写
GITHUB_EMAIL Git 提交邮箱,作为 git user.email 来源 建议填写
CLAW_AGENT_USERNAME 可选,显式覆盖 agent 使用的 GitHub 身份;不填时回退到 GITHUB_USERNAME

大模型运行配置(单 provider 模式)

变量 说明 是否必填
CLAWOSS_PROVIDER_ID provider 标识,例如 openai / openrouter / custom
CLAWOSS_PROVIDER_BASE_URL 模型接口基地址
CLAWOSS_PROVIDER_API_FORMAT 协议格式,目前支持项目兼容的 OpenAI 风格格式
CLAWOSS_PROVIDER_AUTH_HEADER 是否使用请求头鉴权
CLAWOSS_PROVIDER_API_KEY_ENV 指向真正 API key 所在的环境变量名
对应真实 key 变量 例如 OPENAI_API_KEY / OPENROUTER_API_KEY
CLAWOSS_MODEL_ID 模型 ID,例如 gpt-4.1 / moonshotai/kimi-k2.5
CLAWOSS_MODEL_NAME 展示用模型名称
CLAWOSS_MODEL_REASONING 是否为 reasoning 模型
CLAWOSS_MODEL_CONTEXT_WINDOW 上下文窗口大小
CLAWOSS_MODEL_MAX_TOKENS 最大输出 token 数
CLAWOSS_MODEL_INPUT_COST 输入单价(每百万 token)
CLAWOSS_MODEL_OUTPUT_COST 输出单价(每百万 token)
CLAWOSS_MODEL_CACHE_READ_COST cache read 单价
CLAWOSS_MODEL_CACHE_WRITE_COST cache write 单价
CLAWOSS_FALLBACK_MODELS 备用模型列表,逗号分隔

大模型运行配置(高级模式)

变量 说明 是否必填
CLAWOSS_MODEL_PROVIDERS_JSON 原始 providers JSON 配置,优先级高于单 provider 模式
CLAWOSS_PRIMARY_MODEL 主模型,格式 provider/model 配高级模式时建议填写

预算与运行控制

变量 说明 是否必填
CLAWOSS_HEARTBEAT_INTERVAL_MINUTES agent 心跳周期(分钟)
CLAWOSS_TOKEN_BUDGET_TOTAL token 总预算上限
CLAWOSS_COST_BUDGET_USD_TOTAL 美元成本总预算上限

Dashboard

变量 说明 是否必填
DASHBOARD_URL dashboard 地址
CLAW_API_KEY agent 与 dashboard 之间的鉴权密钥 建议填写
CLAWOSS_DASHBOARD_MANUAL_GITHUB_SYNC 是否允许手动触发 GitHub PR 同步
CLAWOSS_DASHBOARD_AUTO_GITHUB_SYNC 是否允许 heartbeat 自动同步 GitHub PR

为什么这不是“写死流程”

  • 模型由环境变量和渲染脚本驱动,不再固定依赖某两个模型名
  • 预算控制来自统一 runtime/budget 逻辑,不依赖具体模型
  • dashboard 读取真实 heartbeat、metrics、GitHub PR 数据,不是写死展示
  • GitHub 身份和 PR 同步也改成配置驱动,不再固定某个历史账号

验证

  • npm run dashboard:build
  • node scripts/render-openclaw-config.mjs --print-primary-model(使用环境变量样例验证)
  • 本地与线上 dashboard 已展示真实 PR / budget / runtime 状态

@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented Apr 24, 2026

CLA assistant check
All committers have signed the CLA.

@Protocol-zero-0 Protocol-zero-0 merged commit 100ad2f into billion-token-one-task:v6-release May 17, 2026
1 check passed
Protocol-zero-0 added a commit that referenced this pull request May 17, 2026
Previously, budget was marked exhausted when usage exactly equaled the
budget cap, which prematurely paused the agent before it could spend the
full budget. Changed to `>` so the agent can use the entire configured
budget before pausing.

Credit: HelloAnner first identified this in PR #2 (closed; superseded by
the telemetry-driven budget rewrite in PR #9). Carrying the fix forward.

Refs #10
Protocol-zero-0 added a commit that referenced this pull request May 17, 2026
Adds a user-facing quickstart covering setup, model switching, budget
control, and dashboard usage. PR #9's README does not cover these flows,
so we are landing this doc on v6-release independently to keep new
contributors onboarded.

Original author: HelloAnner. Original PR: #2 (closed; bug-fix portion
superseded by PR #9's telemetry-driven runtime rewrite, but docs were
not absorbed).

Co-Authored-By: HelloAnner <helloanner@gmail.com>

Refs #2 #10
Protocol-zero-0 added a commit that referenced this pull request May 17, 2026
… from PR #3)

Adds a single-container Linux deployment path so ClawOSS no longer
depends on macOS-only launchd/PlistBuddy assumptions:
- deploy/docker/Dockerfile + docker-compose.yml + entrypoint.sh
- deploy/docker/README.md
- scripts/validate-config.mjs (renders openclaw.json placeholders
  before JSON.parse, so CI does not red on template shape)
- .github/workflows/validate.yml

Not taken from PR #3: scripts/restart.sh Linux fallback. PR #9 already
rewrote restart.sh; the Docker entrypoint is the cleaner cross-platform
path and does not require touching restart.sh.

Refs #3 #10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants