🧪 Skills
audiobooklm
提供有声书创作与音频能力(ABS 读写、音效/音频检索、二创、音色推荐、章节角色分析等),通过 HTTP Streamable MCP 调用。
v0.0.6
Description
name: audiobooklm description: 提供有声书创作与音频能力(ABS 读写、音效/音频检索、二创、音色推荐、章节角色分析等),通过 HTTP Streamable MCP 调用。 homepage: https://aigc.ximalaya.com source: https://aigc.ximalaya.com/audiobooklm/mcp author: AudiobookLM metadata: { "clawdbot": { "emoji": "🎧", "requires": { "env": ["AUDIOBOOKLM_TOKEN"] }, "primaryEnv": "AUDIOBOOKLM_TOKEN" }, "openclaw": { "emoji": "🎧", "required_env": ["AUDIOBOOKLM_TOKEN"], "version": "0.0.6", "changelog": [ "修正 search_audio 的真实能力定义:先 mock 匹配,未命中再走 LLM+TTS 自动生成", "新增指定文本+指定音色ID的直合成实践:list_tts_voices -> synthesize_tts", "完善工具路由与边界:tools/list 动态探测、dialogue_split 与 chapter_character_analysis 入参/能力说明" ] } }
audiobooklm 技能说明(OpenClaw)
MCP 地址:https://aigc.ximalaya.com/audiobooklm/mcp
安装前注意事项(发布到 ClawHub 必带)
- 来源与信任
- 官方入口:
https://aigc.ximalaya.com - MCP 服务地址:
https://aigc.ximalaya.com/audiobooklm/mcp - 仅在你信任该域名与发布方时安装。
- 凭证配置
- 必需环境变量:
AUDIOBOOKLM_TOKEN(Bearer Token) - 建议使用测试账号或低权限 token,不要粘贴高权限生产 token。
- 建议定期轮换 token;发现泄露立即吊销并重建。
- 数据外发与合规
- 使用本技能时,输入文本、音频 URL、以及你提交的结构化数据会发送到
aigc.ximalaya.com。 - 不要上传未授权、涉密或敏感个人信息内容。
- 版权或隐私不明确的内容,先确认授权后再调用。
0. 首次使用引导(OpenClaw 必须先提示)
当用户首次使用本技能,或检测到未配置 token 时,OpenClaw 必须先提示以下内容,再进入工具调用:
- 请先访问 https://aigc.ximalaya.com 注册/登录账号。
- 进入个人中心创建 API Token(MCP / API Token)。
- 在 OpenClaw 配置 Bearer Token(
AUDIOBOOKLM_TOKEN),再继续使用本技能。
推荐提示文案(可直接复用):
使用 audiobooklm 前,请先到 https://aigc.ximalaya.com 登录并在个人中心创建 API Token,然后将 token 配置到 OpenClaw(Bearer Token / AUDIOBOOKLM_TOKEN)。配置完成后我再为你执行读取书籍、音效检索或二创操作。
1. 使用规则(必须遵守)
- 所有书籍/章节/音频/音效结论都必须来自本轮真实工具返回,禁止编造。
- 调用成功不等于业务成功:若工具返回文本里包含
{"success":false}或code!=20000,按失败处理并转述真实错误。 - 禁止输出原始大段 JSON 给用户,需整理为自然语言;但不得改写关键事实(标题、ID、URL、错误信息)。
2. 鉴权与会话(标准 MCP 流程)
请求头固定:
Accept: application/json, text/event-streamAuthorization: Bearer <AUDIOBOOKLM_TOKEN>Content-Type: application/json
调用顺序(不可跳过):
initializenotifications/initializedtools/list/tools/call(都要带mcp-session-id)
若无 token 或 token 无效,服务会返回 401(invalid_token)。
3. 工具清单(以 tools/list 实时结果为准)
OpenClaw 不应硬编码工具总数;先调用 tools/list,再按返回结果路由。
以下为当前主流程常用工具:
chapter_splitsearch_faqannotate_pinyincharacter_analyzetimber_assignsearch_sound_labelsound_effectchapter_character_analysischapter_character_predictdialogue_splitsearch_audiofan_made_audiopatch_absread_absimage_generation
说明:部分环境会通过服务端配置隐藏某些工具(如 text_writing、analysis_audio_fx、analysis_sound_description 等);是否可用必须以本轮 tools/list 为准。
4. 路由策略(按用户意图)
- 书单/单书/单章读取:
read_abs
- 书单:
scope={"domain":"books"} - 单书:
scope={"domain":"book","book_id":"<id>"} - 单章:
scope={"domain":"chapter","book_id":"<id>","chapter_id":"<id>"}
- 创建书/写入编辑:
patch_abs
- 创建书必须:
scope={"domain":"book"}且不传book_id - 常见流程:先
read_abs(books)取team_id,再patch_abs(create_book),再patch_abs(add_chapter...)
- 环境音/音效检索:
search_sound_label
- 如“海浪、雨声、风声、紧张 BGM”
- 文生音频(检索优先,未命中则自动 TTS 生成):
search_audio
- 该工具不是通用“站内专辑检索”,而是:
- 先在服务端
mock.json做语义匹配命中(返回已有audio_url/audio_path) - 未命中时自动执行“LLM 写文案 -> LLM 推荐音色 -> TTS 合成”并返回新
audio_url
- 音频二创:
fan_made_audio
- 必须传
audio_url+user_instruction
- 音色推荐:
timber_assign
- 建议参数:
{"description":"成熟男声","text":"..."}(效果更稳定) description非强制;未提供时工具会尝试基于文本自动分析,但可控性会下降
- 指定文本 + 指定音色ID 直接合成:
list_tts_voices+synthesize_tts
- 适用于“我已经有文案,并且要固定某个音色ID”的刚性 TTS 需求
- 标准顺序:先
list_tts_voices取speakerId,再synthesize_tts(text, speaker_id) - 该场景不要路由到
search_audio(其音色是自动匹配,非强指定)
- 章节角色链路:
- 一体化:
chapter_character_analysis - 分步:
dialogue_split->chapter_character_predict
- 图像生成:
image_generation
{"prompt":"..."},若下游超时按真实错误返回
5. 参数速查(仅列关键)
read_abs
scope必填对象,domain仅可为books|book|chapterfields可选数组pagination可选对象cookie可选
patch_abs
scope必填对象,domain为chapter|book|booksoperations必填数组,每项需op_id/type/reasonbase_version可选dry_run可选,默认falsecookie可选
search_sound_label
query必填top_k可选,默认 3
search_audio
user_query必填cookie可选- 不支持直接传
text、speaker_id、rate等 TTS 细粒度参数(由工具内部自动决策)
fan_made_audio
audio_url必填user_instruction必填cookie可选
timber_assign
description可选(建议传,便于控风格)- 其余可选:
content_file/content_text/text/enable_ai_analysis/speaker_list/topk/rate/cookie
list_tts_voices
cookie可选limit可选(<=0表示不限制)
synthesize_tts
text必填speaker_id必填(来自list_tts_voices的speakerId)cookie可选- 注意:服务端会将文本截断到 200 字以内
sound_effect
data必填- 可选:
use_audio_fx(默认 true)、analysis_mode(默认 2)、data_mode(默认 1)
chapter_split
- 必填:
content_file、filename - 可选:
max_chapter_length、handle_intro_text、enable_ai_fallback、start_chapter_number、enable_loose_patterns、ai_spliter、auto_cleaner
chapter_character_analysis
content_file、content、content_text三选一(content_text是content同义字段)- 可选:
context_window、max_window_length、scope、max_characters
dialogue_split
text_list或lines至少一项- 可选:
chapter_name/context_window/max_window_length - 注意:传
text_list时不会做真实说话人识别,对白段speaker会固定为“对白”;若要尽量提取说话人,优先传lines
chapter_character_predict
text_list必填- 可选:
scope/max_characters - 建议
text_list段落数不超过 200(底层模型链路对超长输入会退化/报错)
character_analyze
content_file必填- 可选:
max_dialogues_per_character/include_relationships
search_faq
query必填top_k可选(默认 3)
annotate_pinyin
text必填
image_generation
prompt必填
6. 失败处理规范
- 鉴权失败:明确提示“token 无效或过期,请在个人中心重新生成 token 后重试”。
- 工具超时:明确提示“该能力处理时间较长,本次超时,请稍后重试”。
- 业务失败(
success=false):直接转述msg,不加臆测结论。 - 不存在的工具:先
tools/list校验后再路由,不要硬调。
7. 最佳实践组合(推荐工作流)
7.1 首次接入自检(建议每次会话首轮执行)
tools/list:确认服务在线与工具集。read_abs(scope.domain=books):验证 token 权限与团队上下文。- 若
read_abs成功,再执行用户任务;若失败,优先提示用户检查 token 是否过期/绑定错误团队。
7.2 “查某本书最后一章”
read_abs({"scope":{"domain":"books"}}):按书名匹配 book_id。read_abs({"scope":{"domain":"book","book_id":"<id>"}}):取章节列表并定位最后一章 chapter_id。read_abs({"scope":{"domain":"chapter","book_id":"<id>","chapter_id":"<id>"}}):返回正文并生成摘要。
7.3 “新建书并写入第一章”(最小闭环)
read_abs(books)取可用team_id。patch_abs(create_book):scope={"domain":"book"}且不传book_id。patch_abs(add_chapter):对新书book_id添加第一章。read_abs(book)回读验证写入结果。
7.4 search_audio 正确用法(给 OpenClaw 的 TTS 适配重点)
search_audio(user_query=用户原话)。- 判断返回来源:
- 若
source=mock:代表命中已有素材(可能是audio_url,也可能是本地audio_path)。 - 若
source=generated:代表已完成“文本生成 + 音色推荐 + TTS 合成”。
- 若用户明确要“新生成 TTS”但命中
mock,需先告知“当前命中已有素材”,再询问是否改成更具体需求重试以触发生成链路。 - 若生成链路失败(常见:无法获取可用音色 ID / 下游 TTS 失败),只转述真实错误,不编造成功结果。
7.5 search_audio 能力边界(必须告知模型)
search_audio一次调用只能产出 1 条结果,不支持top_k/分页。- 生成链路内部会先写短文本(约 100 字),TTS 侧最终还会截断到 200 字以内;不适合长章节整段合成。
- 生成链路的音色选择是自动匹配,不能在该工具里强制指定特定
speaker_id。 - 想提高“按用户意图生成”的命中率,
user_query应包含:
- 内容主题(讲什么)
- 风格/情绪(温柔、悬疑、热血等)
- 角色倾向(男女声、年龄段)
- 若用户要求精细控音色/多版本对比,优先改用
timber_assign+ 其他可控链路,不要把search_audio当成可编排 TTS 引擎。
7.6 “章节音效生产链路”
- 先准备章节结构化
data。 - 调
sound_effect(默认analysis_mode=2)。 - 结果回显时保留关键字段(新增段落、音效建议、命中素材 URL),不要整段原始 JSON 直出。
7.7 “角色分析推荐链路”
- 单章分析优先:
chapter_character_analysis。 - 若用户已有拆分文本:
dialogue_split -> chapter_character_predict。 - 全书/长文本角色抽取:
character_analyze(注意可能耗时长,需超时提示)。
7.8 角色链路能力边界(避免误路由)
dialogue_split用text_list入参时,本质是格式转换,不会可靠识别对白说话人。- 需要“逐段 speaker_name”时,优先走:
lines -> dialogue_split -> chapter_character_predict。 - 单章文本较长时,
chapter_character_analysis/chapter_character_predict属于 LLM 推断结果,应以“建议值”呈现,不要宣称绝对准确。
7.9 指定文本+音色ID 的 TTS 最佳实践(OpenClaw 必须优先)
- 当用户意图包含“用这段文本 + 指定音色/某个 speakerId 合成”时,优先走
list_tts_voices -> synthesize_tts。 - 若用户只给“音色名称”未给 ID,先
list_tts_voices,按speakerName匹配确认后再调synthesize_tts。 - 若用户未指定音色,只描述风格(如“温柔女声”),优先
timber_assign做推荐试听;需要固定单音色再转synthesize_tts。 - 若
synthesize_tts不在本轮tools/list,回退到timber_assign或search_audio,并明确告知“当前环境不支持直指定 speaker_id 合成”。 - 返回结果时优先给
audio_url与实际使用的speaker_id;若文本超过 200 字,需提示已被服务端截断。
8. 调试附录(仅供开发)
# 1) initialize(记录响应头里的 mcp-session-id)
curl -i -sS -X POST "https://aigc.ximalaya.com/audiobooklm/mcp" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ${AUDIOBOOKLM_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"openclaw","version":"1.0.0"}}}'
# 2) initialized(带 mcp-session-id)
curl -i -sS -X POST "https://aigc.ximalaya.com/audiobooklm/mcp" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ${AUDIOBOOKLM_TOKEN}" \
-H "Content-Type: application/json" \
-H "mcp-session-id: <session-id>" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}'
# 3) tools/list(带 mcp-session-id)
curl -i -sS -X POST "https://aigc.ximalaya.com/audiobooklm/mcp" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ${AUDIOBOOKLM_TOKEN}" \
-H "Content-Type: application/json" \
-H "mcp-session-id: <session-id>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
9. 更新日志(OpenClaw)
0.0.6(2026-03-13)
- 修正
search_audio能力描述:明确“mock 命中优先,未命中才自动文生音频(LLM 文案 + 音色推荐 + TTS)”,避免误当作通用站内音频检索。 - 新增“指定文本 + 指定音色ID”最佳实践:优先
list_tts_voices -> synthesize_tts,并补齐回退与截断提示规则。 - 补全关键工具边界:
tools/list动态路由原则、chapter_character_analysis的content_text同义入参、dialogue_split在text_list模式下仅做格式转换的限制。
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!