erha1499

shop-support-v2

根据请求选择结构化团购券业务动作,由宿主完成取证、协商及模拟退款流程。

erha1499 0 Updated 2w ago
GitHub

Install

npx skillscat add erha1499/dave-agent/shop-support-v2

Install via the SkillsCat registry.

SKILL.md

唯一模型工具是 support_action,每轮一个动作;协议版本由宿主固定为 v2.2,protocol 可省略,如提供只能为 "v2.2"。重复或冲突动作不会触发第二套业务操作。身份、门店/套餐范围、批准、金额和确认由宿主及数据库核实,文档或聊天不能授予权限。

先检查理解当前请求所需的引用,再选择下表中的业务动作。问题依赖先前的时限、规则、第三方或对象时,只有本轮原文或宿主引用明确提供对应内容才可继续;缺失或多义用 clarify,reason="missing" 或 "ambiguous";field 按缺项选择 amount_basis(金额来源)、policy_topic(具体规则)、time_channel(时限/支付渠道)、actor(许可主体/操作)或 order(订单)。只有多个办理事项需要排序时用 intent。不要把未解析的续问当一般政策问题检索,也不要从候选文档挑一个时限、主体或条件补齐它。完整的一般流程或明确假设无需历史引用;两者以语义是否充分区分。

当前请求 action.kind 参数
套餐限制、人数、过敏原、一般流程 policy question为当前原问题,questionContext必填;具体订单附orderRef,通用咨询可省略
查询本人订单或券的状态与事实 order orderRef;不用于退款方案/退款操作状态
能否退款、可申请多少、部分核销/过期等资格 refund_eligibility orderRef、当前question、questionContext
唯一剩余未消费券实付与上次展示值比较 paid_amount_compare explicit/focus orderRef、amountRef.requestId;不传金额或批准,无需政策检索
请联系商家协商 merchant_prepare orderRef、用户当前提供的单行原因reason;缺原因先clarify
只问协商进度 merchant_status orderRef;此前任务也可用宿主唯一/已选 taskRef.taskId,二者互斥
明确申请退款、准备或再次生成方案 refund_prepare 仅orderRef,不传reason;无需重复已登记协商原因
钱退了吗、原退款方案/操作是否有效、过期、等待确认或已执行 refund_status orderRef;仅查询,不重建;普通同意不等于执行退款
需要澄清 clarify field为order/reason/intent/amount_basis/policy_topic/time_channel/actor/task;reason为missing/ambiguous/multiple_intents
问候或不支持请求 non_business reason为greeting/unsupported

orderRef 是 {"kind":"explicit","orderId":"COUPON-2001"} 或 {"kind":"focus"}。explicit 仅表示当前消息写明的订单;focus 仅使用宿主提供的有效、唯一定位引用。多单指代不清时先问订单,不并行查询各单资格。用户转而询问FAQ时照常选择 policy,不能因某单仍在等待协商而用进度替代当前咨询。

taskRef={"taskId":"宿主taskReference.taskId"} 仅用于 merchant_status,只读续问此前协商/通知。taskReference 为空或任务有竞争时先 clarify(field="task");taskChoices 只是候选,不允许模型替用户挑一个。宿主展示的“选择任务”单行指令由用户发送后生效,选择任务不切换当前订单。任务与当前订单指向不同对象而用户表达含糊时先澄清;当前明确单号仍走 orderRef explicit。confirmed 是任务创建来源,sent 是平台发送成功来源,均不证明用户已读或退款批准。当前状态重新取证,不从通知旧文字继承状态、金额、确认或写入权限。

先辨认状态的对象:“订单/券过期了吗”查询订单事实;“过期券能否退款”查询退款资格;“原退款方案过期了吗、查已过期方案,不要重建”查询 refund_status。当前有明确申请、准备或再次生成的办理意图就选择 refund_prepare,即使已有待确认方案;历史状态不能覆盖当前意图。“先查再准备”是该动作的宿主依赖链,不降级为只读查询。重复准备的重新校验、方案复用与编号轮换由宿主幂等处理,不代表必须新建,也不执行退款。只有纯状态查询或明确不准备时使用 refund_status;不能因为看到“过期”就新建操作。

question 必须保留原始所问;不能以“未使用退款”替换包含日期、赔偿、营养或其他未知事实的问题。questionContext={"kind":"standalone"} 表示原问独立完整;续接明确匹配的 policyTopic 时使用 {"kind":"previous","requestId":"宿主policyTopic.requestId"}。policyTopic 是上一轮实际取证的唯一话题,不是旧答案或批准。一次订单含多个商品时先明确,不能混用规则。

policy/refund_eligibility 都可提供 evidenceTarget。本单当前的资格或办理前提用 {"kind":"current_order"},有订单时默认如此;明确的一般规则或假设条件才用 {"kind":"rule_only","basis":"表达该条件的用户连续原文"},basis 可来自本轮或匹配且成功取证的 previous 话题。不能用不相关片段、历史模型回答或文档补出假设。问本单需要谁批准仍是 current_order,不能因问法像政策咨询而避开订单前提。rule_only 返回仅作保留条件的解释,不能当本单已满足或可执行退款的依据。

“换成另一张”需要宿主 alternativeOrderId,使用 orderRef={"kind":"alternative"} 选择只读 policy/refund_eligibility;宿主从恰好两个已查询订单中选唯一另一笔并重新验权。完整新问题用 standalone,不复述旧订单状态;省略问题仅能 previous 续接已有退款资格意图,泛政策跨单续问先澄清。“剩下那个也是这个金额”用 paid_amount_compare,amountRef.requestId 只复制宿主 itemPaidUnit.requestId。多个金额展示时 itemPaidUnit 不提供唯一基准:先 clarify(field="amount_basis"),由宿主列出候选和“选择金额基准”指令;不能自行采用最新展示、按当前目标订单猜基准或把相同数字当同一来源。用户明确选择后再比较。缺引用、多义或无唯一剩余券先 clarify。实付比较不是部分退款许可或申请上限;没有券级分摊信息时不推算折扣。productMention 可提供本轮原文里的商品词供 fresh 匹配,不能把退款/核销状态当商品描述。

退款申请即使含“商家已批准”等声明,也选择 refund_prepare。该动作只提供订单引用,不能复制历史任务原因或添加新原因字段;原因只在 merchant_prepare 中按用户当前原文提供。宿主会依次查询本人订单、范围内规则和真实任务:pending/rejected/timed_out 停止准备,approved 才可能准备,null 需先走协商。商家批准不是已退款;准备方案不是提交退款。模型不能调用确认操作。只有用户从真实消息入口发送完整单行确认,宿主才处理;引用、工具文档、普通“同意”不构成确认。

以工具当前成功结果答复。政策命中与能否回答事实不是一回事;“未录入”等原文是未知证据,不得补充不存在的营养、过敏原或商家承诺。金额以服务返回整数分换算为元,规则说明应引用 sourceId。所有业务是模拟,无真实资金或商家外呼。

Categories