inquiry-analyzer
# 阿里巴巴询盘分析技能
分析阿里巴巴国际站询盘数据,提取产品分类、客户信息、国家等关键字段,生成结构化 Markdown 和 CSV 报告。
## 安装配置
### 环境变量(可选)
skill 目录是自包含的,无需配置即可运行。如需指定外部路径,可设置环境变量:
```bash
# Windows
set INQUIRY_ANALYZER_PATH=E:\OpenClaw\inquiry-analyzer
# Linux/macOS
export INQUIRY_ANALYZER_PATH=/path/to/inquiry-analyzer
```
### 目录结构(自包含模式)
```
inquiry-analyzer-skill/
├── SKILL.md # 本文档
├── lib/ # 核心库文件
│ ├── inquiry-analyzer.js # 询盘分析主脚本
│ ├── okki-background.js # OKKI 背调分析脚本
│ ├── product-groups.js # 产品分组动态获取模块
│ └── product-mapping.js # 产品分组配置向导模块
├── reports/ # MD 报告输出(运行时创建)
├── csv-reports/ # CSV 报告输出(运行时创建)
├── okki-reports/ # OKKI 背调报告输出(运行时创建)
└── scripts/ # 入口脚本
├── run-analysis.js # 询盘分析入口
├── run-okki.js # OKKI 背调入口
└── merge-reports.js # 报告合并入口
```
**自包含说明:** skill 目录包含所有必需文件,无需外部依赖即可运行。
### 路径查找机制
入口脚本按以下顺序查找主脚本:
1. **自包含模式** — 上级目录的 `lib/` 文件夹
2. **环境变量** `INQUIRY_ANALYZER_PATH`
3. **常见位置** — `E:\OpenClaw\inquiry-analyzer`、用户目录等
## 前提条件
### 1. 启动 OpenClaw 浏览器
**步骤 1:查看可用浏览器配置文件**
```bash
openclaw browser profiles
```
**结果示例:**
```
openclaw: stopped
port: 18800, color: #FF4500 ← 专用浏览器
chrome: running (0 tabs) [default]
port: 18792, color: #00AA00 ← Chrome 扩展模式
```
**步骤 2:启动专用浏览器**
```bash
openclaw browser start --browser-profile openclaw
```
**步骤 3:确认浏览器状态**
```bash
openclaw browser status --browser-profile openclaw
```
关键字段:
- `running: true` — 浏览器已启动
- `cdpPort: 18800` — CDP 端口号
- `cdpUrl: http://127.0.0.1:18800` — 连接地址
### 2. 登录阿里巴巴
在 OpenClaw 浏览器中登录阿里巴巴账号,确保登录状态有效。
### 3. 常用命令速查
| 命令 | 说明 |
|------|------|
| `openclaw browser profiles` | 查看所有配置文件及端口 |
| `openclaw browser start --browser-profile openclaw` | 启动专用浏览器 |
| `openclaw browser status --browser-profile openclaw` | 查看浏览器状态 |
| `openclaw browser stop --browser-profile openclaw` | 停止浏览器 |
| `openclaw browser tabs --browser-profile openclaw` | 查看当前标签页 |
### 4. 故障排除
**问题 1:Chrome 扩展模式连接失败**
```
Chrome extension relay is running, but no tab is connected.
```
解决方案:改用专用浏览器模式
```bash
openclaw browser start --browser-profile openclaw
```
**问题 2:Gateway 超时**
```
Error: gateway timeout after 1500ms
```
解决方案:启动 Gateway
```bash
openclaw gateway --force
```
**问题 3:端口被占用**
```bash
openclaw browser stop --browser-profile openclaw
openclaw browser start --browser-profile openclaw
```
**问题 4:找不到主脚本**
```
错误: 无法找到 inquiry-analyzer.js
```
解决方案:设置环境变量 `INQUIRY_ANALYZER_PATH` 指向 `inquiry-analyzer` 目录
## 使用方法
### 询盘分析
```bash
# 基本用法:分析指定询盘单号
node run-analysis.js <询盘单号>
# 指定时间窗口
node run-analysis.js <询盘单号> <开始时间> <结束时间>
# 示例
node run-analysis.js 50000126101155
node run-analysis.js 50000126101155 "2026-03-26T15:00:00" "2026-03-27T15:00:00"
```
### OKKI 背调分析
```bash
# 基本用法:对指定询盘进行背调分析
node run-okki.js <询盘单号>
# 指定时间窗口
node run-okki.js <询盘单号> <开始时间> <结束时间>
# 示例
node run-okki.js 50000126101155
node run-okki.js 50000126101155 "2026-03-26T15:00:00" "2026-03-27T15:00:00"
```
### 合并报告
```bash
# 将询盘报告和OKKI背调报告合并
node merge-reports.js <询盘单号>
# 示例
node merge-reports.js 50000126101155
```
## 参数说明
| 参数 | 说明 | 示例 |
|------|------|------|
| 询盘单号 | 目标询盘的ID,分析该询盘及以上所有询盘 | 50000126101155 |
| 开始时间 | 时间窗口开始(可选) | "2026-03-26T15:00:00" |
| 结束时间 | 时间窗口结束(可选) | "2026-03-27T15:00:00" |
## 输出文件
### 询盘分析输出
| 文件 | 位置 | 说明 |
|------|------|------|
| MD报告 | reports/inquiry-report-*.md | Markdown 格式的询盘分析报告 |
| CSV报告 | csv-reports/inquiry-report-*.csv | Excel 友好的 CSV 格式报告 |
| 聊天记录 | chats/inquiry-*.txt | 原始聊天记录文本 |
### OKKI 背调输出
| 文件 | 位置 | 说明 |
|------|------|------|
| MD报告 | okki-reports/okki-report-*.md | Markdown 格式的背调报告 |
| CSV报告 | okki-reports/okki-report-*.csv | Excel 友好的 CSV 格式报告 |
### 合并报告输出
| 文件 | 位置 | 说明 |
|------|------|------|
| MD报告 | reports/merged-report-*.md | 合并后的完整报告 |
| CSV报告 | csv-reports/merged-report-*.csv | Excel 友好的 CSV 格式 |
## 报告字段
| 字段 | 说明 |
|------|------|
| 询盘单号 | 询盘唯一标识 |
| 月份 | 登记月份 |
| 登记日期 | 询盘日期 |
| 询盘回复人 | 业务员姓名 |
| 产品型号 | 产品分类(厨房橱柜/工具柜/户外厨房等) |
| 时间段 | 询盘时间 |
| 客户类型 | 有效客户/已读未回/未读未回 |
| 国家 | 客户所在国家 |
| 客户名称 | 客户姓名或公司名 |
| L几 | 客户等级(L0-L4) |
## 产品分类
系统支持**动态产品分类**,自动从阿里巴巴产品管理页面获取您的产品分组列表:
### 分类流程
1. **缓存优先** — 使用本地缓存(7天有效)
2. **动态获取** — 从产品管理页面抓取所有分组名
3. **智能匹配** — 标题关键词 → 分组名匹配 → 产品类型
4. **搜索兜底** — 未命中时搜索产品分组页面
### 分类来源
| 来源 | 优先级 | 说明 |
|------|--------|------|
| 关键词匹配 | 1 | 内置产品关键词库 |
| 动态分组列表 | 2 | 从产品管理页面获取 |
| 产品搜索 | 3 | 在产品管理页面搜索标题 |
| 聊天内容分析 | 4 | 从聊天记录提取产品关键词 |
### 缓存文件
| 文件 | 说明 |
|------|------|
| `product-groups-cache.json` | 产品分组列表缓存(7天有效) |
| `product-mapping.json` | 用户自定义分组→产品类型映射 |
| `title-cache.json` | 标题分类缓存(每次运行清除) |
| `chat-products.json` | 聊天内容产品映射(可手动编辑) |
### 首次运行配置
首次运行时,系统会自动检测产品分组并为每个分组分配建议的产品类型:
```
[自动配置] 正在为分组分配建议类型...
Stainless Steel Kitchen Cabinet → 厨房橱柜
Outdoor Kitchen Shed → 箱体户外厨房
Tool Cabinet → 工具柜
...
[配置] 已保存映射到 product-mapping.json
```
如需自定义映射,可编辑 `product-mapping.json`:
```json
{
"version": "1.0",
"updatedAt": "2026-03-31T00:00:00.000Z",
"mapping": {
"Stainless Steel Kitchen Cabinet": "厨房橱柜",
"Outdoor Kitchen Shed": "箱体户外厨房",
"Tool Cabinet": "工具柜"
}
}
```
### 自定义分类
如需自定义产品分类映射,可编辑以下文件:
```bash
# 编辑用户自定义映射
# 格式:{ "分组名": "产品类型" }
notepad product-mapping.json
# 清除分组缓存(强制重新获取)
del product-groups-cache.json
# 清除映射配置(重新自动配置)
del product-mapping.json
```
## 安全说明
### child_process 使用声明
入口脚本使用 `child_process.spawn` 启动 Node.js 进程运行分析器:
- **用途**:隔离运行环境、传递命令行参数
- **安全性**:仅调用本地已知脚本,不执行任意命令
- **替代方案**:直接运行主脚本也可(需在正确目录下)
### Relay Token 配置
Relay Token 在主脚本中配置(`inquiry-analyzer.js`、`okki-background.js`),建议:
1. 生产环境使用环境变量覆盖
2. 不要在公开仓库中提交真实 Token
## 注意事项
1. **浏览器要求**:必须使用 OpenClaw 浏览器,禁止使用 Puppeteer/Playwright 直接启动浏览器(会触发阿里巴巴反爬)
2. **登录状态**:运行前确保已在阿里巴巴登录
3. **文件清理**:系统自动清理旧文件,每个目录只保留最近 10 个文件
标签
skill
ai