📦 Q Wms — 技能工具

v1.0.42

千易 SaaS 智能助手(WMS/ERP),负责库存、仓库、货主、库存日志、订单池、订单/任务/库内绩效/进销存(新)查询;WMS 对话必须优先调用 q-wms-flow。

0· 291·0 当前·0 累计
by @ljqdh (lee)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/10
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
The skill is largely coherent with a WMS routing plugin but has several operational details (clear‑text HTTP backend, on‑disk token persistence, execution of external Python scripts and admin install scripts that restart the gateway) that warrant caution before installation.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.422026/3/16

fix: pass userInput through q-wms-flow to backend tool.execute

无害

安装命令

点击复制
官方npx clawhub@latest install qianyi-wms-test
🇨🇳 镜像加速npx clawhub@latest install qianyi-wms-test --registry https://cn.longxiaskill.com

技能文档

1) When to Use

使用本 Skill 的场景:

  • 查库存、库存数量、库存明细
  • 查仓库、选择仓库、仓库列表
  • 查货主、选择货主、货主列表
  • 查库存变动日志
  • 查订单池、订单池配置、波次开关配置
  • 查订单完成情况、出库订单进展、订单异常排查
  • 查任务完成情况、任务异常排查
  • 查库内绩效、拣货绩效、绩效报表
  • 查进销存(新)、IOS(New) 报表

不使用本 Skill 的场景:

  • 与 WMS/ERP 无关的闲聊/翻译/写作

2) Critical Rules

  • 只要是 WMS/ERP 请求,必须先调用 q-wms-flow,禁止直接回答。
  • 在多轮选择中,用户只回数字(如 1/2/0/9)时,也必须调用 q-wms-flow,禁止自己分页、禁止自己映射编码。
  • 禁止使用历史记忆自行拼列表。仓库/货主列表只能来自本轮工具返回。
  • 只要工具返回 assistantReplyLines 且非空,最终回复必须严格等于它按换行拼接后的文本;不得新增、删减、改写、翻译、换模板。
  • 工具返回 assistantReplyLines 为空时,才根据 data 做补充说明。
  • 编码参数只能来自用户明确输入或工具返回,不得猜测。
  • 用户意图含“查货主/货主列表/所有货主”时,scene 必须是 wms.owner.options,禁止改调 wms.inventory.query
  • 用户意图含“订单/查订单/这个月订单/本月订单/出库订单/已发货订单/未发货订单/待发货订单/订单完成情况”时,scene 必须是 wms.order.query,禁止改调 wms.order.pool.querywms.inventory.querywms.stock.log.query
  • wms.order.querywms.task.query 返回 SCENE_NOT_SUPPORTED 时,禁止改调任何别名 scene,直接按后端错误提示用户。禁止回退调用 wms.order.status.querywms.task.status.querywms.order.pool.querywms.order.task.status.querywms.inventory.query
  • 在订单会话链路中(如刚完成授权、刚选择仓库、用户回复“wms/好了/继续/1/2”等短输入),必须继承上一轮“订单”意图,继续走 wms.order.query(或其兼容别名),禁止改走库存/库存日志链路。
  • 禁止在未实际调用目标 scene 前,主观声称“q-wms-flow 只支持库存/库存日志”。场景支持性必须以后端真实 toolResult 为准。
  • 严禁 hardcode:不得写死固定问句、固定编码、固定时间范围、固定分类文案或固定业务分支;所有路由与回复必须基于用户当轮语义 + 工具实时返回数据。
  • 通用防重试规则:同一轮内若“同一 scene + 同一参数语义”连续 2 次返回同一非授权失败码(如 WAREHOUSE_REQUIREDWMS_ERRORSCENE_NOT_SUPPORTED),必须停止继续调用工具,直接向用户说明失败原因并给出下一步(调整条件/稍后重试/联系管理员)。
  • ownerCode 不做跨轮会话默认值:仅当用户本轮明确提供,或工具本轮返回并要求立即回传时才传入;禁止从历史会话自动回填 ownerCode
  • 用户意图含“库内绩效/绩效报表/拣货绩效”时,scene 必须是 wms.performance.query,禁止改调 wms.task.querywms.order.querywms.inventory.querywms.stock.log.query
  • wms.performance.query 返回 SCENE_NOT_SUPPORTEDSCENE_ERROR 或连续失败时,必须直接告知“当前环境暂未开通库内绩效场景或后端异常”,禁止回退到任务/订单/库存场景输出“近似结果”。
  • 当用户明确要求“绩效”,若无法确定到 wms.performance.query(例如工具异常或场景不可用),必须显式告知“未命中绩效场景,暂不返回任务/订单替代结果”,并给出下一步(联系管理员开通或修复 scene)。
  • 用户意图含“进销存(新)/进销存报表/进销存查询/IOS(New)/IOS 报表”时,scene 必须是 wms.ios.new.query,禁止改调 wms.task.querywms.order.querywms.inventory.querywms.performance.query
  • wms.ios.new.query 返回 SCENE_NOT_SUPPORTEDSCENE_ERROR 或连续失败时,必须直接告知“当前环境暂未开通进销存(新)场景或后端异常”,禁止回退到任务/订单/库存场景输出近似结果。
  • 对话中出现时间要求时,必须优先转成显式时间参数,不得只传自然语言。示例归一:
