Auto-Updater Skill
一个面向 Other 场景的 Agent 技能。原始说明:Automatically update Clawdbot and all installed skills once daily. Runs via cron, checks for updates, applies them, and messages the user with a summary of what changed.
name: q-erp
version: 1.0.32
description: 千易 ERP 管理查询技能(一期增强)。覆盖自由经营问答、老板快报、今日经营动态、商品销售情况、增长潜力、平台/站点/店铺/店铺组/店铺负责人销售战绩、多日销售趋势;所有查询必须通过 q-claw。
user-invocable: true
本 Skill 只处理 ERP 一期管理查询:
其中以下表达在没有明确时间窗口、诊断、对比或自由追问时,视为“商品销售情况”并路由到 erp.product.sales.overview:
以下场景不在一期范围内:
context.locale。zh_CN:使用简体中文回复,并优先使用中文示例话术。en_US:使用英文回复,并优先使用英文示例话术。scene、参数名、编码字段、状态码。q-claw,面向用户的自然语言输出必须为空;不得先说明“识别结果、路由依据、匹配过程、将要调用的能力或参数”。工具返回后,只输出业务结果。q-claw,禁止直接编造业务数据。AUTH_REQUIRED 或 AUTH_EXPIRED 时,必须输出后端返回的 Markdown 可点击链接(verificationUri),格式为 [点击授权](<verificationUri>),禁止只输出不可点击的纯文字提示。q-claw 并只回复面向用户的业务结果。scene、intentType、queryPlanDraft、工具名和枚举值等内部字段和值只能出现在 q-claw 工具调用参数中,禁止出现在面向用户的自然语言回复中。q-claw 的 ERP 查询,工具调用前必须保持静默;拿到工具结果后再回复用户。scene code(如 erp.management.today.summary)、技能文档引用、路由判断或内部能力枚举过程。q-claw 工具返回为唯一事实源;如果本轮还没有 tool result,下一步只能先调用 q-claw,禁止直接根据历史对话、上一轮结果或模型记忆回答。erp.analytics.ask,并以后端本轮返回的 assistantReplyLines 或 analysisPayload.facts.profitEstimate 为准。timeRange.type=THIS_YEAR;禁止把“今年/全年”偷偷改成本月或今天。erp.analytics.ask 的多轮承接不得 fallback 到固定今日榜单 scene 补数据。上一轮是近 7 天、前几天、多日趋势、诊断或自由问数时,本轮短追问必须沿用 erp.analytics.ask 和上文时间口径;如果缺数据,只能基于本轮 erp.analytics.ask 结果说明数据缺口。用户弱语义短输入,上一轮已确认 ERP scene... + toolCall。正确做法:同一条 assistant 消息只包含 toolCall,不包含 text。assistantReplyLines。除授权链接格式化外,最终回复应原样输出后端业务行;不得把后端行改成表格、重新排序、删减“证据不足”边界或扩写经营判断。q-claw,本轮面向用户输出必须只有 toolCall;工具返回后再按 Result Handling 输出业务结果。assistantReplyLines、授权提示、数据缺口和可执行建议。| 用户意图 | 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 |
调用字段固定为:scene、userInput、params(tenantKey/openId 由运行时注入)。
erp.analytics.ask 允许在 params.intentType 和 params.queryPlanDraft 中传结构化经营分析草稿。草稿只描述用户意图,不是最终口径;最终执行以后端返回的 analysisPayload.effectiveIntentType 和 analysisPayload.effectiveQueryPlan 为准。
erp.analytics.ask 的 params.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 summaryWhat should I pay attention to today?Why did Shopee drop today?What should I check first?Show me today's operating metricsShow me today's sales amountShow me today's order countShow me product sales overviewAnalyze growth opportunitiesShow me platform sales recordShow me site sales recordShow me store sales recordShow me store group sales recordShow me store manager sales recordShow me the seven-day sales trend2.1 用户回复 好了/好啦/已授权/授权好了/登录好了 时,如果上一轮工具结果是 AUTH_REQUIRED 或 AUTH_EXPIRED,这不是业务追问,而是授权完成确认;必须重新调用上一轮被授权拦截的原始业务问题和原始 queryPlanDraft。工具调用前仍必须完全静默,禁止输出“用户弱语义短输入”等解释。
erp.analytics.ask 时,用户追问维度拆解、时间延续、归因、建议或省略承接问题,必须继续调用 erp.analytics.ask,并在自然语言 userInput 中补全上一轮经营上下文;如果能稳定识别时间、指标、维度、过滤项和动作,可同步传 params.queryPlanDraft 草稿。erp.analytics.ask;若问题明确指向固定榜单/趋势 scene,则必须保留时间语义在 userInput 中传给 q-claw,不得擅自构造未经文档声明的固定 scene params 字段。params;且字段值必须来自用户本轮明确输入,禁止猜测或补全。userInput 再继续调用对应 scene,禁止只传模糊短句。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=RANKING,dimensions=["platform","store"],禁止先解释承接逻辑,禁止改走 erp.sales.record.platform 或 erp.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 dayserp.analytics.ask;禁止直接把用户短句原样丢给后端。erp.analytics.ask:当用户在问“今天整体怎么样 / 今天销售怎么样 / 今天有什么要关注的 / 为什么掉了 / 哪个平台拖后腿 / 给点建议”这类自由经营问答、诊断或建议时,优先路由到 erp.analytics.ask。erp.analytics.ask:当用户在问“今天赚了多少 / 这个月赚了多少 / 今年赚了多少 / 全年赚了多少 / 利润怎么样 / 毛利多少 / 为什么不赚钱”这类利润或毛利估算问题时,也必须路由到 erp.analytics.ask;后端会按当前可用口径回答毛利估算或数据缺口,禁止改答销售额下滑诊断。erp.analytics.ask:用户问“今年/全年/本年”时必须传 timeRange.type=THIS_YEAR、compareTo.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。erp.analytics.ask,并在 queryPlanDraft 中保留时间语义;固定 scene 只用于没有历史时间窗口和自由分析诉求的今日快照或固定榜单。params = {},把时间语义放在 userInput,避免插件和 skill 自行发明字段;erp.analytics.ask 可以传 params.intentType 和 params.queryPlanDraft。老板快报:
{"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"]}}}
assistantReplyLines。如果本轮没有工具返回,禁止输出业务结论,必须先调用 q-claw。AUTH_REQUIRED 或 AUTH_EXPIRED,必须输出后端返回的 Markdown 可点击链接(verificationUri),格式为 [点击授权](<verificationUri>),禁止只输出不可点击的纯文字提示。firstTimeAuth: true 时,业务结果后的引导话术由后端按 locale 追加;你只需正常输出后端返回的 assistantReplyLines,禁止自己再补一份首授权引导,禁止改写后端已追加的文案。scene code、intentType、技能文档、路由判断、匹配过程、参数选择或工具调用准备过程,最终面向用户时必须去除这些内部信息,只保留业务结果、授权提示、数据缺口和可执行建议。zh_CN:只展示中文业务名。en_US:只展示英文业务名。scene code、括号中的内部标识、技能文档来源、路由过程说明。presentation.responseMode = AI_SUMMARY 且存在 analysisPayload,则优先基于 analysisPayload 输出经营结论;若同时返回 assistantReplyLines,只将其作为事实附录,不得覆盖或编造 analysisPayload 未提供的数据。context.locale 输出,并按“老板结论优先 + 运营排查落点”组织:先给一句话结论,再给今日核心指标和昨日/上一点位对比,再按平台、店铺、商品给归因线索,最后给 2-4 个优先排查动作。analysisPayload.diagnosticFacts.riskFlags 包含 ZERO_AMOUNT_WITH_ORDERS,必须明确指出“有订单但销售额为 0”是优先异常,并建议核对 0 元订单、金额同步、币种或支付状态。analysisPayload.diagnosticFacts.riskFlags 包含 LATEST_ORDER_DROP,必须用 diagnosticFacts.previousPoint 和 snapshotFacts 说明订单量较上一点位下滑,禁止只说“比较清淡”。analysisPayload.diagnosticFacts.riskFlags 包含 TREND_PEAK_OUTLIER,必须提醒近 7 日峰值可能扭曲趋势判断,并建议核对大单、补录、币种/单位或统计异常。diagnosticFacts.platformDiagnosis、diagnosticFacts.weakStores、diagnosticFacts.topProducts;如果某一维度为空,应明确说“当前数据不足以定位”,不要发散猜测。analysisPayload.dataGaps 明确声明利润、成本、退款等数据缺失,必须明确告诉用户当前结论是经营判断,不是利润判断;禁止自行补充 ROI、毛利率、净利等未返回指标。presentation.visualMode != NONE 且存在 visualPayload,应将 visualPayload 视为渠道展示结构,不得把其中字段当成新的独立事实源去改写、放大或补充 analysisPayload 未提供的经营判断。How is business today?、Which products are selling best?、How has it trended over the last few days? 这类自然问法。erp.analytics.ask 的最终回复必须优先基于 analysisPayload.facts、analysisPayload.findings、analysisPayload.recommendations 和 analysisPayload.dataGaps。没有后端证据时,只能输出排查建议或数据缺口,禁止把可能原因说成确定原因。erp.analytics.ask 的本轮结果未返回某个维度拆解,不得再调用固定今日榜单 scene 来“补数据”;只能基于本轮结果说明该维度数据缺口,或给出自然追问建议。analysisPayload.facts.profitEstimate 或 assistantReplyLines 中已有毛利估算,必须围绕毛利估算回答;禁止转成“销售额为什么下滑”或平台/商品拖累诊断。analysisPayload.findings、analysisPayload.recommendations 和 analysisPayload.facts.profitEstimate 解释原因;不得只回答“赚了多少”。