| |

給 AI Agent 一個瀏覽器:agent-browser 的 snapshot-ref 操作循環 5 步上手

給 AI Agent 一個瀏覽器:agent-browser 的 snapshot-ref 操作循環 5 步上手

作者注:從安裝到 snapshot、ref 操作、結果校驗,5 步掌握 agent-browser 的「讀頁面、點元素、再讀頁面」循環,讓 AI Agent 穩定驅動真實瀏覽器。

讓 AI Agent 操作網頁,常見的難點在於它看不到頁面,也很難穩定地點中目標元素。截圖加座標點擊的方案消耗大量 token,還容易點偏;直接把整段 HTML 交給模型,上下文很快就會被撐滿。本文介紹 agent-browser 的 snapshot-ref 操作循環,幫助你掌握讓 Agent「一次一條命令」驅動瀏覽器的方法。

這不是又一篇瀏覽器自動化框架的概念科普,下面按實際上手順序,拆解 agent-browser 的安裝、snapshot 與 ref 的配合、失敗重試策略,以及如何把它接入 Agent 工作流。

核心價值:讀完本文,你將理解 agent-browser 的 snapshot-ref 循環爲什麼適合大模型,並能在自己的 Agent 中用 5 條命令跑通第一個瀏覽器任務。

agent-browser-snapshot-ref-loop-guide-zh-hant-image-0


agent-browser snapshot-ref 循環核心要點

agent-browser 是 Vercel Labs 開源的瀏覽器自動化工具,採用 Apache-2.0 協議。它是一個原生 Rust CLI,目標很明確:給 AI Agent 一個能逐條命令驅動的瀏覽器。Agent 打開頁面後,把頁面讀成無障礙樹(accessibility tree)形式的緊湊文本,再通過 shell 命令對元素執行操作。

要點 說明 對 Agent 的價值
snapshot 緊湊文本 頁面以無障礙樹形式輸出,每個元素帶 @e1 這類 ref 比截圖和原始 HTML 更省上下文
ref 精準定位 操作命令直接引用 ref,如 click @e1 不必讓模型自己拼 CSS 選擇器
瀏覽器常駐 後臺守護進程保持瀏覽器打開 每一步只是一次簡短的 shell 調用
失敗顯式報錯 元素被遮擋、隱藏、禁用時點擊會失敗而非假成功 Agent 能根據真實反饋決定下一步
自帶 skills CLI 內置與版本匹配的使用說明 Agent 讀到的指令與已安裝版本一致

snapshot-ref 循環的工作方式

這個循環可以概括爲三個動作:先 snapshot 讀頁面,再對某個 ref 執行操作,然後再次讀取頁面確認結果,如此往復。官方給出的 example.com 快照只有一行:- link "Learn more" [ref=e1]。模型看到這一行,就知道頁面上有一個名爲 Learn more 的鏈接,並且可以用 @e1 去點擊它。

這種設計把「理解頁面」和「執行動作」拆成兩個可驗證的步驟,非常契合大模型的工具調用模式。模型不需要理解複雜的 DOM 結構,只需在文本里找到語義正確的元素,再引用對應的 ref 即可。每次操作後重新快照,也讓 Agent 始終基於最新的頁面狀態做判斷,而不是靠記憶猜測。

agent-browser 的底層架構

CLI 本身並不直接持有瀏覽器。第一條命令執行時,會啓動一個後臺守護進程(daemon),守護進程通過 Chrome DevTools Protocol 控制瀏覽器,後續每條 CLI 命令都發給這個守護進程。所以瀏覽器在命令之間始終保持打開,登錄態、頁面位置都不會丟失。

每個 --session 擁有獨立的守護進程和瀏覽器,方便多個任務並行而互不干擾。默認情況下,無頭瀏覽器在連續一小時沒有收到命令後會被關閉,守護進程隨之退出;如果配置了會話持久化(session persistence),退出前會先保存狀態。

agent-browser-snapshot-ref-loop-guide-zh-hant-image-1

