🧪 Skills

audiobooklm

提供有声书创作与音频能力(ABS 读写、音效/音频检索、二创、音色推荐、章节角色分析等),通过 HTTP Streamable MCP 调用。

v0.0.6
❤️ 5
⬇️ 82
👁 1
Share

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 必带)

  1. 来源与信任
  • 官方入口:https://aigc.ximalaya.com
  • MCP 服务地址:https://aigc.ximalaya.com/audiobooklm/mcp
  • 仅在你信任该域名与发布方时安装。
  1. 凭证配置
  • 必需环境变量:AUDIOBOOKLM_TOKEN(Bearer Token)
  • 建议使用测试账号或低权限 token,不要粘贴高权限生产 token。
  • 建议定期轮换 token;发现泄露立即吊销并重建。
  1. 数据外发与合规
  • 使用本技能时,输入文本、音频 URL、以及你提交的结构化数据会发送到 aigc.ximalaya.com
  • 不要上传未授权、涉密或敏感个人信息内容。
  • 版权或隐私不明确的内容,先确认授权后再调用。

0. 首次使用引导(OpenClaw 必须先提示)

当用户首次使用本技能,或检测到未配置 token 时,OpenClaw 必须先提示以下内容,再进入工具调用:

  1. 请先访问 https://aigc.ximalaya.com 注册/登录账号。
  2. 进入个人中心创建 API Token(MCP / API Token)。
  3. 在 OpenClaw 配置 Bearer Token(AUDIOBOOKLM_TOKEN),再继续使用本技能。

推荐提示文案(可直接复用): 使用 audiobooklm 前,请先到 https://aigc.ximalaya.com 登录并在个人中心创建 API Token,然后将 token 配置到 OpenClaw(Bearer Token / AUDIOBOOKLM_TOKEN)。配置完成后我再为你执行读取书籍、音效检索或二创操作。

1. 使用规则(必须遵守)

  1. 所有书籍/章节/音频/音效结论都必须来自本轮真实工具返回,禁止编造。
  2. 调用成功不等于业务成功:若工具返回文本里包含 {"success":false}code!=20000,按失败处理并转述真实错误。
  3. 禁止输出原始大段 JSON 给用户,需整理为自然语言;但不得改写关键事实(标题、ID、URL、错误信息)。

2. 鉴权与会话(标准 MCP 流程)

请求头固定:

  • Accept: application/json, text/event-stream
  • Authorization: Bearer <AUDIOBOOKLM_TOKEN>
  • Content-Type: application/json

调用顺序(不可跳过):

  1. initialize
  2. notifications/initialized
  3. tools/list / tools/call(都要带 mcp-session-id

若无 token 或 token 无效,服务会返回 401invalid_token)。

3. 工具清单(以 tools/list 实时结果为准)

OpenClaw 不应硬编码工具总数;先调用 tools/list,再按返回结果路由。
以下为当前主流程常用工具:

  • chapter_split
  • search_faq
  • annotate_pinyin
  • character_analyze
  • timber_assign
  • search_sound_label
  • sound_effect
  • chapter_character_analysis
  • chapter_character_predict
  • dialogue_split
  • search_audio
  • fan_made_audio
  • patch_abs
  • read_abs
  • image_generation

说明:部分环境会通过服务端配置隐藏某些工具(如 text_writinganalysis_audio_fxanalysis_sound_description 等);是否可用必须以本轮 tools/list 为准。

