# 采购寻源

> 1688采购询盘寻源能力。当用户有模糊的采购需求但尚未选定具体商品时，通过描述商品名称、数量和需求，发起采购询盘任务，由平台匹配合适的供应商和报价方案。 核心定位：采购前的询盘寻源阶段，帮助用户将模糊的采购意向转化为结构化询盘，获取供应商报价。 触发词：询盘、询价、寻源、采购咨询、发布采购需求、我有一批XX要采购谁能供货、求报价。 不触发场景：搜索浏览商品/选品/找同款/比价 → 1688-product-find；已选定具体商品要下单/支付/查订单 → 不处理；找供应商/找工厂 → 1688-source-suppliers。

- Skill: `ahang1598/skill-144` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add ahang1598/skill-144`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/skill-144/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/skill-144

---

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

