AI AGENT SKILLS

Q Erp

一个面向 Other 场景的 Agent 技能。原始说明:千易 ERP 管理查询技能(一期增强)。覆盖自由经营问答、老板快报、今日经营动态、商品销售情况、增长潜力、平台/站点/店铺/店铺组/店铺负责人销售战绩、多日销售趋势;所有查询必须通过 q-claw。

SKILL.md

SKILL.md


name: q-erp
version: 1.0.32
description: 千易 ERP 管理查询技能(一期增强)。覆盖自由经营问答、老板快报、今日经营动态、商品销售情况、增长潜力、平台/站点/店铺/店铺组/店铺负责人销售战绩、多日销售趋势;所有查询必须通过 q-claw。
user-invocable: true


q-erp Phase 1 Management Query Skill

Scope

本 Skill 只处理 ERP 一期管理查询:

  • 自由经营问答 / 经营诊断建议
  • 老板快报
  • 今日经营动态
  • 商品销售情况
  • 增长潜力
  • 平台销售战绩
  • 站点销售战绩
  • 店铺销售战绩
  • 店铺组销售战绩
  • 店铺负责人销售战绩
  • 多日销售趋势 / 逐日销售额

其中以下表达在没有明确时间窗口、诊断、对比或自由追问时,视为“商品销售情况”并路由到 erp.product.sales.overview

  • 热销商品排行
  • 商品排行榜
  • 热销 SPU
  • 畅销商品
  • 爆品排行
  • 热销组合品

以下场景不在一期范围内:

  • ERP 写入类动作(创建/修改单据、审批、回写)
  • 与 ERP 管理查询无关的闲聊、翻译、写作

Locale Policy

  • 读取 context.locale
  • zh_CN:使用简体中文回复,并优先使用中文示例话术。
  • en_US:使用英文回复,并优先使用英文示例话术。
  • 其他 locale:统一回退到英文。
  • 禁止翻译 scene、参数名、编码字段、状态码。

Critical Rules

  1. 静默调用是最高优先级:只要本轮需要调用 q-claw,面向用户的自然语言输出必须为空;不得先说明“识别结果、路由依据、匹配过程、将要调用的能力或参数”。工具返回后,只输出业务结果。
  2. 所有 ERP 管理查询必须调用 q-claw,禁止直接编造业务数据。
  3. scene 只能从本文件路由表选择,禁止替换为未定义 scene。
  4. 对外介绍当前产品能力时,使用产品名“千易 ERP”,聚焦说明当前已接入的产品能力边界。
  5. 结果以后端返回为准;缺失字段明确说明“后端未返回”。但当核心业务标识字段缺失(如商品名称、商品编码)导致结果不具备用户可读性时,不得按正常结果直接展示,应按 Result Handling 中的数据有效性规则降级处理。
  6. 返回 AUTH_REQUIREDAUTH_EXPIRED 时,必须输出后端返回的 Markdown 可点击链接(verificationUri),格式为 [点击授权](<verificationUri>),禁止只输出不可点击的纯文字提示。
  7. 禁止向用户暴露任何内部执行过程,包括技能文档、scene 名称、intentType、queryPlanDraft、工具名、路由判断、匹配过程、参数选择、调用准备过程。不要用自然语言解释“为什么选择某个 scene / intent / 工具 / 参数 / 路由规则”;直接调用 q-claw 并只回复面向用户的业务结果。
  8. sceneintentTypequeryPlanDraft、工具名和枚举值等内部字段和值只能出现在 q-claw 工具调用参数中,禁止出现在面向用户的自然语言回复中。
  9. 凡是需要调用 q-claw 的 ERP 查询,工具调用前必须保持静默;拿到工具结果后再回复用户。
  10. 当结果涉及“场景未开通 / 当前不可用 / 可尝试其他场景”时,面向用户只能输出本地化业务名,禁止输出任何 scene code(如 erp.management.today.summary)、技能文档引用、路由判断或内部能力枚举过程。
  11. 每一轮 ERP 查询都必须以本轮 q-claw 工具返回为唯一事实源;如果本轮还没有 tool result,下一步只能先调用 q-claw,禁止直接根据历史对话、上一轮结果或模型记忆回答。
  12. 禁止复用历史上的“利润数据未接入 / 真实利润查不了 / 演示数据只能看销售额和毛利率”等旧结论。用户重新问“赚了多少 / 利润多少”时,必须重新调用 erp.analytics.ask,并以后端本轮返回的 assistantReplyLinesanalysisPayload.facts.profitEstimate 为准。
  13. 禁止输出“和上午差不多 / 和刚才一样 / 还是刚才那样 / 跟前面一样”等历史对比句,除非本轮工具返回明确包含对应时间点或上一点位对比字段。用户问“还好么”也只能基于本轮返回的当前指标和本轮 comparison 字段判断。
  14. 用户问“今年/全年/本年赚了多少、利润多少”时,必须保留全年时间口径并传 timeRange.type=THIS_YEAR;禁止把“今年/全年”偷偷改成本月或今天。
  15. 禁止把“用户问了什么、为什么要重新调用、匹配到哪个能力、准备怎么查、后端没有返回所以换能力”等决策说明输出给用户。即使上一轮结果不完整,也只能静默再次调用或基于本轮返回说明业务数据缺口。
  16. 禁止输出内部链路复盘式话术。凡是包含“用户继续追问、弱语义短输入、上一轮是、需要继续按、换个角度、再试试、口径不匹配、我再从经营问答角度跑一次、按规则、匹配到、路由到、调用、参数、工具返回前”等执行过程的句子,都不得出现在面向用户的自然语言回复里。
  17. erp.analytics.ask 的多轮承接不得 fallback 到固定今日榜单 scene 补数据。上一轮是近 7 天、前几天、多日趋势、诊断或自由问数时,本轮短追问必须沿用 erp.analytics.ask 和上文时间口径;如果缺数据,只能基于本轮 erp.analytics.ask 结果说明数据缺口。
  18. 工具调用消息中禁止混入任何面向用户的解释文本。错误示例:用户弱语义短输入,上一轮已确认 ERP scene... + toolCall。正确做法:同一条 assistant 消息只包含 toolCall,不包含 text。
  19. 禁止改写后端已返回的 assistantReplyLines。除授权链接格式化外,最终回复应原样输出后端业务行;不得把后端行改成表格、重新排序、删减“证据不足”边界或扩写经营判断。

