Skip to main content
Y

dsh-mimo-plugin

yyfather/dsh-mimo-plugin

MiMo (Xiaomi) tools as a DSH profile plugin: web search, image/audio/video understanding, ASR transcription, TTS, voice design and voice cloning — native agent tools with a Settings page for the API key.

Install

dsh plugin --profile web add github:yyfather/dsh-mimo-plugin

README

dsh-mimo-plugin

MiMo (Xiaomi) capabilities packaged as a standard DeepSeek Harness (DSH) Cordis dynamic plugin — 8 native agent tools, no Python / MCP needed.

一个把小米 MiMo 能力(联网搜索、图片/音频/视频理解、专用 ASR 转写、语音合成、音色设计、音色克隆)封装成 DSH 原生插件工具的标准包。首次使用只需填一次 API Key 并保存。仓库不含任何密钥。

🧰 工具(Tools)

工具说明
mimo_web_search联网搜索(带引用来源;country/region/city 定位、max_results、thinking)
mimo_understand_image图片理解(本地路径 / http(s) URL / data URL)
mimo_understand_audio通用音频理解(这是什么声音 / 风格 / 几个人说话)
mimo_transcribe_audio专用 ASR 转写(mimo-v2.5-asrlanguage auto/zh/en,仅 wav/mp3 ≤10MB)
mimo_understand_video视频理解(fps 0.1-10、resolution default/max)
mimo_tts语音合成(冰糖 / 茉莉 / 苏打 / 白桦 / mimo_default / Mia / Chloe / Milo / Dean)
mimo_design_voice台词设计 + 语音合成(可返回优化文本预览)
mimo_clone_voice用 ≤10MB 样音克隆声线 + 合成(可选 style)

📦 安装(让 AI 帮你装 / 手动装)

方案 A:让 Agent 自行注册(推荐,最快)

对 Harness 里的 AI 说一句(或直接粘贴 README 给它):

读取本仓库的 manifest.jsonhost.js / client.js,用 cordis_define 创建一个 Cordis 动态插件(code.host = host.js 全文,code.client = client.js 全文,即一个 Package 包含两半),然后 cordis_run 激活。

方案 B:手动

  1. 新建 Cordis Plugin:idPrefixmimo(4 个小写字母)。
  2. code.host 粘贴 host.js 全文,code.client 粘贴 client.js 全文(两者在同一个 Package 里)。
  3. cordis_run 激活(Client 部分需在 UI 点允许)。

🚀 首次使用(配置 API Key)

激活后两种方式填写并保存小米 MiMo API Key(获取地址:小米大模型开放平台):

  • 对话中的 插件卡片(“首次使用:请填写小米 MiMo API Key”),或
  • 设置 → MiMo(可改 Base URL、6 个模型名、默认输出目录、清除密钥)

密钥只回显掩码(sk-***);明文只保存在本机 <workspace>\.mimo\mimo-config.json(见 config.example.json),不会入库、不会回传。未配置时调用工具会提示你先去配置。

🧭 使用规则(自动注入)

插件激活时会把使用规则作为 systemPrompt 段(mimo-tools-usage,order 500)注入每次对话,AI 会自觉按流程使用:

  • 语音生成 → 先用 ask_user_question 一次性收集参数(文本/音色/语速/音调/格式/保存位置,已明确的跳过)→ 立即调 mimo_tts 并显式传 output_dir → 完成后必须报告文件路径。
  • “设计 XX 风格音色”mimo_design_voice给样本克隆mimo_clone_voice
  • “转写/转录/识别这段语音”mimo_transcribe_audio对音频内容提问(什么声音/什么风格)→ mimo_understand_audio
  • 语速 0.5-2.0(默认 1.0);音调 0.8-1.5(默认 1.0);格式 mp3|wav(默认 mp3)。

📁 目录结构

dsh-mimo-plugin/
├── README.md              本文档
├── manifest.json          机器可读清单(工具、模型默认值、配置键、UI 挂载点、提示词段)
├── host.js                code.host 原文(工具注册 + 配置存取 + codeRuntime worker 程序)
├── client.js              code.client 原文(首次使用卡片 + 设置页)
├── config.example.json    配置文件模板(不含真实密钥)
├── .gitignore             排除 .mimo/ 下含密钥的本地配置
└── LICENSE                MIT

🔧 实现要点

  • Host 通过 harness.defineTool + harness.registerTool 注册工具;配置经 fs 服务持久化,相对路径以 sandboxPolicy.workspaceRoot(工作区)为基准。
  • API 调用(OpenAI 兼容 POST {base}/chat/completions)与音频写盘由 ctx.codeRuntime(Node worker)完成:web search / 图·音·视频理解走 chat completions 的 tools / image_url / input_audio / video_url,TTS 用 audio 参数、音频以 base64 写回 output_dir
  • 与原始 mimo_mcp_server.py 的差异:无需 Python / openai / mcp 依赖与 MCP stdio;MIMO_API_KEY 等环境变量改为配置文件字段;REASONIX_WORKSPACE 概念即工作区根目录;工具名由 mcp__mimo__* 改为 mimo_*ask 改为 ask_user_question
  • 动态插件进程内生效、重启后丢失——用本仓库按上述“安装”步骤重建即可,配置无需重填。

📄 License

MIT © YYfather

Related plugins