4. 路由策略(按用户意图)

  1. 书单/单书/单章读取:read_abs
  • 书单:scope={"domain":"books"}
  • 单书:scope={"domain":"book","book_id":"<id>"}
  • 单章:scope={"domain":"chapter","book_id":"<id>","chapter_id":"<id>"}
  1. 创建书/写入编辑:patch_abs
  • 创建书必须:scope={"domain":"book"} 且不传 book_id
  • 常见流程:先 read_abs(books)team_id,再 patch_abs(create_book),再 patch_abs(add_chapter...)
  1. 环境音/音效检索:search_sound_label
  • 如“海浪、雨声、风声、紧张 BGM”
  1. 文生音频(检索优先,未命中则自动 TTS 生成):search_audio
  • 该工具不是通用“站内专辑检索”,而是:
  • 先在服务端 mock.json 做语义匹配命中(返回已有 audio_url/audio_path
  • 未命中时自动执行“LLM 写文案 -> LLM 推荐音色 -> TTS 合成”并返回新 audio_url
  1. 音频二创:fan_made_audio
  • 必须传 audio_url + user_instruction
  1. 音色推荐:timber_assign
  • 建议参数:{"description":"成熟男声","text":"..."}(效果更稳定)
  • description 非强制;未提供时工具会尝试基于文本自动分析,但可控性会下降
  1. 指定文本 + 指定音色ID 直接合成:list_tts_voices + synthesize_tts
  • 适用于“我已经有文案,并且要固定某个音色ID”的刚性 TTS 需求
  • 标准顺序:先 list_tts_voicesspeakerId,再 synthesize_tts(text, speaker_id)
  • 该场景不要路由到 search_audio(其音色是自动匹配,非强指定)
  1. 章节角色链路:
  • 一体化:chapter_character_analysis
  • 分步:dialogue_split -> chapter_character_predict
  1. 图像生成:image_generation
  • {"prompt":"..."},若下游超时按真实错误返回

5. 参数速查(仅列关键)

read_abs

  • scope 必填对象,domain 仅可为 books|book|chapter
  • fields 可选数组
  • pagination 可选对象
  • cookie 可选

patch_abs

  • scope 必填对象,domainchapter|book|books
  • operations 必填数组,每项需 op_id/type/reason
  • base_version 可选
  • dry_run 可选,默认 false
  • cookie 可选

search_sound_label

  • query 必填
  • top_k 可选,默认 3

search_audio

  • user_query 必填
  • cookie 可选
  • 不支持直接传 textspeaker_idrate 等 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_voicesspeakerId
  • cookie 可选
  • 注意:服务端会将文本截断到 200 字以内

sound_effect

  • data 必填
  • 可选:use_audio_fx(默认 true)、analysis_mode(默认 2)、data_mode(默认 1)

chapter_split

  • 必填:content_filefilename
  • 可选:max_chapter_lengthhandle_intro_textenable_ai_fallbackstart_chapter_numberenable_loose_patternsai_spliterauto_cleaner

chapter_character_analysis

  • content_filecontentcontent_text 三选一(content_textcontent 同义字段)
  • 可选:context_windowmax_window_lengthscopemax_characters

dialogue_split

  • text_listlines 至少一项
  • 可选: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. 失败处理规范

  1. 鉴权失败:明确提示“token 无效或过期,请在个人中心重新生成 token 后重试”。
  2. 工具超时:明确提示“该能力处理时间较长,本次超时,请稍后重试”。
  3. 业务失败(success=false):直接转述 msg,不加臆测结论。
  4. 不存在的工具:先 tools/list 校验后再路由,不要硬调。

7. 最佳实践组合(推荐工作流)

7.1 首次接入自检(建议每次会话首轮执行)

  1. tools/list:确认服务在线与工具集。
  2. read_abs(scope.domain=books):验证 token 权限与团队上下文。
  3. read_abs 成功,再执行用户任务;若失败,优先提示用户检查 token 是否过期/绑定错误团队。

7.2 “查某本书最后一章”

  1. read_abs({"scope":{"domain":"books"}}):按书名匹配 book_id。
  2. read_abs({"scope":{"domain":"book","book_id":"<id>"}}):取章节列表并定位最后一章 chapter_id。
  3. read_abs({"scope":{"domain":"chapter","book_id":"<id>","chapter_id":"<id>"}}):返回正文并生成摘要。

7.3 “新建书并写入第一章”(最小闭环)

  1. read_abs(books) 取可用 team_id
  2. patch_abs(create_book)scope={"domain":"book"} 且不传 book_id
  3. patch_abs(add_chapter):对新书 book_id 添加第一章。
  4. read_abs(book) 回读验证写入结果。

7.4 search_audio 正确用法(给 OpenClaw 的 TTS 适配重点)

  1. search_audio(user_query=用户原话)
  2. 判断返回来源:
  • source=mock:代表命中已有素材(可能是 audio_url,也可能是本地 audio_path)。
  • source=generated:代表已完成“文本生成 + 音色推荐 + TTS 合成”。
  1. 若用户明确要“新生成 TTS”但命中 mock,需先告知“当前命中已有素材”,再询问是否改成更具体需求重试以触发生成链路。
  2. 若生成链路失败(常见:无法获取可用音色 ID / 下游 TTS 失败),只转述真实错误,不编造成功结果。

7.5 search_audio 能力边界(必须告知模型)

  1. search_audio 一次调用只能产出 1 条结果,不支持 top_k/分页。
  2. 生成链路内部会先写短文本(约 100 字),TTS 侧最终还会截断到 200 字以内;不适合长章节整段合成。
  3. 生成链路的音色选择是自动匹配,不能在该工具里强制指定特定 speaker_id
  4. 想提高“按用户意图生成”的命中率,user_query 应包含:
  • 内容主题(讲什么)
  • 风格/情绪(温柔、悬疑、热血等)
  • 角色倾向(男女声、年龄段)
  1. 若用户要求精细控音色/多版本对比,优先改用 timber_assign + 其他可控链路,不要把 search_audio 当成可编排 TTS 引擎。

7.6 “章节音效生产链路”

  1. 先准备章节结构化 data
  2. sound_effect(默认 analysis_mode=2)。
  3. 结果回显时保留关键字段(新增段落、音效建议、命中素材 URL),不要整段原始 JSON 直出。

7.7 “角色分析推荐链路”

  1. 单章分析优先:chapter_character_analysis
  2. 若用户已有拆分文本:dialogue_split -> chapter_character_predict
  3. 全书/长文本角色抽取:character_analyze(注意可能耗时长,需超时提示)。

7.8 角色链路能力边界(避免误路由)

  1. dialogue_splittext_list 入参时,本质是格式转换,不会可靠识别对白说话人。
  2. 需要“逐段 speaker_name”时,优先走:lines -> dialogue_split -> chapter_character_predict
  3. 单章文本较长时,chapter_character_analysis/chapter_character_predict 属于 LLM 推断结果,应以“建议值”呈现,不要宣称绝对准确。

7.9 指定文本+音色ID 的 TTS 最佳实践(OpenClaw 必须优先)

  1. 当用户意图包含“用这段文本 + 指定音色/某个 speakerId 合成”时,优先走 list_tts_voices -> synthesize_tts
  2. 若用户只给“音色名称”未给 ID,先 list_tts_voices,按 speakerName 匹配确认后再调 synthesize_tts
  3. 若用户未指定音色,只描述风格(如“温柔女声”),优先 timber_assign 做推荐试听;需要固定单音色再转 synthesize_tts
  4. synthesize_tts 不在本轮 tools/list,回退到 timber_assignsearch_audio,并明确告知“当前环境不支持直指定 speaker_id 合成”。
  5. 返回结果时优先给 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)

  1. 修正 search_audio 能力描述:明确“mock 命中优先,未命中才自动文生音频(LLM 文案 + 音色推荐 + TTS)”,避免误当作通用站内音频检索。
  2. 新增“指定文本 + 指定音色ID”最佳实践:优先 list_tts_voices -> synthesize_tts,并补齐回退与截断提示规则。
  3. 补全关键工具边界:tools/list 动态路由原则、chapter_character_analysiscontent_text 同义入参、dialogue_splittext_list 模式下仅做格式转换的限制。

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs