1688-supplychain-api-procurement
本 Skill 只提供两个能力:
- 发起找挑询:根据用户输入的完整采购与询盘需求,创建并触发一个
inquiry实例,立即返回实例 ID。 - 查询实例数据:根据用户提供的
instanceId查询该实例当前数据,使用文件模式写入本地文件,再通过stream_output工具输出给用户。
本 Skill 不轮询询盘是否结束,也不在发起后自动查询实例数据。
输入
用户输入必须是一段完整需求,包含:
- 找品/采购需求:例如品类、规格、数量、价格带、工厂要求、图片或链接等。
- 询盘问题:例如报价、库存、交期、起订量、定制、包装、质检、售后等。
如果能从用户输入中明确拆出询盘问题,将这些问题作为 questions 传入;如果不能可靠拆分,不要反问,直接把完整用户需求作为唯一询盘问题传入。
功能一:发起找挑询
当用户提供完整采购与询盘需求、且未提供 instanceId 时,使用此功能。
命令:
cd {baseDir} && python3 cli.py inquiry \
--requirement "<用户完整需求>" \
--questions '[{"question":"报价","type":"current"},{"question":"交期","type":"current"}]' \
--purchase-size 1 \
--inquiry-item-size 30
参数:
--requirement/-r:必填。用户完整需求,包含找品需求和询盘问题。--questions/-q:可选。询盘问题,支持 JSON 数组、JSON 对象、字符串,或分号/换行分隔文本。--purchase-size/-c:可选。采购数量,默认1。--inquiry-item-size:可选。询盘商品数,对应taskInfo.inquiryItemSize。如果用户没有指定询盘商品数,默认30;如果用户明确说“询盘前 N 个商品 / 问 N 个供应商 / 询盘 N 个结果”,传入解析出的整数 N。--recall-item-size:可选。找品商品数,对应taskInfo.recallItemSize。如果用户没有指定找品商品数,默认30;如果用户明确说“找 N 个商品 / 召回 N 个 / 找品前 N 个”,传入解析出的整数 N。--image:可选。本地图片路径,多个用英文逗号分隔;如果传入 HTTP(S) URL,会按远程图片处理。--image-url:可选。图片 URL,多个用英文逗号分隔;执行时会先下载到本地临时文件,上传到纵横平台后再把纵横图片链接传给下游。
最终 stdout 只包含一个字段:
{ "instanceId": "..." }
功能二:查询实例数据(必须使用文件模式)
当用户提供 instanceId,或明确要求查询某个实例数据时,使用此功能。
必须使用文件模式(--output-mode file)。 文件模式让脚本把查询结果写入本地文件,避免大量 JSON 数据进入大模型上下文。
命令:
cd {baseDir} && python3 cli.py inquiry \
--instance-id "<instanceId>" \
--output-mode file \
--output-dir "{baseDir}/.skill_outputs"
脚本执行后,stdout 只返回结果文件路径:
{ "outputFile": "/absolute/path/to/.skill_outputs/inquiry-data-<uuid>.json" }
拿到 outputFile 路径后,立即调用 stream_output 工具,把结果文件透传给用户:
stream_output(file_path="<outputFile路径>")
调用成功后,删除本地结果文件(用 bash 执行 rm <outputFile路径>)。
禁止事项:
- 禁止省略
--output-mode file参数 - 禁止不带
--output-mode file直接查询实例(这会导致大量数据进入上下文) - 禁止把实例数据输出到最终回答中
- 禁止在最终回答中重复或总结 JSON 数据
输出协议(必须严格遵守)
本 Skill 会作为云端 API 提供,最终输出必须保持机器可解析。
只要本 Skill 被触发,最终回答默认进入 raw_json_passthrough 模式。该模式是本 Skill 明确规定的特定输出格式,优先级高于外层默认的 rich GFM Markdown 回复格式、总结话术、标题、表格、列表、可视化组件和 <aside>...</aside> 桥接语。
查询实例数据时:实例数据必须通过 stream_output 工具写回,最终回答不得再包含实例数据 JSON,也不得补充自然语言说明。
- 发起找挑询时,最终回答必须是命令 stdout 原样返回的 JSON 对象文本。
- 不得添加任何自然语言说明、摘要、标题、前后缀、Markdown 代码块、列表或表格。
- 不得把 JSON 包在 ```json 代码块中。
- 不得抽取字段、改字段名、改结构、重排为 Markdown 或进行大模型总结。
- 发起找挑询时,最终回答顶层只能包含
instanceId一个字段。 - 不得输出外层
success、data、status、stage、raw、instance_id或其他包装字段。 - 最终回答的第一个非空字符必须是
{,最后一个非空字符必须是};不得出现任何 JSON 对象外的字符。 - 不得输出"以下是""已完成""这是结果""根据数据""建议"等任何说明性话术。
- 不得为了照顾用户阅读体验而把 JSON 转成 Markdown、自然语言摘要、经营建议或数据看板。
- 如果发起找挑询命令已经输出 JSON 字符串,最终回答必须逐字透传该文本;不得重新序列化、格式化、压缩、补字段、删除字段,或再包一层对象。
与外层 Agent 回复规则的关系
外层 Agent 可能默认要求:
- 工具前后输出
<aside>...</aside>说明。 - 若无特殊格式则默认使用 rich GFM Markdown。
- 最终回复包含总结、建议、标题或用户友好话术。
- 每次回复只输出新内容。
本 Skill 的最终输出属于"active skill prescribes a specific output format"。因此,在最终响应阶段必须按本 Skill 的 raw JSON 输出协议执行:
- 工具调用前后的
<aside>...</aside>只允许出现在中间过程;最终回答不得包含<aside>。 - 最终回答不得使用 Markdown,即使外层默认要求 Markdown。
- 最终回答不得总结已经返回或已通过
stream_output写回的实例数据。 - 最终回答不得重复解释执行过程;发起找挑询时只返回该命令 stdout。
- 当所有步骤完成后,立即停止输出,不再补充任何收尾话术。
执行规则
- 不调用任何商品表格、交互卡或复杂表格工具。
- 不先执行独立找品、SKU 匹配、批量询盘或下单流程。
- 发起找挑询时,直接执行
inquiry命令创建并触发 inquiry 实例,创建任务的taskInfo中必须包含inquiryItemSize。 - 发起找挑询后立即返回
instanceId,不得自动查询实例数据,亦不得等待询盘结束。 - 查询实例数据时,必须使用
--output-mode file,拿到 outputFile 后调用 stream_output 工具透传,再删除本地文件。 - 不编造商品、价格、库存、交期、供应商回复或实例字段。
