8283f6ab6909b21963ba2742bf709bac1437af29
**背景**:提示词配过(挂在 release 174),但 174 已被取代,而 load_active_prompt 是先定位 active 版本、再按 release_id 查的 —— 于是读不到,Agent 回落到代码默认值。功能看着正常 (_chitchat_prompt 有逐字段兜底),所以一直没人发现,也没有任何告警。 发布脚本原先有两个坑,这次一并修掉: 1. **version 写死为 1**。prompt_template_version 的唯一键是 (prompt_code, version), 客服那条已经占了 v1,照搬旧行会主键冲突。改为取现有最大值 +1(本次自动分到 v2)。 2. **继承只读 platform_config_item**。改用 ConfigReleaseService.effective_snapshot(), 它覆盖全部三张受管表;并且做**字段名映射**(库的 config_key → API 的 item_key、 value_json 归一化)—— 快照行是库的形状,直接 POST 会 422。 实测: - 发布走路径二(路径一如预期被状态机拒:409 RUN_NOT_CANCELLABLE「只能修改草稿发布版本」) - 新版本 201 继承 9 条配置项、一条没丢;提示词 v2 随之生效 - load_active_prompt 现在返回 release_id=201 / version=2(此前为 None) - 闲聊链路:status=succeeded、intent=chitchat,回答「您好,我是南方科技智能客服, 想了解基金、理财还是账户服务?」—— 简洁、自然引导到业务,符合提示词要求 提示词正文与代码默认值**刻意保持一致**:发布前后行为不变,变的只是"能不能改" (改话术从此要经审核并留痕)。Agent 侧仍保留代码默认值作为兜底。 ruff / mypy(136 文件) / 612 unit+contract / 29 integration 全绿。
Description
番茄炒蛋组
18 MiB
Languages
Python
99.9%