Skip to content

fix: 修复 Anthropic 思考档位与旧预算配置兼容 - #173

Merged
239573049 merged 1 commit into
AIDotNet:mainfrom
yi649815059:main
Oct 9, 2026
Merged

239573049 merged 1 commit into
AIDotNet:mainfrom
yi649815059:main

Conversation

@yi649815059

Copy link
Copy Markdown
Contributor

问题背景

已有模型绑定保存为 Token Budget 时,adaptive-only Claude 仍可能发出 thinking.type=enabled / budget_tokens,导致上游拒绝请求。旧预算反推 effort 还会让 Auto 变成 Max;手动档位在预算被 maxOutputTokens 截断后也可能丢失原始语义。

修复内容

  • 更新 Anthropic 目录的 thinking/effort 能力,为可识别的新代 Claude 提供保守兜底,而非只针对 Opus 5.5 单一型号。未知未来型号的兜底是客户端兼容策略,不保证未来上游能力。
  • 对标准 Anthropic 协议下需要 adaptive 的旧 Token Budget 绑定,在读取/发送时投影为 thinking: { type: 'adaptive' } 与 output_config.effort,不强制改写用户保存的自定义预算配置。
  • 路由传递原始 thinkingLevel:手动 low/medium/high/higher/max 按合法能力转换,higher 对应 xhigh;输出预算截断不再覆盖原始选择。
  • Auto 使用有效配置的默认 effort,不从历史预算反推 Max。本 PR 仍明确发送默认 effort,未改为 Auto 省略 effort。
  • 共享 UI、辅助请求、定时任务与发送层的有效档位投影;按模型能力限制 Off,不支持时拒绝显式关闭,不静默恢复默认。
  • 增加只读 runtimeProtocol 表达 provider 与 protocol override 的有效协议;保存前剥离,不落库、不参与配置同步。
  • 保留仍支持 manual 的模型(包括显式 manual 的 Claude 4.6)、非 Anthropic 协议、Ollama standardWire、自定义非标准参数路径及显式禁用 adaptive 的配置边界。
  • 补充模型绑定、目录、运行时、适配器、路由、IPC、配置同步及定时任务回归测试。

验证

基于同步后的 v2.6.0(936c5f9):

  • 13 个定向测试文件、489 项测试全部通过。
  • npm run build 通过,包含 node/web/plugins 类型检查、plugin-runtime 检查及 main/preload/renderer 构建。
  • git diff --check 通过。

已知验证限制

  • 此前全仓 npm run test 未通过:20 个失败文件、46 项失败测试、7206 项通过、86 项跳过,另有 2 条未处理错误。诊断涉及 Windows/POSIX 路径、权限、命令、zip 缺失及 worker/超时问题;未扩大到无关修复。同步 v2.6.0 后未重跑完整套件,不宣称全仓全绿。
  • npm ci --no-audit --no-fund 在 postinstall 的 node-pty 原生重编译阶段失败(MSB8040:缺少 Spectre 缓解库)。后续定向测试和构建通过,但桌面启动与原生终端尚未验证。
  • 未进行真实 Anthropic/Sub2API 在线请求验证或安装包替换;Sub2API 的强度列不作为 manual thinking 是否有效的判据。

参考

@239573049
239573049 merged commit b494998 into AIDotNet:main Oct 9, 2026
1 check passed
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