我抽屜裡有一台舊 Pixel 4a,大概有十八個月對我來說形同死機。電池衰得很厲害,背蓋裂了,SIM 卡槽的鉸鏈還有點鬆。但它同時也有一顆 2.0 GHz 八核 CPU 和六個 G 的記憶體——換句話說,是一台相當不錯的小型 Linux 電腦。
上禮拜我把它充上電、裝了 Termux,把 Hermes Agent 塞了進去。二十分鐘後,我已經能從身上隨便帶的那支現役手機的 Telegram 裡,跟一個 AI 助理對話了。這篇講這套東西是怎麼跑起來的,以及為什麼「手機的那些限制」剛好是看清 Hermes 本質的一個好角度。
Android 手機上到底在跑什麼
Hermes Agent 是一支 Python 程式。Termux——要裝 F-Droid 上那一版,不是 Play 商店那個早停更的——會在 Android 上給你一個真正的 Linux 使用者空間:apt、Python 3、git、ssh、一個 shell。這已經足夠讓 Hermes 大部分的安裝步驟和在 VPS 上跑起來是一樣的。
Android 上真正不一樣的地方不是 Hermes,而是它所處的那套作業系統。
對長時間跑的背景行程來說,Android 是個不友善的宿主。它沒有 systemd,也沒有傳統 init,電源管理器還特別兇——只要你的行程不在前景,它就樂意把它凍住,鎖螢幕那一刻就動手。你什麼都不做就開跑 Hermes,螢幕一熄,你的 Telegram bot 就不再回話了。
訣竅是 Termux 內建的 wakelock 小工具(termux-wake-lock),它會客客氣氣地請 Android 別來煩你的行程。再配合 tmux 或 screen——讓工作階段扛得住 shell 斷線——把手機插上充電器,你就得到了一台常開的小伺服器,安安靜靜住在你抽屜裡面。
為什麼 Hermes 真的能塞進手機
大多數做「手機上的 AI 助理」的專案,走的是兩條路之一。要嘛丟出一個巨大的行動 app,裡面包一層 API 呼叫(說白了就是別人家 agent 的聊天用戶端),要嘛試著直接在裝置上跑一個量化過的小模型,結果給你的是個又慢又不太聰明的東西。Hermes 這兩條都不走。
你在手機上真正跑的是 Hermes 閘道——也就是掛在 Telegram、Discord、Slack 這些平台上收發訊息、管理會話、跟你選定的那家語言模型供應商對話的那一部分。語言模型本身不需要住在手機裡。你可以讓手機透過 HTTPS 去跟 Nous Portal、OpenAI、Anthropic 或任何其他供應商說話。手機的工作是當一個小、便宜、常開的協調器。重活留給雲端、留給另一台伺服器,或者你喜歡的任何地方。
這正是 v0.2.0 那一版的架構決定,在一台從沒為它設計過的裝置上默默兌現的地方。集中式供應商路由器意味著:你可以讓手機預設走便宜模型(比方說 Nous Portal 上的免費檔 MiMo),只有碰到硬任務才升級到更強的模型。技能 manifest 系統只會載入那些前置條件確實在裝置上存在的技能——瀏覽器自動化技能不會在一台根本沒裝無頭 Chrome 的手機上試著去啟動它。檔案系統檢查點和回復機制依然能用,因為它根本不在乎底下這台機器有多壯。
你失去什麼,你換回什麼
手機上跑不起來的東西大部分都在意料之中:沒辦法裝 systemd 服務(所以你改用 tmux,並且接受一次重開機就意味著要手動重啟閘道)、沒辦法跑重量級的本地推論、沒辦法用以 Docker 為基礎的工具沙盒,本地瀏覽器自動化也受限。瀏覽器技能依然能用——只要你讓它指向另一台機器上的無頭 Chrome——但 Android 本身不會替你拉起 Playwright。
你換回來的是一台小型常開伺服器所有吸引人的地方:預設就有 LTE(手機本身就是它的網路)、內建 UPS(停電時電池能撐好幾個小時)、內建監控(手機的電量顯示正精確地告訴你這台伺服器在幹嘛),還有完全靜音。零風扇噪音,零機櫃空間,耗電量差不多就一盞小夜燈。
更大的那層意思
在一台廢手機上跑 Hermes,真正有意思的點不是它「能跑」,而是它跑起來和在 200 美金的伺服器上沒什麼兩樣。一個 agent 一旦和它運行的機器解耦了,你拿哪台機器跑就不太要緊了。
抽屜裡一台廢 Pixel 4a,完全可以是一個你一天對話十次的 bot 的好歸宿。這不是妥協,這就是整件事的意義。