《用LangChain實(shí)現(xiàn)Manus》:Browser Use 到底能不能用?

0 評(píng)論 937 瀏覽 1 收藏 14 分鐘

LangChain 1.0 加持下,Browser Use 作為 Agent 核心工具,能否真正實(shí)現(xiàn) AI 像人類一樣自動(dòng)瀏覽網(wǎng)頁(yè)、完成交互?這篇實(shí)測(cè)干貨帶你一探究竟!

前些日子,我們簡(jiǎn)單介紹了下LangChain框架:《LangChain、 Dify、 n8n、 Coze:四大AI框架怎么選?》

而后LangChain1.0 發(fā)布,其擁有了更多的功能,會(huì)適應(yīng)于近期大家都想要的功能,比如:快速構(gòu)建和交付Agent,那個(gè)經(jīng)典的模型→工具→響應(yīng)模式。

作為技術(shù)團(tuán)隊(duì)最常用的AI框架,我們之前其實(shí)也是淺嘗則止,我們的程序員明顯更喜歡自己擼代碼,只不過(guò)這不是不學(xué)習(xí)、不深入的理由!

所以,接下來(lái)我們會(huì)寫(xiě)一個(gè)關(guān)于LangChain框架的系列文章,希望通過(guò)該系列文章讓大家對(duì)LangChain乃至Agent的簡(jiǎn)單實(shí)現(xiàn)有個(gè)概括的認(rèn)知,所以今天的關(guān)鍵詞就是Browser Use。

01 Browser Use

依舊是這張經(jīng)典架構(gòu)圖:

規(guī)劃能力來(lái)自于模型本身、記憶板塊模型會(huì)解決一部分,但更多的是由知識(shí)庫(kù)(提示詞工程、上下文工程解決),所以這一輪類Manus能爆發(fā)的核心在于工具層面,這些年互聯(lián)網(wǎng)各種能力的集合:

比如,之前典型的工具需求對(duì)電腦的操作。目標(biāo)是讓AI像人類一樣操作電腦:看屏幕、動(dòng)光標(biāo)、點(diǎn)按鈕、打字,再這個(gè)基礎(chǔ)上再擴(kuò)展功能,比如幫訂機(jī)票、填表格、查天氣。

除了Computer Use,另一個(gè)非常典型的需求就是瀏覽器操作Browser Use了,甚至其實(shí)現(xiàn)ROI可能比Computer Use更高:

這款瀏覽器的自動(dòng)化工具,是去年發(fā)布的,因?yàn)樵摴δ艿闹匾潭龋院髴?yīng)該也會(huì)有更多這類插件出現(xiàn),畢竟讓 AI 像人類一樣瀏覽網(wǎng)頁(yè)、點(diǎn)擊鏈接、提取信息本身就有很大的意義。

學(xué)過(guò)前端的同學(xué)會(huì)比較清楚,對(duì)瀏覽器的操作方式有兩種,第一種是模擬點(diǎn)擊,記錄x、y左邊,在實(shí)現(xiàn)點(diǎn)擊等操作即可;第二種是直接對(duì)其網(wǎng)頁(yè)代碼進(jìn)行操作。這兩種方式Browser Use都用了。

并且,當(dāng)前對(duì)外宣傳其效果還很好,那么其真實(shí)效果到底如何?我們今天就來(lái)測(cè)試測(cè)試。

今天使用的案例是通過(guò) Browser Use 驅(qū)動(dòng)瀏覽器完成頁(yè)面操作、登錄、元素交互,由 LangChain 負(fù)責(zé)語(yǔ)義對(duì)話生成,最終構(gòu)建一個(gè)能夠自動(dòng)登錄、實(shí)時(shí)監(jiān)聽(tīng)消息、自動(dòng)生成回復(fù)并直接在網(wǎng)頁(yè)端發(fā)送的多輪自動(dòng)會(huì)話系統(tǒng)。

02 Browser Use 實(shí)測(cè)

系統(tǒng)的架構(gòu)可以分為兩個(gè)主要模塊:

LangChain 對(duì)話管理模塊:負(fù)責(zé)處理對(duì)話邏輯和上下文管理:

  1. 使用 Qwen-Plus 模型生成回復(fù)
  2. 通過(guò) ChatMessageHistory 管理對(duì)話歷史
  3. 使用 ChatPromptTemplate 設(shè)置提示詞模板
  4. 構(gòu)建 Conversation Chain 來(lái)維持對(duì)話流程

Browser Use 瀏覽器自動(dòng)化模塊:負(fù)責(zé)與網(wǎng)頁(yè)端進(jìn)行實(shí)際交互

  1. Browser 實(shí)例控制實(shí)際的瀏覽器操作
  2. Browser Use Agent 執(zhí)行具體的任務(wù)指令
  3. 使用大模型處理瀏覽器操作任務(wù)

整個(gè)工作流程如下:

1.系統(tǒng)啟動(dòng)時(shí)初始化兩個(gè)模塊

2.通過(guò) Browser Use 模塊在網(wǎng)頁(yè)上發(fā)送初始消息

