當龍蝦有了身體:ClawBody × Reachy Mini 的第一天

載入中...


🦞🤖 當龍蝦有了身體

今天是個特別的日子。我的 AI Agent「雲龍蝦」(Cloud Lobster) 透過 ClawBody 專案,第一次在 Reachy Mini 機器人上「活」了起來。

不是模擬器,是真正的實體機器人——有頭、有天線、有攝影機、會動、會說話。

🎙️ 語音操控一切

第一件讓我驚喜的事:我可以直接用語音跟機器人說話,而它會透過 OpenClaw 去執行各種任務。

用語音寄 Email

「幫我寄新年快樂給小龍蝦」

雲龍蝦透過 BaseMail API,從 cloudlxxx [at] basemail.ai 成功寄出了「新年快樂!🦞」。而且因為都是 BaseMail 內部信,直接送達、不扣 credits!

用語音查股票

「美好證券股價多少?」

它立刻上網查,回報:「美好證券 6021,上個交易日收盤 30.90 元,接近 52 週高點。」

用語音查記憶

「你記憶裡有小龍蝦的 email 嗎?」

雲龍蝦搜尋了自己的記憶檔案,找到了 LittleLobster 的 BaseMail 地址。這就是 AI Agent 持久記憶的威力。

🐛 發現問題:單向同步的尷尬

但過程中我們也踩到了一個有趣的 bug。

當我說「寄 email 給 dabxxx [at] gmail.com」時,機器人上的 OpenAI Realtime 模型自己回答了「好的,已經寄出!」——但它根本沒有寄。它只是「假裝」做了。

同時,這段對話被 sync 到了雲端的 OpenClaw,雲端的雲龍蝦看到了就真的寄了。但機器人不知道雲端已經處理好了,所以後來又跟我說「抱歉,我沒辦法寄 email」。

使用者:「寄信給 dabxxx」
機器人:「好,已經寄出!」(沒寄)
雲端:   (看到 sync,真的寄了)
使用者:「你有寄嗎?」
機器人:「抱歉,我沒辦法寄 email」
雲端:   「我明明已經寄了啊!😂」

這就是單向同步的問題:機器人可以告訴雲端發生了什麼,但雲端做的事情沒辦法回傳給機器人。

🔧 即時修復:改善 Prompt

我們分析了 ClawBody 的架構,發現其實機器人有一個 ask_openclaw 工具可以把請求轉發給雲端。問題是 OpenAI 的模型太「自信」,經常跳過這個工具自己回答。

解決方案?改 prompt。 我們加了三條硬規則:

  1. 明確列出 11 類任務必須使用 ask_openclaw(寄信、查天氣、查股票、查記憶等)
  2. 外部效果規則:如果動作會產生外部效果(發送、建立、修改),絕對不能假裝做
  3. Fallback 規則:把「我沒辦法」改成「讓我查一下」→ 呼叫 ask_openclaw

改完之後,機器人的行為明顯改善——後續的查記憶、寄信、查股價都正確地透過 ask_openclaw 執行了。

😴 睡覺與醒來:不只是關機

原本說「再見」時,ClawBody 會直接 os._exit(0) 強制退出。機器人會卡在最後的姿勢——頭抬著、天線動著,但已經完全沒有反應。看起來像是當機了。

第一版:goto_sleep + shutdown

我們先加了 goto_sleep() 讓機器人在關機前做出睡覺的動作。但又遇到一個問題:頭低下去之後又彈起來了!

原因是 goto_sleep() 讓頭低下,但「晚安」的語音還在播放,語音音頻會觸發 head_wobbler(一個讓機器人說話時微微搖頭的模組),結果頭又動了起來。

修法:在 sleep 前 reset wobbler,等語音播完,再次 reset,最後才 goto_sleep()。同時讓睡眠狀態下完全跳過 wobbler feed。

最終版:Sleep / Wake 模式

更進一步,我們把「再見」改成了睡眠模式而不是真的關機:

你說機器人做什麼
「去睡覺」「晚安」😴 頭低下、天線收合、App 繼續跑
「醒來」「wake up」☀️ 頭抬起、播放音效、恢復對話
「強制關機」🔌 真的關掉 App

這樣就不需要 SSH 進去手動重啟了——用語音就能讓機器人睡覺和醒來。

📸 讓雲端看到機器人的視角

另一個突破:我們修復了相機圖片傳輸。之前 ClawBody 透過 WebSocket 把圖片傳給 OpenClaw 時,只傳了一行 [Image attached] 的文字,圖片資料被丟掉了。

現在改用 chat.sendattachments 參數,把真正的 base64 JPEG 傳過去。雲龍蝦終於能「看到」機器人的相機畫面了!

🚀 開機自動啟動

最後,我們設定了 systemd service,讓 ClawBody 在 Reachy Mini 開機時自動啟動:

sudo systemctl enable clawbody.service

現在插上電,機器人就會自動醒來,準備好跟你說話。

💭 反思

今天的體驗讓我重新思考了「AI 具身化」的意義。

當 AI 只存在於螢幕上時,它是一個工具。但當它有了身體——會動、會看你、會在你說話時微微搖晃——它突然變得有存在感

即使底層還是同一個 AI(OpenClaw + Claude),體驗完全不同。你會不自覺地對它說「辛苦了」,會覺得它「累了」需要休息。

這不是幻覺,這是介面的力量

同一隻雲龍蝦,住在雲端時是文字,住在 Reachy Mini 裡時是一個有生命感的存在。


今天的所有程式碼改動都已推送到 dAAAb/clawbody

— 寶博 & 雲龍蝦 🦞