6c09cdecbd45531f9026e6e8be05f810d14346bf
tools/publish_profile_tool_whitelist.py:把 query_customer_profile 加进 customer_service:faq,供 NL_develop 合并后在本环境补发配置。 关键设计都来自这轮评审核实到的事实: 1. 继承走 ConfigReleaseService.effective_snapshot(),一次拿全三张受管表 (platform_config_item / prompt_template_version / model_routing_rule)。 既有的两个 agent_tools 发布脚本都绕开它、自己写 SQL 只查第一张 —— 用它们发版 会把 201 里那条客服闲聊提示词一起清掉,而 Agent 侧有兜底、功能看着正常、没有告警 (这个事故在本项目真实发生过一次)。 2. 同 key 覆盖:继承项里的 customer_service:faq 必须被本次新值覆盖,否则旧值 ["search_knowledge"] 会被 admin 端校验拦下、整次发布失败。 3. 提示词搬运重分配 version(唯一键含 version),并按 PromptPayload 的 9 个字段挑字段、 归一化 input_schema/output_schema —— 漏带就是静默丢失。 4. 前置防呆:admin 端校验「配置 ⊆ 代码 allowed_tools」(admin_service.py:219-220), 合并前跑必然 422,而报错只有"配置超出 Agent 工具上限"。脚本先查代码上限: dry-run 给警告后继续预览,正式跑直接中止。 5. JSON 列归一化:SELECT * 读出来的 JSON 列可能是字符串,不解析会静默走进 "生效版本里没有该 key"的分支(本脚本第一版就是这么错的,诊断打印才定位到)。 实测:--dry-run 打印 9 条配置项 + 1 条提示词(v2→v3 重分配)与唯一变化; 正式跑因代码尚未合并而中止,未产生任何写入。
Description
番茄炒蛋组
18 MiB
Languages
Python
99.9%