跳到內容

DuDuClaw OS 值班機

接上電源和一條網路線,一台小主機就會變成一個無頭(headless)AI 員工: 兩分鐘內,儀表板就能在你的區網裡打開,不需要接螢幕或鍵盤。

DuDuClaw 平常是裝在你自己管理的機器上跑的一個二進位檔。值班機站在光譜的 另一端:一份可開機的磁碟映像,把一台現成的小型迷你主機變成一台專屬打造 的 DuDuClaw 機器。不必設定作業系統,不必安裝相依套件,也不必打開終端機, 開機就直接進 DuDuClaw,然後一直待在那裡。開機之後的一切都在瀏覽器裡完 成,而且只在你自己的區網上。

它服務的對象跟 DuDuClaw 其他部分一樣:想要一個 AI 員工全天候盯著 Telegram/LINE/Discord/Slack,卻不想撥一台筆電專門給它用,也不想把帳號憑 證交給第三方保管的人。

  1. 安裝。 每個 release 針對每種機型都提供兩種形式。live 安裝器 ISO:燒 錄到隨身碟(或燒成光碟),用 UEFI 模式開機,並把 Secure Boot 關閉( 已發布的映像沒有經過 Secure Boot 簽署,詳見下方〈版本與桌面〉與信任鏈的 說明),在圖形化安裝器裡選擇內建 SSD,然後重開機進入已安裝的系統。整碟 映像(.wic.zst)跳過安裝器:解壓縮後直接寫入目標磁碟。透過通路購買、 出貨前硬碟已經預先燒錄好的機型,可以完全略過這一步。
  2. 首次開機。 機器會先透過 NTP 校時、設定預設時區,這一步排在碰網路 之前完成(時鐘不準會讓 OAuth 和 TLS 悄悄壞掉,所以放在最前面),接著 透過有線 DHCP 拿到位址,並在區網上以 duduclaw.local 這個名稱宣告自 己。儀表板會綁定在你的本地網路上(不限於機器本身),但防火 牆只放行儀表板連接埠與探索協定;機器上其他所有東西都連不到,預設也 絕不會暴露在公開網際網路上。
  3. 連線。 用同一個網路裡的任何一台 Mac、iPhone 或 Windows 機器打開 http://duduclaw.local。Android 沒辦法解析 .local 位址,所以機器 另外提供一個小型的輔助探索頁面,直接顯示它的位址。設定完成前誰先連 上,誰就負責完成設定,這跟其他自架值班機一樣,遵循先到先得的慣例。
  4. 設定一個管理員帳號,接著選擇語言、確認時區。
  5. 連接模型帳號與聊天通道。 設定精靈會在機器上執行 claude setup-token,顯示一個連結(附 QR code),你在自己的瀏覽器裡核准後把 短碼貼回來,機器會在存下任何東西之前先真的打一次 API,確保失效或過 期的 token 不會被誤判成可用。直接貼 API key 也行,完全不用走 OAuth。 聊天通道方面:Telegram、Discord、Slack 和網頁聊天都是直接對外連線, 貼上 token 就好。LINE 跟其他 webhook 型的通道,在一台躲在家用路由器 NAT 後面的機器上收不到任何東西,所以這些通道要透過官方中繼服務轉 送;中繼服務只轉送機器自己主動開啟那條連線上的不透明位元組,每個進 來的 webhook 真正的簽章檢查仍然在機器本地執行,不在中繼服務裡(詳見 下方〈安全設計〉)。
  6. 挑一個產業範本,這會建立你的第一個 AI 員工,接著在剛剛連好的通道 上傳一則測試訊息。收到回覆才代表機器整條路徑真的跑得通,而非只有儀表 板打開而已。
  7. 待命。 到這裡機器就只是持續運作。systemd watchdog 會重啟卡死的 gateway 行程,連續開機失敗時會自動退回前一個作業系統版本,不會卡在 那裡。

值班機安裝會多一個裝置頁面,只有值班機看得到:一般桌面版或伺服器版 安裝在導覽列裡完全看不到這個項目,而且這個頁面本身在非值班機環境下會 拒絕渲染,不會顯示出誤導性的內容。

  • 狀態:即時的 CPU/記憶體/硬碟/溫度/網路快照。
  • 更新中心:作業系統本身的更新跟 DuDuClaw 應用程式是分開的,走 A/B 分割方案:套用更新後,如果機器開機失敗,會自動退回先前跑的版本。使用 者主動要求的一鍵回滾(相對於失敗時自動觸發的那種)目前刻意標示為尚未 提供,而不是隨口保證:底層的更新工具本身沒有內建的「undo」指令,在不 確定機制的情況下亂選開機槽位,可能會把一台沒接螢幕、沒辦法現場除錯的 機器直接弄成磚。
  • 網路:目前只是唯讀檢視機器的網路介面;從儀表板編輯靜態 IP 這個功 能還沒接上。
  • 備份:把機器學到、存下的所有東西(agent 記憶、對話紀錄、設定)打 包成一個可以下載的檔案。
  • 危險區:恢復原廠設定(需要打字輸入「RESET」確認,不能只按一個按 鈕)、重新啟動、關機,各自都有自己的確認關卡。

