# I-01 · 模型能力自动探测 | 字段 | 值 | |---|---| | 项目 | DSH · `Desktop/dsh`(tools 目录) | | 优先级 | P1 · M3 | | 建议模型 | deepseek-v4.1-flash(主)/ glm-5.3-flash(复核) | | 依赖 | 无 | | 预估 | 1.5 天 | ## 一、背景(为什么做) 2026-09-06 的模型能力探测全是**手动**跑的(`DSH模型能力测试报告.md`);09-08 插件覆盖式改配置把实测结论搞坏过一次。模型池 10 个分组、19+ 模型,能力声明会漂移——需要一个**每晚自动探测、只报告不写配置**的巡检工具,让能力画像保持新鲜。 ## 二、目标(交付物) 1. 探测脚本(建议 `tools/probe_models.py`,Python 单文件 + 标准库/httpx): - 读 `~/.dsh/settings.yaml` 枚举全部分组与模型 - 对每个模型跑三组探测: - **基线**:一次最小对话请求(200 + 非空回复) - **思考**:带推理参数请求(按模型的 thinkingFormat/reasoningEfforts 配置发;验证 reasoning 字段返回) - **视觉**:发内置 64px 纯色 PNG(内嵌 base64,不依赖外部文件),问主色 - 每模型结果:`pass/fail + 耗时 + 错误码/错误信息摘要` - **失败隔离**:单模型失败不中断全量(超时 30s/请求) 2. 产出: - `tools/probe-reports/probe-YYYY-MM-DD.json`(机读) - 同名 `.md`(人读:表格 + 变动对比——与上次报告 diff,标出"能力变化"的模型) 3. **铁律实现**:脚本**只读** settings.yaml(打开方式只读,代码层面无写入路径);任何写入需求 → 报告里建议,由人执行。 4. 运行方式:手动一条命令 + Windows 计划任务示例(每晚)+(可选)Gitea CI 手动触发。告警:发现"能力丢失/新增失败"时,报告首行标红警告。 ## 三、验收标准 - [ ] 一条命令跑完全部 provider(实测全量跑通并产出报告) - [ ] 报告与 09-06 手动结论可对照(glm/qwen 的思考+视觉结论一致) - [ ] `grep` 脚本源码确认无 settings.yaml 写入路径 - [ ] 单模型失败(如断网模型)不中断全量,明确标记 - [ ] 视觉探测用内嵌图片(无外部文件依赖) - [ ] 计划任务示例可用(文档含命令) ## 四、验收命令(参考) ```bash cd Desktop/dsh && python tools/probe_models.py --all ls tools/probe-reports/ # 产出当日 json + md python tools/probe_models.py --all --compare # 与上次对比模式 ``` ## 五、边界(不许做) - **绝不写任何配置文件**(只报告) - 不打印 API key / token 到报告 - 不做自动修复(发现问题 → 人决定) ## 六、交接 写 `PROGRESS_I-01.md`(含全量跑通的报告样例、对照结论、无写入的代码证据)。