↓ 快轉到主要內容

OpenAB 新手入門:拿起手機就能工作

·205 字·1 分鐘
Art
作者
Art
這是我的技術筆記。
OpenAB 系列 - 本文屬於一個選集。
§ 5: 本文

引言
#

今年四月,我們開始使用 OpenAB。它讓我們透過通訊平台向 agent 交辦工作,後面則可以接不同的 coding CLI。原本得坐在電腦前處理的事,現在拿起手機也能開始。

用了一段時間後,我遇到兩個問題:如果想親自接手 agent 的工作,該怎麼辦?如果 agent 需要操作另一台電腦上的桌面,又該怎麼辦?openab-pty 和 oab-instance-mcp 分別提供了這兩種能力。後來我也做了 art-term,讓自己在手機上更順手地使用遠端終端機。這篇想談的就是這些工具如何改變我的工作方式。

工作形態與內容的轉變
#

OpenAB 最容易讓人感受到的改變,是可以從熟悉的對話介面交辦工作。不熟悉 CLI 或 IDE 的同事,也能先從提問、查資料、交代任務開始接觸 agent。對話紀錄能否保留、保留多久,則取決於使用的平台與設定。若不想使用通訊平台,也可以依 OpenAB 的 gateway 架構,為自己的網頁、App 或事件來源設計入口與回覆流程。

從今年四月到現在,我們在這個基礎上建立了幾種專責 agent:查詢專案知識、從不同角度做 code review、協助維運上版、排查線上錯誤,以及處理議題追蹤系統。它們由特定成員依權責使用;我也做了一套 Web 介面,方便進行某些固定互動。這些做法幫我省下不少專案管理中重複的工作,也讓同事有機會慢慢熟悉 agent。

以前要處理一件開發工作,我通常得回到座位,打開筆電、CLI、IDE 和 Redmine 或 Jira,讀完議題,再自己動手,或整理上下文交給 coding CLI。現在,我可以先從手機把需求交給 agent,之後再檢查它做了什麼、驗證結果是否符合需求。

這也改變了我花時間的地方。我開始更常思考服務和架構、練習把需求講清楚,以及決定怎麼驗收成果。不過,交辦工作不代表每一步都適合只靠對話完成。

openab-pty:需要自己動手的時候
#

agent 做到一半,我有時還是想親自看一眼:目前有哪些檔案?測試為什麼沒過?下一個指令該怎麼下?這些問題用對話描述可能很慢,打開終端機反而比較直接。

openab-pty 提供一個可遠端連線的終端機,讓我進入隔離的工作環境使用 Shell。OpenAB 是我交代工作、由 agent 執行;openab-pty 則是我連進去親自操作。它傳送的是 PTY 終端機資料,並沒有把 OpenAB 使用的 ACP 換掉。兩者可以配合,也可以各自使用。

這對手機工作很有幫助。我不需要在小螢幕上完成所有開發,但希望需要接手時,手邊就有一個入口。我可以檢查結果、執行指令,也可以在遠端 Shell 裡直接啟動 coding CLI。這個 Shell 位於隔離環境;它不是直接登入我的實體主機。

如果我想直接操作實體主機,也可以自行配置另一條遠端連線,例如從 Shell 透過 SSH 登入主機。那代表我選擇開放主機的操作權限,並不是 openab-pty 預設提供的隔離 Shell。使用體驗上,這讓我想到 Grok Bot、Muse 這類能從手機回到 agent 工作現場的產品;至於實際能操作哪台電腦、取得哪些權限,仍取決於各自的架構與設定。

instance-mcp:讓 agent 使用另一台電腦的工具
#

遠端終端機解決了「我怎麼接手」。但有些工作需要另一台電腦上的畫面、瀏覽器或桌面操作,agent 所在的環境不一定有這些資源。

oab-instance-mcp 安裝在提供資源的電腦上,透過 MCP 讓獲得存取權的 agent 呼叫工具,例如查詢系統資訊、擷取畫面、操作滑鼠鍵盤,或執行指令。判斷下一步的是 agent;instance-mcp 負責在那台電腦上執行工具呼叫。

例如 agent 要檢查只能在特定電腦上開啟的頁面,可以先取得畫面,判斷狀態,再操作並重新擷取畫面確認。這讓它能處理單靠遠端 Shell 不容易完成的工作。

提供工具也代表交出相應的操作能力。尤其開放滑鼠、鍵盤或指令執行時,應該把它視為讓 agent 使用那台電腦,並依用途決定開放哪些能力、給誰使用,以及開放多久。

三者放在一起之後
#

我的做法是:需要交辦時,透過 OpenAB 從手機傳達需求;需要親自處理時,用 openab-pty 進入遠端終端機;需要另一台電腦的工具時,再透過 instance-mcp 提供能力。

我也可以只使用 openab-pty,連上遠端 Shell,啟動 coding CLI,從手機輸入或用語音說出需求,晚點再回來看結果。這些工具不必每次一起使用。我真正想要的,是能依當下的問題決定自己做、交給 agent 做,或提供它完成工作需要的工具。

art-term:把這套用法帶到手機上
#

為了讓這件事用起來更順手,我做了 art-term。它是 Windows 與 Android 的遠端終端機 App,連接 openab-pty Runtime,讓我管理 Shell 分頁、操作遠端環境裡的工具;Android 版也有實驗性的裝置端語音輸入。若另外設定 host helper 與 instance-mcp,App 還能顯示共享桌面的截圖預覽。這是畫面預覽,不是可直接點擊操作的遠端桌面。

坦白說,它目前還是依照我自己的需求長出來的小工具。在我的環境裡,我預先建立了兩個連線:一個到 mini PC,另一個到 mini PC 裡的 k3s pod agent。我也在 mini PC 上建立 instance-mcp,讓遠端 agent 能使用那台電腦提供的資源。目前 art-term 還沒有 instance-mcp 的管理介面,也沒有讓我從 App 裡設定工具的權限 profile;這不等於連線本身不需要驗證。

說到底,我最初只是想做一個簡單的手機小說閱讀器。我受不了看小說還要等一堆廣告,所以希望隨時拿起手機,就能用語音向家裡的 agent 許願,請它幫我開發下一個功能。art-term 就是為了讓這樣的日常用法更方便而做的。

題外話:如果你使用 MacBook 或 iPhone,也可以看看 OpenAB Remote 與 OpenAB Connect。基本上我就是照著這個概念在嘗試開發 Win / Android 平台的

結論
#

如果你的需求只是偶爾請 agent 寫程式、查資料,直接使用 Claude Code、Codex、Grok 或 Muse,可能已經足夠。不一定每個人都需要替自己架一套 OpenAB。

我選擇 OpenAB,是因為我想保留決定工作方式的自由:可以選擇接在後面的 coding agent,也可以選擇從哪裡與它對話。他支援的平台很多,從 Discord、Teams、飛書、Google Chat、LINE 或 Telegram;如果現成平台都不合適,也可以自己實作 gateway,接上自己的介面。這些選擇需要設定和維護,但不必從一開始就把整套工作流程綁在單一產品上。

再加上 openab-pty 和 instance-mcp,我可以決定什麼時候交辦、什麼時候親自接手,以及要提供 agent 哪些工具。對我來說,這套環境最有價值的地方,是我能照自己的需求組合它,連「想在手機上舒服地看小說」這麼小的願望,也能成為下一個開始動手的理由。

OpenAB 系列 - 本文屬於一個選集。
§ 5: 本文