前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在扩展系统能力。DSH Realtime Voice 是一个官方形态的实时语音 Agent 插件,提供全双工语音交互与打断能力,支持通过语音启动、追加、纠正或停止 DSH Agent 的工作。
核心功能¶
交互与界面¶
安装后,DSH 原生 3080 WebUI 的拨号按钮会出现在发送按钮右侧,使用同尺寸、同色系的蓝色圆形通话图标。界面包含一个独立可拖动的语音浮窗,支持展开收起,并在运行时显示动态波形和计时。用户可在通话中持续对话、打断播报或询问进度。
模型切换与打断¶
在 WebUI 的“设置 → 插件 → DSH 实时语音”中,可以一键切换 Qwen Audio Realtime Flash/Plus 模型,下一通通话生效。插件支持快速声学打断(采用浏览器本地起音检测、Host 显式取消和百炼 VAD 三层打断)和智能语义轮次切换。
安全性与架构¶
插件自动识别 DASHSCOPE_API_KEY,也支持通过 DSH 官方的 write-only credentials API 安全写入。Key 不进入浏览器包,不会被写入 cordis.patch.yml、浏览器代码或 Git。插件不修改 DSH 源码,不另起后台进程,卸载时会清理所有资源。
语义交接与闭环¶
插件采用“双平面”运行时:Qwen Audio Realtime 负责低延迟的听、说、问答和 VAD;DSH Agent 负责工具、项目和执行。只有文件、应用等真实工作通过 Function Call 交给 DSH。插件订阅 DSH 的 approval/requested、question/requested 事件,实现审批与追问闭环;订阅 turn/end 等事件,实现进度与终态闭环。
协议与音频¶
插件提供 dsh.voice.v1(WebUI)和 dsh.voice.direct.v1(微信/原生客户端)控制协议。下行 PCM 按响应重组为 24kHz/mono/s16le 的 40ms(1920 字节)有序帧。
安装与配置¶
使用官方 CLI 进行安装:
dsh plugin --profile web add github:martinbear1/dsh-realtime-voice#v0.1.0-alpha.9
卸载命令如下:
dsh plugin --profile web remove @harness-remote/dsh-realtime-voice
在 WebUI 的“设置 → 插件 → DSH 实时语音”中配置 DASHSCOPE_API_KEY。
使用示例¶
- 在 WebUI 输入框旁点击出现的蓝色拨号按钮。
- 持续对话,Agent 会实时转写并播报。
- 在通话过程中打断 Agent 播报或要求其执行具体任务。
- 在插件设置页面切换 Qwen Audio Realtime Flash 或 Plus 模型。
注意事项¶
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 插件不修改 DSH 源码,不另起后台进程,卸载时会清理所有资源。
- 浏览器端不可回读明文 Key。
- 小程序 V1 仅支持前台实时通话。
- 自动测试不会擅自采集或上传环境音。
总结¶
DSH Realtime Voice 将 Qwen Audio Realtime 的低延迟交互能力与 DSH Agent 的执行能力结合,通过语义交接和闭环机制,实现了语音驱动的 Agent 工作流。开发者可通过上述命令快速集成到 DSH 环境中。