我最近沒有寫任何東西,老實說,因為我實在沒有心力去做這件事。原因有幾個,但最大的原因是我在 AGNTCon + MCPCon Europe 的演講,內容是關於 WebMCP。

結果如何?超棒!來了很多人,大家也踴躍發問——我還能要求什麼呢?😅 這場研討會本身也很精彩,我確實帶回了足夠多的靈感,可以再寫好幾篇文章。我現在還沒有好看的照片,不過也許下週會有!

一場有超過 2,000 名與會者的活動,觀眾當然非常多元,興趣也各不相同。除了那些迫不及待想探索複雜多代理架構的人之外,也有很多人只是想知道,如何在自己原本已經不錯的產品上,加上一些 AI 能力,讓它變得更好。

第二類裡有不少人最後都來聽了我的 WebMCP 演講。

那麼,WebMCP 到底是什麼?

簡單來說,WebMCP 是一個實驗性的瀏覽器 API,允許網站明確地暴露工具,讓 AI 代理可以呼叫。因為我已經在這篇文章寫過了,所以我不想重複太多:

這就是我們不久後建網站的方式嗎?WebMCP 實機展示

那篇文章已經是三個多月前的了,而在 Agentic AI 的世界裡,這代表語法早就過時了。xD 幸好,現在要快速確認最新版本並不特別困難,尤其它之後可能還會再改好幾次。😅

不過,核心概念還是一樣的。

沒錯,這仍然是一項很年輕的技術。但剛好我在研討會上遇到了一位正在開發 WebMCP 的人(嗨,Dominic!),他告訴我,大約到 1 月或 2 月,這項技術應該就會相當穩定了,至少在 Chromium 上是如此。所以倒數計時已經開始了!

WebMCP 跟 MCP 不太一樣

不同於「傳統」MCP(這裡我把 classic 放上引號,因為我不確定這麼年輕的東西,是否已經配得上被稱為「經典」或「傳統」🤣),WebMCP 是在瀏覽器的脈絡中運作。

網站必須先開著,如果需要驗證,使用者也必須先登入,之後我們的代理才能呼叫該頁面暴露出來的工具。這代表我們可以透過具備代理能力的瀏覽器,或例如 Chrome 擴充功能來使用 WebMCP。有趣的是,ChatGPT 最近也在它的內建瀏覽器中加入了對基於 WebMCP 的網站工具的支援,所以這項技術確實已經有些動能了!

這也是為什麼,在我看來,WebMCP 最有趣的應用場景,不一定是多代理系統去抓取網站。我更認為它是幫助一般日常使用者,與他們已經在用的產品互動的一種方式。當然,給十個開發者一個新 API,你大概會得到十一種不同的點子。😉

來認識我的願景領袖:AI CEO 模擬器

有些人可能還記得,我的 WebMCP demo 並不是另一個無聊的 addToCart() 範例。它是我心愛的願景領袖:AI CEO 模擬器。它展示的是,如果我們讓 AI 來經營公司,可能會發生什麼事。

如你在截圖中所見,我們有所有典型的新創指標:現金、每月營收、員工人數、生產事故、員工幸福感,以及,當然,炒作程度。

AI CEO Simulator screenshot

我們也有董事會決策,例如 採用 AI轉向 Agent用 Rust 重寫裁員徵才,等等。

換句話說:典型的新創管理。

當然,也少不了活動紀錄。

重點是,這仍然是一個完全正常的網站。你可以自己點來點去,手動使用一切功能。這正是我喜歡 WebMCP 的原因之一:它是你網站的一個額外能力。你不需要把整個產品徹底重構成 AI 導向。

GitHub: https://github.com/sylwia-lask/ai-ceo-webMCP
Demo: https://sylwia-lask.github.io/ai-ceo-webMCP/

好吧,那我們到底要怎麼呼叫那些工具?

一切聽起來都很棒,但有一個實際問題:我們到底要怎麼呼叫這些工具?當你想在研討會演講現場即時呼叫它們時,這就變成一個特別有趣的問題。

當然,你可以透過 ChatGPT 或某個公開的擴充功能來做,但雲端方案需要網路連線。而且它們的介面也不一定適合簡報——當台下觀眾在大螢幕上看你的 demo 時,一切都應該要夠大、夠清楚、夠容易跟得上。

而且,顯然我也想要一個本地模型的備援方案!

所以我做了一個 Chrome 擴充功能,叫做 WebMCP Local Agent

GitHub: https://github.com/sylwia-lask/webmcp-local-agent

它目前還沒上架 Chrome 線上應用程式商店,不過也許有一天我終於會花那 5 美元去付開發者註冊費。😅💸 目前如果你有興趣,可以直接下載原始碼並在本機執行。

它真的算是一個 Agent 嗎?

那這個外掛——或者說代理——實際上做了什麼?

很簡單。它會接收使用者的意圖,檢查目前頁面可用的 WebMCP 工具,然後呼叫它認為適合的工具。

大家都知道,agent 本質上就是一個迴圈。我之前在這裡寫過更多: AI 代理背後的骯髒秘密(示範 🚀)

而這個也是完全同樣的運作方式。模型接收使用者意圖與可用工具,決定要呼叫什麼,取得結果,然後再決定下一步要做什麼。預設情況下,代理最多可以跑 10 次迭代循環,不過你可以在設定中調整。

所以,如你所見,這不只是一個換了個華麗名字的聊天機器人。它真的是一個小型、正經的代理。