驅動這個循環的「大腦」是大模型。每一輪快照文本都會進入模型上下文,模型決定下一條命令,因此模型的指令遵循能力和單價直接影響任務成功率與成本。API易 提供本文涉及的 Claude、DeepSeek、Kimi 等模型的 API 調用,兼容 OpenAI 與 Anthropic 兩種接口格式,接入文檔見 docs.apiyi.com。


agent-browser 快速上手:5 步跑通 snapshot-ref 循環

第 1 步:安裝 agent-browser 與瀏覽器

最常見的方式是通過 npm 全局安裝,然後下載 Chrome for Testing。npm 包會根據宿主平臺自動選擇對應的原生二進制,目前覆蓋 macOS(ARM64、x64)、Linux(ARM64、x64,glibc 與 musl)以及 Windows(x64)。

安裝方式 命令 適用場景
npm 全局安裝 先 npm install -g agent-browser,再 agent-browser install 大多數開發環境,首次需下載瀏覽器
Homebrew 先 brew install agent-browser,再 agent-browser install macOS 用戶
Linux 帶依賴 agent-browser install --with-deps 服務器、容器,需同時安裝瀏覽器系統庫
免安裝 npx agent-browser open example.com 臨時試用、CI 中一次性任務
維護命令 agent-browser upgrade、agent-browser doctor 升級版本、排查環境問題

如果要從源碼構建,官方要求 Node.js 24 及以上、pnpm 11 及以上以及 Rust 工具鏈。依次執行 pnpm install、pnpm build:source、pnpm link --global,最後運行 agent-browser install 即可。日常使用直接走 npm 安裝就夠了。

第 2 步到第 5 步:完整的最小循環

安裝完成後,下面這組命令就是一個完整的 snapshot-ref 循環。建議先在終端手動跑一遍,確認每一步的輸出,再交給 Agent 自動執行。

步驟 命令 作用 預期結果
2. 打開頁面 agent-browser open example.com 啓動守護進程並打開網址 瀏覽器常駐後臺
3. 讀取快照 agent-browser snapshot -i 只列出可交互元素,每個帶 ref 輸出類似 link "Learn more" [ref=e1]
4. 操作 ref agent-browser click @e1 對快照中的元素執行點擊 頁面跳轉或狀態變化
5. 校驗結果 agent-browser get url 讀取當前 URL,確認動作生效 返回跳轉後的地址
收尾 agent-browser close 關閉瀏覽器 釋放資源

第 3 步裏的 -i 參數很關鍵,它只輸出可交互元素,能顯著縮短快照文本,特別適合 token 預算有限的場景。第 5 步的校驗也不能省,Agent 必須靠真實反饋判斷操作是否成功,而不是默認「點了就算成功」。

🚀 快速開始:跑通手動循環後,就可以把這組命令交給 Agent。建議先通過 API易 apiyi.com 獲取測試額度,用同一套任務分別試幾款模型,觀察誰更擅長從快照文本里挑出正確的 ref。接口兼容 OpenAI 與 Anthropic 格式,現有 Agent 框架基本只需替換密鑰和地址,具體以 docs.apiyi.com 文檔爲準。

agent-browser ref 的有效期與重新快照

ref 描述的是「快照那一刻」的頁面。頁面一旦發生導航或 DOM 變化,舊的 ref 就可能失效,甚至指向錯誤的元素。因此鐵律是:每次跳轉或頁面明顯變化後,先重新執行 snapshot,再使用新的 ref。

這條規則最好直接寫進 Agent 的系統提示詞。一個可靠的循環應該是「快照、操作、快照」,而不是「快照一次、連續操作十次」。多花一次快照的開銷,遠小於點錯元素後排查和回滾的成本。

agent-browser 點擊失敗時的處理策略

agent-browser 的點擊不會「假裝成功」。當目標元素被隱藏、被禁用、位於視口之外,或被其他元素遮擋(比如 Cookie 同意彈窗)時,click 會直接返回失敗。這對 Agent 非常友好,因爲錯誤信息本身就是下一步決策的依據。

