前言¶
DeepSeek Harness (DSH) 的设计哲学是「一切皆插件」。当开发者在 DSH 中构建代理时,仅通过文本输出往往缺乏直观的交互体验。dsh-plugin-mynah 解决了这一痛点,它充当了 DSH 与 Mynah 实时数字人栈之间的桥梁,让智能体能够控制数字人进行实时说话、打断和手势交互。
插件定位¶
该插件由 honwee 维护,开源协议为 MIT。它允许 DSH 代理直接驱动 Mynah 实时数字人(基于 WebRTC 的唇形同步视频),实现文本转语音、会话管理、动作控制以及知识库更新。
核心功能¶
插件提供了一系列工具(Tools),分为实时交互工具和管理工具两类:
-
实时交互
mynah_speak: 让数字人在当前会话中说话。支持type=echo(逐字朗读)或type=chat(走 Mynah 自身的大脑)。默认情况下,新句子会排队,除非设置interrupt=true。mynah_interrupt: 强制打断当前正在说话的数字人。mynah_action: 播放预设动作,例如挥手。
-
会话与管理
mynah_sessions: 列出当前活跃的会话 ID,供后续调用。mynah_channels: 列出已发布的频道及访客访问链接。mynah_status: 检查核心服务、头像引擎、ASR、TTS 和数据库的健康状态。
-
知识库
mynah_kb_add: 向 Mynah 的知识库添加文本或 Markdown 文档。
安装与配置¶
通过官方 CLI 安装插件:
dsh plugin --profile web add dsh-plugin-mynah
安装后,需要在 DSH 的配置中指明 Mynah 实例的地址。可以在 cordis.patch.yml 中添加配置块:
- id: mynah
name: dsh-plugin-mynah
config:
baseUrl: https://your-mynah-host:8443 # 访客/实时端点
adminUrl: https://your-mynah-host:9443 # 管理后台端点
username: admin
password: ********
或者使用环境变量(MYNAH_URL, MYNAH_ADMIN_URL, MYNAH_USER, MYNAH_PASSWORD 等)进行配置。
使用示例¶
在 Web UI 中对话,或在 Headless 模式下运行脚本:
场景 1:Web UI
在 DSH 的对话窗口中输入提示词:
“Find the live Mynah session and have the digital human greet me by name.”
场景 2:Headless 脚本
dsh --profile headless "Use mynah_sessions, then make the digital human say: 今天的部署已经完成。"
运行要求与注意¶
- 环境依赖:DeepSeek Harness 版本需 ≥ 0.1.2-alpha.5,Node.js 版本需 ≥ 22.19。
- Mynah 实例:需要部署一个可访问的 Mynah 实例。Mynah 是自托管的数字人栈,默认使用免费的 EdgeTTS,无需 API Key 即可发声。
- 硬件资源:Mynah 基于 WebRTC 运行,建议运行环境拥有约 6GB 显存(或使用远程推理)。
- 权限说明:实时工具(如
mynah_speak)仅需要会话 ID,无需登录;管理工具(如mynah_sessions)需要管理员登录并缓存 JWT Token。
结语¶
该插件通过 mynah_* 工具链将 LLM 推理与数字人交互打通,使 Agent 能够拥有具象化的交互能力。完整文档与源码见 GitHub 仓库。