允中 發(fā)自 凹非寺量子位 | 公眾號(hào) QbitAI
Agent從來(lái)不是不會(huì)用瀏覽器,只是浪費(fèi)太多時(shí)間在探索——BrowserBC把人類軌跡蒸餾成可復(fù)用Skill來(lái)完成Behavior Cloning,用戶點(diǎn)一遍,Agent照著就能跑通。
![]()
今天的Web Agent,已經(jīng)不缺「會(huì)操作」這件事。
Claude、Codex這類Agent能看頁(yè)面、能識(shí)別按鈕和輸入框,能點(diǎn)擊、輸入、跳轉(zhuǎn)、提交。
真正卡住它們的,是另一個(gè)問(wèn)題:
每接一個(gè)新任務(wù)、每換一個(gè)新網(wǎng)站,幾乎都要讓最強(qiáng)、也最貴的那個(gè)模型,從零開(kāi)始再把整個(gè)流程摸索一遍。
而這種「從零摸索」,常常摸著摸著就出岔子:
陷進(jìn)死循環(huán),在幾個(gè)頁(yè)面之間反復(fù)橫跳;慢慢偏離最初的任務(wù)意圖,越走越遠(yuǎn);在搜索結(jié)果里來(lái)回切換卻始終沒(méi)讀全;或者明明已經(jīng)很接近答案,卻提前收手、草草交差。
在摸索一遍之后呢?就算這次僥幸做成了,這點(diǎn)經(jīng)驗(yàn)也往往隨著這一輪對(duì)話一起蒸發(fā)。下一次同類任務(wù),再換一個(gè)Agent,還要從頭試錯(cuò)、再踩一遍同樣的坑。
于是,一個(gè)很樸素的問(wèn)題浮出水面:能不能做一次、復(fù)用很多次?
更具體一點(diǎn)——能不能讓人把任務(wù)認(rèn)真做一遍,把這一遍操作里的「門(mén)道」打包下來(lái),然后交給一個(gè)更便宜、更小的模型,讓它照著做,就能完成同一類任務(wù)?
Einsia AI旗下Navers Lab發(fā)布的開(kāi)源項(xiàng)目BrowserBC給出的答案,是一條三步范式:錄制→轉(zhuǎn)寫(xiě)成Skill→交付執(zhí)行。
- 錄制:在瀏覽器里做任務(wù)的時(shí)候,把全過(guò)程完整記錄下來(lái)——任務(wù)指令、每一步的頁(yè)面觀察(既有渲染出來(lái)的截圖,也有結(jié)構(gòu)化的DOM/可訪問(wèn)性樹(shù)快照)、用戶的每一個(gè)動(dòng)作(點(diǎn)擊、輸入、跳轉(zhuǎn)、提交,并帶著對(duì)應(yīng)的元素定位)、頁(yè)面給出的反饋(頁(yè)面跳轉(zhuǎn)、校驗(yàn)與報(bào)錯(cuò)信息、完成信號(hào)),以及任務(wù)最終落到哪個(gè)狀態(tài)。
- 轉(zhuǎn)寫(xiě):關(guān)鍵在于,它不是把這段操作存成一段「回放腳本」,而是由模型把它轉(zhuǎn)寫(xiě)成一份自然語(yǔ)言的Skill——一份說(shuō)明書(shū)式的「技能卡」,寫(xiě)清楚這類任務(wù)該怎么做、怎么判斷做對(duì)了。
- 執(zhí)行:再把這份Skill交給任意一個(gè)模型去讀。它據(jù)此在真實(shí)頁(yè)面上自己落地操作,而不是機(jī)械復(fù)刻某一次的點(diǎn)擊坐標(biāo)。
說(shuō)得通俗一點(diǎn),BrowserBC有點(diǎn)像agentic時(shí)代的「按鍵精靈」。
傳統(tǒng)的按鍵精靈,會(huì)把人的鼠標(biāo)點(diǎn)擊和鍵盤(pán)敲擊錄下來(lái)再回放——但它錄的是寫(xiě)死的坐標(biāo)和按鍵,頁(yè)面一變、布局一動(dòng),整段腳本立刻就廢了。
BrowserBC錄的不是坐標(biāo),而是把這一遍操作轉(zhuǎn)寫(xiě)成一份講清「該做什么、怎么算做完」的技能:
它能被另一個(gè)模型讀懂,能在變了樣的頁(yè)面上舉一反三,也能被不斷合并、復(fù)用——它是那種會(huì)「理解」、能遷移、還能直接交給別人用的按鍵精靈。
這也揭示出BrowserBC的核心——技能從哪里來(lái),和技能由誰(shuí)來(lái)執(zhí)行,可以徹底分開(kāi)。
人在瀏覽器里把任務(wù)做一遍,這一遍操作被轉(zhuǎn)寫(xiě)成技能;之后照著技能把同類任務(wù)做下去的,是另一個(gè)、哪怕更小、更便宜的模型。技能一旦被轉(zhuǎn)寫(xiě)成自然語(yǔ)言,就能在模型之間自由地傳遞、復(fù)用、組合。
這正是通往「通用網(wǎng)頁(yè)瀏覽」的關(guān)鍵步驟:把人類每天的瀏覽器行為蒸餾給Agent去做。
![]()
*BrowserBC把人類的瀏覽器操作軌跡蒸餾成可復(fù)用的自然語(yǔ)言技能,為Agent提供訪問(wèn)陌生網(wǎng)站時(shí)的“決策先驗(yàn)”。
Github:https://github.com/Einsia/Browser-BC
Blog:https://lab.einsia.ai/browserbc/
Paper:https://lab.einsia.ai/browserbc/paper
人類一次錄制,Agent就能模擬
研究團(tuán)隊(duì)錄制了一個(gè)case:
視頻地址:
https://mp.weixin.qq.com/s/OFXkRh_keR4HzgTImCGjVg
任務(wù)很常見(jiàn):旅行前想要在目的地找一處安心、方便、實(shí)惠的民宿,需要在預(yù)訂網(wǎng)站輸入時(shí)間、地點(diǎn)、預(yù)約人數(shù),按照網(wǎng)站評(píng)分、評(píng)分?jǐn)?shù)量篩選,并且排序找出里面最優(yōu)的選項(xiàng)。
這類任務(wù)看起來(lái)不難,但是小模型經(jīng)常栽在它上面——不是不理解任務(wù),而是要么不知道怎么用篩選功能,要么產(chǎn)生幻覺(jué)輸出虛構(gòu)信息假裝完成。
第一步,錄制。研究團(tuán)隊(duì)先讓一個(gè)人把它完整做一遍:進(jìn)入網(wǎng)站→輸入時(shí)間地點(diǎn)人數(shù)→應(yīng)用合適的篩選器→閱讀所有搜索結(jié)果→找到最佳選項(xiàng)。整個(gè)過(guò)程被原樣記錄下來(lái)。
第二步,轉(zhuǎn)寫(xiě)成Skill。系統(tǒng)把這段操作轉(zhuǎn)寫(xiě)成一張技能卡,而不是一段坐標(biāo)回放。卡片上寫(xiě)的是這一類任務(wù)的通用門(mén)道:
- 意圖:在預(yù)訂網(wǎng)站找到最佳的住宿選項(xiàng);
- 關(guān)鍵步驟:先寫(xiě)基本信息,搜索之后逐項(xiàng)應(yīng)用篩選器——這正是小模型最容易不理解或者做不到的地方;
- 完成判據(jù):最后輸出可以人工核查的版本;
- 要避免的坑:官方篩選器可能和用戶實(shí)際需要的標(biāo)準(zhǔn)不一樣,如有需要?jiǎng)t需要自己編寫(xiě)腳本篩選。
第三步,交付給一個(gè)小模型執(zhí)行。這張卡片被交給一個(gè)明顯更小的模型,讓它去完成另外一次旅程的信息檢索,做同類型的任務(wù)。
沒(méi)有這張卡片時(shí),它要么跌跌撞撞卡死或者很久才勉強(qiáng)完成任務(wù),要么直接輸出幻覺(jué);拿到卡片后,它立刻知道要輸入什么信息,要核查什么界面,哪些要依賴網(wǎng)站官方哪些要自己判別——于是穩(wěn)定地把任務(wù)做完了。
就這樣,BrowserBC把「操作瀏覽器」這件每天都在發(fā)生的事,變成了可以被Agent復(fù)用的技能。人把路趟通一次、由系統(tǒng)轉(zhuǎn)寫(xiě)成說(shuō)明書(shū)Agent型負(fù)責(zé)照著說(shuō)明書(shū)把同一類路走順。
而且,這條路天然是可復(fù)用、可擴(kuò)展的。
人類訪問(wèn)網(wǎng)站的分布服從冪律分布:常見(jiàn)的站點(diǎn)構(gòu)成了人類訪問(wèn)的大部分,對(duì)于這些站點(diǎn),用的人越多,Skill庫(kù)就會(huì)收斂得越完備;更關(guān)鍵的是,針對(duì)稀疏的長(zhǎng)尾分布,BrowserBC使得人們再也不需要等那些落后的舊網(wǎng)站自己來(lái)提供MCP(或官方Agent接口)了。
現(xiàn)實(shí)是,大量老網(wǎng)站永遠(yuǎn)不會(huì)專門(mén)為Agent開(kāi)放一套干凈的機(jī)器接口;而B(niǎo)rowserBC直接復(fù)用人類在「給人看的那套界面」上積累下來(lái)的操作經(jīng)驗(yàn)——只要人能用瀏覽器把它用起來(lái),Agent就能借由蒸餾出的技能把它用起來(lái)。
換句話說(shuō),一個(gè)網(wǎng)站能不能被Agent高效訪問(wèn),不再取決于網(wǎng)站方愿不愿意配合、肯不肯升級(jí),而取決于有沒(méi)有人已經(jīng)在這個(gè)網(wǎng)站上走通過(guò)路。
這恰恰是「通用」二字的底氣所在。
方法:怎么把一次操作轉(zhuǎn)寫(xiě)成能用的Skill,又怎么把越來(lái)越多的Skill管起來(lái)
![]()
*BrowserBC將嘈雜的瀏覽軌跡清洗、蒸餾為可復(fù)用的自然語(yǔ)言技能,并進(jìn)一步組織成可擴(kuò)展的技能圖,最后檢索相關(guān)技能指導(dǎo)Agent完成新任務(wù)。
BrowserBC的方法部分,其實(shí)就回答兩個(gè)問(wèn)題:一段操作該怎么總結(jié)、總結(jié)時(shí)要注意什么;以及總結(jié)出來(lái)的成千上萬(wàn)個(gè)Skill,該怎么管理。
第一個(gè)問(wèn)題:怎么轉(zhuǎn)寫(xiě),以及要特別注意什么?
原始的瀏覽器軌跡往往非常嘈雜——里面有誤點(diǎn)擊、無(wú)意義的等待、重復(fù)嘗試、臨時(shí)的頁(yè)面狀態(tài),還可能夾著隱私信息。因此在轉(zhuǎn)寫(xiě)之前,BrowserBC會(huì)先做清洗,并按語(yǔ)義把軌跡切成一段段連貫的子過(guò)程,而不是按固定長(zhǎng)度硬切。
每一段會(huì)先被抽成一份「證據(jù)(evidence)」:保留任務(wù)指令、這段操作前后的頁(yè)面狀態(tài)、用戶采取的關(guān)鍵步驟、頁(yè)面給出的反饋、以及成功或失敗的信號(hào)。
然后,把證據(jù)轉(zhuǎn)寫(xiě)成結(jié)構(gòu)化的自然語(yǔ)言Skill卡,用固定字段說(shuō)清楚“該做什么、怎么判斷進(jìn)展、怎么算完成、失敗了怎么辦”,以及它從哪來(lái)、在什么場(chǎng)景下適用。
這樣一張卡,既能直接喂給語(yǔ)言模型當(dāng)作上下文,又方便人去審閱和修改。
這里有一個(gè)最該注意的原則:只保留「可遷移的過(guò)程性知識(shí)」,剝離「會(huì)變、會(huì)泄露的細(xì)節(jié)」。
- 要?jiǎng)兊舻?/strong>:精確坐標(biāo)、DOM選擇器、臨時(shí)ID、登錄態(tài)、隱私文本,以及任何指向具體答案、針對(duì)評(píng)測(cè)checker的內(nèi)容;
- 要留下的:在語(yǔ)義層面「該做什么、怎么判斷進(jìn)展、怎么算完成」。
舉個(gè)例子,一張「填表單」技能卡寫(xiě)的是「按語(yǔ)義標(biāo)簽找到對(duì)應(yīng)字段、把任務(wù)給定的值原樣填進(jìn)去、提交后確認(rèn)頁(yè)面出現(xiàn)成功狀態(tài)」,而不是「點(diǎn) (x, y)、再點(diǎn)那個(gè)id是某串字符的按鈕」。
原因很直接:網(wǎng)頁(yè)天天在變,布局、DOM、版本、登錄態(tài)都會(huì)變,克隆坐標(biāo)和選擇器極其脆弱;而克隆「做什么 + 怎么判斷完成」才真正遷移得動(dòng)。
還有兩點(diǎn)值得一提:
其一,一條成功軌跡就足以蒸出一個(gè)可用技能(它本身就刻畫(huà)了一種可行解的結(jié)構(gòu));
而把同一任務(wù)的多次嘗試(含失敗)放在一起,技能會(huì)更穩(wěn)——成功的運(yùn)行強(qiáng)化執(zhí)行步驟,失敗的運(yùn)行則暴露缺失的前置條件、催生出顯式的恢復(fù)策略。
其二,轉(zhuǎn)寫(xiě)時(shí)要做一遍泄露檢查:技能卡只該記可復(fù)用的過(guò)程,不該把具體答案夾帶進(jìn)去。
第二個(gè)問(wèn)題:Skill怎么管理?
如果每條軌跡都生成一個(gè)互相獨(dú)立的技能,庫(kù)很快就會(huì)失控:重復(fù)、冗余、甚至互相沖突。
BrowserBC的做法是把庫(kù)組織成一張技能圖(skill graph)。
每當(dāng)產(chǎn)生一個(gè)候選技能,系統(tǒng)就判斷該把它新增(add)為一個(gè)新節(jié)點(diǎn)、合并(merge)進(jìn)已有技能、還是登記為某個(gè)更通用技能的特化(specialize):
- 當(dāng)兩個(gè)技能在意圖、前置條件、步驟、效果、終止證據(jù)上彼此相容時(shí),就合并;
- 當(dāng)它們適用條件不同、需要的信息不同、或約束互相沖突時(shí),就保持分開(kāi)。
圖里的節(jié)點(diǎn)是技能,邊是技能之間的關(guān)系——時(shí)間依賴、特化、同一子目標(biāo)下的替代方案、以及同一狀態(tài)下的互斥。于是一個(gè)通用過(guò)程(比如「填表單」)可以連到它的各種特化(支付、改資料)和對(duì)應(yīng)的失敗恢復(fù)技能,而不必把它們壓成一條扁平的條目。
這張圖帶來(lái)三件事,也正是BrowserBC所說(shuō)的scalable的真正含義:
把重復(fù)的演示合并成可復(fù)用的節(jié)點(diǎn),而不是無(wú)限堆樣本;讓檢索和更新只動(dòng)相關(guān)的局部區(qū)域;支持增量精煉——來(lái)一條新軌跡,只更新受影響的技能及其鄰居。
需要強(qiáng)調(diào)的是,這張圖的價(jià)值在于“組織”:學(xué)習(xí)與復(fù)用的基本單元始終是那張自然語(yǔ)言技能卡,而圖把這些卡片有序地存放、檢索和更新起來(lái),正是技能庫(kù)能持續(xù)擴(kuò)張卻不失控的關(guān)鍵。
到了執(zhí)行端,檢索也刻意做得很輕:按語(yǔ)義相似度(有額外信息時(shí)再疊加與當(dāng)前頁(yè)面上下文的兼容性)挑出一小撮相關(guān)技能,塞進(jìn)Agent的上下文,剩下的落地交給Agent自己讀取當(dāng)前頁(yè)面來(lái)完成。
技能既不是可執(zhí)行腳本,也不是要照搬的演示,它只是把Agent往蒸餾出來(lái)的行為模式上引,而每一個(gè)具體動(dòng)作仍然是對(duì)著當(dāng)前頁(yè)面現(xiàn)挑的。
實(shí)驗(yàn)與討論:技能帶來(lái)跨基準(zhǔn)、跨站點(diǎn)的一致提升
BrowserBC首先在WebArena-Hard上接受檢驗(yàn):
258個(gè)經(jīng)人類核驗(yàn)的任務(wù),覆蓋GitLab、電商及其后臺(tái)、論壇、跨站點(diǎn)組合等六類自托管站點(diǎn)。
實(shí)驗(yàn)嚴(yán)格控制變量——Agent、動(dòng)作接口、步數(shù)與時(shí)間預(yù)算全部固定,唯一變量是要不要注入BrowserBC檢索到的Skill。
結(jié)果是:base agent成功率為60.5%(156/258),注入技能后提升到81.4%(210/258),提升了20.9個(gè)百分點(diǎn),挽回了基線原本失敗的54個(gè)任務(wù)。
更強(qiáng)的檢驗(yàn)來(lái)自ClawBench:
152個(gè)任務(wù)跑在真實(shí)線上網(wǎng)站上,頁(yè)面布局與操作流程會(huì)在不同運(yùn)行間變化,且以寫(xiě)操作為主。
這個(gè)設(shè)定抽掉了「靠記憶取巧」的可能——任何編碼精確坐標(biāo)、DOM選擇器或緩存頁(yè)面狀態(tài)的技能,在這里只會(huì)越用越糟。
結(jié)果是:skill-free基線只解出50/152(32.9%),注入技能后解出104/152(68.4%),提升35.5個(gè)百分點(diǎn),幾乎把解出的任務(wù)數(shù)翻了一倍,且在全部八個(gè)類別上普遍成立。
![]()
*BrowserBC在WebArena-Hard與ClawBench上的性能表現(xiàn)。
事實(shí)上,技能不僅提升成功率,還縮短了完成任務(wù)所需的交互。
在WebArena-Hard任務(wù)上,Agent的平均工具調(diào)用次數(shù)從31.2降到22.7(?27.3%)。
這與「技能作為流程性先驗(yàn)」的定位一致:
它削減了試探性導(dǎo)航與反復(fù)的頁(yè)面查看,而把底層grounding留給執(zhí)行時(shí)的實(shí)時(shí)頁(yè)面狀態(tài)。
![]()
*BrowserBC既能提升交互效率,又能讓蒸餾出的技能在不同模型間遷移。
討論一:Skill是一份「帶置信度的先驗(yàn)」,不是一條命令。
有一個(gè)細(xì)節(jié)很說(shuō)明問(wèn)題:
在WebArena-Hard上,如果強(qiáng)制Agent逐字照搬檢索到的技能——哪怕當(dāng)前頁(yè)面證據(jù)與它矛盾——成功率只有 77.5%;而讓它選擇性使用、在與頁(yè)面沖突時(shí)以頁(yè)面為準(zhǔn),才到81.4%。
更進(jìn)一步,約3.9%(10/258)的任務(wù)里,盲目照搬技能反而把本來(lái)能做對(duì)的做壞了。
這恰恰印證了那條核心判斷:自然語(yǔ)言技能的價(jià)值在于「提示策略」,落地永遠(yuǎn)要交給執(zhí)行模型去讀當(dāng)前頁(yè)面。
討論二:技能是「蒸餾一次、便宜復(fù)用」的模型無(wú)關(guān)對(duì)象。
BrowserBC的一個(gè)設(shè)計(jì)主張是:
技能可以由一個(gè)強(qiáng)模型蒸餾一次,再交給另一個(gè)更便宜的Agent在執(zhí)行時(shí)復(fù)用。
團(tuán)隊(duì)在WebArena-Hard任務(wù)上,把「蒸餾技能的模型」與「執(zhí)行技能的模型」交叉組合,得到兩點(diǎn)結(jié)論。
其一,技能質(zhì)量主要在蒸餾階段決定:Sonnet-4.6蒸餾出的技能能同時(shí)大幅提升兩個(gè)執(zhí)行器(+24與+20個(gè)百分點(diǎn)),而Qwen-3.7蒸餾的技能只帶來(lái)微弱增益。
其二,高質(zhì)量技能能跨執(zhí)行器遷移:裝備了Sonnet-4.6技能的小Agent達(dá)到77%,逼近大Agent的80%,直接坐實(shí)了「蒸餾一次、便宜復(fù)用」的設(shè)想。
討論三:剩下的難,難在「執(zhí)行」而非「缺知識(shí)」。
對(duì)仍然失敗的案例做人工審計(jì)后發(fā)現(xiàn),瓶頸大多落在執(zhí)行精度,而不是缺少知識(shí):
長(zhǎng)表單漏掉某個(gè)字段、目標(biāo)對(duì)象有歧義、長(zhǎng)程任務(wù)把預(yù)算耗在中間頁(yè)、或者模型自己推理過(guò)長(zhǎng)「跑飛」。
這些情況里技能本身是對(duì)的、也用上了,限制因素是「按流程執(zhí)行的保真度」——也就是底層模型的能力。
這也劃出了「小模型執(zhí)行」的可行邊界:技能能補(bǔ)「該怎么做」,補(bǔ)不了「手穩(wěn)不穩(wěn)」。
討論四:遷移到瀏覽器之外——OSWorld案例研究。
論文還在30個(gè)OSWorld風(fēng)格的Ubuntu桌面任務(wù)上做了一次診斷性的遷移研究——
需要說(shuō)明的是,這并非把它當(dāng)作一項(xiàng)完整的OSWorld刷榜,而是考察「方法的哪一部分能遷移」。
30個(gè)任務(wù)里,17個(gè)在配上匹配技能后得到改善,說(shuō)明過(guò)程性先驗(yàn)確實(shí)能跨過(guò)瀏覽器的邊界發(fā)揮作用。
真正可遷移的并不是瀏覽器專屬的動(dòng)作序列,而是那份過(guò)程性先驗(yàn)——前置條件、語(yǔ)義狀態(tài)如何轉(zhuǎn)移、進(jìn)度里程碑、終止證據(jù)、失敗如何恢復(fù)。在瀏覽器里它落在頁(yè)面、鏈接、表單上;在桌面上則落在窗口、文件、對(duì)話框、持久設(shè)置上。
剩下的案例則劃出了方法的邊界:少數(shù)任務(wù)本來(lái)就足夠簡(jiǎn)單、不需要技能;一部分卡在GUI控制本身(窗口焦點(diǎn)、模態(tài)彈窗、文件選擇器狀態(tài))而非缺知識(shí);還有個(gè)別案例因?yàn)闄z索到錯(cuò)配的技能被「自信地帶偏」。
也就是說(shuō),當(dāng)缺的是「流程結(jié)構(gòu)」時(shí),技能最有用;當(dāng)缺的是底層GUI grounding、或檢索喂錯(cuò)了先驗(yàn)時(shí),技能幫不上忙,甚至?xí)韥y。
BrowserBC的意義不止是一個(gè)方法
BrowserBC不是一個(gè)炫技的方法。
它真正重要的地方在于,它指明了人類瀏覽器軌跡的價(jià)值:
這是人類群體在瀏覽器迷宮中走出來(lái)的高效操作路徑。
BrowserBC做的事情,就是把這些隱含經(jīng)驗(yàn)的軌跡蒸餾成Agent可用的skill。
核心啟發(fā)在于:
第一,提升Agent的Browser Using能力,其實(shí)關(guān)鍵在于給它補(bǔ)齊完備的網(wǎng)頁(yè)邏輯知識(shí)。
第二,人類與虛擬世界的交互過(guò)程,本身就是一種尚未被充分利用的數(shù)據(jù)資源。
第三,如果這些軌跡可以被持續(xù)蒸餾和管理復(fù)用,那么Agent就可以從“可以操作網(wǎng)頁(yè)”,逐漸走向“高效”操作網(wǎng)頁(yè)。
所以,BrowserBC的核心不是教Agent點(diǎn)擊網(wǎng)頁(yè)——它是在信息不完備的環(huán)境里,用人類軌跡為Agent補(bǔ)上決策所需的先驗(yàn)。
在這個(gè)意義上,真正決定Web Agent上限的,從來(lái)不是“是否能夠復(fù)現(xiàn)某個(gè)瀏覽器操作流程”,也不是“是否快速拼裝出一個(gè)看似可運(yùn)行的系統(tǒng)”或是“Demo出一個(gè)熱門(mén)概念”,而是是否真正構(gòu)建了可以持續(xù)積累、可復(fù)用、可遷移的經(jīng)驗(yàn)結(jié)構(gòu)。
這可能是讓W(xué)eb Agent從能用走向好用的臨門(mén)一腳。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.