一條側邊欄先被空出來了:OpenSider 把 Agent 塞進瀏覽器的那道縫
從 OpenSider 瀏覽器側邊欄的外觀與連線架構看起,觀察一個開源插件如何把本機 CLI Agent 與真實瀏覽器狀態縫在同一個介面裡。
2026 年 9 月 15 日,開發者 parksben 在掘金發布了一篇名為「OpenSider:讓瀏覽器驅動 Agent」的文章,介紹他開源的瀏覽器擴充插件。這篇文章本身不長,五分鐘可以讀完,但它描述的那個畫面值得停下來看:一個使用者打開了十幾個標籤頁,做產品調研,然後在瀏覽器右側的一條側邊欄裡輸入一句「幫我把 A、B、C 這幾家產品的定價頁都看一遍,出一張橫向對比的表格」,Agent 就在那些已經登入、已經填過表單的頁面之間移動,把表格交回來。
先別急著談 Agent 的能力。值得看的是那條側邊欄,以及它背後被倒轉過來的主客關係。
從一個被卡住的小事看起
作者在文中說得很誠實:卡住他的「是一件很小的事」。他平時用 Claude Code 和 Codex,改程式碼、寫腳本都很順,真正的問題是 Agent 看不到他瀏覽器裡已經打開的頁面,也不知道他在這些頁面裡的實際操作狀態。
這個描述具體到幾乎可以畫出來:一邊是終端機裡能力很強的 Agent,一邊是瀏覽器裡十幾個帶著登入態、帶著半填表單的頁面,兩者之間隔著一道系統邊界。他試過三條路,Playwright 與 CDP 會另起一個乾淨的瀏覽器,登入態與表單都帶不過去;各家官方插件綁定自家模型,能力受限;Browser MCP 每打開一個頁面都要補一條指令。三條路都通,都不順手。
這裡的設計判斷值得單獨抽出來:Agent 缺的東西,是對使用者瀏覽上下文的感知與還原。於是他把關係倒了過來,讓瀏覽器當客戶端、本機 Agent 當執行器,由瀏覽器主動把「使用者此刻在看什麼」塞給 Agent。
這個倒轉,在介面層面對應的正是那條側邊欄的位置選擇。側邊欄是瀏覽器裡少數能長期與頁面並存、又不遮擋內容的區域。把 Agent 的對話框放進這裡,等於宣告 Agent 與使用者共享同一套視野,你翻到哪一頁,它的上下文就跟到哪一頁。相比之下,終端機裡的 Agent 再強,也只是另一扇窗,使用者得在兩扇窗之間來回搬運資訊。
連線層的節制:不另起服務,不常駐進程
OpenSider 的技術方案同樣看得出取捨。它基於 Chrome 的 Native Messaging Host 做瀏覽器與本機 Agent 的橋接,側邊欄連線時啟動 Host,斷開時退出,進程不常駐。Host 透過 ACP 協議拉起使用者選擇的 CLI,並把網頁自動化工具經由同一條連線暴露給 Agent,全程不需要額外的後臺服務。插件與頁面之間的通訊也沒有另定新協議,直接沿用瀏覽器既有的機制。
這種做法的氣質,接近老派系統設計裡的「薄層」哲學:連接層只做連接,狀態留在原地。登入態留在瀏覽器的 cookie 裡,表單留在頁面上,會話資料與 Agent 產出的內容存在本機。側邊欄裡那個 ChatUI 只是入口,而非容器。
把它跟各家官方插件比,差異更清楚。官方插件的側邊欄通常綁定自家模型與自家工具集,介面精緻,但邊界封閉;OpenSider 支援所有相容 ACP 協議的 Agent,Claude Code CLI、GitHub Copilot CLI、OpenCode CLI 都能接,同一個會話裡可以切換不同的 Agent 與模型。這個「可切換」看起來只是功能項,實際上改變了側邊欄的性質:它從某個產品的延伸介面,變成一個中立的對話插座。
三步的安裝敘事,與一張對比表的兌現
使用方式的排版也值得看。作者只寫了三步:安裝插件、啟動以連接本地 Agent、在 ChatUI 中對話。這種壓縮到三步的敘事,對應的是前面那三條各自不順手的舊路。一個工具的說明書寫得多短,往往反映它省掉了多少儀式。
真正兌現價值的畫面,是 Agent 在多個標籤頁之間切換執行任務的那一刻。作者強調,Agent 不需要每次工具呼叫都冷啟一個瀏覽器視窗或標籤,頁面跳轉、讀取、點擊、填表、截圖這些操作作為工具注入給 Agent,自動化過程在網頁中即時呈現,包括模擬的滑鼠點擊與鍵盤輸入。也就是說,使用者看得見 Agent 的手在自己熟悉的頁面上動。這種可見性在設計上很重要,它把「委託」變成了「旁觀一場協作」,信任建立在畫面上,而非建立在對工具的想像上。
這個方向與我們先前談過的美團 AI Agent 面試題單的敘事設計有某種共通的閱讀方式:一個技術系統如何被排成使用者可理解、可預期、可傳播的格式。面試題單靠排序與措辭完成敘事,OpenSider 則靠側邊欄的位置與即時可見的操作軌跡,把一個本機程序的工作過程排進使用者的視野裡。
資料留在本地,是一種態度也是一種介面
功能清單的最後一項寫著:資料、產物均存本地。會話數據與 Agent 產出儲存在本機,可以重複使用。在多數 AI 產品把雲端同步當作預設賣點的現在,這個選擇顯得節制。它與整個插件的架構是一致的:既然瀏覽器狀態、登入態、Agent 進程都在使用者機器上,資料留在本地只是同一套邏輯的收尾。
對做調研的使用者來說,這一點不只是隱私姿態。本地儲存的對比表、擷取的頁面資訊,意味著「工作現場」不會隨一次會話結束而蒸發,這與前面強調的「復用真實瀏覽器狀態」構成同一種價值:還原現場,而不是重建現場。
一個明確的觀點
OpenSider 不是一個視覺上令人驚豔的產品,它是一個開源插件,介面樸素,文章裡也沒有渲染任何願景。它值得被記下的原因,在於它把一個被多數方案繞開的問題正面處理了:Agent 與使用者之間共享的上下文,應該由誰來供給。
三條舊路的共同盲點,都是讓 Agent 去夠瀏覽器,於是登入態要重建、流程要重編、頁面要重開。OpenSider 的答案是把供給方向倒過來,讓瀏覽器交出狀態,Agent 只負責行動。側邊欄是這個答案在介面上的落點:一條窄窄的對話區,掛在一整套真實瀏覽上下文的旁邊。
這類「連接層」產品的美學,向來不在於它自己長什麼樣,而在於它讓兩個原本隔開的東西看起來本來就該在一起。等到哪天 Agent 在側邊欄裡讀著你已登入的頁面、替你填完一張表,你大概不會記得這中間有一道 Native Messaging 的橋。那正是這個設計最好的結局:橋被走習慣了,橋就消失了。