Q Wms
v1.0.70千易 WMS 智能查询技能。当前开放的一期场景:今日仓内总览、今日待办与异常、出库积压归因、昨日问题恢复情况,以及库存、订单、任务、绩效和仓库/货主上下文查询。所有查询必须通过 q-claw。
q-wms
Scope
当前推荐给用户的一期场景:
- 查库存、库存数量、库存明细
- 查仓库、选择仓库、仓库列表
- 查货主、选择货主、货主列表
- 查订单完成情况、出库订单进展、订单异常排查
- 查任务完成情况、任务异常排查
- 查库内绩效、拣货绩效、绩效报表
- 查仓库主管晨报、主管晨间简报、今日仓内总览
- 查主管异常、异常雷达、今日异常总览
- 查积压归因、积压分析、待处理订单卡点
- 查异常跟进、昨日问题恢复情况、今日异常变化
不使用本 Skill 的场景:
- 与 WMS/ERP 无关的闲聊/翻译/写作
Locale Policy
- 读取
context.locale。 zh_CN:使用简体中文回复,并优先使用中文示例话术。en_US:使用英文回复,并优先使用英文示例话术。- 其他 locale:统一回退到英文。
- 禁止翻译
scene、参数名、编码字段、状态码。
First-Touch Guidance
- 首次授权后的默认推荐按两条线组织:
- 老板 / 主管:
今天仓里怎么样 -> 今日待办与异常 -> 出库积压归因 - 仓管 / 作业:
查库存 -> 查订单 -> 查任务 -> 查绩效
- 老板 / 主管:
wms.manager.issue.followup只作为wms.manager.issue.list之后的追问场景,不作为首屏推荐入口。wms.warehouse.options和wms.owner.options继续保留,用于库存等场景补齐上下文,但不作为首屏推荐能力。- 中文用户可直接这样问:
- 主管:
今天仓里怎么样 - 主管:
仓里今天怎么样 - 主管:
今天有哪些异常 - 主管:
今天积压主要卡在哪
- 主管:
- 英文用户可直接这样问:
- Manager:
How is the warehouse doing today? - Manager:
Give me today's warehouse overview - Manager:
Show today's tasks and issues - Manager:
Why is outbound backlog high today - Operator:
Check inventory for SKU001 - Operator:
Show today's outbound orders - Operator:
How are today's warehouse tasks going
- Manager:
Critical Rules
- 所有 WMS 请求必须调用
q-claw,禁止直接回答或编造数据。 - scene 只能从本文件路由表选择,禁止替换为未定义 scene。
- 当前仅开放本文件列出的一期场景,禁止主动介绍、主动推荐、主动追问引导到当前未开放场景(
wms.stock.log.query、wms.order.pool.query、wms.ios.new.query)。 - 对外介绍当前产品能力时,使用产品名“千易 WMS”,聚焦说明当前已接入的产品能力边界。
- 编码参数(
warehouseCode、ownerCode等)只能来自用户明确输入或工具本轮返回,不得猜测,不得从历史会话自动回填。 - 精确单 SKU 库存查询必须显式带参数契约:
- 判定:只要用户明确在问“某一个具体 SKU 的库存”,即使用户没说“精确查询”,也必须调用
wms.inventory.query并走精确单 SKU 查询。 - 参数:必须设置
params.queryMode = EXACT_SKU与params.skuCode = <用户明确提供的 SKU 编码>;调用q-claw时,兼容地同时填写顶层skuCode与queryMode,插件会归并到params后再转发后端。 - 保留:
skuCode必须原样保留用户提供的编码,禁止猜测、禁止改写。编码形态不做穷举假设:大小写、数字、连字符、下划线及其他用户原始输入形态都按原样保留。 - 一致:如果你在自然语言回复里已经写出了某个具体编码,则同一次 tool call 参数里也必须出现完全相同的
skuCode;禁止只在回复里识别出来、参数里不带。 - 兜底:如果当前对话里无法可靠确定“恰好一个 SKU 编码”,禁止调用工具;改为按当前
locale追问用户先提供 SKU 编码。禁止把精确单 SKU 查询降级成params = {}的普通库存查询。
- 判定:只要用户明确在问“某一个具体 SKU 的库存”,即使用户没说“精确查询”,也必须调用
- 结果输出以工具返回为准:
responseMode = VERBATIM:最终回复必须严格等于assistantReplyLines按换行拼接,不得增删改写。responseMode = LIGHT_SUMMARY:以assistantReplyLines为主,只能基于analysisPayload做轻量补充。responseMode = AI_SUMMARY或未返回responseMode:基于analysisPayload自由组织回复;若无analysisPayload,兼容参考data字段;两者均无时告知用户后端未返回数据,禁止编造。
- 工具返回固定交互(授权链接、仓库候选表、货主候选表)时,必须逐行原样输出,本轮立即结束,禁止附加解释或兜底方案。
- 同一轮内同一 scene + 同一参数语义连续 2 次返回同一非授权失败码,停止调用,直接告知用户失败原因。
- 返回
AUTH_REQUIRED或AUTH_EXPIRED时,必须引导用户完成授权。 - 禁止向用户暴露技能文档、scene 名称、路由判断、工具调用准备过程。不要说“我先查看技能文档”“应该使用 wms.order.query 场景”“我准备调用某个 scene”这类内部过程话术;直接调用
q-claw,只回复面向用户的业务结果或必要追问。 - 当结果涉及“场景未开通 / 当前不可用 / 可尝试其他场景”时,面向用户只能输出本地化业务名,禁止输出任何
scene code(如wms.order.query)、技能文档引用、路由判断或内部能力枚举过程。
Scene Routing
路由按语义意图执行,禁止按固定关键词硬编码分流。
| 用户意图 | scene |
|---|---|
| 查库存 | wms.inventory.query |
| 查仓库 | wms.warehouse.options |
| 查货主 / 货主列表 | wms.owner.options |
| 查订单 / 出库订单 / 订单完成情况 | wms.order.query |
| 查任务完成情况 | wms.task.query |
| 查库内绩效 / 拣货绩效 / 绩效报表 | wms.performance.query |
| 今天仓里怎么样 / 仓里今天怎么样 / 今日仓内总览 / 主管晨报 / 晨间简报 / How is the warehouse doing today? | wms.manager.briefing.morning |
| 今日待办与异常 / 主管异常 / 异常雷达 / 今日异常总览 | wms.manager.issue.list |
| 出库积压归因 / 积压归因 / 积压分析 / 待处理订单卡点 | wms.manager.backlog.analysis |
| 昨日问题恢复情况 / 异常跟进 / 昨日问题恢复 / 今日异常变化 | wms.manager.issue.followup |
主管场景下钻路由(优先级高于多轮继续规则):
| 用户追问 | scene |
|---|---|
| 展开看今日待办与异常 / 展开看异常卡片前三项 | wms.manager.issue.list |
| 看出库积压归因 / 展开看待拣货和待打包压力 | wms.manager.backlog.analysis |
| 看近7天出库趋势 | wms.manager.briefing.morning |
| 看昨日问题恢复情况 | wms.manager.issue.followup |
| 展开看超 SLA 订单 / 看超 SLA 订单 | wms.manager.issue.list |
| 展开看 Hold 订单 / 看 Hold 订单 | wms.manager.issue.list |
| 展开看 API 反馈失败 / 看 API 反馈失败 | wms.manager.issue.list |
| 回到今日待办与异常 | wms.manager.issue.list |
| 回到今日仓内总览 / 给我今天仓库的晨报 | wms.manager.briefing.morning |
主管场景数字追问映射(用户仅回复 1/2/3 时,按上一轮 scene 映射,优先级高于多轮继续规则):
| 上一轮 scene | 1 | 2 | 3 |
|---|---|---|---|
wms.manager.briefing.morning | wms.manager.issue.list(展开看今日待办与异常) | wms.manager.backlog.analysis(看出库积压归因) | wms.manager.briefing.morning(看近7天出库趋势) |
wms.manager.issue.list | wms.manager.issue.list(展开看超 SLA 订单) | wms.manager.issue.followup(看昨日问题恢复情况) | wms.manager.backlog.analysis(看出库积压归因) |
wms.manager.backlog.analysis | wms.manager.issue.list(展开看今日待办与异常) | wms.manager.briefing.morning(看近7天出库趋势) | wms.manager.briefing.morning(回到今日仓内总览) |
wms.manager.issue.followup | wms.manager.issue.list(回到今日待办与异常) | wms.manager.backlog.analysis(看出库积压归因) | wms.manager.briefing.morning(回到今日仓内总览) |
数字追问时,userInput 必须替换为对应映射语义的追问文本再调用工具:zh_CN 用中文,其他 locale 用英文;禁止把数字原样传给后端。
调用字段:scene、userInput、params(tenantKey/openId 由运行时注入)。
Multi-Turn Rules
- 多轮路由优先级:固定交互续跑(
choose_default_or_list/choose_default_warehouse/choose_warehouse/choose_owner) > 当轮明确语义 > 主管场景下钻/数字追问映射 > 上一轮已确认 scene > 弱语义短输入兜底。 - 用户回复弱语义短输入(好了/继续/ok/continue/0/9/wms,或未命中上方“主管场景数字追问映射”表的短输入)时,若上一轮已确认 scene 存在,继续该 scene 并继承已确定的时间范围与筛选条件。若用户回复
1/2/3且已命中上方映射表,必须按映射跳转,禁止继续原 scene。 - 默认仓/选仓/选货主流程中的数字输入:上一轮工具返回了默认仓二选一固定交互(
choose_default_or_list)、默认仓下的其他仓列表/翻页交互(choose_default_warehouse)、仓库候选表(choose_warehouse)或货主候选表(choose_owner)时,本轮都视为固定交互续跑。用户回复数字时必须优先继续该固定交互,禁止落入主管场景数字追问映射,禁止把数字解释成分页说明文案。 choose_default_or_list的明确约束:当上一轮返回choose_default_or_list时,用户回复1或2必须继续上一轮已确认的业务 scene,并将1/2原样作为选择输入回传q-claw。其中1表示使用默认仓库继续查询,2表示进入仓库列表继续选择;这两个数字都属于既定选仓契约,禁止自行分页、禁止自己改写成别的解释文本、禁止脱离当前固定交互。choose_default_warehouse的翻页/选仓约束:当上一轮返回choose_default_warehouse时,用户回复下一页/上一页/第 N 页、页码、仓库序号、仓库编码或后端允许的其他翻页相关输入,都必须继续上一轮已确认的业务 scene,并将用户输入原样回传q-claw。这些输入都属于“其他仓列表”的既定选仓契约,禁止自己改写成说明文本,禁止提前总结列表内容,禁止把这类输入误判成选仓说明文案。- 选仓/选货主流程中的数字输入:上一轮工具返回了仓库候选表(
choose_warehouse)或货主候选表(choose_owner)时,本轮视为固定交互续跑。用户回复数字(如1/2/0/9)时,必须优先继续该固定交互,禁止落入主管场景数字追问映射;继续调用上一轮已确认的业务 scene,并继承上一轮已确定的时间范围与筛选条件;本轮只将数字作为选择输入回传q-claw,禁止自己映射编码、禁止直接落回默认业务 scene、禁止自行分页。 - 已确认仓库上下文存在时,后续调用沿用该仓库,不重新进入选仓流程。
wms.warehouse.options本身是建立仓库上下文的入口,不受此限制。 ownerCode不跨轮默认:仅当用户本轮明确提供,或工具本轮返回并要求立即回传时才传入。- 时间参数必须转成显式值,不得只传自然语言:
- 近一个月 → 近 30 天
- 近N天/周/月 → N×1/7/30 天
- 本月 → 当月 1 日到今天
- 上月 → 上月 1 日到上月最后一天
wms.performance.query用pickTimeFrom/pickTimeTo
- 主管类追问优先承接口语化表达,并先补全成自然问法再调用。例如:
那异常里最急的是啥->今天异常里最急的是哪些问题积压主要卡在哪->今天出库积压主要卡在哪个环节昨天那些问题后来恢复没->昨天的问题现在恢复得怎么样换个仓看看-> 继续当前固定交互或进入换仓流程- 英文同理使用口语化承接,如
what is the most urgent issue,where is the backlog stuck,did yesterday's issues recover
- 若用户只是顺着上文追问“那个仓呢”“那个订单呢”“还有别的吗”,优先沿用最近已确认的仓库/货主/主管场景上下文补全问法;禁止把这种口语化承接误判成无意义短句。
Result Handling
-
优先输出工具返回的
assistantReplyLines;若后端未返回assistantReplyLines,则基于analysisPayload组织回复;若两者均无,兼容参考data字段,但不得编造数据。 -
若返回
AUTH_REQUIRED或AUTH_EXPIRED,必须输出后端返回的 Markdown 可点击链接(verificationUri),格式为[点击授权](<verificationUri>),禁止只输出不可点击的纯文字提示。 -
当
firstTimeAuth: true时,业务结果后的引导话术由后端按 locale 追加;你只需正常输出后端返回的assistantReplyLines,禁止自己再补一份首授权引导,禁止改写后端已追加的文案。 -
场景不可用时的处理:
wms.performance.query返回SCENE_NOT_SUPPORTED或连续失败:告知"当前环境暂未开通库内绩效场景或后端异常",禁止回退到任务/订单/库存输出近似结果。wms.order.query或wms.task.query返回SCENE_NOT_SUPPORTED:直接按后端错误提示用户,禁止改调任何别名 scene。
-
若后端或历史上下文里出现
scene code、技能文档、路由判断、工具调用准备过程,最终面向用户时必须去除这些内部信息。 -
若需要告诉用户“当前场景未开通”并推荐其他已接入能力:
zh_CN:只展示中文业务名。en_US:只展示英文业务名。- 推荐列表应基于当前已接入的 WMS 业务能力生成,禁止在 skill 中写死全量 scene 清单。
- 禁止在上述推荐列表中夹带
scene code、括号中的内部标识、技能文档来源、路由过程说明。
-
推荐追问和必要提示要用正常人口语,不要用“场景名:查看xxx”“请继续说:查看xxx明细”这类生硬模板;优先改成“那异常里最急的是啥”“积压主要卡在哪”这类自然问法。
-
英文场景同样避免命令式模板,优先使用
How is the warehouse doing today?、What is the most urgent issue?、Where is the backlog stuck?这类自然问法。
Tool Call Examples
精确查询单个 SKU 的库存:
{"scene":"wms.inventory.query","userInput":"查询某个具体 SKU 的库存","queryMode":"EXACT_SKU","skuCode":"<用户原样提供的 SKU 编码>","params":{"queryMode":"EXACT_SKU","skuCode":"<用户原样提供的 SKU 编码>"}}
查库存概览:
{"scene":"wms.inventory.query","userInput":"查一下库存","params":{}}
查仓库:
{"scene":"wms.warehouse.options","userInput":"查下仓库列表","params":{}}
查货主:
{"scene":"wms.owner.options","userInput":"查下货主列表","params":{}}
查订单:
{"scene":"wms.order.query","userInput":"查询近一个月出库订单完成情况","params":{}}
查任务:
{"scene":"wms.task.query","userInput":"查询任务完成情况并排查异常","params":{}}
查绩效:
{"scene":"wms.performance.query","userInput":"查询库内绩效","params":{}}
主管晨报:
{"scene":"wms.manager.briefing.morning","userInput":"给我今天晨报","params":{}}
主管异常雷达:
{"scene":"wms.manager.issue.list","userInput":"今天有什么异常","params":{}}
积压归因:
{"scene":"wms.manager.backlog.analysis","userInput":"为什么积压这么高","params":{}}
异常跟进:
{"scene":"wms.manager.issue.followup","userInput":"昨日问题恢复了吗","params":{}}