帶點私心的動機,也可能帶來有用的成果

沒錯,我一開始的動機其實很單純,甚至可能有點私心。😉 但就算動機值得懷疑,也還是可能產生好東西。就連咕嚕(Gollum)都為《魔戒》的美好結局做出了貢獻。xDDD

因為我的擴充功能可以搭配本地模型運作,在使用本地供應商時,提示詞與模型推論都能留在使用者的裝置上。相較於把每次互動都送到雲端模型,這帶來了很有意思的隱私優勢。

它也有助於解決另一個問題:並不是每個地方都能同樣穩定地取得 AI 模型。我的 DEV 好友 @dannwaneri 前陣子提過這個問題。光是因為我們在歐洲有不錯的基礎設施與雲端 AI 服務可用,不代表世界上其他地方的情況也一樣好。

本地模型讓我們多了一個選項。

三種供應商,一個代理

如你所見,我的 WebMCP 外掛目前支援三種模式。

第一種是 Google 的 Prompt API,它使用由 Chromium 管理的 Gemini Nano。模型下載完成後,推論會在本地進行,不會把提示詞送到 Google 或其他第三方,而且你不需要 API 金鑰。

第二種是 Ollama,同樣在本地執行。以我的情況來說,我使用的是 Llama 3.1,但如果你願意,也可以選別的模型。不過理想上,你會希望它在工具呼叫上表現良好。

最後還有一個雲端供應商。以我這裡來說,是一個較舊的 Gemini Flash 模型,需要 API 金鑰。因為老實說:以現況來看,雲端模型通常仍然是取得優秀能力與速度的最簡單方式。問題只在於,它們並不總是可用。

當然,你也可以照自己的需求加入其他模型或供應商。真的就只是擴充功能原始碼裡幾行程式碼而已。☺️

而且是的,本地模型真的能用

如你所見,本地供應商的效果出乎意料地好。

這是 Google 的 Prompt API:

Chrome prompt api with a prompt "let's earn some SERIOUS money"

這是 Llama 3.1:

Ollama prompt api with a prompt "Make this company GOAT"

不過我要提醒你,Llama 3.1——雖然不常見,但確實會發生——有時候會決定它真正想要的不是 JSON,而是 Markdown,或者一些額外「貼心」的說明文字。這就是跟 LLM 打交道的樂趣。😅

另外也值得再提一次,這個外掛預設允許代理迴圈最多執行 10 次。你可以在設定裡增加或減少這個數字。

Changing max steps in the extension

不過等等,這不危險嗎?

我常常聽到大家對 WebMCP 的一個疑慮是:我們正在改變互動模式。使用者不再是一個一個明確點擊他們想要發生的每件事。取而代之的是,他們表達一個意圖。

接著模型建立計畫、呼叫工具,然後我們就得處理後果。如果就這樣放任不管,那簡直就是災難配方。

有些工具相對無害,例如:

listEmployees()

但也有些工具後果嚴重得多,例如:

fireEmployees()

而我可不想發現,我的 AI CEO 為了延長 runway,未經我同意就把公司一半的人都裁掉。

有後果的動作需要確認

幸好,正在開發 WebMCP 的人有在傾聽社群意見,現在 API 已經加入了像 consequentialHint 這樣實用的工具註解。我的外掛也支援它。

這些較新的 WebMCP 功能支援與你正在使用的 Chromium 版本,以及可用的實驗性 WebMCP 功能有關,所以如果你在 API 還在演進的同時測試它,請確認你使用的是夠新的 Chrome/Chromium 版本,而且已啟用所需的 WebMCP 支援。

現在我們來試著裁掉一些員工。

Webmcp plugin requires confirmation

如你所見,我們的代理注意到這次工具呼叫被標記為有後果,因此在允許它繼續之前,先顯示了確認提示。使用者可以核准或拒絕這個動作。

當你的 AI CEO 開始重組公司時,這大概是個好主意。😉

而且,當然,我是用 Kiro 做出來的

身為一個自尊的 AWS Community Builder,我是在全世界最棒的 IDE:Kiro 的幫助下做完這一切的。😅 我承認:我一開始安裝 Kiro,是因為我想省點 Claude Code 的錢。但到現在,就算 @corey_aws 明天把我踢出 Community Builders 計畫,我還是會很樂意自掏腰包付 Kiro 的費用。😂

Kiro 不只提供超多模型給你選,它還支援以規格驅動的開發,而這點我已經越來越喜歡。它對一直變動的 WebMCP API 也處理得相當好,甚至包括我在演講前兩個小時,還得處理的最後一次 API 變更。😅

所以,AWS:做得好。你們贏了。👏

也許我們不需要一場革命

所以,如你所見,我們不一定需要對現有專案做巨大架構變更,或是來一場徹底革命,就能讓它們變得更好用,也更適合 agent。

我們的網站還是可以只是個網站。人們還是可以像以前一樣點按鈕、填表單、使用 UI。WebMCP 只是給代理提供了另一種結構化的方式,讓它們可以與網站互動。

會議上有人說,這並不是一場能和從馬車換成汽車相比的革命。

它只是……

更快的馬。

但如果我們現在需要的,正是更快的馬呢?


原文出處:https://dev.to/sylwia-lask/what-if-your-ai-agent-never-had-to-leave-the-browser-demo--5g


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝64   💬1  
854
🥈
NewsData
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登