> CRITICAL —— 跑命令前 MUST 先用 Read tool 读取 ../wangxiaobao-shared/SKILL.md(一份共享文档讲清安装 / 登录 / 选项目 / 错误码 / 输出协议等所有 xiaobao-cli 命令通用的前置约定)。
只读探查录音。没有副作用——不写 wiki / 不推游标,
所以用错也没成本,鼓励放心调用。
xiaobao-cli auth whoami,未登录 / 过期就走 auth login --no-wait split-flow(见 wangxiaobao-shared) ~/.xiaobao/active-project.json 读,调用方不需要传任何
tenant/project 参数。如果 命令 返回 error: 'NO_ACTIVE_PROJECT',
让用户跑 wangxiaobao-switch-project skill 后再重试
那是 wangxiaobao-audio-wiki 的事,本 skill 一旦写盘就破坏了"只读"承诺
yyyy-MM-dd HH:mm:ss(空格分隔,不带时区)。 pierre 框架的 Jackson 反序列化只认这个格式;带 T 或 +08:00 会被 CLI
容错处理,但传空格形式最稳
| 用户意图 | 命令 | 关键参数 |
|---|---|---|
| ---------------------- | -------------------------- | ----------------------------------------- |
| 列某时段所有录音元数据 | xiaobao-cli audio list | --from / --to |
| 列某销售的录音 | xiaobao-cli audio list | + --user-id (多个销售用 --user-id-list) |
| 反查销售 user-id | xiaobao-cli consultant list | 无参(拿当前用户授权范围内的所有顾问) |
| 看总数 / 估个量 | xiaobao-cli audio list | --page 1 --size 1,只读 total |
| 翻页继续看 | xiaobao-cli audio list | --page 递增 |
| 看某条录音转录预览 | xiaobao-cli audio text | --audio-id(从 list_audio 结果拿) |
命令 参数里没有 tenantId / projectId —— CLI 内部从激活项目状态读。
如果还没激活过项目,跑 wangxiaobao-switch-project skill 先设一次。
当用户没给具体时间,按用户的话推断一个能覆盖意图的窗口,而不是默认拉
最近 N 天造成超时。常见映射:
| 用户说法 | 解析 |
|---|---|
| -------------- | ----------------------------------------------------- |
| "今天的录音" | from = 今天 00:00:00, to = now |
| "上周二的录音" | from = 上周二 00:00:00, to = 上周三 00:00:00 |
| "5 月份的" | from = 2026-05-01 00:00:00, to = 2026-06-01 00:00:00 |
| "最近几条" | from = now - 1 day, to = now, size = 10 |
用户明确给时间时直接用,不要二次猜测。
PageParam 默认 --page 1 --size 10,传 page: 0 上游会报错。读 total +
当前 page * size 判断是否还有下一页,需要时翻页;浏览概览时第 1 页通常
够用。--size 上限 500(schema 已限制),预览展示建议 20。
不带 --user-id / --user-id-list 就拉所有人的录音。要筛某个销售:
--user-id (单个)或 userIdList: [(多个)
xiaobao-cli consultant list(无参),拿到当前用户 授权范围内的所有顾问(含 --user-name / --user-id),按名字 match 后取 --user-id
传给 xiaobao-cli audio list
> 已弃用做法:"先 list_audio 不带 filter,再扫 content[].saleName 反查"——
> 这种 hack 在录音数据稀疏 / 时间窗短时找不到目标销售。**改用
> xiaobao-cli consultant list 反查**,精确且快。
xiaobao-cli audio text 一次拿一条录音的转录。**只在用户挑了具体某条之
后再调**,不要 list 完顺手把每条都 get_audio_text 一遍——那是 sync skill
的事。一次会话 1-3 条样本预览足够。
xiaobao-cli audio list 和 xiaobao-cli audio text 都返回 pierre 框架的
Result 包:
{
"code": "0", // 业务状态码,"0" 是成功
"msg": "success",
"data": { ... } // 真正的 payload
}
list_audio 里 data 又是 PageResult:
{ page, size, total, content[] },所以取元数据数组要写
resp.data.data.content(命令 不展开 envelope,原样返回)。
xiaobao-cli audio list --from "2026-05-12 00:00:00" --to "2026-05-12 23:59:59" --page 1 --size 20
渲染给用户(按 startTime desc,audioId 必须显示——后面取文本要用):
共 145 条录音(第 1/8 页)
1. 张三 · 2026-05-12 10:23:11 ~ 10:35:42(12 分钟) · audioId=12345
2. 李四 · 2026-05-12 09:50:00 ~ 10:02:15(12 分钟) · audioId=12344
3. 王五 · 2026-05-12 09:10:00 ~ 09:25:11(15 分钟) · audioId=12343
...
只关心 total,第 1 页就够:
xiaobao-cli audio list --from "2026-05-10 00:00:00" --to "2026-05-12 00:00:00" --page 1 --size 1
回复:「周末两天共 23 条录音,主要集中在周日下午」。
用户从场景 1 列表里挑了序号 1(audioId=12345):
xiaobao-cli audio text 12345
渲染:
audioId 12345 · 张三 · 2026-05-12 10:23:11(12 分钟)
说话人占比:销售 62% / 客户 38%
转录:
[10:23:15] 销售:您好张总,我是旺小宝的小张,咱们那个项目...
[10:23:22] 客户:嗯嗯你说
[10:23:25] 销售:周末方便过来看下样板间吗?
...
用户说"张三本周打了几个"——只知道名字:
xiaobao-cli consultant list(无参)→ 拿到 [{ userId, userName, ... }, ...]userName === "张三" 的 --user-idxiaobao-cli audio list 带 --user-id <张三的 userId> + 本周时间窗# step 1: 反查张三的 user-id
xiaobao-cli consultant list
# step 2: 假设找到张三的 userId = 100
# step 3: 用 --user-id 过滤
xiaobao-cli audio list --from "2026-05-06 00:00:00" --to "2026-05-13 00:00:00" --user-id 100 --page 1 --size 20
如果 list-consultants 里找不到张三——说明当前登录用户没权限看张三
(不在管理范围内 / 不在团队里)。提示用户"当前账号无权访问销售『张三』",
不要硬调 list-audio 假装搜(也会因 dataPermission 拿不到)。
code: "400" / msg: "消息转换异常" — fromDate/toDate 格式不对。 必须 yyyy-MM-dd HH:mm:ss 空格分隔,不带时区。
auth login --no-wait --force split-flow 重登,重试一次。total: 0 — 时间窗口里确实没数据,或激活的租户/项目错了。 让用户跑 wangxiaobao-switch-project skill 确认或重新激活项目。
error: 'NO_ACTIVE_PROJECT' — 还没设过激活项目。让用户跑 wangxiaobao-switch-project skill 后重试本 skill。
--page 是不是从 1 开始(不是 0), page * size > total 时已经到末页。
saleName 是空的 — 上游 user info 缺失,可以只用 --user-id 标识,跟用户说"该录音的销售信息上游缺失"。
wangxiaobao-audio-wiki的事(带写文件 + 推游标),本 skill 设计上每次会话最多预览 1-3 条。
共 4 个版本