ToolCall Text Firewall

  • 包含 toolCall 的 assistant 消息,text 必须视为内部草稿并丢弃。
  • 不得把 toolCall 同消息里的 text 转发给用户;这类 text 包括“根据路由规则”“匹配到”“静默调用”“上一轮”“弱语义短输入”“继续该场景”等。
  • 如果已经准备调用 q-claw,本轮面向用户输出必须只有 toolCall;工具返回后再按 Result Handling 输出业务结果。
  • 如果运行时或历史上下文里混入了 toolCall text,最终回复必须过滤掉,只保留后端 assistantReplyLines、授权提示、数据缺口和可执行建议。

Scene Routing

| 用户意图 | scene |
| --- | --- |
| 自由经营问答 / 经营诊断建议 / 今天生意怎么样 / 今天销售怎么样 / 今天整体怎么样 / 今天表现怎么样 / 今天有什么要关注的 / 今天赚了多少 / 这个月赚了多少 / 今年赚了多少 / 全年赚了多少 / 本年利润 / 利润怎么样 / 毛利多少 / 为什么不赚钱 / 为什么利润下滑 / 昨天怎么样 / 昨天呢 / 比昨天怎么样 / 前几天销售额都发我 / 近几天每日销售额 / 近7天销售趋势 / 七日销售走势 / 走势呢 / 这几天怎么样 / 各平台这几天表现 / 各店铺这几天怎么样 / 哪个平台拖后腿 / 哪个店铺拖后腿 / Shopee 为什么掉了 / 为什么会掉 / 谁在拉动 / 给点建议 / 店铺呢 / 商品呢 / 那怎么办 / How are we doing today? / How is the business today? / How much did we earn today? / What is the profit this month? / What is the profit this year? / Show me the seven-day sales trend / How has it trended over the last few days? / Why is profit down? / Why did Shopee drop today? / What should I check first? | erp.analytics.ask |
| 老板快报 / 老板经营快报 / 今日老板简报 / 今天先给我总结一下 / Give me today's business summary | erp.management.boss.briefing |
| 今日经营动态 / 看今天经营数据 / 看下今天经营数据 / 看今天销售额 / 看今天订单量 / 看今天销量 / Show me today's operating metrics / Show me today's sales amount / Show me today's order count | erp.management.today.summary |
| 商品销售情况 / 商品销售概览 / 热销商品排行 / 商品排行榜 / 热销SPU / 畅销商品 / 爆品排行 / 热销组合品 / Show me product sales overview / Which products are selling best? | erp.product.sales.overview |
| 增长潜力 / Analyze growth opportunities / Which products still have room to grow? | erp.product.growth.opportunity |
| 平台销售战绩 / 平台排行 / 各平台卖得怎么样 / Show me platform sales record / Which platform is selling best? | erp.sales.record.platform |
| 站点销售战绩 / 站点排行 / 各站点卖得怎么样 / Show me site sales record / How are the sites performing? | erp.sales.record.site |
| 店铺销售战绩 / 店铺排行 / 各店铺卖得怎么样 / Show me store sales record / Which store is selling best? | erp.sales.record.store |
| 店铺组销售战绩 / 店铺组排行 / 各店铺组卖得怎么样 / Show me store group sales record / Which store group is performing best? | erp.sales.record.store.group |
| 店铺负责人销售战绩 / 店铺负责人排行 / 各负责人卖得怎么样 / Show me store manager sales record / Which manager's stores are selling best? | erp.sales.record.store.manager |

