1688 采购询盘寻源
处理边界
本 Skill 采用 MCP 调用 + Python 后处理 两段式流程:
- 鉴权与 API 调用全部交给 MCP 连接器
ali1688-buyer。Agent 不处理 AK、本地 Token、browser_use 授权、签名或 HTTP 请求。 - 结果后处理必须交给 Python 脚本。Agent 不直接把 MCP 原始返回改写为最终成功/失败输出。
MCP 连接器
- 连接器名称:
ali1688-buyer - 本技能使用的 MCP 工具:
1688_procurement_digital_human_tool __userId__等用户身份参数由 MCP 网关自动注入,Agent 不手动传递。
命令入口
统一入口:
python3 {baseDir}/cli.py procurement \
--offerName "衣服" \
--count "10" \
--demand "价格便宜" \
--mcp-result-file /tmp/procurement.json
也支持 stdin:
cat /tmp/procurement.json | python3 {baseDir}/cli.py procurement -n "衣服" -c "10" -d "价格便宜"
所有命令输出 JSON:
{"success": true, "markdown": "...", "data": {...}}
Agent 展示给用户时必须完整输出 markdown 字段;后续分析使用 data.data.raw。
严格禁止
- 禁止配置、读取、提示用户粘贴或管理 AK。
- 禁止调用旧
_http.py、旧鉴权脚本、浏览器或网页搜索引擎请求 1688 询盘接口。 - 禁止在 MCP 调用失败后自行通过外部网站补充商品或供应商信息。
- 禁止由 AI 直接改写 MCP 原始返回为最终结果;必须调用 Python 后处理脚本输出
markdown。 - 禁止编造商品价格、链接、规格、供应商报价或供货信息。
- 用户已选定具体商品、有 offerId/商品链接且要下单时,不触发本技能。
意图判断
技能定位与边界
本技能的核心场景:用户有采购需求但尚未选定具体商品或供应商,需要发布询盘让平台帮忙匹配。
采购旅程:模糊需求 → 搜索选品 → 找供应商 → 询盘寻源 → 下单交易
↓ ↓ ↓ ↓ ↓
不触发 product-find source-suppliers 本技能 不处理
| 判断维度 | 本技能(询盘寻源) | 智能选品 | 下单支付 |
|---|---|---|---|
| 用户阶段 | 有采购意向,未选定商品 | 搜索浏览,货比三家 | 已选定商品,要下单付款 |
| 商品确定性 | 模糊描述(衣服、螺丝) | 可模糊可具体 | 已有具体商品ID/链接 |
| 核心动作 | 发布询盘、求报价 | 搜索、浏览、比较 | 下单、支付、查订单 |
触发本技能
- 用户明确表达“询盘”“询价”“求报价”“发布采购需求”等寻源类表述。
- 用户描述采购需求(商品名称 + 数量 + 要求),但没有提供具体商品 ID、商品链接或已选定商品。
- 用户表达“谁能供货”“有没有厂家能做”“哪里能采购到”等寻源意图。
不触发本技能
| 用户表述 | 转交技能 | 原因 |
|---|---|---|
| 帮我搜一下黑色卫衣 | 1688-product-find |
搜索浏览商品,非询盘 |
| 帮我找同款 / 以图搜图 / 比价 | 1688-product-find |
选品比价,非询盘 |
| 帮我下单这个商品 / 商品链接是 xxx | 不处理或交给订单技能 | 已有具体商品,直接交易 |
| 帮我找做保温杯的供应商 | 1688-source-suppliers |
找供应商信息 |
| 查物流 / 支付订单 | 不处理 | 非本技能范围 |
参数提取规则
Agent 需从用户自然语言中提取:
| 参数 | 必填 | 说明 |
|---|---|---|
offerName |
是 | 商品名称,如“衣服”“螺丝” |
count |
是 | 采购数量,必须是纯数字,不能包含单位 |
demand |
是 | 采购需求描述,如“价格便宜”“304不锈钢,要求包邮” |
imageUrl |
否 | 商品图片 URL,可选 |
count 必须只传数字:用户说“500斤”时传 "500",不要传 "500斤"。
字段缺失时必须先追问:
- 缺
offerName→ “请问您要采购什么商品?” - 缺
count→ “请问您大概需要采购多少?” - 缺
demand→ “请问您对商品有什么要求?(如价格、材质、发货速度等)”
执行流程
步骤1: 识别询盘意图,并提取 offerName / count / demand
步骤2: 若字段缺失,先追问补齐;字段齐全后调用 MCP 工具
1688_procurement_digital_human_tool(offerName="衣服", count="10", demand="价格便宜")
步骤3: MCP 成功后,将原始 JSON 写入临时文件或传给 stdin
步骤4: 调用 Python 后处理
python3 {baseDir}/cli.py procurement -n "衣服" -c "10" -d "价格便宜" --mcp-result-file /tmp/procurement.json
步骤5: 完整输出脚本返回的 markdown
Python 后处理职责
原有询盘后处理逻辑保留在:
scripts/capabilities/procurement/service.py
Python 脚本负责:
- 校验
offerName、count、demand是否齐全。 - 校验
count是否为纯数字。 - 解开 MCP / JSON-RPC 常见包装。
- 识别 MCP 工具失败返回并转为标准错误。
- 生成稳定成功 Markdown:
- 商品名称
- 采购数量
- 采购需求
- 将 MCP 原始返回保存在
data.data.raw中。
Agent 不得复刻或替代以上逻辑。
输出格式
成功输出
✅ 采购任务已创建
- **商品名称**: 衣服
- **采购数量**: 10
- **采购需求**: 价格便宜
输出完整性
- Agent 必须完整输出 Python 脚本返回的
markdown字段。 - Agent 的补充说明只能追加在
markdown之后。 - 失败时直接输出脚本返回的错误,不追加推测。
写入安全
1688_procurement_digital_human_tool 会创建采购询盘任务,属于写入类操作。
- 当商品名称、数量、需求明确时可直接执行。
- 信息缺失时必须先追问补齐。
- 不擅自扩写、改写用户的原始意图;如需调整,应明确告知并征得用户认可。
错误处理
MCP 调用失败
- 原样展示 MCP 返回的错误信息。
- 鉴权、401、Forbidden、token 过期等错误:提示用户检查
ali1688-buyer连接器 OAuth 授权,必要时在连接器设置中重新授权。 - 限流、超时、服务异常:提示稍后重试。
- 禁止提示用户配置 AK。
- 禁止浏览器、网页搜索或旧 HTTP 脚本降级。
Python 后处理失败
| 错误关键词 | Agent 额外动作 |
|---|---|
offerName 不能为空 |
询问用户要采购什么商品 |
count 不能为空 |
询问用户大概需要采购多少 |
count 必须是纯数字 |
提醒用户数量不要带单位,并重新确认数字 |
demand 不能为空 |
询问用户对商品有什么要求 |
| MCP 返回格式异常 | 提示稍后重试 |
| 其他 | 仅输出脚本返回的 markdown |
参数补齐引导话术
发起采购询盘需要这几个信息:商品名称、采购数量、采购需求。您可以直接告诉我,例如:我需要采购10件衣服,要求价格便宜,帮我询个价。
免责声明
本技能通过 1688 平台接口发起采购询盘,所有商品信息、供应商报价均来自平台返回结果。Agent 不对商品质量、价格准确性、供应商资质做任何保证,用户应自行核实并承担交易风险。