DuDuClaw OS 的每一份映像開機後都會進入 DuDuClaw 自己的桌面:一套自有的 compositor 與 shell,附鎖定畫面、首次啟動精靈,還有一個能從任何 app 把工作 交給 AI 員工的 Cmd+K 快捷列。人與 AI 共用同一台機器,compositor 保證人永遠 贏得輸入權:只要碰鍵盤或滑鼠,AI 當下在畫面上操作的一切就會立刻凍結。這套 機制實際怎麼運作、AI 在你的桌面上可以做什麼、不可以做什麼,另有專文說明: 52-desktop-edition.md

每個 release 會發布兩份映像,差別在於桌面之上疊了什麼:

映像 是什麼 出貨形式
桌面版duduclaw-image-appliance 完整機器:桌面加上離線預載的 Chromium/LibreOffice/Steam、app 相容層(Bottles、Windows VM、Waydroid)、唯讀 root、防火牆、首次開機 provision,以及登入硬化。 整碟 .wic.zst,以及自己的 live 安裝器 ISO(installer-desktop,2026-09-04 補進 v0.1.0)。
基礎版duduclaw-image-ab 同樣的 A/B 架構、桌面殼層與 gateway,但沒有 app 相容層、唯讀 root 或防火牆。是一份 bring-up 產物,而非產品。 v0.1.0 live 安裝器 ISO 打包的內容。

沒接螢幕時桌面會怎麼表現,例如是否會退回成純儀表板的無頭模式,這件事還沒有 在真實硬體上定案,仍是一個待解的 bring-up 項目。上面說明的「儀表板在區網上 打開」這條路徑,不管有沒有接螢幕都一樣能用,因為服務它的是 gateway,不是桌 面。

  • 不會為了讓儀表板的電源/更新按鈕能動,就多跑一個 root 權限的行 程。 真正需要 root 權限的少數幾個操作(重開機、關機、套用 OS 更 新、重新啟用 first-boot 設定)由一個獨立的小型 helper 行程處理,它只 透過本機 Unix socket 講死六個固定指令,而且動手之前一定先驗證發話者 的身分。如果身分驗證沒設定好,它會拒絕所有請求,而不是預設信任。
  • 預設所有連接埠都是關閉的。 防火牆擋掉除了儀表板連接埠與本地網路 探索之外的所有連入連線。遠端 SSH 存取出廠就是關閉的,只有你在儀表板 上明確打開才會啟用。
  • webhook 中繼服務永遠看不到你的通道密鑰。 對需要它的 webhook 型通 道來說,中繼服務的工作僅限於把收到的請求原始位元組,轉送到機器自己 先開啟、並用自己的金鑰驗證過的連線上;中繼服務本身從不驗證簽章、不 儲存通道密鑰,也不解析 payload。就算中繼服務被入侵,裡面也沒有任何 有用的東西能洩漏。
  • 這份映像不是「相信我們就好」。 產生這份映像的建置腳本是公開的 (見下方〈自行建置〉),任何人在燒錄之前都能讀完每一行進到機器裡的 程式碼,不必只憑廠商的一面之詞。

這份映像不是一份來路不明的二進位檔——它是從一個公開的 Yocto layer 建置 出來的,你可以自己稽核,也能在自己的機器上重現,而且每一個 release 產 物都附上 SHA-256 與 minisign 簽章。自 2026-09 起,這個 layer 與它的 release 流水線搬到獨立的 DuDuClaw-OS repo;下載已 簽署的 release 或從原始碼建置的方法,見建置指南

這是平台裡還很年輕的一塊,老實講清楚它目前站在哪裡,比往好處說更重要。 截至 DuDuClaw OS v0.1.0(2026-09-04,DuDuClaw-OS repo 的第一個 tagged release):

  • x86-64 映像已經存在,兩種機型、兩種形式(整碟映像與 live 安裝器 ISO)都有發布,而且都簽了章。QEMU 機型兩種形式都已經過開機驗證;真 實硬體機型(duduclaw-genericx86-64)目前只做過設定稽核。
  • 完整的真實硬體驗證(燒錄媒介、開機、安裝、走一遍設定流程、在聊天通 道來回一則訊息、套用一次 OS 更新、強制觸發一次回滾、跑一次恢復原廠 設定,而且全部要在真正拿到認證的硬體上做)還沒有發生過。這是目前最 重要的待辦事項。
  • 信任鏈已經接進建置層,但已發布的映像只開啟了其中一部分。v0.1.0 出貨的部 分:A/B 原子更新與回滾,以及桌面版裡的唯讀 root。v0.1.0 產物沒有啟用 的建置期選項:UKI 的 Secure Boot 簽署與 dm-verity root 驗證(兩者都來自 sb-signing 建置 overlay,已發布的映像開機時 Secure Boot 是關閉的),以 及 TPM2 + LUKS 金鑰封裝(tpm-luks overlay;它的自動註冊仍是一個待解的 缺陷,需要真實硬體上的 TPM 才能收尾)。
  • OS 的版本號跟平台本身是分開算的(0.x 代表 bring-up 階段;1.0.0 才會是第一個 GA)。逐版狀態記在 DuDuClaw-OS repo 的 CHANGELOG.md 裡。

這些都不妨礙你今天就燒一份 release 來試用;但要讓值班機變成一個可以放 心交給不熟悉自行排查開機故障的人使用的東西,這些正是還沒做完的部分。