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 執行任務有兩種主要方式:

  1. 手動程式碼生成與評估:使用 generateCode 建立 JavaScript 邏輯並使用 evaluateCode 執行它。出於安全考量,這是推薦的路徑。
  2. 直接執行:使用 run 方法在單一步驟中生成並執行程式碼。

資料輸出

代理返回的結果以 Update 物件形式提供,該物件包含一個 message(資訊文字)和 data(可以是字串或 Blob)。使用 Blob 使代理能夠返回多模態輸出,例如圖像或音訊。

安全考量

執行由 LLM 生成的任意程式碼會帶來重大的安全風險。Hugging Face 警告這不應在不受信任的環境中進行。為降低此風險,建議開發者使用 generateCodeevaluateCode 的序列,而不是 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 支援將輸入檔案傳遞給代理。透過向 generateCodeevaluateCode 提供 FileList,代理可以將這些檔案納入其工作流程。例如,可以指示代理為上傳的圖像生成標題,然後使用 imageToTextevaluateCode 的組合將該標題轉換為語音。

Sources