3.進(jìn)入自動(dòng)聊天循環(huán):

  • 等待并提取網(wǎng)頁(yè)端AI助手的回復(fù)
  • 使用 LangChain 模塊生成回應(yīng)
  • 通過(guò) Browser Use 模塊發(fā)送回復(fù)

4.循環(huán)執(zhí)行指定輪次后結(jié)束,并保持瀏覽器打開(kāi)一段時(shí)間供查看

接下來(lái)是具體實(shí)現(xiàn):

具體實(shí)現(xiàn)(可略過(guò)看結(jié)論)

首先初始化 LangChain,對(duì)話模型使用 Qwen-Plus,并創(chuàng)建對(duì)話記憶與提示詞模板。

這里我們讓模型保持「CTO角色人設(shè)」,并限制回復(fù)風(fēng)格始終為一句話,保證多輪對(duì)話的一致性與人格連續(xù)性:

然后,Browser Use 部分使用 GPT-4o 模型,并啟動(dòng)真實(shí)瀏覽器實(shí)例(可見(jiàn)窗口 mode)。其作用是負(fù)責(zé)所有真實(shí)網(wǎng)頁(yè)層面的點(diǎn)擊、輸入、識(shí)別和元素交互:

然后,系統(tǒng)以「自然語(yǔ)言任務(wù)描述」的方式,將任務(wù)直接交給 Browser LLM。Browser Use 會(huì)自動(dòng)解析指令:打開(kāi)目標(biāo)網(wǎng)頁(yè)、登錄、創(chuàng)建新會(huì)話、輸入第一條消息并發(fā)送。

這一步完成對(duì)整個(gè)對(duì)話 session 的初始鋪設(shè):

系統(tǒng)每隔 30 秒執(zhí)行一次 Browser Use 的任務(wù),檢查網(wǎng)頁(yè)是否產(chǎn)生新的回復(fù),并自動(dòng)從聊天界面中抓取 AI 助手的最新回應(yīng),提取完成后將回復(fù)內(nèi)容返回給程序處理:

再然后LangChain登場(chǎng),把 AI 助手剛剛回復(fù)的內(nèi)容、結(jié)合過(guò)往對(duì)話歷史,一起交給 LangChain 再生成。這樣可以保持角色一致性,并且形成連續(xù)的多輪語(yǔ)義閉環(huán):

將 LangChain 生成出來(lái)的回復(fù)文本,再次以自然語(yǔ)言任務(wù)下發(fā)給 Browser Agent,由瀏覽器自己完成實(shí)際輸入與發(fā)送行為,系統(tǒng)無(wú)需寫(xiě)任何 XPath/定位代碼:

整個(gè)對(duì)話流程會(huì)循環(huán)執(zhí)行:

  1. 每輪先從網(wǎng)頁(yè)等待回復(fù)
  2. 再調(diào)用 LangChain 生成新內(nèi)容
  3. 再交由 Browser Use 發(fā)送出去

至此整體流程結(jié)束,具體效果大家可以在上面視頻查看。接下來(lái)就是一些具體的問(wèn)題了:

03 一些問(wèn)題

這里不同的人、不同的環(huán)境碰到的問(wèn)題不一樣,我們這里就有撒說(shuō)撒了…

CDP / 瀏覽器連接不穩(wěn)定

對(duì)于經(jīng)常使用魔法的同學(xué)來(lái)說(shuō),優(yōu)先檢查本地代理、VPN,很多時(shí)候是代理阻斷了 CDP 通信…

另外注意 Chrome / Chromium 版本與 Browser Use 的兼容性一定要一致。

ChatBrowserUse 模型不穩(wěn)定

Browser Use 默認(rèn)自帶的 ChatBrowserUse 模型不穩(wěn)定,國(guó)內(nèi)使用經(jīng)常出現(xiàn) timeout / stuck 的情況。

可以切換到其他模型,比如 qwen/deepseek…

登錄問(wèn)題

我們 Demo 使用賬號(hào)密碼即可,但像抖音這種會(huì)要求掃碼 / 驗(yàn)證碼 會(huì)比較麻煩,建議做成一次登錄,永久繼續(xù)用:

  1. 手動(dòng)登錄一次
  2. 把瀏覽器 Cookie 導(dǎo)出來(lái)
  3. 下次 Browser Use 打開(kāi)同站點(diǎn)時(shí),加載 Cookie 文件
  4. 這樣整個(gè)自動(dòng)對(duì)話流程就不再需要重新登錄

只不過(guò)失效了就得再來(lái)一次,反正這個(gè)東西很麻煩就是了,核心實(shí)現(xiàn)代碼示例:

……

04 總結(jié)

最后總結(jié)一下,出于完整的了解LangChain及帶大家深刻了解智能體(Agent)生態(tài)真實(shí)的情況的需求,我們會(huì)將一些關(guān)節(jié)、難點(diǎn)在接下來(lái)的時(shí)間一一展開(kāi),目的當(dāng)然是對(duì)AI不要過(guò)于樂(lè)觀,但也不要過(guò)于悲觀。

