mirror of
https://git.openapi.site/https://github.com/desirecore/config-center.git
synced 2026-09-05 17:33:40 +08:00
a752fddd0b8afe4582504380870f0a88a825f4ef
Opus 5 是 Anthropic Opus 系列当前旗舰(1M 上下文 / 128K 输出 / $5·$25 per MTok, 与 Opus 4.8 同价),此前 config-center 完全缺失,用户在模型选择器里看不到它。 变更: - compute/providers/anthropic.json:新增 claude-opus-5(排在 fable-5 之后、 opus-4-8 之前);serverSideWebSearch.fallbackPriority 顺延重排 - compute/providers/anthropic-claude.json:Claude 订阅 provider 同步新增 claude-opus-5 - compute/model-specs/anthropic.json:补 claude-opus-5 与 claude-sonnet-5 规格 (sonnet-5 此前只有 provider 条目、没有规格) - 补 extra.reasoning.supportedEfforts:客户端 parseReasoningEffortConfig 只读 extra.reasoning,原有的顶层 extra.defaultEffort 不被消费,导致 Claude 模型的 effort 档位在 UI 上始终不可选。按各模型实际支持声明档位(sonnet-4-6 无 xhigh) - __tests__/validate.test.mjs:WebSearch 允许名单登记 claude-opus-5 - manifest.json:presetDataVersion 84 → 85
DesireCore Config Center
DesireCore 官方配置中心:托管 Provider / Model / Pricing / ServiceMap 数据,由
desirecore 客户端通过 npm run sync-config-center
脚本和运行时后台 fetch 拉取。
数据契约(Frozen Schema)
schemas/ 目录下的 JSON Schema 是已发布客户端的兼容契约。所有写入此仓库的数据必须通过
schemas/ 校验,否则会破坏老版本客户端。
历史背景
PR #1 曾把 reasoning 模型的 defaultTemperature / defaultTopP 写为 null,
导致已发布客户端(schema 严格 number)readComputeConfig 校验失败 → 同步路径死锁
→ 远程数据 revert 也救不了已污染的本地用户。详见 desirecore PR #471。
为防止此类事故重演,本仓库引入 frozen schema + CI 自动校验。
校验规则
| Schema | 适用文件 | 关键约束 |
|---|---|---|
provider.schema.json |
compute/providers/*.json、compute/coding-plans/*.json |
defaultTemperature/defaultTopP 必须是 number,禁止 null/string;additionalProperties: false |
manifest.schema.json |
manifest.json |
presetDataVersion 必须是递增整数 |
service-map.schema.json |
compute/service-map.json |
每条映射须含 modelName + providerId |
providers-index.schema.json |
两个 _index.json |
order 数组无重复 |
pricing.schema.json |
compute/pricing.json |
markupRatio / usdToCny 为正数 |
关键规则:reasoning 模型的温度参数
禁止:"defaultTemperature": null、"defaultTopP": null
正确做法:完全省略字段。
// ❌ 错误:会破坏 fix #471 之前的客户端
{ "modelName": "deepseek-reasoner", "defaultTemperature": null }
// ✅ 正确:reasoning 模型省略温度字段
{ "modelName": "deepseek-reasoner", "displayName": "DeepSeek Reasoner", ... }
关键规则:计价币种按 Provider 归属决定
- 国内 Provider 必须使用
priceCurrency: "CNY",并写入国内平台人民币价格。 - 国外 Provider 必须使用
priceCurrency: "USD",并写入美元价格。 - Provider 归属与其托管模型的产地冲突时,以 Provider 为准。例如,OpenRouter 托管的 Qwen 模型仍按 USD 计价;国内 Provider 托管的国外模型仍按 CNY 计价。
- 新增 Provider 时必须同步更新全量币种归属测试,避免未分类数据进入预置。
关键规则:新增字段需先升级老客户端 schema
provider 和 model 顶层均启用 additionalProperties: false。如需新增字段:
- 先在 desirecore 主仓
lib/schemas/agent-service/compute.ts升级 schema 接受新字段 - 发布新版本客户端
- 等大部分用户升级
- 再更新本仓库的 frozen schema 和数据
否则老客户端会因未知字段校验失败死锁。
本地校验
npm install
npm run validate # 校验所有数据文件
npm test # 跑单元测试(含反例测试)
CI(GitHub Actions)会在每个 PR 自动运行 validate 和 test,不通过禁止合并。
数据修改流程
- 编辑
compute/providers/<name>.json、compute/coding-plans/<name>.json或compute/service-map.json - 编辑
compute/providers/_index.json或coding-plans/_index.json(新增/删除 provider 时) - 必须递增
manifest.json#presetDataVersion,并更新updatedAt npm run validate本地确认通过- 提 PR,等 CI 校验通过
- 合并到 main 后客户端会在下次后台 fetch(最长 30 分钟)拾取更新
客户端拉取机制
详见 desirecore CLAUDE.md "Config Center" 章节。
- 构建期同步:
npm run sync-config-center把数据复制到 desirecore 主仓lib/agent-service/defaults/ - 运行时同步:客户端启动后后台 git fetch 本仓库,每 30 分钟检查一次远程更新
- 版本比对:
presetDataVersion(递增整数)+ digest(SHA-256)双重校验
Description
Languages
JavaScript
97.5%
Shell
2.5%