失敗原因 典型表現 推薦處理
被遮擋 同意彈窗、浮層蓋住按鈕 先關閉遮擋元素,重新快照後重試
不在視口 元素在頁面下方 用 scroll 滾動,再重新快照
元素禁用 表單未填完導致按鈕不可點 先用 fill 補全必填項,再快照確認
元素隱藏 需展開菜單纔出現 先點擊展開入口,用 wait 等待後快照
ref 過期 頁面已跳轉或刷新 重新執行 snapshot 獲取新 ref

除了 ref,agent-browser 還支持 CSS 選擇器、文本、XPath 和語義化定位器。例如 agent-browser find role button click --name "Submit" 可以按角色和名稱找到提交按鈕並點擊。在頁面結構穩定、元素語義清晰的場景下,語義化定位器可以作爲 ref 的補充。


agent-browser 常用命令分組

agent-browser 的命令覆蓋面很廣,完整列表可以通過 agent-browser --help 查看,單條命令用 agent-browser <command> --help。下面按用途整理了最常用的幾組,方便你決定給 Agent 開放哪些能力。

分組 代表命令 典型用途
導航與讀取 open、back、reload、read、snapshot、get、is 打開頁面、讀快照、查詢狀態
交互 click、fill、type、press、select、check、scroll、upload、find 點擊、填表、上傳文件
等待 wait 等待元素出現或頁面加載
採集 screenshot、pdf、record、download、diff 截圖、導出 PDF、錄屏、頁面對比
頁面與網絡狀態 cookies、storage、network、eval 管理 Cookie、攔截網絡、執行腳本
標籤頁與彈窗 tab、frame、dialog 多標籤、iframe、對話框
調試與性能 console、errors、trace、vitals、a11y 抓取控制檯錯誤、性能指標
會話與認證 session、state、auth、confirm、deny 會話隔離、登錄態、敏感操作確認
Agent 集成 skills、mcp、flow、batch、plugin 加載技能、啓動 MCP 服務

瀏覽器引擎方面,默認使用 Chrome for Testing。你也可以用 --cdp 或 --auto-connect 連接一個已在運行的 Chrome,用 --engine 切換到 Lightpanda 或 Obscura 引擎,在 iOS 模擬器裏驅動 Mobile Safari,或者接入 Browserbase、Browserless、Browser Use、Kernel、AgentCore 等雲瀏覽器服務。


把 agent-browser 接入 AI Agent

用內置 skills 教會 Agent

agent-browser 的一個巧妙設計是把使用說明隨 CLI 一起發佈。執行 agent-browser skills get core 會輸出核心循環、ref 用法、等待策略和常見工作流;加 --ref commands 只看某一份參考,比如完整命令列表;加 --full 則附帶完整命令參考和模板。agent-browser skills list 還能列出 electron、slack、dogfood 等專項技能。

在 Agent 框架裏,可以通過 npx skills add vercel-labs/agent-browser 安裝發現技能。這個技能只是一個很薄的引導,會讓 Agent 去加載 agent-browser skills get core,因此指令永遠和已安裝的 CLI 版本保持一致。如果不想裝技能,也可以在 AGENTS.md 裏寫一句:使用 agent-browser 做瀏覽器自動化,首次使用前先運行 agent-browser skills get core 並按其說明操作。

通過 MCP 接入

如果你的客戶端支持 MCP,執行 agent-browser mcp 會通過 stdio 啓動一個 MCP 服務器。這樣 Claude 類桌面客戶端或自研 Agent 就可以把瀏覽器操作當作標準工具調用,無需自己封裝 shell 執行層。

爲 snapshot-ref 循環選擇驅動模型

瀏覽器任務的特點是輪次多、每輪都帶一段快照文本,輸入 token 佔比通常遠高於輸出。因此選模型時,除了指令遵循能力,還要重點看輸入單價和緩存價格。下表價格均以 API易 價格頁 docs.apiyi.com/models 的實際數據爲準,單位與計費口徑請以價格頁標註爲準。