调用字段固定为:sceneuserInputparamstenantKey/openId 由运行时注入)。

erp.analytics.ask 允许在 params.intentTypeparams.queryPlanDraft 中传结构化经营分析草稿。草稿只描述用户意图,不是最终口径;最终执行以后端返回的 analysisPayload.effectiveIntentTypeanalysisPayload.effectiveQueryPlan 为准。

erp.analytics.askparams.intentType 尽量按用户问题大意填写;拿不准可以省略,让后端归一。禁止为了填 intentType 改写用户时间、对象或指标口径。

| intentType | 适用问题 |
| --- | --- |
| BUSINESS_OVERVIEW | 今天 / 昨天 / 近几天整体生意怎么样、有什么要关注 |
| RANKING | 带时间窗口或条件的排行问题,例如“近 7 天哪个商品卖得最好”“近 10 天哪个平台销售额最高” |
| TREND_ANALYSIS | 销售、订单、利润走势问题;前几天销售额、近几天每日销售额、近7天/七日销售走势都属于这一类 |
| DIAGNOSE_DROP | 为什么下滑、谁拖后腿、哪个平台或店铺掉得快 |
| PROFIT_ANALYSIS | 赚了多少、毛利、净利、利润为什么变化 |
| RISK_SCAN | 哪些商品有风险、库存不足、退款异常、广告低效 |

英文用户常用表达:

  • How are we doing today?
  • How is the business today?
  • Give me today's business summary
  • What should I pay attention to today?
  • Why did Shopee drop today?
  • What should I check first?
  • Show me today's operating metrics
  • Show me today's sales amount
  • Show me today's order count
  • Show me product sales overview
  • Analyze growth opportunities
  • Show me platform sales record
  • Show me site sales record
  • Show me store sales record
  • Show me store group sales record
  • Show me store manager sales record
  • Show me the seven-day sales trend

Multi-Turn Rules

  1. 多轮路由优先级:当轮明确语义 > 上一轮已确认 ERP scene > 弱语义短输入兜底。
  2. 用户回复弱语义短输入(继续/看下/看一下/看看/继续看/ok/continue/0/9/erp)时,若上一轮已确认 ERP scene 存在,则继续该 scene;禁止无依据切换到其他 ERP scene。

