AI 程式開發與代理

在外出時也能運行 AI 程式碼代理:完成 Orca 行動版的 Relay 與 Chat UI

把工作交給 AI 程式碼代理的好處,是人不必一直守在座位旁。但實際離開座位後,馬上會出現另一個問題。如果代理停在提問狀態,整個工作就會停到你回來為止。結果反而形成無法離開筆電前的矛盾…

閱讀 7 分鐘
在外出時也能運行 AI 程式碼代理:完成 Orca 行動版的 Relay 與 Chat UI 封面圖

把工作交給 AI 程式碼代理的好處,是人不必一直守在座位旁。但實際離開座位後,馬上會出現另一個問題。如果代理停在提問狀態,整個工作就會停到你回來為止。結果反而形成無法離開筆電前的矛盾。

Orca是透過行動版 companion app 解決這個問題的 ADE(Agent Development Environment,代理開發環境)。不過,到目前為止的行動版 App 有兩個限制:必須和桌面端位於像這樣的相同網路才能連線,而且必須在手機畫面上直接鏡像顯示終端機。截至 2026 年 7 月,這兩道限制都正在消失。因為引入了可跨不同網路連線的Relay,以及不再使用終端機、改以原生聊天與代理對話的Chat UI

本文將探討這兩項功能各自解決了什麼問題,以及合併後行動代理的運作方式實際如何改變。如果你剛接觸 Orca,建議先閱讀上一篇〈什麼是 Orca?在同一處運行多個 AI 程式碼代理的 ADE〉。

行動版 companion 原本能做什麼?

Orca 行動版 App(iOS・Android)是與桌面版 Orca 配對使用的遙控器型 App。你可以以清單查看執行中的 worktree 與代理狀態;代理完成工作或等待輸入時接收推播通知;查看終端機內容後傳送後續提示。它也支援瀏覽檔案樹、查看與提交 diff、附加照片及語音輸入,因此用來「確認並下指示」已經相當實用。

Orca 行動版 companion App 首頁的官方 App Store 截圖,顯示已連線的桌面主機與代理執行統計
首頁首先顯示桌面連線狀態與代理概況

問題在於連線方式。由於配對以區域網路為基礎,桌面端與手機必須連上相同 Wi-Fi,或透過 Tailscale 等 VPN(Virtual Private Network,虛擬私人網路)綁定成像是在同一個網路。待在家中沙發上使用沒有問題,但偏偏在行動版 App 最需要的「外出時」,除非自行設定 VPN,否則沒有連線方法。

Relay:從其他網路連回桌面端

Relay 解決了這個連線問題。當手機與桌面端位於不同網路時,會透過 Orca 開發商 Stably AI 維運的中繼伺服器維持連線。無論是咖啡廳 Wi-Fi 或移動中的 LTE,只要桌面端開機並連上網際網路,就能從手機存取工作階段。

把架構畫出來,大致如下。

Orca Relay 連線架構圖:相同網路時直接進行 LAN 配對,不同網路時透過 E2EE Relay 伺服器連線
相同網路時直接連線,否則經由 Relay

設計上有三個部分值得注意。

第一,**既有的區域配對仍是預設路徑。**位於相同網路時,和以前一樣不需帳號即可直接連線;Relay 則是無法直接連線時的額外路徑。使用 Relay 必須在桌面端登入 Orca 帳號,但手機不需要登入。中繼服務本身免費。

第二,**它以端對端加密(E2EE,End-to-End Encryption)為前提設計。**手機與桌面端會先互相確認加密金鑰,再開始通訊,因此中繼伺服器只負責轉送流量,無法查看終端機內容或程式碼。導入 PR 的安全稽核項目詳細記錄了配對驗證、防止重放攻擊、限制權杖範圍等內容;評估遠端連線功能是否適合用於公司程式碼時,可以作為參考。

第三,**由桌面端發起連線。**桌面端會先向中繼伺服器建立對外連線,因此不必為位於路由器後方的家用桌面端設定連接埠轉送或防火牆。除了本機之外,在透過 WSL(Windows Subsystem for Linux)或 SSH 連線的遠端 worktree 環境中也能以相同方式運作。

Chat UI:不再把終端機硬塞進手機

連線完成後,下一個問題就是畫面。既有的行動版 App 會把桌面端終端機畫面原樣鏡像到手機上。看看原本的畫面,就很容易理解了。

