Hugging Face 推出 Agents.js:讓大模型在 JS 環境呼叫多模態工具
Hugging Face 推出 JavaScript 庫 Agents.js,讓大語言模型能在瀏覽器或 Node 環境中呼叫多模態工具。它開箱即帶文生圖、影像描述等能力,並支援接入自定義模型與工具。不過目前它通過在環境中執行生成程式碼運作,官方提醒在不可信環境存在安全風險。

Agents.js 是 Hugging Face 針對 JavaScript 生態推出的智慧體庫,能直接在瀏覽器或者 Node.js 環境裡,讓大語言模型自主呼叫多模態工具。
以往做智慧體開發多半依賴 Python 生態,前端或全棧工程師想在 Web 端呼叫工具往往要繞一大圈。Agents.js 的核心思路很簡單:給模型一個自然語言指令,它會自動寫出一段呼叫各種工具的 JavaScript 非同步函式,再交給執行環境去執行。
它開箱能做什麼
通過 npm 安裝 @huggingface/agents 之後,開發者只要初始化一個 HfAgent 例項,就能用自然語言指揮它做事。
比如輸入「畫一隻戴高頂禮帽的橡皮鴨,然後為這張圖配上說明文字」,模型就會自動串聯文生圖和圖生文工具,生成並執行對應的鏈式呼叫程式碼。
它天生支援多模態輸入,允許前端直接傳入網頁裡的 FileList 檔案物件。例如把一張照片傳給它並要求讀出描述,它能自動排程影像轉文字和文字轉語音工具,最後返回文字、圖片甚至音訊 Blob。
怎麼自定義與安全隱患
預設情況下,Agents.js 使用 Hugging Face 託管的開源模型 OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5。但它並不繫結死某一個模型,只要提供一個接收字串並返回字串 Promise 的非同步函式,開發者就能把它換成 OpenAI 等任意商用介面。
自定義工具也相當直觀。開發者只需定義工具名稱、功能描述、幾個輸入輸出示例以及具體的非同步執行邏輯,就能直接塞進 Agent 的工具庫中。
不過,目前它最大的坑在於執行機制。無論是直接調 run 還是走 evaluateCode,底層都是在瀏覽器或 Node 環境中動態執行模型生成的任意 JavaScript 程式碼。Hugging Face 官方特意提醒,不要在不可信的環境下直接用 run,最好先用 generateCode 審查程式碼再決定是否執行。
如果你想快速體驗,Hugging Face 已經上線了一個由 Open Assistant 30B 驅動的線上 Demo,可以直接體驗呼叫 Hub 上各種工具的效果。
為什麼重要
對於 Web 開發者和前端工程師來說,Agents.js 提供了一條不碰 Python 就能直接把玩 AI 智慧體的捷徑。它把模型排程、程式碼生成與前端常見的 Blob、FileList 資料結構天然打通,適合用來快速做富媒體互動原型。
但動態執行模型生成程式碼這一設計,在生產環境顯然是個明顯的安全隱患。我們認為,在缺乏嚴格沙箱隔離機制之前,它更適合在本地開發、內網工具或者受控實驗裡試水,想要推到面向大眾的客戶端還需要多加小心。
來源 (1)
- huggingface.co(在新分頁開啟)原文huggingface.co