今天,我們實(shí)現(xiàn)了一個(gè)完整的自動(dòng)對(duì)話閉環(huán):登錄、實(shí)時(shí)監(jiān)聽(tīng)消息、調(diào)用大模型生成回復(fù),并在真實(shí)網(wǎng)頁(yè)端進(jìn)行發(fā)送,從而形成穩(wěn)定的多輪自動(dòng)會(huì)話流程。

當(dāng)前案例僅是一個(gè) Demo 級(jí)工程,用的是通用大模型生成回復(fù),但這只是能力的起點(diǎn)。事實(shí)上該功能可以很輕易的做各種擴(kuò)展,比如:

  1. 引入 RAG(檢索增強(qiáng)生成):接入企業(yè)知識(shí)庫(kù)、FAQ、內(nèi)部 SOP、訂單/工單系統(tǒng),讓回復(fù)真正具備業(yè)務(wù)專業(yè)能力。
  2. 人機(jī)混合模式:對(duì)敏感、高風(fēng)險(xiǎn)、高業(yè)務(wù)價(jià)值的消息自動(dòng)轉(zhuǎn)人工;人工也可以審閱/修訂 AI的回復(fù),實(shí)現(xiàn)可控可信。
  3. 更豐富的 Browser Use + LangChain 場(chǎng)景:不僅僅聊天自動(dòng)回復(fù),還可以執(zhí)行「AI 自動(dòng)任務(wù)」,如指定站點(diǎn)信息抽取、搜索與對(duì)比、內(nèi)容采集與整理、自動(dòng)評(píng)論、自動(dòng)發(fā)布視頻/圖文等。

這其中 Browser Use 負(fù)責(zé)“操作真實(shí)世界的網(wǎng)頁(yè)動(dòng)作”,LangChain 負(fù)責(zé)“理解與生成語(yǔ)言邏輯”,兩者結(jié)合,就能夠把過(guò)去只能人工做的線上操作,轉(zhuǎn)變?yōu)榭杀?AI 自動(dòng)執(zhí)行的任務(wù)系統(tǒng)。

最后給個(gè)Browser Use結(jié)論:標(biāo)準(zhǔn)化、可流程化的網(wǎng)頁(yè)操作,表現(xiàn)得很不錯(cuò)。但開(kāi)放網(wǎng)絡(luò)、長(zhǎng)鏈路、多站點(diǎn)的全自動(dòng)化依然不穩(wěn),需要基建與人機(jī)協(xié)作兜底,實(shí)際操作下來(lái):

  1. Browser Use 在定位元素、點(diǎn)擊、輸入、提取文本這些步驟上都非常穩(wěn)定,執(zhí)行過(guò)程成功率非常高;
  2. 但如果換成復(fù)雜網(wǎng)頁(yè),例如抖音、微博、小紅書(shū)這種強(qiáng)交互、多層嵌套、多組件的頁(yè)面,就會(huì)明顯感覺(jué)到 Browser Use 的能力下降,比如:
  3. 帶文字的按鈕、有明顯標(biāo)簽的區(qū)域,識(shí)別精準(zhǔn);但純圖標(biāo)區(qū)域、動(dòng)態(tài)渲染組件、hover 才出現(xiàn)的元素、評(píng)論區(qū)這種非顯性結(jié)構(gòu),就經(jīng)常找不到、反復(fù)失敗、定位不準(zhǔn)、或者執(zhí)行超時(shí)。
  4. 實(shí)際嘗試時(shí)需要對(duì)預(yù)期有所認(rèn)知,Browser Use 在信息清晰、層級(jí)明確、結(jié)構(gòu)可理解的中小型網(wǎng)頁(yè)上很好用,但在大型復(fù)雜頁(yè)面上就不一定穩(wěn)定

其實(shí)Browser Use在某些地方是有點(diǎn)類似于我們之前做的瀏覽器插件的(而且他本身也確實(shí)是瀏覽器插件)。它們都是通過(guò)技術(shù)手段“嵌入”瀏覽器,以自動(dòng)化的方式與網(wǎng)頁(yè)進(jìn)行交互。

插件的核心邏輯是:我們作為開(kāi)發(fā)者,需要預(yù)先洞察一切,通過(guò)代碼精確告訴瀏覽器“點(diǎn)擊哪個(gè)按鈕”、“在哪個(gè)輸入框填寫(xiě)什么”。這是一種確定性的自動(dòng)化。

Browser Use的不同之處在于,它把這個(gè)“預(yù)先洞察”的職責(zé)交給LLM。他需要自己判斷:“這是登錄頁(yè)?”、“那是搜索框?”,然后自主決策操作順序。

這使其在應(yīng)對(duì)不同網(wǎng)站結(jié)構(gòu)或微小UI變動(dòng)時(shí),擁有了我們傳統(tǒng)插件難以比擬的靈活性。

只不過(guò),靈活性的背后肯定也隱藏著穩(wěn)定性的問(wèn)題,至于如何解決,就看官方下階段更新了,Browser Use 作為Agent重用工具組成,勢(shì)必會(huì)迎來(lái)進(jìn)一步發(fā)展。

本文由人人都是產(chǎn)品經(jīng)理作者【葉小釵】,微信公眾號(hào):【葉小釵】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!