模型 輸入價格 輸出價格 緩存價格 適用角色 可用平臺
claude-opus-5-5 $4 $20 $0.2 複雜多步任務、疑難頁面 API易 apiyi.com
claude-sonnet-5-5 $2 $10 $0.1 日常主力驅動模型 API易 apiyi.com
kimi-k3.1-pro $2 $10 $0.2 中文網頁場景 API易 apiyi.com
deepseek-v4.1-flash $0.3 $1.2 $0.006 簡單表單、批量巡檢 API易 apiyi.com

一個實用的組合是:用 deepseek-v4.1-flash 處理結構簡單、步驟固定的批量任務,用 claude-sonnet-5-5 作爲通用主力,遇到複雜交互或頻繁失敗的頁面再升級到 claude-opus-5-5。由於 skills 文本和系統提示在每一輪都會重複出現,緩存價格較低的模型在長循環中更有成本優勢。

需要說明的是,文心 ERNIE 系列在 API易 價格表中暫時查不到,API易 目前暫未上線該模型,我們會盡快上線。如果你的 Agent 原本依賴 ERNIE,可以先用上表中的模型替代測試。

agent-browser-snapshot-ref-loop-guide-zh-hant-image-2

💡 選擇建議:沒有一款模型在所有網站上都最好。建議挑 3 到 5 個真實業務頁面做小樣本測試,在 API易 apiyi.com 上用統一接口切換模型,對比成功率和單任務成本後再定主力模型。


agent-browser 安全使用建議

讓 Agent 操作真實瀏覽器,安全邊界必須提前設計好。agent-browser 官方文檔的安全章節提供了認證保險庫(auth vault)、域名白名單、操作策略以及內容邊界等機制。命令層面,auth 用於管理登錄憑據,confirm 和 deny 用於對敏感操作進行確認或拒絕。

在生產環境中,建議至少做到三點:

  • 限制可訪問域名:用域名白名單把 Agent 限制在業務相關的網站內,避免被頁面誘導跳轉到陌生站點。
  • 憑據不進上下文:把賬號密碼放進 auth vault,而不是寫進提示詞,防止憑據出現在模型日誌裏。
  • 敏感動作人工確認:支付、刪除、提交訂單這類操作配置爲需要確認,讓人類保留最終決定權。

網頁內容本身也可能包含針對 Agent 的惡意指令,所以內容邊界機制同樣值得開啓。它的作用是讓模型清楚區分「頁面裏的文字」和「用戶給的指令」,降低提示詞注入的風險。


常見問題 FAQ

Q1:什麼是 agent-browser 的 snapshot-ref 循環?

這是 agent-browser 的核心工作方式:先用 `snapshot` 把頁面讀成帶 ref 的緊湊文本,再對某個 ref 執行操作,然後重新快照確認結果,如此往復。它把頁面理解和動作執行拆成可驗證的小步,很適合大模型逐步推理。

Q2:agent-browser 和截圖驅動的瀏覽器 Agent 有什麼區別?

截圖方案在視覺理解上更通用,但 token 消耗大,座標點擊也容易偏移。相比之下,agent-browser 用無障礙樹文本加 ref 定位,上下文更緊湊,操作更精準,失敗時還會明確報錯,更適合需要穩定執行的自動化任務。

Q3:爲什麼頁面跳轉後舊的 ref 不能繼續用?

ref 只描述快照那一刻的頁面。導航或 DOM 變化後,元素可能已經消失或被替換,舊 ref 可能失效或指向錯誤元素。正確做法是每次頁面變化後重新 `snapshot`,再使用新 ref。

Q4:agent-browser 適合哪些應用場景?

主要適合以下場景:

– **表單自動填寫**:註冊、報名、後臺錄入等步驟固定的流程。
– **站點巡檢與迴歸測試**:結合 `errors`、`console`、`vitals` 檢查頁面錯誤和性能。
– **信息採集**:登錄後臺後按菜單逐頁讀取數據。
– **Electron 與 Slack 等專項場景**:通過 `skills list` 裏的專項技能擴展。

Q5:驅動 agent-browser 的模型該如何接入?

可以按以下步驟操作:

1. 訪問 API易 apiyi.com 註冊賬號並獲取 API Key。
2. 在 Agent 框架中選擇 OpenAI 或 Anthropic 兼容格式,按 docs.apiyi.com 文檔填寫接入參數。
3. 用本文的 5 步循環作爲測試任務,對比不同模型的表現。

API易 支持 Claude、DeepSeek、Kimi 等多種模型統一接入,切換模型只需改模型名。

Q6:運行 snapshot-ref 循環的模型成本怎麼估算?

瀏覽器任務以輸入 token 爲主,每輪都要帶上快照文本和系統提示。估算時重點看輸入單價和緩存價格,並儘量用 `snapshot -i` 縮短快照。各模型的實際單價請以 API易 價格頁 docs.apiyi.com/models 爲準,不要參考過時的第三方報價。

Q7:agent-browser 有哪些已知限制?

ref 的時效性要求 Agent 頻繁重新快照,輪次會因此增加。無障礙信息缺失嚴重的頁面,快照可能不夠完整,這時需要改用 CSS 選擇器、XPath 或截圖輔助。另外,無頭瀏覽器空閒一小時後會自動關閉,長時間任務需要配置會話持久化。


agent-browser snapshot-ref 核心要點 Key Takeaways

  • 核心定義:agent-browser 是 Vercel Labs 開源的 Rust CLI,讓 Agent 逐條命令驅動瀏覽器。
  • 核心循環:快照讀頁面、對 ref 執行操作、再快照校驗,三步不斷往復。
  • ref 鐵律:頁面導航或 DOM 變化後,必須重新快照再使用 ref。
  • 失敗即信號:元素被遮擋或禁用時點擊會報錯,Agent 應先處理遮擋再重試。
  • 接入方式:用 skills get core 加載版本匹配的指令,或用 agent-browser mcp 接入 MCP 客戶端。
  • 安全優先:生產環境開啓域名白名單、auth vault 和敏感操作確認。
  • 模型選擇:在 API易 apiyi.com 用統一接口對比驅動模型,價格以 docs.apiyi.com/models 爲準。

總結

agent-browser snapshot-ref 循環的核心要點:

  1. 用文本代替截圖:無障礙樹快照加 ref,讓模型以最少的上下文理解頁面。
  2. 一步一校驗:每次操作後讀取頁面或 URL,避免 Agent 在錯誤狀態上繼續執行。
  3. 失敗可處理:遮擋、視口、禁用、ref 過期都有明確的處理路徑。
  4. 接入成本低:npm 安裝、內置 skills、MCP 服務,三種方式都能快速接進現有 Agent。

建議先在終端手動跑通 open、snapshot、click、get、close 五條命令,再把循環規則寫進 Agent 的系統提示詞,最後用真實業務頁面挑選驅動模型。

推薦通過 API易 apiyi.com 快速驗證不同模型驅動 agent-browser 的效果,平臺兼容 OpenAI 與 Anthropic 接口格式,接入說明見 docs.apiyi.com,模型價格以 docs.apiyi.com/models 爲準。


📚 參考資料

  1. GitHub – agent-browser:官方開源倉庫
  2. 鏈接: github.com/vercel-labs/agent-browser
  3. 說明:包含安裝方式、快速上手、命令分組和開發說明

  4. agent-browser 官方文檔:完整指南與命令參考

  5. 鏈接: agent-browser.dev
  6. 說明:覆蓋快照、選擇器、會話、CDP 模式和安全機制

  7. agent-browser 安全文檔:認證與訪問控制

  8. 鏈接: agent-browser.dev/security
  9. 說明:介紹 auth vault、域名白名單、操作策略與內容邊界

  10. API易 文檔中心:模型接入說明

  11. 鏈接: docs.apiyi.com
  12. 說明:OpenAI 與 Anthropic 兼容格式的接入方法

  13. API易 模型價格頁:各模型實際計費

  14. 鏈接: docs.apiyi.com/models
  15. 說明:本文所有模型價格均以此頁爲準

作者:APIYI 技術團隊
技術交流:歡迎在 API易 apiyi.com 網站首頁聯繫我們,更多接入資料可訪問 docs.apiyi.com 文檔中心

Similar Posts