Orca 行動版 App 終端機鏡像畫面的官方 App Store 截圖,在手機上直接顯示程式碼代理的終端機輸出
終端機原樣查看是可以的,但在手機上相當吃力

看是看得懂,但 TUI(Text-based User Interface,文字型使用者介面)原本就是以寬螢幕與鍵盤為前提設計的畫面。在手機上字體很小,長篇輸出必須靠捲動追蹤;要回答代理提出的選項,還得按下模擬方向鍵的按鈕。用來短暫確認狀態還算足夠,但很難稱為「在手機上與代理工作」的體驗。

Chat UI 重新設計了這個部分。它不再逐像素搬移終端機畫面,而是讀取代理留下的 transcript,並**重新繪製成像通訊軟體的原生聊天畫面。**早期 beta 原本稱為 native chat,後來整理為現在的 Chat UI。改變如下。

  • 代理的回答會以聊天氣泡串流顯示,而工具呼叫、執行記錄等中間過程則會以摺疊狀態整理。
  • 代理詢問選項時(例如 Claude Code 的 AskUserQuestion),會顯示點選回答的卡片,取代終端機選單。權限核准要求也會以卡片顯示。
  • 從輸入欄傳送的訊息會直接交給桌面端的代理終端機。你也能在聊天畫面中附加圖片,或變更模型與推理強度。用來選取並執行 skill 的選擇器先加入了桌面版 Chat UI,目前正逐步帶入行動版。
  • 只要點一下就能在原本的終端機畫面與聊天畫面間切換,需要查看詳細記錄時隨時都能回到終端機。

有趣的是,Chat UI 並非行動版專用。同一個聊天畫面也會出現在桌面端與網頁用戶端,因此無論從哪裡查看,與代理的對話都會以相同形式延續。目前先支援 Claude Code、Codex 等已掌握對話記錄格式的代理,現在可透過 TestFlight 與 Android APK 頻道以 beta 使用。

合併兩項功能後,工作流程會這樣改變

單獨來看,Relay 是「改善連線」,Chat UI 是「改善畫面」;合在一起就成了一個完整的故事。以下用下班回家的情境來說明。

  1. 下班前,把兩件重構工作和一件錯誤修正,分別交給不同 worktree 中的代理。
  2. 在地鐵上收到推播通知。負責修正錯誤的代理停在那裡,詢問「是否可以修改測試」。
  3. 打開手機後,Relay 連上桌面工作階段,Chat UI 中已經顯示問題卡片。點選選項回答後,代理就會再次運作。
  4. 抵達前收到通知,其中一項重構已完成。快速查看 diff,對在意的部分傳送後續提示。
  5. 到家時,三項工作都已處於可供檢視的狀態,只要在桌面端完成最後的 review 與提交即可。

代理停止等待的時間,從「等人回到座位」縮短為「等人拿出手機」。這就是兩項功能一起帶來的改變。

使用前值得知道的事項

  • **行動版 App 仍然是 companion。**工作階段會在桌面端(或由桌面端管理的遠端機器)執行,因此桌面 App 關閉後連線也會中斷。它不是能在手機上單獨執行代理的雲端服務。
  • **Relay 需要在桌面端登入。**如果想不使用帳號,仍可像以前一樣在相同網路中直接配對,或自行設定 Tailscale 等 VPN。
  • **兩項功能目前都在分階段推出。**Chat UI 是先透過 TestFlight(iOS)・APK(Android)頻道提供的 beta,Relay 也正逐步反映到近期版本,因此官方行動文件中仍保留以區域配對為基準的說明。從版本說明來看,訊息傳遞狀態顯示、對話順序排列、Relay 重新連線等功能都在積極調整,細節行為可能因版本而異。
  • **需要確認代理相容性。**Chat UI 會解析代理的對話記錄並加以繪製,因此與終端機鏡像不同,各代理的支援程度可能有所差異。

總結

一直以來,Orca 行動版 App 比較像是「有的話很方便的輔助畫面」。Relay 消除了地點限制,Chat UI 消除了畫面限制,如今它更接近「能把代理運作的一半搬到手機上的工具」。運行多個代理並行工作時,人的回應延遲越會左右整體吞吐量;從降低這種延遲最實際的方法就是口袋裡的手機這點來看,我認為這是方向很明確的一次更新。

如果你對並行運行代理本身感到好奇,也請一起閱讀〈什麼是 Orca?在同一處運行多個 AI 程式碼代理的 ADE〉與〈6 種 AI 代理平行終端機比較〉。

參考資料