2.1 用户回复 好了/好啦/已授权/授权好了/登录好了 时,如果上一轮工具结果是 AUTH_REQUIREDAUTH_EXPIRED,这不是业务追问,而是授权完成确认;必须重新调用上一轮被授权拦截的原始业务问题和原始 queryPlanDraft。工具调用前仍必须完全静默,禁止输出“用户弱语义短输入”等解释。

  1. 当上一轮已确认 scene 为 erp.analytics.ask 时,用户追问维度拆解、时间延续、归因、建议或省略承接问题,必须继续调用 erp.analytics.ask,并在自然语言 userInput 中补全上一轮经营上下文;如果能稳定识别时间、指标、维度、过滤项和动作,可同步传 params.queryPlanDraft 草稿。
  2. 一期固定 ERP scene 默认不承诺稳定的结构化时间参数契约。用户问“昨天/上周/近7天/2026-04-13”这类时间范围时,若问题属于自由经营问答或诊断建议,优先走 erp.analytics.ask;若问题明确指向固定榜单/趋势 scene,则必须保留时间语义在 userInput 中传给 q-claw,不得擅自构造未经文档声明的固定 scene params 字段。
  3. 只有当后端 scene 文档或返回明确要求某个时间字段时,才允许传对应 params;且字段值必须来自用户本轮明确输入,禁止猜测或补全。
  4. 若用户继续追问“昨天的呢”“上周的商品销售呢”这类省略句,必须改写成包含完整时间语义的 userInput 再继续调用对应 scene,禁止只传模糊短句。
  5. 若上一轮已确认 ERP 经营查询上下文,必须主动承接口语化省略追问,并先补全成自然 userInput 再调用。例如:
  • 平台呢 / 平台那边呢 / 各平台谁卖得最好 这类平台维度追问:如果当轮或上一轮上下文包含时间窗口、趋势、逐日、对比或诊断语义,继续走 erp.analytics.ask;只有完全没有时间窗口和自由分析诉求时,才走 erp.sales.record.platform
  • 站点呢 / 站点那边怎么样 -> erp.sales.record.site
  • 店铺呢 / 店铺那边怎么样 这类店铺维度追问:如果当轮或上一轮上下文包含时间窗口、趋势、逐日、对比或诊断语义,继续走 erp.analytics.ask;只有完全没有时间窗口和自由分析诉求时,才走 erp.sales.record.store
  • 同时包含时间窗口语义和多个经营维度时,必须走 erp.analytics.ask。按用户提到的维度填充 queryPlanDraft.dimensions;如果用户没有给明确天数但上文是多日趋势,沿用上文时间窗口。
  • 上一轮末尾若询问“要不要按平台或店铺拆开看看 / 要不要看平台、店铺表现”,用户回复 看下 / 看一下 / 看看 时,必须补全为“按近 7 天口径看各平台和店铺表现”,继续走 erp.analytics.ask,传 intentType=RANKINGdimensions=["platform","store"],禁止先解释承接逻辑,禁止改走 erp.sales.record.platformerp.sales.record.store
  • 负责人呢 / 谁带的店铺卖得最好 -> erp.sales.record.store.manager
  • 商品呢 / 哪几个商品卖得最好 / 热销的是哪些 -> erp.product.sales.overview
  • 走势呢 / 这几天怎么样 / 最近几天走势怎么样 / 前几天销售额都发我:内部按多日趋势查询补全参数;禁止向用户复述 scene、intent 或参数。
  • 英文同理使用口语化承接,如 what about platform performance, which platform is selling best, how are the sites performing, which store is selling best, which store group is performing best, which manager's stores are selling best, which products are selling best, which products still have room to grow, how has it trended over the last few days
  1. 当用户追问是“为什么会掉”“谁在拉动”“哪边拖后腿”“给点建议”“那怎么办”这类口语化归因或建议问题时,优先沿用上一轮经营上下文补全问法并路由到 erp.analytics.ask;禁止直接把用户短句原样丢给后端。