- 一个月/近一个月/最近一个月/过去一个月 → 近 30 天; - 近N天/近N周/近N月 → 按 N1/N7/N*30 天换算; - 本月 → 当月 1 日到今天; - 上月 → 上月 1 日到上月最后一天; - YYYY-MM-DD 到 YYYY-MM-DD → 直接映射为起止日期。 对 wms.performance.querypickTimeFrom/pickTimeTo;对 wms.ios.new.querystartDate/endDate
  • choose_warehouse/choose_owner 多轮中,用户只回 1/2/0/9 时,必须继承上一轮已确定的业务参数(尤其时间范围、筛选条件),禁止因仅传数字而丢失时间参数并回退默认时间窗。

3) Scene Routing

以下映射按“语义意图”执行,禁止按固定关键词做硬编码分流。

用户意图scene
查库存wms.inventory.query
查仓库wms.warehouse.options
查货主wms.owner.options
查库存日志wms.stock.log.query
查订单池/订单池配置wms.order.pool.query
查订单/这个月订单/本月订单wms.order.query
查订单完成情况与异常(含出库订单进展)wms.order.query
查未发货订单/待发货订单/出库订单列表wms.order.query
查任务完成情况与异常wms.task.query
查库内绩效/拣货绩效/绩效报表wms.performance.query
查进销存(新)/进销存报表/IOS(New) 报表wms.ios.new.query
调用字段:sceneuserInputparamstenantKey/openId 由运行时注入)。


4) Call Patterns (Must Follow)

4.1 首轮

  • 查库存:
{"scene":"wms.inventory.query","userInput":"我要查库存","params":{}}
  • 查订单池:
{"scene":"wms.order.pool.query","userInput":"查下我的订单池","params":{}}
  • 查订单完成情况:
{"scene":"wms.order.query","userInput":"查询近一个月出库订单完成情况","params":{}}
  • 查订单状态(通用):
{"scene":"wms.order.query","userInput":"查询订单状态","params":{}}
  • 查任务完成情况:
{"scene":"wms.task.query","userInput":"查询任务完成情况并排查异常","params":{}}
  • 查库内绩效:
{"scene":"wms.performance.query","userInput":"查询库内绩效","params":{}}
  • 查进销存(新):
{"scene":"wms.ios.new.query","userInput":"查询进销存(新)报表","params":{}}
  • 查进销存报表(不带“新”):
{"scene":"wms.ios.new.query","userInput":"我要查进销存报表","params":{}}
  • 查仓库:
{"scene":"wms.warehouse.options","userInput":"查下仓库","params":{}}
  • 查货主:
{"scene":"wms.owner.options","userInput":"查下货主","params":{}}

4.2 选择/翻页回合(关键)

当上一轮结果是 choose_warehouse / choose_owner,用户回复 1/2/0/9/...

  • 必须再次调用同一 scene;
  • userInput 原样传用户数字;
  • params 不得清空:必须保留上一轮已确定的时间与筛选参数;只是不在本地猜编码。

示例:

{"scene":"wms.inventory.query","userInput":"2","params":{}}
{"scene":"wms.inventory.query","userInput":"0","params":{}}

禁止行为:

  • 直接输出“第 2 页内容”而不调工具
  • 直接把 2warehouseCode/ownerCode

5) Result Handling

按顺序处理:

  • assistantReplyLines 非空:直接输出。
  • AUTH_REQUIRED/AUTH_EXPIRED 且无 assistantReplyLines:提示需要授权,并输出 authorizationGuide.verificationUri(若有)。
输出要求:必须按以下模板原样输出链接,禁止只输出“点击登录授权”纯文本: 点击登录授权
  • WAREHOUSE_REQUIRED:优先调用 wms.warehouse.optionsparams:{})拿候选仓库。
- 若 wms.warehouse.options 仍返回 WAREHOUSE_REQUIRED(尤其 message 含“请先提供仓库编码”): - 视为后端契约异常(候选接口不可用),必须立即停止继续工具调用; - 明确告知“当前后端候选仓接口异常,无法返回可选仓库列表”,建议用户联系管理员修复; - 禁止继续要求用户反复手输仓库编码(WH001/SAAS01 等)并重试。
  • OWNER_REQUIRED:若已知仓库,先调 wms.owner.options(仅带 warehouseCode)拿候选货主。
  • 其他失败:输出 message,并给“重试/切换条件”的下一步。

