告別 XPath 年代:Vision-based RPA 如何顛覆 400 億美元行業
如果你仲喺度用 UiPath 或者 Playwright 寫 XPath selector 嚟 scrape 網站,你嘅 automation 已經死咗一半。唔係誇張——每一次前端改版、每一個 A/B test variant、每一條新功能上線,你條 XPath 就會斷。斷完要搵人重新 trace element,改 code,再 deploy。呢個 loop 嘅 cost 係 O(n)——n 係你維護緊嘅 automation 數量,而呢條曲線嘅斜率只會愈嚟愈斜。成個 RPA 行業四十年嚟都冇擺脫呢個詛咒,直到 2024 年有人用咗一個完全唔同嘅方法:唔再搵 selector,而係俾 AI 對住個 screen 直接做嘢。
呢間公司叫 Skyvern,佢哋嘅做法响技術層面簡單到令人難以置信:俾一個 LLM(或者 VLM)睇住 browser 嘅 screenshot,然後問佢「個 login button 喺邊?」模型會答你一個座標,click 落去就得。冇 XPath,冇 CSS selector,冇 DOM query,冇 flaky element wait。成個 pipeline 嘅 fragility 由 O(n) 變成 O(1)——無論你維護緊一條 automation 定一萬條,每次網站改版你只需要做嘅嘢係……唔使做。因為 LLM 根本唔 care DOM structure 改咗未,佢係用人眼嘅方式理解頁面。人類睇到一個藍色 rectangular button 寫住 “Sign In”,LLM 都睇到。你唔會因為個 button 嘅 id 由 btn-login-2024 改成 btn-signin-2026 就認唔到佢,LLM 都唔會。
由 DOM 到 Vision:一個典範轉移
要理解呢個 shift 有幾 radical,首先要明白傳統 RPA 做 automation 嘅本質係乜。無論你用 UiPath、Selenium、Playwright 定 Puppeteer,底層邏輯都係一樣:你要俾部機一個精確嘅地址,叫佢去 DOM tree 嘅某個位置搵某個 element。呢個地址可以係 //div[@class="container"]/button[2] 呢種 XPath,可以係 #submit-btn 呢種 CSS selector,但本質上係同一回事——你响一個結構化嘅樹狀文件入面 hardcode 咗一個路徑。問題係呢棵樹係由 frontend developer 控制嘅,而 frontend developer 追求嘅係新功能、新設計、新體驗,唔係幫你 maintenance automation。
呢度有個結構性矛盾:RPA 嘅維護者同前端開發者嘅 incentive 完全相反。前者渴望穩定,後者渴望變化。响一個 active development 嘅網站入面,DOM 結構每個 sprint 都可以改一次。每次改動都意味住 automation pipeline 入面有一批 XPath 死咗。大型企業嘅 RPA team 花 60-70% 嘅時間唔係寫新 automation,而係修復爛咗嘅舊 automation。UiPath 呢間公司市值 400 億美元,本質上就係靠呢個 inefficiency 養活嘅——佢哋賣嘅唔係 automation,而係 complexity management。
Vision-based 嘅出現打破咗呢個結構。當你嘅 automation 唔再依賴 DOM tree,而係依賴 visual understanding,成件事就唔同咗。LLM/VLM 唔需要知道個 button 喺 DOM tree 邊個位置,佢只需要响 screenshot 入面 detect 到一個 visually 似 login button 嘅物件,然後用 coordinates 去做 interaction。呢種 approach 嘅 robustness 唔係 incremental improvement,而係 categorical leap。
Skyvern 點樣用 Open Source 顛覆 Game
Skyvern 响 2024 年開源咗佢哋嘅 core engine,呢個決定响 RPA 行業入面係一個大地震。之前要用 vision-based approach 你只能夠俾錢 UiPath 或者 ABBYY,而家你可以响自己部機度行 open source solution,成本係零。Skyvern 嘅做法係用 browser 嘅視角(透過 Playwright 嘅 screenshot 功能)capture 頁面狀態,然後 call LLM API 去理解畫面內容同決定下一步行動。呢套嘢唔需要 GPU,唔需要本地模型,只要你有 access 到 GPT-4o 或者 Claude 3.5 Sonnet 呢類有 vision capability 嘅模型就得。
對香港 developer 嚟講,呢個係一個極大嘅機會。香港嘅 automation 需求好多係圍繞住本地化場景:HSBC 網上銀行嘅 monthly statement 下載、入境處網站嘅預約 check、各大航空公司嘅價格 monitoring、甚至係政府採購網站嘅 tender notification。呢啲場景用傳統 RPA 做嘅話,維護成本高到唔合理——因為香港呢啲網站嘅 frontend 有時仲會用啲好奇怪嘅 library 或者 outdated framework,XPath 嘅穩定性更加差。但用 vision-based approach,你唔需要理個網站用乜 framework,只需要俾佢睇個 screen 就得。
Agent Device 呢個概念仲進一步放大咗 vision-based RPA 嘅潛力。當你嘅 agent 唔單止可以睇 screen,仲可以「用」device——移動 mouse、打字、scroll、drag——成個 automation 嘅 scope 就由 web browser 擴展到任何有 graphical interface 嘅系統。Desktop application、Citrix 環境、甚至 legacy terminal emulator,只要你個 agent 可以 capture 到畫面同 control mouse/keyboard,就 automation 到。呢個係傳統 DOM-based approach 根本做唔到嘅領域。
香港 Developer 嘅實戰路徑
如果你呢刻想開始用 vision-based RPA,最直接嘅做法係玩熟 Skyvern 嘅 open source stack。佢哋有提供 Docker compose,一個 command 就起晒成個 environment。你可以先由一個簡單嘅 task 開始——例如「每日自動 login HSBC Business Express 下載戶口結餘」——然後慢慢擴展到更複雜嘅 workflow。關鍵係你要 train 自己用「視覺」嘅方式思考 automation:唔好諗 element selector,要諗「如果係一個人做呢件事,佢會睇咩位、點樣判斷、點樣操作?」
另一個重要技巧係要善用 AI model 嘅 prompting 嚟提升 accuracy。Vision-based 唔等於 magic——LLM 有時會睇錯嘢,尤其係啲 layout 好複雜嘅頁面。香港啲 portal 成日都有多語言版本,中英文混雜,有時仲有兩套 CSS 响度打架。呢啲情況下你要俾清晰嘅 instruction prompt,話俾個 agent 知「呢個 screen 有兩個區域,你要專注睇左邊個 panel」,或者「呢個網站有 popup ad,ignore 佢」。Prompt engineering 响 vision-based automation 入面嘅重要性比傳統 RPA 高好多,因為你係同個 AI 溝通,唔係寫 deterministic code。
最後,唔好低估 cost。Vision LLM 嘅 API call 比傳統 text-only model 貴 3-5 倍,每次 screenshot inference 都要 transmit 大量 pixel data。如果你嘅 automation 每日 run 幾千次,API cost 會好快累積。解決方法有幾個:用本地 VLM(例如 Qwen-VL 或者 Llama 3.2 Vision),或者做 caching——相同頁面嘅 screenshot 唔使每次都 call model。亦可以用 hybrid approach:先試傳統 selector,fallback 先 vision-based,咁樣可以大幅降低成本。
總結:行動清單
傳統 RPA 行業價值 400 億美元,呢個數字本身就話俾我哋知 automation 有幾痛。Vision-based 唔係一個 marginal improvement,而係重新定義咗 automation 嘅 maintainability。對香港 developer 嚟講,而家係最好嘅 timing——open source 工具已經 ready,LLM API 價格每個月都在跌,而你身邊仲有好多人未意識到呢個 shift。
呢個星期你可以做三件事:第一,起一個 Skyvern Docker environment 玩下,感受下 vision-based 同傳統 XPath 嘅分別。第二,揀一條你而家維護緊嘅 automation,試下用 vision-based 重寫,睇下維護成本其實低幾多。第三,開始思考你嘅業務入面有邊啲場景係以前因為「個網站太麻煩自動化唔到」而放棄咗——呢啲就係 vision-based RPA 嘅 killer use case。
四十年前我哋由 terminal 轉去 GUI,三十年後由 XPath 轉去 Vision。下一個十年,唔識用 AI 做 automation 嘅 developer,會好似而家仲用緊 punch card 寫 code 咁樣。