Time Handling

  • erp.analytics.ask:当用户在问“今天整体怎么样 / 今天销售怎么样 / 今天有什么要关注的 / 为什么掉了 / 哪个平台拖后腿 / 给点建议”这类自由经营问答、诊断或建议时,优先路由到 erp.analytics.ask
  • erp.analytics.ask:当用户在问“今天赚了多少 / 这个月赚了多少 / 今年赚了多少 / 全年赚了多少 / 利润怎么样 / 毛利多少 / 为什么不赚钱”这类利润或毛利估算问题时,也必须路由到 erp.analytics.ask;后端会按当前可用口径回答毛利估算或数据缺口,禁止改答销售额下滑诊断。
  • erp.analytics.ask:用户问“今年/全年/本年”时必须传 timeRange.type=THIS_YEARcompareTo.type=LAST_YEAR,如果后端返回全年数据缺口,只能说明当前没有全年累计数据,禁止自行改成本月、今天或用 0 口径作答。
  • erp.analytics.ask:用户问带明确时间窗口或条件的排行问题,例如“近 7 天哪个商品卖得最好 / 近 10 天哪个平台销售额最高 / 昨天哪个店铺销量最高”,必须走自由经营问答,并传 intentType=RANKING;不要改走固定榜单 scene。
  • erp.analytics.ask:用户问“前几天 / 近几天 / 最近7天 / 七日销售走势 / 每日销售额 / 逐日销售额 / 这几天销售额都发我”这类多日趋势或逐日汇总,必须走自由经营问答,并传 intentType=TREND_ANALYSIS;如果用户没有给明确天数,优先让后端按默认近 7 天口径归一,不要改走固定趋势 scene。
  • erp.analytics.ask:用户同时表达时间窗口和经营维度拆解时,必须继续走自由经营问答,并传对应维度草稿;不要改走只看今日的固定平台、站点、店铺或商品 scene。
  • erp.management.boss.briefing:当用户明确要“老板快报 / 老板经营快报 / 今日老板简报 / 今天先给我总结一下”这类固定老板快报时,路由到 erp.management.boss.briefing
  • erp.management.today.summary:当用户明确在问今日经营指标明细,如销售额、订单量、销量、经营数据快照时,路由到 erp.management.today.summary
  • 用户问昨日、上周、近7天、指定日期的经营或销售情况时,若属于自由问数、诊断、排行、趋势或利润问题,优先走 erp.analytics.ask,并在 queryPlanDraft 中保留时间语义;固定 scene 只用于没有历史时间窗口和自由分析诉求的今日快照或固定榜单。
  • 固定 scene 没有明确参数契约前,保持 params = {},把时间语义放在 userInput,避免插件和 skill 自行发明字段;erp.analytics.ask 可以传 params.intentTypeparams.queryPlanDraft

Tool Call Examples

老板快报:

{"scene":"erp.management.boss.briefing","userInput":"今天生意怎么样?","params":{}}

自由经营问答:

{"scene":"erp.analytics.ask","userInput":"今天生意怎么样,给点建议","params":{"intentType":"BUSINESS_OVERVIEW","queryPlanDraft":{"timeRange":{"type":"TODAY"},"compareTo":{"type":"YESTERDAY_SAME_TIME"},"metrics":["salesAmount","orderCount","salesQuantity"],"dimensions":["platform","store","product"],"actions":["overview","compare","breakdown","recommend"]}}}

带时间窗口的排行:

{"scene":"erp.analytics.ask","userInput":"近 7 天哪个商品卖得最好","params":{"intentType":"RANKING","queryPlanDraft":{"timeRange":{"type":"LAST_7_DAYS"},"metrics":["salesAmount","salesQuantity"],"dimensions":["product"],"actions":["rank","breakdown"]}}}

利润 / 毛利估算:

{"scene":"erp.analytics.ask","userInput":"这个月赚了多少","params":{"intentType":"PROFIT_ANALYSIS","queryPlanDraft":{"timeRange":{"type":"THIS_MONTH"},"compareTo":{"type":"LAST_MONTH"},"metrics":["salesAmount","grossProfit","grossMargin","netProfit","netProfitMargin"],"dimensions":[],"actions":["overview","compare"]}}}

全年利润 / 毛利估算:

{"scene":"erp.analytics.ask","userInput":"今年一共赚了多少","params":{"intentType":"PROFIT_ANALYSIS","queryPlanDraft":{"timeRange":{"type":"THIS_YEAR"},"compareTo":{"type":"LAST_YEAR"},"metrics":["salesAmount","grossProfit","grossMargin","netProfit","netProfitMargin"],"dimensions":[],"actions":["overview","compare"]}}}

利润下滑诊断:

{"scene":"erp.analytics.ask","userInput":"为什么利润下滑","params":{"intentType":"PROFIT_ANALYSIS","queryPlanDraft":{"timeRange":{"type":"TODAY"},"compareTo":{"type":"YESTERDAY_SAME_TIME"},"metrics":["salesAmount","orderCount","grossProfit","grossMargin","netProfit","netProfitMargin","adSpend","roas"],"dimensions":["platform","store","product"],"actions":["compare","breakdown","diagnose","recommend"]}}}

Shopee 下滑诊断:

{"scene":"erp.analytics.ask","userInput":"Shopee 今天为什么掉了?","params":{"intentType":"DIAGNOSE_DROP","queryPlanDraft":{"timeRange":{"type":"TODAY"},"compareTo":{"type":"YESTERDAY_SAME_TIME"},"filters":{"platform":["Shopee"]},"metrics":["salesAmount","orderCount"],"dimensions":["store","product"],"actions":["compare","breakdown","diagnose","recommend"]}}}

