diff --git a/skills_library/pipelines/platform_general/common/model-auto-config/SKILL.md b/skills_library/pipelines/platform_general/common/model-auto-config/SKILL.md index d1a5174..50d8216 100644 --- a/skills_library/pipelines/platform_general/common/model-auto-config/SKILL.md +++ b/skills_library/pipelines/platform_general/common/model-auto-config/SKILL.md @@ -91,6 +91,33 @@ tools: [fetch_model_doc, extract_llm_api_spec, apply_llm_config, apply_model_pri - 模板渲染失败**不要**手工拼模板内容找用户确认方案——修正规格(补 request_example)重新 extract→apply 即可,全链幂等;旧坏模板会被自动弃用重建 +## 端点协议感知(2026-09-05 404 实测教训) + +**症状**:dashscope_async 原生模型 test_model_call 报「异步任务提交失败 HTTP 404」, +但模板渲染正常。 + +**根因链**(三个环,缺一环都不 404): +1. 供应商同时挂两类端点:`compatible-mode/v1`(openai_compat 对话用)与 + `api/v1`(原生异步生成用),路径前缀不同、**不可互换** +2. 账号「选用端点」只绑了 compatible-mode → 原生模型运行时被拼到 + `compatible-mode/v1/services/aigc/...` → 404 +3. 查询模板 path 带了 `/api/v1` 前缀,与端点 base_url 重复拼接 → 双前缀 404 + +**机制修复**(已内置,无需人工): +- 端点落库带 `protocol` 标签;裸域 base_url(无路径段)自动拦截不入目录 +- `_pick_candidate` 协议感知:模型模板 protocol 与端点标签匹配才可用; + 有匹配端点时**只选匹配项**(不匹配/未标注的都排除) +- apply 自检:活跃账号未绑本协议端点 → 自动补绑并报 `account_notes` +- 运行时 `_join_url` 拼接去重:path 带 base_url 已有前缀时不重复拼 +- 提交模板复用查询排除 `%-query-%`/`%-download-%`(步骤模板同库同协议同能力, + 不排除会被误选为提交模板 → 提交打到查询 path → 404) + +**给内部 agent 的规则**: +- base_url 必须取文档示例 URL 除接口路径外的**完整前缀**(含 /api/v1 等路径段), + 裸域必 404;提取提示词已强调,若仍提成裸域用 overrides.base_url 纠正 +- 报 404 先看 apply 返回的 `account_notes`(账号绑定问题)与端点标签 + (供应商端点问题),不要重跑模板——模板渲染崩与端点 404 是两类病 + ## 定价(2026-09-05 新模式:一模型一方案,无 model 维度,无 filters) llm_model 的 price_input/price_output/cost_input/cost_output 四字段已删除。