Agents.js 發布:使用 JavaScript 為 LLMs 提供工具
Agents.js 發布:使用 JavaScript 為 LLMs 提供工具 Hugging Face 已發布 Agents.js,一個 JavaScript 庫,使 LLMs 能夠在瀏覽器或伺服器上存取並執行工具。
Agents.js 發布:使用 JavaScript 為 LLMs 提供工具
Hugging Face 已推出 Agents.js,一個設計用來為 大型語言模型 (LLMs) 提供工具存取的 JavaScript 庫。這使開發者能夠構建代理,以在基於瀏覽器或伺服器的環境中執行多模態任務。
核心功能與使用
HfAgent 物件是該庫的主要入口點。開發者可以使用 Hugging Face 存取權杖來實例化一個代理,並使用純文字命令與其互動。該代理透過生成 JavaScript 程式碼來實現目標,然後評估該程式碼以產生結果。
執行工作流程
使用 Agents.js 執行任務有兩種主要方式:
- 手動程式碼生成與評估:使用
generateCode建立 JavaScript 邏輯並使用evaluateCode執行它。出於安全考量,這是推薦的路徑。 - 直接執行:使用
run方法在單一步驟中生成並執行程式碼。
資料輸出
代理返回的結果以 Update 物件形式提供,該物件包含一個 message(資訊文字)和 data(可以是字串或 Blob)。使用 Blob 使代理能夠返回多模態輸出,例如圖像或音訊。
安全考量
執行由 LLM 生成的任意程式碼會帶來重大的安全風險。Hugging Face 警告這不應在不受信任的環境中進行。為降低此風險,建議開發者使用 generateCode 和 evaluateCode 的序列,而不是 run 方法,以便在執行前手動審查生成的程式碼。
自訂與擴展
Agents.js 的設計具備彈性,允許開發者更換預設語言模型並添加專用工具。
自訂 LLMs
預設情況下,該庫透過 Inference API 使用 OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5 模型。然而,任何接受字串輸入並返回字串承諾的異步函數都可以作為自訂 LLM 使用。這使得可以與其他提供者整合,例如 OpenAI 的 text-davinci-003。
自訂工具
開發者可以透過定義自訂 Tool 物件來擴展代理的功能。工具定義需要:
- 一個 名稱 和 描述,以幫助 LLM 了解何時使用該工具。
- 範例,由提示-程式碼配對組成,引導 LLM 如何呼叫該工具。
- 一個 call 函數,定義實際要執行的邏輯。
這些自訂工具可以在代理初始化期間與庫提供的 defaultTools 合併。
多模態輸入支援
Agents.js 支援將輸入檔案傳遞給代理。透過向 generateCode 或 evaluateCode 提供 FileList,代理可以將這些檔案納入其工作流程。例如,可以指示代理為上傳的圖像生成標題,然後使用 imageToText 和 evaluateCode 的組合將該標題轉換為語音。