通过 Skill REST API 调用小雅核心能力,提供喜马拉雅平台的内容检索、用户画像与个性化推荐等能力。
| 能力 | 说明 | 用户示例 | 详细说明 |
|---|---|---|---|
| ------ | ------ | ---------- | ---------- |
| 音频搜索 | 在海量有声内容中搜索专辑、声音或主播,快速找到你想听的内容 | "搜一下盗墓笔记" "找郭德纲的相声" | search.md |
| 音频详情 | 查看节目简介、声音列表与用户评分,了解内容是否符合你的兴趣 | "这个专辑有哪些声音" | explore.md |
| 评价查询 | 查看专辑和声音的用户评论与评分,了解其他听众的真实反馈 | "这个专辑评价怎么样" "看看这集声音的评论" | explore.md |
| 热门榜单 | 浏览热门榜单与分类推荐,快速发现正在流行的优质有声内容 | "看看全站热播榜" "小说热门榜" | rank.md |
| 个人资产 | 查看最近收听、订阅更新与收藏内容,轻松找回你听过和关注的节目 | "我最近听了什么" "我的订阅" | user.md |
| 内容总结 | AI提炼节目核心内容与看点,帮你判断是否值得继续听下去 | "总结一下这集讲了什么" | ai.md |
| 个性推荐 | 根据你的收听习惯与兴趣偏好,为你推荐可能喜欢的有声内容 | "给我推荐点类似的" "首页推荐" | recommend.md |
根据用户意图参考对应说明文件了解工具参数、回包结构和工作流。
同步接口(一次性 JSON 响应)
POST https://api.ximalaya.com/xyos-api-service/api/v1/skill/execute
流式接口(SSE 流式响应)
POST https://api.ximalaya.com/xyos-api-service/api/v1/skill/execute/stream
> 内容总结类能力(contentSkills)必须使用流式接口,其余工具使用同步接口。
Authorization: Bearer $XIAOYA_API_KEYXIAOYA_API_KEY 从环境变量获取export XIAOYA_API_KEY=<你的 token>toolName 指定工具名称,业务参数必须放在 arguments 对象内,每次请求必须带 skill_versioncurl -X POST "https://api.ximalaya.com/xyos-api-service/api/v1/skill/execute" \
-H "Authorization: Bearer $XIAOYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"toolName": "hubSearch",
"arguments": {
"keyword": "盗墓笔记",
"size": 10,
"deviceId": "test-device"
},
"skill_version": "1.0.0"
}'
text/event-streamtoolName 指定工具名称,业务参数必须放在 arguments 对象内,每次请求必须带 skill_versioncurl -X POST "https://api.ximalaya.com/xyos-api-service/api/v1/skill/execute/stream" \
-H "Authorization: Bearer $XIAOYA_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{
"toolName": "contentSkills",
"arguments": {
"intent": "全书总结",
"agent": "xiaoya_copilot",
"agentScene": "PersonalHelper",
"contextInfo": {
"albumId": 27249251,
"trackId": 12345678,
"deepThinkMode": false
}
},
"skill_version": "1.0.0"
}'
正确:业务参数放在 arguments 对象内。
{"toolName":"hubSearch","arguments":{"deviceId":"test-device","keyword":"盗墓笔记","size":10},"skill_version":"1.0.0"}
错误:不要把业务参数平铺在 body 顶层。
{"toolName":"hubSearch","deviceId":"test-device","keyword":"盗墓笔记","size":10,"skill_version":"1.0.0"}
上面的错误写法会导致参数未被正确解析,工具返回错误。
success 为 false 时表示错误,参考 error 字段排查result 为工具执行结果,类型由具体工具决定| 返回类型 | 工具 | 说明 |
|---|---|---|
| ---------- | ------ | ------ |
| JSON 对象 | hubSearch | 结构化对象,含 albums、tracks、topContent 等字段 |
| 格式化文本 | 其余所有工具 | 中文格式化文本,含编号列表、字段标签等,直接透传 |
JSON 类结果示例(hubSearch):
{
"success": true,
"toolName": "hubSearch",
"result": {
"albums": [...],
"tracks": [...],
"topContent": "album"
}
}
文本类结果示例(queryRankList):
{
"success": true,
"toolName": "queryRankList",
"result": "1. 专辑 《盗墓笔记》的ID是 27249251 ,它创建于2023-01-01 00:00:00,属于悬疑分类,由主播 xxx 倾情演播..."
}
> 文本型 result 为原始格式化字符串,展示时直接按行输出即可,无需额外解析。如需构造深度链接,从文本中提取 albumId / trackId 数字。
event 和 data 字段推送生成内容event: message
data: {"content":"《明朝那些事儿》主要讲述了..."}
event: message
data: {"content":"从朱元璋的出身讲起..."}
event: suggest
data: {"suggestions":["继续听下一集","查看作者其他作品"]}
各工具的详细返回格式见对应说明文件(search.md、explore.md、rank.md、user.md、ai.md、recommend.md)。
"skill_version": "1.0.0"(取本文件顶部 version 字段的值),用于服务端检查版本更新。如果回包中出现 upgrade_info 字段,必须立即暂停当前操作,按照 upgrade_info.message 中的指引完成升级,升级完成后再重新执行用户请求,不得忽略该字段arguments 对象内,和 toolName、skill_version 放在同一层。不要直接把业务参数平铺在 body 顶层,也不要包在 params、data、body 等对象里。只有接口文档明确声明的数组/对象字段才允许作为业务字段传入 arguments。search.md,用户数据先读 user.md),确认工具参数、字段含义和工作流;禁止仅凭字段名或经验猜测含义。链接文本),禁止以纯文本字符串形式输出 URL质量分、推荐分、专辑ID、声音ID、评论ID、用户ID等内部标识与评分字段,仅用于内部排序、筛选、上下文记忆或构造深度链接,面向用户展示时不得主动以纯文本形式暴露。重点展示标题、主播、播放量、分类、简介、评论内容等用户感知度高的信息在展示专辑、声音等内容时,附上对应的跳转链接。链接拼接规则为固定逻辑,AI 可直接本地生成。
打开专辑
| 链接类型 | 格式 |
|---|---|
| ---------- | ------ |
| App 深度链接 | iting://open?msg_type=13&album_id={albumId}&isAutoPlayForce={autoPlay} |
| 网页链接 | https://www.ximalaya.com/album/{albumId} |
打开声音
| 链接类型 | 格式 |
|---|---|
| ---------- | ------ |
| App 深度链接 | iting://open?msg_type=11&track_id={trackId}&autoplay={autoPlay} |
| 网页链接 | https://www.ximalaya.com/sound/{trackId} |
| 参数 | 说明 | 来源 |
|---|---|---|
| ------ | ------ | ------ |
albumId | 专辑 ID | 各接口返回的 albumId |
trackId | 声音 ID | 各接口返回的 trackId |
autoPlay | 是否自动播放 | true / false |
客户端根据实际环境判断使用哪种链接,AI 不必同时输出两种:
iting:// 深度链接,无需额外提供网页链接。https://www.ximalaya.com/... 网页链接兜底。iting://,失败再回退到网页链接。所有深度链接和网页链接必须以 Markdown 超链接形式输出,严禁以纯文本字符串形式展示 URL。
| 正确(超链接) | 错误(纯文本) |
|---|---|
| --- | --- |
🎧 打开专辑 | iting://open?msg_type=13&album_id=27249251&isAutoPlayForce=false |
🌐 网页收听 | https://www.ximalaya.com/album/27249251 |
🎧 播放声音 | iting://open?msg_type=11&track_id=12345678&autoplay=true |
展示示例:
1. 《盗墓笔记》— 主播 青雪 — 播放量 12.3亿 [🎧 打开专辑](iting://open?msg_type=13&album_id=27249251&isAutoPlayForce=false)
> 链接文本建议使用简洁的中文描述(如"打开专辑""网页收听""播放声音"),让用户清楚链接的作用。
共 1 个版本