人不在電腦前,agent 也不用等







Day 233 我寫 herdr 的時候,最後一句是「打開電腦的時候,有人告訴我哪一隻在等我」。這兩天翻 herdr 的 plugin 清單,看到 herdr-mobile-relay 這個開源專案——它做的事情,就是把那句話裡的「打開電腦」拿掉。
它是 herdr 的 plugin,裝完之後用手機瀏覽器打開就是一個 web app,可以同時管好幾台電腦上的 agent。agent 停下來等你批准的時候,手機收到推播,直接在手機上按。
這篇分享:一行怎麼裝、手機上到底能做哪些事、三種連線方式差在哪、還有我自己裝來用之後,目前最有感的一個缺點。
一行裝起來,但要先有 herdr
herdr plugin install 0cv/herdr-mobile-relay
前置條件三個:herdr 0.7.5 以上、機器上有 git 和 curl、作業系統是 Linux 或 macOS。原生 Windows 不支援,WSL2 作者標的是「可能可以,但沒測過」。
指令跑完會跳出設定選單,README 建議選 Community WebRTC Gateway(QUICKSTART 走的則是 Temporary Cloudflare Tunnel)。plugin 自己去抓驗證過的 relay 套件,不用先裝 Python、Node.js 或 Go 工具鏈,也不用 sudo。選單沒跳出來的話,文件給的備用指令是 herdr plugin action invoke setup --plugin herdr-mobile-relay.events。
架構是每一台電腦各自跑一個 relay(中繼程式,手機要連的就是它),手機去連這些 relay,把每一台上面的 agent 合併進同一個 app。所以它不是「一台電腦配一個網頁」,是幾台機器共用一個手機介面。它做成 PWA(progressive web app,用瀏覽器開、可以像 app 一樣放到主畫面的網頁),所以不用上架 App Store,設定流程掃 QR code 就接起來——每多接一台電腦就多掃一張,全部收進同一個 app。
手機上能做的事比我以為的多
- 送 prompt、按終端機按鍵、丟 slash command、傳截圖和照片
- 開新的 agent、改名、清掉、停掉
- 回答核准請求(Codex、Claude Code、Qoder、Oh My Pi、Pi),還有 agent 丟出來的計畫類提問(以上再加 OpenCode)
- 讀 agent 的原生對話紀錄,可以搜尋
- 看 workspace 裡的檔案、圖片和 git diff——這一塊是唯讀的
通知那一端,blocked(那隻 agent 停下來在等人回答)是基本款,做完的通知文件標成 optional,自己決定要不要開。會響的只有真的需要你的時候。
「按終端機按鍵」這一項我覺得是關鍵。手機上打字很痛苦,但很多時候要做的只是按一個 y、按一次 esc、或者上下鍵選一個選項。有這個,手機才不只是一塊看板。
三種連線方式
| 方式 | 要準備什麼 | 什麼時候用 |
|---|---|---|
| 暫時的 Cloudflare tunnel | 什麼都不用,跑起來就有 | 只想先試一次;每次重啟網址都會換 |
| 社群 WebRTC gateway | 一樣不用 Cloudflare 帳號和網域,但要有一個已安裝的 herdr app 當手機介面的來源 | README 推薦的預設路線;但 transports.md 把 Cloudflare tunnel 標成 default,社群 gateway 標成 best-effort、不適合大量傳輸 |
| 自架 gateway | 一台小 VPS | 想要專屬頻寬和掌控權 |
走 gateway 的那兩條路,手機會盡量直接跟電腦協商出 WebRTC 的點對點連線(兩端直接對接、不繞中間伺服器轉送),談不成才退回 gateway 幫忙轉;Cloudflare tunnel 則是固定走 Cloudflare。社群那條路,文件寫得很誠實,原文是「free, shared, best-effort」——免費、共用、盡力而為。
加密範圍寫得算具體:prompt、終端機輸出、上傳的東西、推播內容,都是手機和 relay 之間端對端加密;中間不管是 Cloudflare tunnel 還是 gateway,看得到的只有連線的 metadata,看不到內容。文件裡那句是「gateway 沒辦法讀你的流量——它複製的是已經加密過的封包」。
配對用的 QR code 要當成密碼保管。加密金鑰就放在設定連結的 fragment(網址 # 後面那一段)裡,專案說明文件直接寫「把 QR 和它的設定連結當成 secret」。截圖丟進群組,等於把鑰匙一起交出去。
目前最有感的缺點
回應一長,手機上就回不到更前面的訊息。
agent 吐出一大段之後,往前滑接不回前面那幾則——它中間做了什麼、前面問了什麼,在手機上串不起來。
要按的只是 y 或 esc 的時候,這個限制沒差。但如果那個核准請求得先回頭看幾則才知道該不該點,手機就不夠用,還是得走回電腦前面。
這也是我現在對它的定位:它接住的是「單鍵就能決定」的那一類等待,不是「要重新讀一遍上下文」的那一類。
這個 plugin 換來的是推播和一個為手機做的介面:差別在於我不用先想起來要去看,是它主動來找我。
誰做的、多成熟
- 社群專案,不是 herdr 官方(herdr 本體掛在 herdrdev 底下),作者是 0cv
- 121 顆星、12 個 fork、2 個 open issue(今天查的)
- repo 7 月 3 日開的,不到兩個月,今天還有新的 push
- plugin 版本已經推到 0.17.5
- 授權是 AGPL-3.0 or later
星數不算多,但 open issue 只有 2 個、兩個月內版本號推到 0.17.5,看起來是有人在顧的。
順帶一提,這是我這幾天看到的第二個長在 herdr 上面的東西。Day 234 那個 firstmate 也是拿 herdr 當 backend(文件標 experimental)。同一個底層,一個往上長出調度多隻 agent 的老大,一個往外長到口袋裡。
Day 233 那句話,這個 plugin 改成的是:不用打開電腦,也知道哪一隻在等我。裝來用過之後,我會再加一句:知道歸知道,回得回去才算數。
最近開始做免費的一對一諮詢,幫你把 AI 接進自己的工作流——有需要的話可以約:https://www.dawsonwang.com/
來源:
- herdr-mobile-relay GitHub repo:https://github.com/0cv/herdr-mobile-relay
- 安裝與設定選單(QUICKSTART):https://github.com/0cv/herdr-mobile-relay/blob/main/QUICKSTART.md
- Day 233 關掉終端機,agent 還在跑(herdr 本體、blocked 判定):https://www.dawsonwang.com/day/233
- Day 234 幫你的 subagent 們找一個老大(firstmate 拿 herdr 當 backend):https://www.dawsonwang.com/day/234