前言¶
DeepSeek Harness(DSH)的设计理念是“一切皆插件”。要在 DSH 的 Web 界面中嵌入音频播放功能,通常需要开发者在浏览器端处理音频流并与 Agent 进行交互。dsh-music-player 插件解决了这个问题,它通过集成的侧边栏和 Agent 工具,允许用户直接在 DSH 界面中搜索并播放 Audius 平台的合法免费音乐。
插件概览¶
- 名称:
hey-ruomei/dsh-music-player - 定位:DSH Web 配置文件下的音乐播放器插件,用于搜索和流式播放 Audius 平台的音乐。
- 维护者:hey-ruomei
- 许可证:MIT
安装与启用¶
在终端中执行以下命令,通过官方插件机制安装该插件,并重启 Web 服务:
dsh plugin --profile web add github:hey-ruomei/dsh-music-player && dsh web
安装完成后,Web 页面会自动加载插件模块。
核心功能¶
该插件提供了一套完整的播放与控制功能:
- 侧边栏入口:在 DSH Web 左侧边栏的设置按钮上方会出现一个音乐按钮,点击即可打开播放器面板。
- 曲库搜索:支持对 Audius 海量曲库进行搜索(带防抖处理)。
- 热门榜单:无需搜索即可直接浏览 Audius 的热门榜单。
- 收藏与队列:用户可以对喜欢的歌曲进行收藏(数据存储在
localStorage中,重启后保留),并点击任意曲目将其加入播放队列。 - 迷你播放条:关闭播放器面板后,音乐不会停止,右下角会出现一个悬浮的迷你播放条,方便控制播放进度。
- Agent 远程控制:通过 Agent 对话工具控制播放器,无需手动操作界面。
Agent 控制与用法¶
插件为 Agent 提供了四个专用工具,用于驱动播放器:
music_search:搜索 Audius,返回前 5 首歌曲(包含标题、艺人、时长、ID)。music_play:通过trackId播放歌曲,或根据查询词匹配并播放。music_control:控制播放状态,支持pause、resume、next、prev以及set_volume(音量 0-1)。music_status:报告当前正在播放的歌曲信息。
典型示例:
在聊天中直接输入自然语言指令,例如:
“play some jazz”
Agent 会自动执行 music_search 和 music_play,将 Jazz 类曲目加入队列并开始播放。
运行机制与注意事项¶
- 浏览器运行环境:音频播放完全依赖浏览器。
dsh web页面必须保持打开状态。如果页面关闭,Agent 的music_play或music_control操作会返回明确的错误提示,而不是静默排队。 - 去中心化平台特性:Audius 是一个去中心化上传平台。由于节点可能宕机或内容被移除,部分曲目可能会播放失败。播放器会自动跳过失败的曲目,当连续失败 3 次后会停止播放。
- 请求标识:根据 Audius API 的要求,所有发出的请求都会自动携带
app_name=dsh-music-player参数。
结语¶
该插件利用 DSH 官方提供的 bundle 层、webServer 路由和 dsh.client 插槽机制构建,不依赖对官方包的打补丁。对于需要在 DeepSeek Harness 中集成音乐功能的开发者,这是一个可直接使用的工具。