前言¶
在 DSH 裏做 AI 伴侶時,對話往往缺少「你昨天走了多少步、昨晚睡了多久」這類身體狀態。手動口述或每次打開 Mi Fitness App 再複製,既費事又難讓模型穩定引用。常見做法是寫一次性腳本拉雲端數據,但和 DSH 工具鏈、對話上下文是割裂的。
下面介紹社區插件 dsh-mihealthlink(維護者 Tsurukyuha,GitHub:Tsurukyuha/dsh-mihealthlink)。它在 DeepSeek Harness 桌面版中註冊一組健康相關工具,把步數、睡眠、心率、血氧、壓力等同步到本機 SQLite,便於用自然語言問「我昨晚睡得怎麼樣」。數據抓取依賴上游 shkyyy18/mi_fitness_data_bridge;本倉庫是其上的 DSH 插件殼與命令行腳本封裝。不需要 root、不上傳數據、不依賴手機端 App——前提是手環數據已同步到小米雲端。
這是什麼¶
dsh-mihealthlink 屬於 DSH 社區目錄中的「記憶」類插件(目錄頁:skillhub.cn/plugins/Tsurukyuha/dsh-mihealthlink)。封裝代碼許可爲 MIT(package.json 版本 0.2.0);通過命令行調用上游 bridge,不修改其源碼(上游 AGPL-3.0)。
插件以 Cordis bundle 形式接入 profile,在 Windows + WSL2 或 Linux / macOS 上通過 Python 3.11+ 調用 bridge,將賬號數據寫入默認路徑 data/mi_fitness.db(可用環境變量 MI_FITNESS_DB_PATH 覆蓋)。
核心功能¶
DSH 工具¶
README 中註冊的工具如下(對話裏由模型按需調用):
| 工具 | 作用 |
|---|---|
mi_health_status |
體檢:配置、憑證、連通性、可用數據類型(只讀) |
mi_health_sync(days) |
同步最近 N 天到本地庫(默認 7,冪等) |
mi_health_report(json?, days?) |
完整日報:活動、睡眠、心率、趨勢 |
mi_health_brief(days?) |
一句話總結,省 token |
mi_health_nudge(dryRun?, force?) |
可選:按閾值檢查後通過 SurfCore 控制台向指定 QQ 會話投遞後臺提醒 |
mi_health_brief 示例輸出形態:
昨天 2859 步,昨晚睡了 7 小時 50 分,心率均值 70.9 bpm。
後臺還可按配置每 3 小時自動同步一次(autoSyncHours,設爲 0 可關閉)。
本地庫內容¶
同步成功後,SQLite 中可能包含:daily_activity(步數等)、sleep_sessions、heart_rate_samples、spo2_samples / stress_samples、運動與身體成分等表。具體條數取決於設備、固件與賬號地區;同步成功但某類爲 0 條,通常是設備未上報該類數據。
命令行(不經過對話)¶
在插件目錄的 tools/ 下可獨立使用:
tools/check_env.sh # 自檢 + 生成 config.local.json 片段
tools/sync.sh # 最近 7 天
tools/sync.sh 30 # 最近 30 天
tools/sync.sh 2026-10-01 2026-11-01
tools/report.sh # 日報
tools/report.sh --json # 結構化
tools/report.sh --brief # 一句話
前置條件¶
使用前請對照 README 中的條件表:
- Windows + WSL2,或 Linux / macOS(Windows 下插件經
wsl.exe調 WSL 內 Python;配置路徑須爲 WSL 內部路徑,不能寫C:\...)。 - Python 3.11+(上游 bridge 要求)。
- DSH 桌面版,且會把插件掛進 profile 的
dsh.profile.bundles。 - 小米賬號在 cn 區,手環數據已上雲(Mi Fitness App 能看到當日步數)。
- 能取得
userId/passToken並導入系統 keyring(見下文「憑證」)。 - 在本機插件目錄維護
config.local.json(絕對路徑,勿改會被升級覆蓋的cordis.patch.yml)。
裝完 Python 依賴後,可先跑自檢:
tools/check_env.sh
退出碼 0 表示 Python、bridge、keyring、憑證、數據目錄等項通過,並會打印可直接存成 config.local.json 的 JSON。
安裝與啓用¶
官方 README 未提供 dsh plugin add github:... 一類命令;接進 DSH 的步驟如下。
1. Python 依賴¶
cd dsh-mihealthlink/tools
./install.sh
腳本會創建 tools/.venv,安裝 mi-fitness-data-bridge(PyPI → 本地源碼 → GitHub → 鏡像逐級回退),必要時安裝 keyrings.alt。中國大陸網絡下若 GitHub 回退較慢,可先爲終端設置代理,例如:
export https_proxy=http://127.0.0.1:7890
2. 本機路徑配置¶
在插件目錄創建 config.local.json(已在 .gitignore,優先級高於佔位用的 cordis.patch.yml)。字段示例:
{
"pythonPath": "/home/alice/mi-fitness/.venv/bin/python",
"bridgePath": "/home/alice/mi-fitness/.venv/bin/mi-fitness-bridge",
"reportScript": "/home/alice/dsh-mihealthlink/tools/daily_report.py",
"dbPath": "/home/alice/dsh-mihealthlink/data/mi_fitness.db"
}
~ 與 $HOME 不會展開;路徑錯誤時工具可能返回 No such file or directory 或 code=-2。建議用 tools/check_env.sh 生成真實路徑。
3. 掛進 DSH profile¶
Windows 示例(將目標路徑換成你本機克隆或下載的插件目錄):
$prof = "$env:USERPROFILE\.dsh\profiles\desktop"
New-Item -ItemType Junction -Path "$prof\node_modules\dsh-mihealthlink" `
-Target "E:\AI\projects\dsh-mihealthlink"
在 profile 的 package.json 中:
dependencies增加"dsh-mihealthlink": "link:E:/AI/projects/dsh-mihealthlink"dsh.profile.bundles追加"dsh-mihealthlink"
重啓 DSH 後工具應出現在宿主中。
憑證(雲端鑑權)¶
數據從小米雲端拉取,需在瀏覽器登錄 account.xiaomi.com,從 Cookie 中取得 userId 與 passToken,寫入 tools/credentials.txt:
user_id=你的userId
passToken=你的passToken
然後執行:
tools/import_credentials.sh
腳本會寫入 keyring、刪除該明文文件並再跑體檢;看到連接狀態爲成功即可。passToken 等同登錄憑證,勿提交倉庫或貼到聊天;泄露後應退出賬號重新登錄使舊 token 失效。
典型用法¶
經過上面的步驟後,在 DSH 對話中可以:
- 問「健康數據接上了嗎」→ 觸發
mi_health_status - 說「更新一下我的數據」→
mi_health_sync - 說「給我看看這週的情況」→
mi_health_report - 說「我昨晚睡得怎麼樣」→
mi_health_brief
可選的 主動關心(默認關閉):開啓 nudgeEnabled 等項於 config.local.json,插件會按睡眠、步數、心率閾值檢查本地庫,並通過 SurfCore 的 127.0.0.1:3100 控制台接口向 QQ 投遞提醒;Windows + WSL 場景下 HTTP 投遞在 Node 側完成,避免 WSL 內訪問本機 SurfCore 被拒絕。預演與強制發送:
mi_health_nudge
mi_health_nudge force=true
適用場景與注意¶
適合誰:已用 DSH 桌面版、佩戴小米手環且數據在 cn 區雲端可見,希望把運動健康納入本地記憶與對話的開發者或高級用戶。
權限與信任:插件以當前 DSH 進程權限運行;安裝前應閱讀倉庫源碼與 MIT 許可。非小米官方項目,使用的是非公開接口,可能失效;自動拉取存在賬號風險,需自行評估。健康數據僅作展示與對話上下文,不是醫療建議。
隱私:只讀寫本賬號數據並落本地 SQLite;README 聲明不提供上傳、分享、雲同步;數據庫與憑證由本機保管。
已驗證環境(作者 README):Windows 11 + WSL2 (Ubuntu 24.04) + Python 3.12,小米手環、賬號 cn;其他平臺按代碼邏輯應可用但未實機驗證。
DSH 生態強調「一切皆插件」;SkillHub 插件目錄 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-mihealthlink 把 Mi Fitness 雲端數據同步到本地 SQLite,並在 DSH 中提供體檢、同步、日報、簡報與可選提醒工具,讓伴侶式對話能基於真實步數與睡眠作答。詳情與 issue 見 GitHub 倉庫,條目索引見 SkillHub 目錄頁。