From d69ca240858394583f1ab8fc4bfea131d0bd8930 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Sat, 5 Sep 2026 21:51:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(platform):=20=E9=85=8D=E7=BD=AE=E9=93=BE?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E5=8E=9F=E5=88=99(=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=AE=9A)=E2=80=94=E2=80=94=E5=8E=BB=E6=8E=89apply/test?= =?UTF-8?q?=E4=B8=89=E5=B7=A5=E5=85=B7requires=5Fconfirmation=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E9=97=A8,=E6=8F=90=E7=A4=BA=E8=AF=8D=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E7=BC=BA=E4=BF=A1=E6=81=AF=E6=89=8D=E9=97=AE=E5=90=A6?= =?UTF-8?q?=E5=88=99=E4=B8=80=E5=8F=A3=E6=B0=94=E5=81=9A=E5=AE=8C=E7=BB=99?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C,=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=8F=91=E7=8E=B0=E9=97=AE=E9=A2=98=E6=8C=89=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=8D=E8=B7=91(=E5=85=A8=E9=93=BE?= =?UTF-8?q?=E5=B9=82=E7=AD=89)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pipeline_platform/platform_ability.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pipeline_platform/platform_ability.py b/pipeline_platform/platform_ability.py index a2fdf0e..9074faa 100644 --- a/pipeline_platform/platform_ability.py +++ b/pipeline_platform/platform_ability.py @@ -1170,7 +1170,8 @@ PLATFORM_TOOLS = [ "spec": "(仅无锚定时的兜底)extract 返回的 JSON 规格原文", }, category="platform", - requires_confirmation=True, + # 交互原则(2026-09-05 用户定):配置链工具不设确认门——缺信息才问, + # 否则一口气做完给测试结果,用户发现问题再按说明修改。 ), ToolDefinition( name="apply_model_pricing", @@ -1180,7 +1181,6 @@ PLATFORM_TOOLS = [ "spec": "(仅无锚定时的兜底)extract 返回的 JSON 规格原文", }, category="platform", - requires_confirmation=True, ), ToolDefinition( name="test_model_call", @@ -1192,7 +1192,6 @@ PLATFORM_TOOLS = [ "timeout": "等待秒数(默认600,上限900)", }, category="platform", - requires_confirmation=True, ), ToolDefinition( name="check_model_accounting", @@ -1214,12 +1213,13 @@ PLATFORM_TOOLS = [ PLATFORM_PROMPT = """ 你是产线平台的内部运维 agent,服务对象是 owner 组织的角色。 -## 模型自动配置全链工作流(用户给文档 URL 要求配置模型时,按序独立完成) +## 模型自动配置全链工作流(用户给文档 URL 要求配置模型时,一口气独立完成) 1. **先 `load_skill` 加载 `model-auto-config`**(含媒体转换铁律/能力分类先行/定价新模式),严格执行 2. `fetch_model_doc` 抓取官方文档(返回文本末尾带 [出处URL] 行) 3. `extract_llm_api_spec` 通读文档提取规格——**成功后规格自动锚定到本会话缓存** (会话级隔离),返回里有 __anchored__ 提示 -4. 把提取摘要给用户确认(端点/能力/定价原文/出处),确认后: +4. **不要停下来找用户确认**——直接进入下一步落库。只有文档里确实缺失、 + 且无法从上下文合理推断的信息(如 api_key、能力分类需新增)才向用户提问。 5. `apply_llm_config` 传 **{"use_last_extract": true}**(用户要求改名等只加 overrides 白名单覆盖项,如 {"overrides": {"vendor_name": "阿里云百炼"}})。 **绝对禁止把规格 JSON 复制/转述进 spec 参数——转述必编造结构(历史教训: @@ -1231,7 +1231,14 @@ PLATFORM_PROMPT = """ - accounted 且 amount_match=true → 全链通过,汇报金额 - created → 等 60~120 秒再查一次(出账循环 60 秒一轮) - failed → 按 reason/hint 处置(未映射产品→告知用户在产品管理导入产线模型) -9. 汇报:配置/定价/测试/记账四段结果 + 出处 URL + 遗留事项(如模板需人工核对项) +9. 汇报:配置/定价/测试/记账四段结果 + 出处 URL + 遗留事项(如模板需人工核对项)。 + 用户发现问题后按其说明修改,再重新走对应环节(全链幂等,重跑安全)。 + +## 交互原则(用户定,2026-09-05) +- **只有缺失信息需要用户补充时才交互**(api_key、业务参数、需新增能力分类等) +- 否则从抓取到记账检查**一口气做完**,最后给出完整测试结果 +- **不要每步找用户确认**——落库/定价/测试都直接执行(全部幂等,改起来安全) +- 用户发现问题 → 按用户说明修改重跑,这才是正确的纠错循环 ## 工具报错自救规则 - 报「spec 结构不符/缺少 xxx」→ **不要改写结构重试**,改用 use_last_extract=true;