> CRITICAL —— 跑命令前 MUST 先用 Read tool 读取 ../wangxiaobao-shared/SKILL.md(一份共享文档讲清安装 / 登录 / 选项目 / 错误码 / 输出协议等所有 xiaobao-cli 命令通用的前置约定)。
跑 xiaobao-cli visit list 查当前激活项目的来访记录。
xiaobao-cli auth whoami;未登录就走 auth login --no-wait split-flow(见 wangxiaobao-shared)NO_ACTIVE_PROJECTyyyy-MM-dd HH:mm:ss(空格分隔),CLI 自动转| 用户意图 | 命令 | 关键参数 |
|---|---|---|
| ------------------------------ | ----------------------- | --------------------------------------- |
| 列时间窗内的全部来访 | xiaobao-cli visit list | --from / --to |
| 看某客户的来访历史 | xiaobao-cli customer list → xiaobao-cli visit list | --customer-id 反查的 wang_id |
| 按客户名字模糊找来访 | xiaobao-cli visit list | --customer-name 张 |
| 看某次来访的录音详情 | xiaobao-cli visit list | 直接读返回里的 audios[](含 fileUrl) |
| 估算总数 | xiaobao-cli visit list | --page 1 --size 1,只读 total |
用户说"李女士最近几次来访"——优先走两步:
xiaobao-cli customer list { customerName: "李女士" } 反查到 --customer-idxiaobao-cli visit list { customerId: } 拿来访历史直接传 --customer-name 也能用(后端 JOIN customer_profile 模糊匹配),但:
| 用户说法 | fromDate / toDate |
|---|---|
| ------------ | ------------------------------------------------ |
| "今天到访" | 今天 00:00:00 / 明天 00:00:00 |
| "本周来访" | 周一 00:00:00 / 今天 23:59:59 |
| "上周末" | 上周六 00:00:00 / 本周一 00:00:00 |
| "5 月份" | 2026-05-01 00:00:00 / 2026-06-01 00:00:00 |
| "最近 3 次" | 不传时间窗,只看 content[] 前 3 条 |
跟其他接口一样。
{
"code": "0",
"data": {
"page": 1, "size": 10, "total": 23,
"content": [
{
"visitId": "...",
"customerId": "1685535452481236993", // = wang_id,可传回 customers 查
"visitTime": "2023-07-30 14:01:03",
"visitCount": 1, // 第几次到访
"visitTimer": 1439184, // 来访总秒数
"audioCount": 3, // 关联录音条数(= audios.length)
"audios": [ // ★ 录音详情列表,按 startTime 升序
{
"audioId": 9001,
"fileId": "abc",
"startTime": "2023-07-30 14:01:15",
"endTime": "2023-07-30 14:08:42",
"duration": 447, // 秒
"fileSize": 3145728,
"hasValid": 1, // 0 无效 / 1 有效
"status": 4, // 0 转存中/1 转文本/2 待分析/3 分析中/4 完成
"userId": 270078834689187840,
"fileUrl": "https://oss.../abc?sign=..." // 18000 秒过期
}
],
"userId": 270078834689187840,
"userName": "兰鸿建", // 实际接待顾问
"belongUserId": ...,
"belongUserName": "兰鸿建", // 客户归属顾问(可能跟接待不同)
"userInfo": { /* 顾问详情 */ },
"pankeStatus": "已完成", // 盘客状态
"isPankeCompleted": 1,
"requireSpeechTotal": 8, "requireSpeechHit": 5,
"salesSpeechTotal": 12, "salesSpeechHit": 9
}
]
}
}
CLI 又包一层 → resp.data.data.content。
requireSpeechHitDetail / salesSpeechHitDetail 是 JSON 文本,默认不展示给用户
(除非用户明确问"具体哪条话术命中了")。
userId / userName = 实际接待(这次来访是谁陪同的)belongUserId / belongUserName = 客户归属(客户档案里登记的归属销售)正常情况两者一致;不一致时可能是:
用户问"张三接待了几个"——按 userId == 张三;问"张三名下客户来访"——按 belongUserId == 张三
(但本 命令当前不支持按 belongUserId 过滤,需先用 customers 反查再 customerId 过滤)。
xiaobao-cli visit list --from "2026-05-13 00:00:00" --to "2026-05-14 00:00:00"
渲染:
今天共 18 次到访(按时间倒序):
1. 屈哥 · 14:01 · 接待:兰鸿建 · 第 1 次 · 12 分 · 录音 3
2. 曹女士 · 13:45 · 接待:陈平 · 第 2 次 · 25 分 · 录音 2
...
# step 1: 反查 wang_id
xiaobao-cli customer list --customer-name 李女士 --size 20
# step 2: 假设找到 customerId = 270072120829026305
xiaobao-cli visit list --customer-id 270072120829026305 --page 1 --size 3
xiaobao-cli visit list --from "2026-05-10 00:00:00" --to "2026-05-12 00:00:00" --page 1 --size 50
后处理:按 hour 聚合 → 报告"周日下午 14-16 点是峰值"。
# 不知道具体客户 ID,先用名字模糊
xiaobao-cli visit list --customer-name 张 --from "2026-05-01 00:00:00" --size 20
回复:"姓张的客户 5 月来访共 8 次,分布在 3 位客户:张先生(133**0692) 来 3 次..."
xiaobao-cli visit list --customer-id 1685535452481236993 --page 1 --size 5
每条 visit 已带 audios[],不必再调 xiaobao-cli audio list:
屈哥 · 2023-07-30 14:01:03 · 接待:兰鸿建 · 12 分 · 3 条录音:
1. audioId=9001 · 14:01:15 ~ 14:08:42 · 7 分 · 状态:分析完成
fileUrl: https://oss.../abc?sign=...
2. audioId=9002 · 14:09:00 ~ 14:11:30 · 2 分 · 状态:分析完成
3. audioId=9003 · 14:12:00 ~ 14:15:30 · 3 分 · 状态:分析完成
> 想看某条录音的转录文本还是要单独调 xiaobao-cli audio text,
> audios[] 里只有元数据 + 签名 URL,没有 transcript。
error: 'NO_ACTIVE_PROJECT' — 跑 wangxiaobao-switch-project skillauth login --no-wait --force split-flow 重登total: 0 — 时间窗内确实没数据,或当前用户授权范围内没有匹配的接待顾问 改用 xiaobao-cli customer list 反查精确 customerId
必要时跟用户解释
共 3 个版本