Skip to content

fix(auto-review): 灰区分类器与会话模型解耦,按账号动态选网关模型 - #2753

Closed
BarneyZhaoooo wants to merge 1 commit into
makecindy:mainfrom
BarneyZhaoooo:fix/auto-review-decouple-session-model
Closed

fix(auto-review): 灰区分类器与会话模型解耦,按账号动态选网关模型#2753
BarneyZhaoooo wants to merge 1 commit into
makecindy:mainfrom
BarneyZhaoooo:fix/auto-review-decouple-session-model

Conversation

@BarneyZhaoooo

@BarneyZhaoooo BarneyZhaoooo commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

这次改了什么

摘要

Auto 档灰区动作的审阅器一直跟随当前会话模型。第三方路由(xd / 自定义 provider)下原生 Guardian 不启用,分类 prompt 就发给会话模型自己;DeepSeek 这类强制思考模型吐不出可解析的短 JSON(#2174),灰区动作持续降级成人工确认,Auto 档形同虚设。

本次改为三档分类器,灰区不再跟强制思考的会话模型:

  1. xd 网关按账号下发目录动态选「能关思考、非 DeepSeek」的 gpt 系模型,优先 mini/nano 预算档(分类器是高热路径,省钱);
  2. 无网关模型时回落 ChatGPT 订阅档;
  3. 会话模型兜底(保留 fix(auto-review): 保留宿主审批并用当前模型静默兜底 #1227 能力),但仅当该模型可关思考——DeepSeek 不再当分类器,自定义 provider 的可关思考模型照旧可用。

三档都失败才降级 ask。

变更类型

  • fix 缺陷修复

范围

  • 关联 Issue / 需求:bug: 自动审批在慢速主模型下提示「自动审批不可用」,审查模型无法独立配置 #2174
  • 本 PR 包含:
    1. resolveAutoReviewGatewayModel:从 xd 运行时目录挑能关思考、非 DeepSeek 的 gpt 系模型,优先 mini/nano 预算档。
    2. requestText 三档链:xd 网关动态模型 → ChatGPT 订阅 → 会话模型(仅可关思考);额度/effort 随选中模型算。
    3. 网关内置供应商分支对 codex/ 折扣档改走 /v1/responses(chat-completions 会 400),并带 minimal-body 重试。
  • 明确不包含:
    • 重开第三方原生 Guardian / auto_review_model_override
    • 用户可配置「审查模型」设置项;
    • 改 help/摘要的默认 utility 链;
    • 放宽 parseAutoPermissionReviewDecision 的 1024 字上限。
  • 用户可见变化:xd / 自定义 provider 账号用 DeepSeek 等强制思考模型 + Auto 档时,灰区动作不再无谓弹「自动审批暂时无法给出判断」,改由稳定分类器裁决。
  • 是否存在 breaking change:无。安全边界不变——三档都失败仍降级 ask;模型判定危险仍静默 block;可关思考的自定义 provider 模型分类能力保留。

UI 变化

不涉及。纯 main 进程分类器路由改动,无界面/文案变化。

怎么验证的

自动验证

pnpm test:unit:related
结果:PASS apps/desktop unit(含新增 resolveAutoReviewGatewayModel 4 条、xd Responses 路由 1 条;findCatalogModel 测试保留)

pnpm --filter desktop run --if-present typecheck
结果:通过

pnpm check:dco
结果:DCO check passed: 1 commit signed off

手工验证

实机(macOS dev,global,正式 userData):

  • Codex + taptap(llm-proxy.tapsvc.com) + deepseek-v4-pro + Auto 档,发 curl -I https://example.com:直接执行,HTTP/2 200,无确认卡。
  • 日志 auto permission reviewer completed verdict=allow,分类请求 explicit utility text provider succeeded providerId=xd

未执行的验证

  • 未在 ChatGPT 订阅账号上实测第二档回落路径(本机无订阅)。
  • 未跑 Windows 实机。

风险

风险分类

  • 权限 / 安全 / 用户数据

影响与回滚

  • 影响范围:xd / 自定义 provider 会话的灰区审阅器选型。安全语义不变:分类器失败仍 ask;本地确定性放行/红线不受影响。
  • 回滚 / 降级方式:revert 本 PR。

提交前检查

  • 已 review 完整 diff
  • 每个 commit 都带 DCO 签名(git commit -s,见 DCO
  • UI 改动已在「UI 变化」注明引用的设计规范章节(不涉及 UI 则跳过)
  • 未提交凭证、令牌或授权文件
  • 已补充必要文档
  • 已确认测试结果或说明未执行原因

Closes #2174

第三方路由(xd/自定义 provider)下原生 Guardian 不启用,旧实现把分类
prompt 发给当前会话模型:DeepSeek 等强制思考模型输出过不了短 JSON
解析(makecindy#2174),Auto 档灰区持续降级人工确认。

改为三档分类器,灰区不再跟强制思考的会话模型:
1) xd 网关按账号下发目录动态选「能关思考、非 DeepSeek」的 gpt 系
   模型,优先 mini/nano 预算档(分类器是高热路径,省钱);
2) 无网关模型时回落 ChatGPT 订阅档;
3) 会话模型兜底,保留 makecindy#1227 能力,但仅当该模型可关思考——DeepSeek
   不再当分类器,自定义 provider 的可关思考模型照旧可用。
三档都失败才降级 ask。网关的 codex/ 折扣档改走 Responses 协议
(chat-completions 会 400)。

Closes makecindy#2174

Signed-off-by: han <zhaohan@xd.com>
@BarneyZhaoooo
BarneyZhaoooo force-pushed the fix/auto-review-decouple-session-model branch from 1777dd5 to 82e6a78 Compare August 14, 2026 12:22
@BarneyZhaoooo

Copy link
Copy Markdown
Contributor Author

Superseded by #2799.

#2799(已合入 main)实现了更彻底的方案:固定受控候选链(cindy/auto-review 网关别名 → gpt-5.4-nanogpt-5.6-lunaclaude-haiku-4-5),明确排除 xAI / DeepSeek / Kimi / BYOM 接收 Auto-review payload,并删除了本 PR 依赖的 auto-review-budget.ts。它同时关闭 #2174#2684

本 PR 关闭,不再 rebase。

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.

bug: 自动审批在慢速主模型下提示「自动审批不可用」,审查模型无法独立配置

1 participant