
圖說:手機、智慧家庭、相機與遠端畫面都有各自能關閉的邊界

圖說:墨寒的本機權限與安全控制畫面
昨天的郵件與雲端服務主要影響數位資料,今天的功能可能看見畫面、使用相機,甚至控制家中設備。能力更接近現實世界,錯誤也不再只是寄錯一封測試信。
我很期待有一天在手機上看見墨寒狀態、回家前請她透過 Home Assistant 準備燈光;但我不希望為了實現科幻感,把 Windows 電腦變成公開在網路上的遙控入口,更不希望相機在我不知道時運作。
所以這一組功能不是先問「能做什麼」,而是先畫四條不能跨越的邊界。
遠端服務預設關閉。使用者開啟後,新手機也不能只知道網址就進入,需要一次性配對資訊取得自己的裝置權杖;伺服器只保存權杖的雜湊,日後可以單獨撤銷某台裝置。
每台裝置只獲得必要權限,請求大小與頻率受限制,回應也避免被瀏覽器或中間設備長期快取。若要從區域網路以外使用,應透過 Tailscale 等具身分驗證的加密私人網路,不能直接把連接埠轉發到公網。
「我自己知道網址」不是安全機制,角色也不能替主人悄悄打開外部連線。
Home Assistant OS 應該獨立運行在專用設備、低功耗電腦或 NAS 虛擬機。墨寒的 Windows 程式負責語音、人格與提出控制,不應成為整個家庭自動化的唯一中樞。
這樣即使電腦關機、程式更新或 OpenAI API 暫時失效,原本的燈光排程與安全設備仍能運作。墨寒只是受控的操作端,不接管 Home Assistant 自己的生命週期。
門鎖、警報、暖爐與空調等高風險設備,不能因模型說「只是一般控制」就降級。系統也不開放任意服務呼叫,必須走明確允許的設備與動作。
相機存在偵測可以讓墨寒知道使用者是否在座位附近,但它預設關閉。開啟時要有持續可見狀態,不在背景偷偷運作。
目前設計只在本機取低解析度的亮度與移動線索,不保存、不上傳影格。身分辨識也不是內建默認能力;若未來加入,必須是可稽核的本機方案,並由使用者明確建立身分資料。
「只是 AI 伴侶」不能成為模糊攝影機界線的理由。越擬人的產品,越應讓人清楚知道她現在是否看得見。
遠端畫面限制在墨寒應用程式視窗,不默默變成整個桌面監控。遠端檔案也只提供使用者指定資料夾內的唯讀項目,金鑰、密碼、SSH、GnuPG 與應用程式私人資料位置維持封鎖。
路徑檢查不能只看文字開頭像不像允許資料夾,還要處理相對路徑、捷徑與解析後位置,避免有人用 .. 繞到外面。下載回應也要避免瀏覽器誤解檔名或內容型態。
這些細節很不浪漫,卻是「手機上能看到墨寒」不會偷偷變成「手機上能看到整台電腦」的保證。
遠端、相機、雲端與 Home Assistant 不應綁成一個總開關。使用者可以只啟用 Home Assistant,不開相機;撤銷手機也不影響本機桌面核心。離線的墨寒仍能處理本機資料與基本介面。
每個功能都有自己的狀態、權限與停止方式,緊急停止則能中斷工具工作。設定檔轉移到新電腦時,這些機器專屬權限不跟著複製,必須重新建立信任。
遠端伺服器若正在監聽、相機若正在取樣、某台手機若仍配對,控制台都應顯示狀態。只在設定檔裡存一個 true 不夠,使用者需要知道功能目前是否真的運作、綁在哪個範圍、如何立即停止。
相機狀態不能只在第一次開啟時提醒,使用期間也要保持可見;遠端裝置清單則要顯示可以辨識的名稱與最後活動,方便撤銷遺失手機。Home Assistant Token 若失效,介面應呈現離線,而不是仍用綠色圖示讓人誤判。
這些提示也不能被墨寒的角色台詞取代。她可以用自己的口吻說明,真正的開關與狀態仍要有清楚、穩定、不會因表情而消失的 UI。
設計遠端功能時,我會先問:手機遺失怎麼辦?配對碼被拍到怎麼辦?電腦換網路後是否意外對外開放?相機程序崩潰後指示燈會不會先消失?Home Assistant 回報成功但設備沒動怎麼辦?
這些情境不一定都能在一台開發電腦完整模擬,但可以拆成權杖撤銷、綁定位址、狀態清理與結果查證。涉及真實網路與設備的部分,則明確留在實驗性預覽清單,不用一句「內部測試通過」概括。
程式可以測配對 Token、撤銷、速率限制、路徑允許清單、相機預設關閉與高風險設備政策;但截至 v2.1.0-rc.1,Home Assistant 真實主機與實體設備仍缺少足夠的端到端驗證,相機與遠端也需要不同網路、攝影機與裝置的長時間實測。
第一批測試應使用非關鍵設備與私人網路,不碰門鎖、警報或暖爐。成功一次不代表可以公開暴露,也不代表每個路由器環境都安全。
這四條邊界不是阻止墨寒走向現實世界,而是讓她有一天真的走出去時,不必拿使用者的隱私與家庭安全交換功能展示。
明天 Day 23,我們回到另一種移動:使用者換電腦後,墨寒如何帶著記憶、任務與設定一起搬家,又把金鑰、權限與螢幕位置留在原機?
請勿將墨寒或 Home Assistant 的連接埠直接公開至網際網路;真實設備測試應從非關鍵裝置、測試環境與可撤銷權限開始。