- 只翻注释/文档字符串:`go/scanner` 剥注释后按 token 序列+literal 逐 token 比对,**54/54 文件 SAME**; 改动文件总行数与 HEAD 漂移 = 0(严格 1:1,无合并/拆行) - 裁决编号与 design 节号逐字保留(03.4.1/03.4.2/03.4.3/14.4.1/14.4.5/07.4.2-4、design/04 §3.1/§3.2 等); `chat_template_kwargs` / `enable_thinking` / `reasoning_effort` / `thinking:{type}` 字段名与形状说明未动 - 存疑译法(已登记):`persona` 在叙事语境用「角色」、标识符语境保留 `persona`(仓库既有模块本身混用); `rung`→「级」;`provider` 存在「提供商/提供者」两种落笔(可按需一键统一) - 复核:build/vet 绿 + 两包测试绿;gofmt 干净;残留英文注释 0 条 - 既有存量(未修,只报告):`model/anthropic_test.go` 612 行 >500;`applyAnthropicEvent` 115 行 >80
- 新增 reasoning_shape.go:**每个 provider 形状一个 resolver,只发自己形状的字段** · deepseek:thinking{type} + reasoning_effort(依据 DevDocs/reference/deepseek 官方本地副本) · vllm:chat_template_kwargs.enable_thinking · dashscope:顶层 enable_thinking(**只允许显式声明**) · openai:仅 reasoning_effort · anthropic:自己的 thinking{budget_tokens}(未改) · 未知 kind → WARN 且一个字段都不发(不许静默失效) - 形状载体:models.json 组级 `reasoning.kind`(可热更新,未声明则不写该键)+ env `LLM_REASONING_KIND` - 红线:`effort:none` 在只有布尔开关的形状上翻成**显式关思考**,绝不降成任何强度档 - 03.4.1 余项:`Request.PersonaID` + `RuntimeLLM.ForPersona(pid)` 视图; 每 persona 协议一条链并消费 `RouteProviderForPersona`;`agent/request.go` 非流式路径同一钩子 - **生产装配(主会话补)**:默认 agent 与 personaAgentPool 都改用 `ForPersona(pid)` 视图—— 否则角色级模型/提供商路由在生产里永不被选中(形同虚设) - 复核:build/vet 绿 + model/agent/config/cmd 包测试绿;5 条变异反证先红后还原 (其中一条「红但没钉住」已改用例:通道读取加 2s 超时,避免整包 panic 掩盖信号) - 未落:DashScope 的 auto 推断(缺官方依据,只允许显式声明);Qwen `/think` 前导消息 (design/01 §2.1 与 design/11 §3 口径冲突,停手报告)