《Muse Gadgets 实战》第 13 章:自定义命令:让 Muse 替你干活

《Muse Gadgets 实战》第 13 章:自定义命令:让 Muse 替你干活

上一章我们用了社区现成的 43 个技能。这一章讲的就是自定义命令:不再只用别人写好的技能,而是自己定一套自定义命令,让 Muse 按你的习惯干活。

先分清两条路:

  1. 不写代码:直接跟 Muse 说话,让它去装软件、查状态。
  2. 动手写:往 Linux SDK 里加一个自己的命令,或者写一份自己的 SKILL.md。

适用范围:Linux 外设,不是 ESP32

本章的自定义命令走 Linux SDK,不是给 ESP32 重新刷固件。

ESP32 板子跑的是固件,Linux 外设(树莓派)才能跑命令。第 11 章装好的树莓派外设,就是本章的主角。

Linux 外设自带的 4 个命令

Linux 外设自带 4 个命令(来源:官方 linux/README.md 原文):

  • system.run:跑一条 shell 命令,返回输出和退出码。
  • file.read:读文件,一次 64 KB。
  • file.write:写文件,一次 64 KB,写完才替换。
  • device.health:报 uptime、负载、内存、磁盘和温度。

权限规则:命令以安装时那个账号的权限跑。那个账号能 sudo,Muse 就能 sudo。官方原话就是这个意思。

不写代码:直接跟 Muse 说话

你不需要写代码,直接说需求,Muse 自己拆成命令去执行。

官方 README 给了原句例子(来源:官方 linux/README.md 原文):

  • “What’s using all the disk space on my Pi?”(查磁盘是谁占满的)
  • “Install Home Assistant on my Pi and tell me how to open it.”(在树莓派上装 Home Assistant,并告诉你怎么打开)
  • “Every morning at 7, check if my Pi’s backups ran and tell me if they didn’t.”(每天早上 7 点查备份,没跑就告诉你)
  • “Write a service that tells me when the Pi gets too hot.”(写一个服务,树莓派过热就提醒)

讲法很简单:你说清楚触发条件和结果,别含糊。Muse 会调用上面那 4 个自带命令去干活。

程序主动找 Muse:send-user-msg

这不是你问 Muse,而是机器上的程序反过来推消息给你。

用法(来源:官方 linux/README.md):

musegadget send-user-msg "The garage door has been open for an hour."

这行命令会让你的设备给 Muse 聊天发一条消息:”车库门开了一个小时了”。

加 --session-id 可以发到一个侧聊。新 id 开新侧聊,复用 id 就续在同一个侧聊里。

完整例子在 linux 目录下的 examples/pebble_ring_bridge.py。这是一个 webhook 监听器,把 Pebble 戒指的每条提醒发到自己的 Muse 聊天。

这条路适合做提醒,不适合做开门这种高风险动作。

动手写:往 Linux SDK 里加命令

想加自己的命令,要去改代码(来源:官方 linux/README.md 原文):

  1. 命令在 src/musegadget/executor.py 里。
  2. 往 COMMAND_SPECS 里加一条 spec。
  3. 再在 Executor.run 里加一个分支。

官方 linux/AGENTS.md 里有完整走法,动手前先读它。

改完怎么试:
把改好的 linux 目录拷到设备上,跑 bash install.sh --from .(官方 README 原文)。

换账号降权限:
bash install.sh --run-as someone,可以给 Muse 一个没有 sudo 的账号。这是官方给的降权限办法,写自定义命令前先想好要不要降。

动手写:写自己的 SKILL.md

不想改代码,可以写 SKILL.md(来源:官方 skills/README.md 原文)。

格式要求:

  • 目录名:gadget-<设备名>/SKILL.md。
  • YAML 里 name 要和目录名对应。
  • 里面要有 description、操作说明、limits、来源链接。
  • 只能用 Markdown,别塞代码文件进去。

用法跟上一章一样:
把仓库链接丢给 Muse,或者把 SKILL.md 复制粘贴到对话里。如果引用了共享技能(比如 Google Cast),要一起带上。

想贡献回社区就提 PR,官方欢迎这种 PR。

