Skip to content

Commit 2191ca8

Browse files
committed
docs: B1.2 实测取消(reasoning 本已透传)+ 补 reasoning 上游事实
原计划要给「强制推理模型族」注入 thinking/reasoning_effort 并回填历史 reasoning_content。本机有活网关 + 真实凭证 + 71 份真实请求 dump,实测后 发现三条前提全部不成立,故跳过 B1.2、不改任何代码;只把实测结论落文档。 实测证据: - 客户端已自带 reasoning_effort(69/71 dump,值仅 low/medium;非推理模型 如 hy3 不带)。网关原样透传,CB 与 TRAE 均 200 正常出流,TRAE 侧 reasoning_tokens 有值(qwen-3.7-plus 单请求 6~114)。无「档位映射」需求。 - 客户端已回传历史 reasoning_content(51/71,含与 tool_calls 同存的消息), 网关未剥离、上游接受:CB deepseek-v4.1-flash 4260 次请求 99.6% 成功。 无「客户端丢弃需回填」场景。 - 原计划默认清单(deepseek-v4-pro/glm-5.1 等)与实际在用模型对不上, 且 glm-5.1 在 MODEL_BLOCKLIST 中,硬编码白名单在 CB 侧空转。 - 「客户端丢弃时回填」必须服务端存对话内容,与 §8 脱敏纪律冲突,不做。 - 参考实现 IceeAn/codebuddy2api 走相反取向(白名单模型强制 reasoning_effort=max 覆盖客户端),属单来源且改写客户端意图,不采纳。 文档: - PROPOSAL §3.1/§3.2:补 reasoning 字段透传事实;CB reasoning_tokens 恒 0 的上游口径差异;TRAE 接受 reasoning_effort。 - TECHNICAL §9:记录取消理由与参考实现差异。 - 计划文档 B1.2 节改为「实测取消」并保留原文备查;依赖与风险表同步 (B2.1 不依赖 B1.2)。 质量门槛:ruff 通过;1051 测试通过,行/分支 100% 覆盖。
1 parent 15e7a47 commit 2191ca8

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

‎PROPOSAL.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@
7575
- **活跃度的驱动来源(实测,勿凭单次实验下结论)**:活动类操作(领取成长中心奖励等)**计入**——两天无桌面端使用、仅差别在有无领取动作,`score` 就从 0 变 5;而纯 `/v2/chat/completions` 对话**不计入**(3 次完整对话后 `today.score` 与 `updated_at` 均不动)。连登天数含 1 天容忍窗口(H5 规则原文:按「连续登录且使用的天数」计,每月清零)。热力墙分档 = score 0 / 1-10 / 11-30 / 31-60 / >60,每日 02:00 批算。**与积分无关,不参与调度决策;不实现伪造客户端行为**(H5 条款明禁模拟器/脚本篡改数据,处罚为取消资格并追回已发礼品)
7676
- **凭证身份可能为空**:OAuth 登录路径下上游账号接口未回填 `account_uid`/`user_id`(实测发生),签到/成长中心的同账号隔离必须回落到 `credential_id`,否则第二个账号会被静默跳过
7777
- 请求头需 `X-Domain`、`X-User-Id`、`X-Enterprise-Id`、`X-Department-Info`(部门名须 UTF-8 百分号编码)
78+
- **reasoning 字段当前直接透传,不做注入也不剥离**(实测 71 份真实请求 dump):客户端自己会带 `reasoning_effort`(69/71,只有 `low`/`medium` 两档,非推理模型如 `hy3` 不带),也会在历史 assistant 消息里回传 `reasoning_content`(51/71,含带 `tool_calls` 的消息),上游原样接受(`deepseek-v4.1-flash` 4260 次请求 99.6% 成功)。因此既不需要「effort 档位映射」,也不存在「客户端丢弃 reasoning_content」这一前提;`enable_thinking` 只在客户端未给时补 `true`
79+
- **CB 的 usage 不回 `reasoning_tokens`**(实测恒为 0:`deepseek-v4.1-flash` 289 万 output tokens / reasoning_tokens 全 0),TRAE 侧正常回(`qwen-3.7-plus` 单请求 6~114)。统计页 CB 的思考 token 恒显示 0 属上游口径差异,不是采集丢失
7880

7981
### 3.2 TRAE SOLO(字节)
8082

@@ -91,6 +93,7 @@
9193
- SSE 事件序列:`metadata` → `timing_cost` → `output`×N → `extra_info` → `token_usage` → `done`
9294
- `token_usage` 含缓存字段 `cache_read_input_tokens` / `cache_creation_input_tokens`(未命中为 0,非缺失),映射为统计的 `cached_tokens`;**无 per-request credit**
9395
- 错误码 `1005` = 权益不足;仅流式,非流式需聚合
96+
- **接受客户端传来的 `reasoning_effort`**(实测透传 `low`/`medium` 均 200 且正常出流,`reasoning_tokens` 有值):不认 `thinking` 对象,也无需服务端补注入;`developer` 角色上游不认(静默空流),已归一为 `system`
9497

9598
### 3.3 冲突与陷阱
9699

‎TECHNICAL.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,14 @@ fixture 断言两个方向:**解析正确**(样本 → 期望 Event)与**
527527
- **手写 SQL 而非 ORM**:5 张表规模下 ORM 收益为负
528528
- **polling OAuth 不转回调**(Q17=C):上游协议决定;TRAE 回调走主端口 + PUBLIC_BASE_URL
529529
- **v1 无 Anthropic**(Q8=A):Event 层已预留,v1.1 只加 `compat/anthropic/` 适配器
530+
- **不做 reasoning 注入 / effort 档位映射**(原 B1.2,实测后取消):原计划打算对「强制推理模型族」注入
531+
`thinking` + `reasoning_effort` 并回填历史 `reasoning_content`,实测前提不成立——
532+
(1)客户端已自带 `reasoning_effort`(只有 `low`/`medium`)且上游直接接受,不存在「未做档位映射」的问题;
533+
(2)客户端已回传历史 `reasoning_content` 且上游接受,不存在「客户端丢弃」;
534+
(3)原计划的默认模型清单(`deepseek-v4-pro`/`glm-5.1` 等)与实际在用的模型命名无关,且 `glm-5.1` 在本项目
535+
`MODEL_BLOCKLIST` 里,硬编码白名单会空转;
536+
(4)真要做「客户端丢弃时回填」必须服务端存对话内容,与 §8 脱敏纪律(不存提示词/回答/会话内容)冲突。
537+
参考实现 IceeAn/codebuddy2api 走的是相反取向(对白名单模型强制 `reasoning_effort=max` 覆盖客户端),属单来源且会改写客户端意图,不采纳
530538
- **统计一律以 `usage_hourly` 为准**:`overview` / `by_provider` / `timeline` /
531539
`model-timeline` 均读小时汇总,只有 `events`(逐请求明细)读 `usage_events`。
532540
统一口径是为了让选「全部」时总览与图表同值(明细只留 90 天,汇总永久)。

0 commit comments

Comments
 (0)