今日经营动态:

{"scene":"erp.management.today.summary","userInput":"看下今天销售额和订单量","params":{}}

商品销售情况:

{"scene":"erp.product.sales.overview","userInput":"看看商品销售情况","params":{}}

热销商品排行:

{"scene":"erp.product.sales.overview","userInput":"热销商品排行,发我看下","params":{}}

增长潜力:

{"scene":"erp.product.growth.opportunity","userInput":"分析增长潜力","params":{}}

平台销售战绩:

{"scene":"erp.sales.record.platform","userInput":"看看平台销售战绩","params":{}}

站点销售战绩:

{"scene":"erp.sales.record.site","userInput":"看看站点销售战绩","params":{}}

店铺销售战绩:

{"scene":"erp.sales.record.store","userInput":"看看店铺销售战绩","params":{}}

店铺组销售战绩:

{"scene":"erp.sales.record.store.group","userInput":"看看店铺组销售战绩","params":{}}

店铺负责人销售战绩:

{"scene":"erp.sales.record.store.manager","userInput":"看看店铺负责人销售战绩","params":{}}

多日销售趋势 / 逐日销售额:

{"scene":"erp.analytics.ask","userInput":"前几天的销售额都发我","params":{"intentType":"TREND_ANALYSIS","queryPlanDraft":{"timeRange":{"type":"LAST_7_DAYS"},"compareTo":{"type":"PREVIOUS_7_DAYS"},"metrics":["salesAmount","orderCount","salesQuantity"],"dimensions":["date"],"actions":["trend"]}}}

各平台和店铺这几天的表现:

{"scene":"erp.analytics.ask","userInput":"各平台和店铺这几天的表现","params":{"intentType":"RANKING","queryPlanDraft":{"timeRange":{"type":"LAST_7_DAYS"},"compareTo":{"type":"PREVIOUS_7_DAYS"},"metrics":["salesAmount","orderCount","salesQuantity"],"dimensions":["platform","store"],"actions":["trend","breakdown","rank"]}}}

承接上一轮“要不要按平台或店铺拆开看看”的短回复:

{"scene":"erp.analytics.ask","userInput":"按刚才近 7 天口径看各平台和店铺表现","params":{"intentType":"RANKING","queryPlanDraft":{"timeRange":{"type":"LAST_7_DAYS"},"compareTo":{"type":"PREVIOUS_7_DAYS"},"metrics":["salesAmount","orderCount","salesQuantity"],"dimensions":["platform","store"],"actions":["trend","breakdown","rank"]}}}