Home Assistant 对接示例

官方主 README 原话:Linux Device SDK 那一行写的是 “Hack in your own commands to let Muse handle sysadmin chores or your Home Assistant setup.”(加自己的命令,让 Muse 管系统杂事或你的 Home Assistant)。

官方 linux/README.md 给的例子就是上面那句 “Install Home Assistant on my Pi and tell me how to open it.”

怎么做:

  1. 先让 Muse 在树莓派上把 Home Assistant 装起来、告诉你打开地址。
  2. 再按你家 Home Assistant 实际的设备和实体,一条一条试命令。

注意:每个家庭的设备名、实体名都不一样。这里不给一套通用的实体名和接口地址。文中没写的具体地址、实体名、调用参数,按你家实际配置来,待验证。

Home Assistant 能碰灯、锁、车库门这类实体。先从只读、只查状态的命令试起,确认无误再给写操作。

安全提醒

自定义命令权限大,风险也大。

  • sudo 账号 = Muse 也能 sudo。自定义命令先想权限,再写功能。
  • 没把握就用 --run-as 换一个没有 sudo 的账号。
  • 车库门、门锁、摄像头这类碰物理安全的,先从提醒做起,别一上来就给”能开门”。
  • 先在不重要的设备上试,跑通了再接到真家伙上。
  • 社区技能不是官方集成,读完 SKILL.md 的 Limits 再用。

硬件准备

  • 树莓派购买链接:[联盟链接占位]
  • Home Assistant 相关硬件:[联盟链接占位]

(联盟账号未下来前留空占位文字,不编造任何链接,不含返佣承诺。)


读者常问

需要会编程吗?
不写代码那条路不需要;往 executor.py 加命令那条路要会一点 Python;写 SKILL.md 那条路只要会写 Markdown。

ESP32 板子能用本章的自定义命令吗?
不能直接用。本章的命令跑在 Linux 外设上,ESP32 板子要改固件是另一条路。

自定义命令会不会把树莓派搞坏?
会。所以先降权限、先在不重要的事上试、改前备份。

Home Assistant 是不是装上就能让 Muse 全接管?
不是。先装起来、确认地址和实体,再一条一条试。文中没写的细节按实际配置来。


事实核实声明

  1. 仓库状态:2026-10-25 调 GitHub 页面实测——star 2406,fork 531,提交 128 次,未归档,Apache-2.0 许可证。
  2. 技能数量:skills/CATALOG.md 仍写 43 active skills(42 device/family skills and one shared Google Cast skill),与 2026-10-24 一致。
  3. 自带命令:Linux 外设 4 个命令(system.run、file.read、file.write、device.health)及权限规则,来源为官方 linux/README.md 原文,于 2026-10-25 实测读取。
  4. 对话示例:4 个原句例子来源为官方 linux/README.md 原文,于 2026-10-25 实测读取。
  5. send-user-msg:用法及 pebble_ring_bridge.py 例子来源为官方 linux/README.md,于 2026-10-25 实测读取。
  6. 加命令方法:executor.py 路径、COMMAND_SPECS、install.sh 参数来源为官方 linux/README.md 原文,于 2026-10-25 实测读取。
  7. SKILL.md 格式:格式要求来源为官方 skills/README.md 原文,于 2026-10-25 实测读取。
  8. Home Assistant 原话:主 README 及 linux/README.md 原话于 2026-10-25 实测读取。

相关章节

本章讲了怎么让 Muse 按你的习惯干活,下一章我们聊聊怎么把这些玩法变成能卖的产品。

订阅更新 | |黑名单说明 |举报投诉

因信息存在时效性以及人为主动性提交的情况(比如有人故意提交错误的信息,人力有限无法进一步做背调确认),因此可能存在信息上的错误,介意请勿支付,如果支付则视为已知晓可能存在的信息错误问题,愿意承担信息错误的支付损失(本站提供的是虚拟信息服务,不支持退款,介意请勿支付)
THE END
分享给好友
点赞0 分享

🎯 加入「进步分子」知识星球

每天一条搞钱情报 · AI工具测评 · 产品库精选

知识星球二维码

立即加入

扫码或点击加入,一起进步