播放音效 Skill
核心指令
每次对话结束前都必须播放提示音——不论是新对话还是延续对话,只要对话中执行了任何工具操作(代码修改/创建、文件生成、报告撰写、bug 修复、项目搭建、配置变更、UI 重构、文件读写等),在最终回复前强制调用 play_sound MCP 工具。
唯一例外:纯问答、闲聊、简单查询等未执行任何工具操作的对话可以跳过。
可用 MCP 工具
通过 workbuddy-sound-notifier 连接器暴露以下 3 个工具:
| 工具 | 参数 | 用途 |
|---|---|---|
play_sound |
name (string) |
播放音效。预设: task_complete、automation_done、notification、alert、success |
list_sounds |
— | 列出所有可用音效 |
import_sound |
source (string), name (string, 可选) |
从本地路径导入音频文件到音效库 |
调用方式
对话任务完成时(自动)
每次完成实质性任务后,在结束回复前自动执行:
play_sound(name="task_complete")
对于自动化相关任务(如创建/修改 automation),使用:
play_sound(name="automation_done")
特殊场景音效触发
以下场景需要在对应操作前主动播放音效,提醒使用者注意或等待反馈:
| 场景 | 音效 | 触发时机 | 示例 |
|---|---|---|---|
| 需要用户授权/确认 | alert |
调用 AskUserQuestion 或弹出权限确认之前 |
安装 skill 前需用户确认、删除文件前确认、沙箱外操作确认 |
| 向使用者提问 | notification |
发起任何需要使用者回复的问题之前 | 方案选择、参数确认、歧义澄清 |
| 长时间操作开始 | notification |
启动预计耗时较长的任务之前 | 下载大文件、批量处理、编译构建 |
| 操作出错/受阻 | alert |
遇到需要使用者介入的错误之后 | 安装失败、权限不足、网络超时 |
| 自动化完成 | automation_done |
自动化任务执行完毕之后 | cron 任务、定时任务完成 |
| 任务全部完成 | task_complete |
整个对话任务完成之后 | 最终回复前播放 |
> 原则:任务开始/完成播放在操作之后,需要使用者关注/介入的播放在操作之前(先响铃再等输入)。
调用示例:
# 弹确认框前
play_sound(name="alert")
# 然后调用 AskUserQuestion
# 提问前
play_sound(name="notification")
# 然后输出问题等待回复
自动化任务中
在 WorkBuddy 自动化任务的 prompt 末尾加入:
> 任务执行完毕后,调用 play_sound 工具,参数 name="automation_done"
导入自定义音效
使用者可以通过对话导入自定义音频文件到音效库。
流程 1:导入为新音效(独立名称)
帮我把 C:\sounds\myalert.wav 导入到音效库
导入后,音效文件存入 sounds/ 目录,通过自定义名称播放:
play_sound(name="myalert")
流程 2:导入并覆盖特定音效
使用者可以用自定义音频直接替换某个已有的音效名称。只需在导入时指定目标名称即可:
帮我把 C:\music\ding.wav 导入,覆盖 task_complete 的音效
→ 助手调用 import_sound(source="C:\music\ding.wav", name="task_complete")
导入后,原有的 play_sound(name="task_complete") 将不再使用系统默认音效,而是播放自定义音频。覆盖预设名称包括但不限于:
task_complete / automation_done / notification / alert / success
> 注意:覆盖是持久化的——后续所有场景调用该音效名都会播放自定义音频,直到手动删除或再次覆盖。
导入-播放完整交互流程
使用者说 → "帮我把 XX.wav 导入,覆盖 task_complete"
→ 助手调用 import_sound(source="...", name="task_complete")
→ 导入成功反馈
→ 下次任务完成时 play_sound(name="task_complete") 自动播放自定义音频
音效优先级
sounds/目录下的同名自定义音频文件(.wav/.mp3/.ogg/.flac/.aiff/.m4a)- 操作系统默认提示音(Windows: winsound / macOS: afplay / Linux: 终端响铃)
项目文件
scripts/mcp_server.py— MCP Server 主程序(~200 行,纯 Python 标准库,零外部依赖)sounds/— 自定义音效存放目录(首次导入音频时自动创建)references/README.md— 完整使用说明
连接器配置
连接器已在 ~/.workbuddy/mcp.json 中注册,指向本 skill 的 scripts/mcp_server.py。
本 skill 的脚本路径:
C:/Users/Admin/.workbuddy/skills/play-sound-notifier/scripts/mcp_server.py