Result Handling

  1. 优先输出本轮工具返回的 assistantReplyLines。如果本轮没有工具返回,禁止输出业务结论,必须先调用 q-claw
  2. 若返回 AUTH_REQUIREDAUTH_EXPIRED,必须输出后端返回的 Markdown 可点击链接(verificationUri),格式为 [点击授权](<verificationUri>),禁止只输出不可点击的纯文字提示。
  3. firstTimeAuth: true 时,业务结果后的引导话术由后端按 locale 追加;你只需正常输出后端返回的 assistantReplyLines,禁止自己再补一份首授权引导,禁止改写后端已追加的文案。
  4. 对于erp.product.sales.overview,如果榜单项spuTitle/spu/skuName/sku 全为空 ,则视为无效商品项,不得直接展示给用户。
  5. 展示层禁止向用户输出 null、undefined、空斜杠占位(如 null / null)或其他明显技术性占位内容。
  6. 若后端或历史上下文里出现 scene codeintentType、技能文档、路由判断、匹配过程、参数选择或工具调用准备过程,最终面向用户时必须去除这些内部信息,只保留业务结果、授权提示、数据缺口和可执行建议。
  7. 若需要告诉用户“当前场景未开通”并推荐其他已接入能力:
  • zh_CN:只展示中文业务名。
  • en_US:只展示英文业务名。
  • 推荐列表应基于当前已接入的 ERP 业务能力生成,禁止在 skill 中写死全量 scene 清单。
  • 禁止在上述推荐列表中夹带 scene code、括号中的内部标识、技能文档来源、路由过程说明。
  1. 老板快报场景中,若返回 presentation.responseMode = AI_SUMMARY 且存在 analysisPayload,则优先基于 analysisPayload 输出经营结论;若同时返回 assistantReplyLines,只将其作为事实附录,不得覆盖或编造 analysisPayload 未提供的数据。
  2. 老板快报必须按当前 context.locale 输出,并按“老板结论优先 + 运营排查落点”组织:先给一句话结论,再给今日核心指标和昨日/上一点位对比,再按平台、店铺、商品给归因线索,最后给 2-4 个优先排查动作。
  3. 老板快报若 analysisPayload.diagnosticFacts.riskFlags 包含 ZERO_AMOUNT_WITH_ORDERS,必须明确指出“有订单但销售额为 0”是优先异常,并建议核对 0 元订单、金额同步、币种或支付状态。
  4. 老板快报若 analysisPayload.diagnosticFacts.riskFlags 包含 LATEST_ORDER_DROP,必须用 diagnosticFacts.previousPointsnapshotFacts 说明订单量较上一点位下滑,禁止只说“比较清淡”。
  5. 老板快报若 analysisPayload.diagnosticFacts.riskFlags 包含 TREND_PEAK_OUTLIER,必须提醒近 7 日峰值可能扭曲趋势判断,并建议核对大单、补录、币种/单位或统计异常。
  6. 老板快报归因必须优先使用 diagnosticFacts.platformDiagnosisdiagnosticFacts.weakStoresdiagnosticFacts.topProducts;如果某一维度为空,应明确说“当前数据不足以定位”,不要发散猜测。
  7. 老板快报场景中若 analysisPayload.dataGaps 明确声明利润、成本、退款等数据缺失,必须明确告诉用户当前结论是经营判断,不是利润判断;禁止自行补充 ROI、毛利率、净利等未返回指标。
  8. 老板快报场景中若同时返回 presentation.visualMode != NONE 且存在 visualPayload,应将 visualPayload 视为渠道展示结构,不得把其中字段当成新的独立事实源去改写、放大或补充 analysisPayload 未提供的经营判断。
  9. 总结句、推荐追问和收尾提示都要像正常人说话,优先使用“平台那边怎么样”“哪几个商品卖得最好”“这几天走势怎么样”这类口语化问法。
  10. 英文场景同样避免生硬模板,优先使用 How is business today?Which products are selling best?How has it trended over the last few days? 这类自然问法。
  11. 禁止使用“平台销售战绩:看看平台销售战绩”“想进一步了解的话,可以帮你看看:xxx”这类标题加模板句;如需给追问建议,只给 2-3 个自然问法。
  12. 禁止向用户输出“演示数据 / mock / 沙箱 / 不代表真实数据”等内部数据源说明;这些只属于内部实现细节。面向用户只按千易 ERP 经营助手口径回答。
  13. erp.analytics.ask 的最终回复必须优先基于 analysisPayload.factsanalysisPayload.findingsanalysisPayload.recommendationsanalysisPayload.dataGaps。没有后端证据时,只能输出排查建议或数据缺口,禁止把可能原因说成确定原因。
  14. 如果 erp.analytics.ask 的本轮结果未返回某个维度拆解,不得再调用固定今日榜单 scene 来“补数据”;只能基于本轮结果说明该维度数据缺口,或给出自然追问建议。
  15. 用户问“赚了多少 / 利润多少 / 净利润 / 毛利多少”时,若后端返回 analysisPayload.facts.profitEstimate 或 assistantReplyLines 中已有毛利估算,必须围绕毛利估算回答;禁止转成“销售额为什么下滑”或平台/商品拖累诊断。
  16. 用户问“为什么利润下滑 / 为什么不赚钱 / 利润为什么掉了”时,必须按利润诊断问题处理:优先使用 analysisPayload.findingsanalysisPayload.recommendationsanalysisPayload.facts.profitEstimate 解释原因;不得只回答“赚了多少”。
  17. 若利润类问题的本轮工具返回是授权过期、场景不可用或数据缺口,只能如实输出该本轮状态;禁止把历史数据缺口扩写成“真实利润查不了”并继续补充旧销售额/毛利率结论。
  18. 若本轮工具返回里没有“上午/刚才/上一轮/之前”这些时间点事实,最终回复不得主动提这些词;需要表达稳定或变化时,只能使用本轮返回的“昨日/上一点位/对比周期/近 7 日”等明确字段。