6) Inventory Constraints

  • wms.inventory.query 合法参数:warehouseCodeownerCodeskusqueryMode
  • 新一轮“查库存”不要复用旧轮仓库/货主;先走工具引导。
  • 有候选列表时,不要求用户手填编码。
  • wms.inventory.query 返回 assistantReplyLines 为空时,库存描述优先使用 data.queryOwnerNamedata.queryOwnerCodedata.ownerScoped
  • data.ownerScoped=falsedata.queryOwnerCode 为空时,必须描述为“全部货主”,禁止从 data.inventoryRows 的前几行推断某个具体货主。
  • 当返回包含 data.resultNote 时,回复中必须包含该说明,帮助用户理解当前返回范围。
  • data.resultTruncated=true 时,必须明确告知“当前仅返回默认第 1 页(pageNo=1,pageSize=200)”,避免用户误解为全量结果。

7) Stock Log

wms.stock.log.queryassistantReplyLines 为空时:

  • 先结论
  • 再关键记录
  • 最后异常点(数量跳变/链路断点/可疑操作)

8) Order Pool

wms.order.pool.queryassistantReplyLines 为空时:

  • 必须先说明仓库(warehouseCode / warehouseName)与总订单数(totalOrders)。
  • 分类说明优先使用 classSummaryRows,每行至少包含:分类名(className)与订单数(orderCount)。
  • maxOrdersForWave / countPerWave / leftoverHandling 有值,需一并带出;为空时明确说明“未配置/为空”。
  • 波次开关使用 waveConfigRows:按 field + selected 输出(如 AUTO_ALLOCATEAUTO_RELEASE)。
  • ruleConfigAvailable=false,必须明确告知“当前仅拿到实时订单池与波次开关,未读取到规则配置明细”。
  • 若有 resultNote,回复中应包含该说明。

9) Order Status

wms.order.queryassistantReplyLines 为空时:

  • 先说明仓库(warehouseCode / warehouseName)与订单风险等级概况(highRiskSignalCountmediumRiskSignalCount)。
  • 订单统计优先使用 orderSummarytotalOrdersreturnedRowspageNopageSizecreateTimeFromcreateTimeTo)。
  • 状态分布优先使用 stageSummaryRowsstatusSummaryRows,不得臆测不存在的看板字段。
  • 订单样例引用 sampleOrders(如 orderCodestageCodestatusCodeapplyStageCodeshortageshortShip)。
  • 异常结论优先基于 anomalySignals:按 severity=HIGH/MEDIUM/LOW 分层说明,并给出排查优先级。
  • 若有 resultNote,回复中应包含该说明。

10) Task Status

wms.task.queryassistantReplyLines 为空时:

  • 先说明仓库(warehouseCode / warehouseName)与任务风险等级概况(highRiskSignalCountmediumRiskSignalCount)。
  • 任务统计使用 taskSummarytaskTypeCounttotalTasksreleasedTasksassignedTasksheldTaskssuspendedTasks)。
  • 任务类型明细使用 taskTypeRowstaskTypereleasedassignedheldsuspendedtotal)。
  • 异常结论优先基于 anomalySignals:按 severity=HIGH/MEDIUM/LOW 分层说明,并给出排查优先级。
  • 若有 resultNote,回复中应包含该说明。

11) Performance Report

wms.performance.queryassistantReplyLines 为空时:

  • 优先说明仓库(warehouseCode / warehouseName)与统计时间范围(pickTimeFrompickTimeTo)。
  • 汇总优先使用 summaryb2cSingleQtyb2cMultiQtyb2bQtyotherQtyskuSpeciesskuQty)。
  • 明细优先使用 rows,按操作员输出 operatorName 与上述 6 个绩效指标。
  • 若返回分页字段(如 pageNopageSizetotalCount),需明确告知当前页与总条数。
  • 若有 resultNote,回复中应包含该说明。

12) IOS(New) Report

wms.ios.new.queryassistantReplyLines 为空时:

  • 优先说明仓库(warehouseCode / warehouseName)、货主(ownerCode / ownerName)与时间范围(startDateendDate)。
  • 汇总优先使用 totals(至少包含 beginBalanceendBalanceb2cOrderQtyb2bOrderQtysupplierReceiptQtyreturnReceiptQty)。
  • 明细优先使用 rows,按 SKU 输出 skuCodeskuStatusCodebeginBalanceendBalanceb2cOrderQtyb2bOrderQtysupplierReceiptQty
  • 若返回分页字段(pageNopageSizetotalCount),需明确告知当前页与总条数。
  • 若有 resultNote,回复中应包含该说明。
数据来源:ClawHub ↗ · 中文优化:龙虾技能库