Часть 09: управление настольным питомцем через Feishu
После этой главы читатель должен уметь использовать Feishu как основной вход в OpenClaw и управлять состоянием, режимами и возможностями платы «настольного питомца» MagicBox через сообщения. Веб-фронтенд перестаёт быть единственным входом и при необходимости остаётся резервным вариантом.
1. Два уровня, которые нужно различать
Возможности OpenClaw для Feishu делятся на два уровня.
Первый уровень — собственный шлюз OpenClaw и плагин робота. Он передаёт сообщения из Feishu локальному OpenClaw и возвращает ответы обратно в Feishu.
Второй уровень — возможности самой платы, то есть набор команд magicboxctl. Именно он реально управляет подсветкой, голосом, сервоприводами, назначением кнопок и демонстрациями.
Значит, ответ «состояние», который вы видите в Feishu, по сути есть состояние платы, которое OpenClaw просто переупаковал в сообщение.
2. Сначала запустите шлюз Feishu
Если после установки плагина Feishu в журнале появилось Gateway service missing, обычно это значит, что плагин установлен, а служба шлюза ещё не запущена.
На Windows-компьютере, где установлен OpenClaw, выполните:
openclaw gateway install
openclaw gateway
openclaw gateway status
Если в системе уже есть задача планировщика, можно запустить её напрямую:
schtasks /Run /TN "OpenClaw Gateway"
Если хотите наблюдать журнал в реальном времени:
openclaw logs --follow
Тестировать сообщения в Feishu стоит только после того, как шлюз запущен и бот настроен.
Если вы уже запускали шлюз в переднем плане и хотите перезапустить его, используйте:
openclaw gateway restart
Если шлюз работает в окне терминала, Ctrl+C останавливает только этот процесс переднего плана. Он не очищает историю сессии в Feishu и не переводит старую сессию в новую.
Поэтому важно различать две операции:
openclaw gateway restart— перезапуск процесса шлюза;/reset— очистка текущей истории сессии в Feishu.
Если хотите начать диалог заново, отправьте в Feishu:
/reset
Если нужна отдельная тестовая сессия, можно задать новый sessionKey, например:
请把 sessionKey 设为 agent:main:test7。
(«Задай новый sessionKey: agent:main:test7».)
(«Задай sessionKey равным agent:main:test7».)
2.1. Если нужно проверить плату напрямую
Иногда вопрос лучше не задавать через Feishu, а проверить на самой плате, например если нужно понять, работают ли службы, подсветка, голосовая цепочка или назначение кнопок. Тогда быстрее подключиться по SSH:
ssh sunrise@192.168.127.10
Если нужны права root, переключитесь:
sudo -s
# или
sudo su -
Управление платой выполняется через единый командный интерфейс:
sudo /userdata/magicclaw/runtime/bin/magicboxctl status
Другие полезные команды проверки:
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice status
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons show
sudo /userdata/magicclaw/runtime/bin/magicboxctl fan status
Если хотите сразу проверить подсветку, выполните на плате:
sudo /userdata/magicclaw/runtime/bin/magicboxctl led preset red
sudo /userdata/magicclaw/runtime/bin/magicboxctl led rgb 255 0 0
2.2. Как сделать так, чтобы Feishu реально управлял платой
Чтобы команды из Feishu доходили до платы, обычно достаточно одного из двух способов.
- OpenClaw уже получил рабочий инструмент платы и может напрямую вызывать
magicboxctl. - Инструмента платы пока нет — тогда сначала подключитесь по SSH и выполняйте
magicboxctlна плате.
Поэтому если Feishu отвечает примерно так: «у меня сейчас нет доступного интерфейса для управления подсветкой MagicBox», не продолжайте спрашивать «а можешь ли ты?». Лучше перейти к конкретному пути выполнения:
Сначала подключитесь по SSH:
ssh sunrise@192.168.127.10
Затем выполните команды на плате:
sudo /userdata/magicclaw/runtime/bin/magicboxctl status
sudo /userdata/magicclaw/runtime/bin/magicboxctl led preset red
sudo /userdata/magicclaw/runtime/bin/magicboxctl led rgb 255 0 0
sudo /userdata/magicclaw/runtime/bin/magicboxctl buttons show
sudo /userdata/magicclaw/runtime/bin/magicboxctl voice status
sudo /userdata/magicclaw/runtime/bin/magicboxctl servo both 10 50
Смысл такого пути в том, что намерение, высказанное в Feishu, сначала превращается в конкретную команду на плате. Когда команды на плате работают, подключить к ним Feishu становится намного проще.
3. Какие короткие команды можно давать в Feishu
Вход OpenClaw в Feishu пока работает через текстовые команды, а не через панель кнопок. Самые распространённые встроенные команды:
/status
/reset
/model
Они означают:
/status— состояние текущей сессии, модели и работы;/reset— сброс текущей сессии;/model— просмотр или переключение модели.
Если вы хотите использовать Feishu как основной пульт питомца, лучше формулировать запросы короткими фразами, а не думать, как что-то нажать в браузере. Вот примеры фраз, которые удобно отправлять в Feishu (в скобках — перевод):
请启动双目模式。(«Запусти режим бинокулярного зрения»)请启动手势模式。(«Запусти режим жестов»)请启动完整语音对话。(«Запусти полный голосовой диалог»)请执行 YOLO Demo。(«Запусти демо YOLO»)请把左键设为双目,中键设为手势,右键设为语音对话。(«Назначь левую кнопку на бинокулярное зрение, среднюю — на жесты, правую — на голосовой диалог»)请朗读一句:你好,我已经启动。(«Прочитай вслух фразу: здравствуйте, я уже запущен»)请把左支撑角转到 15 度,右支撑角转到 45 度。(«Поверни левую опорную стойку на 15 градусов, правую — на 45»)请把四个灯全部设为红色。(«Установи все четыре подсветки в красный цвет»)请把第1盏灯设为红色,第2盏灯设为绿色,第3盏灯设为蓝色,第4盏灯设为白色。(«Первую подсветку — в красный, вторую — в зелёный, третью — в синий, четвёртую — в белый»)请让灯光闪烁三次,颜色用蓝色。(«Пусть подсветка мигнёт три раза, цвет — синий»)
Эти фразы удобны тем, что читателю не нужно помнить низкоуровневые скрипты: достаточно понимать свою цель. OpenClaw сам превращает их в вызовы инструментов платы.
Примечание: сами фразы в примерах написаны по-китайски, потому что ассистент обучен понимать именно такие формулировки; переводить их в команде не нужно.
4. Что делать, если Feishu просит sessionKey
Иногда после запроса управления бот отвечает, что для текущей сессии ещё нет состояния платы или нужно указать sessionKey или имя устройства. Это не значит, что команда подсветки не сработала: просто текущее сообщение Feishu ещё не привязано к конкретной сессии платы.
Так бывает в двух случаях.
Первый: сообщение пришло в новой сессии Feishu, и OpenClaw ещё не знает, к какой плате она относится. Второй: вы пишете на естественном языке, а ассистенту для поиска целевой платы нужен явный ключ сессии.
В таком случае просто добавьте в сообщение идентификатор платы. Надёжнее всего написать:
请把 sessionKey 设为 agent:main:test7,然后返回当前板端状态。
(«Задай sessionKey равным agent:main:test7, затем верни текущее состояние платы».)
или
请控制 agent:main:test7 这块板子,把四个灯都设为红色。
(«Управляй платой agent:main:test7: установи все четыре подсветки в красный».)
Если не хотите помнить ключ сессии, хотя бы чётко назовите целевую плату, например:
请控制当前这块 MagicBox,把四个灯设为红色。
(«Управляй текущей платой MagicBox: установи четыре подсветки в красный».)
Если ассистент всё равно продолжает спрашивать sessionKey, значит, он ещё не получил достаточных данных о привязке. В этом случае не повторяйте то же самое команду подсветки, а сначала уточните ключ сессии или имя платы и только потом отправляйте управляющую команду.
5. Как должно выглядеть состояние платы в ответе
Если вы хотите просто понять, как питомец себя чувствует, лучше всего, чтобы Feishu возвращал краткую сводку состояния платы, а не сыпал сырыми журналами.
Уже подтверждённые пункты сводки:
- каталог установки;
- текущее время;
- занятость USB-накопителя;
- состояние
magicclaw.service; - состояние
magicclaw-buttons.service; - статусы режимов: бинокулярного зрения, жестов, голоса, YOLO;
- состояние голосовой цепочки;
- состояние громкости.
То есть на вопрос «какое сейчас состояние платы» ответ должен отвечать примерно на вопросы: подключён ли шлюз, в каком режиме сейчас питомец, запущена ли голосовая цепочка, работают ли подсветка и сервоприводы.
Если нужны подробные данные о CPU, памяти или нагрузке, текущая команда magicboxctl status этого не покрывает. В этом случае лучше добавить отдельный навык, а не предполагать, что он уже есть.
6. Рекомендуемая последовательность работы с Feishu
Если вы решили сделать Feishu основным входом, удобнее действовать в таком порядке.
- На Windows-компьютере запустите шлюз OpenClaw.
- В Feishu убедитесь, что бот правильно настроен.
- Сначала отправьте
/status, чтобы проверить, что шлюз и сессия работают. - Затем отправьте запрос на сводку состояния, например
请返回当前板端状态。(«Верни текущее состояние платы») - После этого переходите к управляющим командам, например
请启动语音对话(«Запусти голосовой диалог»),请执行双目模式(«Запусти бинокулярный режим») или请调整舵机到打招呼姿态(«Поставь сервопривод в позу приветствия»).
Так сначала проверяется связь, а потом управление: это ускоряет поиск неисправностей.
7. Частые вопросы
1. В журнале появилось Gateway service missing
Это означает, что плагин установлен, но шлюз не запущен. Сначала выполните:
openclaw gateway install
openclaw gateway
и только потом возвращайтесь к тестам в Feishu.
2. Бот в Feishu отвечает, но плата не двигается
Сначала проверьте, что службы magicclaw.service и magicclaw-buttons.service на плате работают. Затем убедитесь, что для нужного действия есть соответствующий навык или назначение команды.
3. Хочу пользоваться только Feishu и не открывать веб-интерфейс
Это возможно. Feishu вполне может быть основным входом, а облегчённую веб-страницу оставить резервной.
4. Хочу узнать загрузку CPU, памяти или нагрузку
Текущая команда по умолчанию таких показателей не выводит. Сначала попросите сводку состояния платы; если понадобятся системные метрики, добавьте отдельный навык.
8. Итог главы
Если вы хотите сделать OpenClaw главным пультом питомца, лучше всего не настраивать всё через веб-страницы, а сначала поднять шлюз Feishu и затем свести часто используемые возможности платы к небольшому набору текстовых команд.
Запомнить достаточно трёх вещей:
- Шлюз должен быть запущен.
- В Feishu отправляйте короткие фразы или команды с косой чертой.
- Реальные действия питомца по-прежнему выполняет
magicboxctl.