智慧體課程文件

為何使用 smolagents

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

smolagents banner

為何使用 smolagents

在本模組中,我們將探討使用 smolagents 的優缺點,幫助您明智地決定它是否是適合您需求的框架。

什麼是 smolagents?

smolagents 是一個簡單而強大的用於構建 AI Agent 的框架。它為大語言模型 (LLM) 提供了與現實世界互動的 自主性,例如搜尋或生成影像。

正如我們在第一單元中學到的,AI Agent 是使用 LLM 根據 “觀察” 來生成 “思考”,從而執行 “動作” 的程式。讓我們來探討一下這在 smolagents 中是如何實現的。

smolagents 的主要優勢

  • 簡潔性: 最小化的程式碼複雜度和抽象,使框架易於理解、採用和擴充套件。
  • 靈活的 LLM 支援: 透過與 Hugging Face 工具和外部 API 整合,可與任何 LLM 配合使用。
  • 程式碼優先的方法: 對直接用程式碼編寫動作的 Code Agent 提供一流支援,無需解析並簡化了工具呼叫。
  • HF Hub 整合: 與 Hugging Face Hub 無縫整合,允許將 Gradio Spaces 用作工具。

何時使用 smolagents?

考慮到這些優勢,我們應該在什麼時候選擇 smolagents 而不是其他框架呢?

smolagents 是以下情況的理想選擇

  • 您需要一個 輕量級且極簡的解決方案。
  • 您想 快速進行實驗,而不需要複雜的配置。
  • 您的 應用程式邏輯簡單明瞭。

程式碼動作 vs. JSON 動作

與其他 Agent 用 JSON 編寫動作的框架不同,smolagents 專注於用程式碼進行工具呼叫,從而簡化了執行過程。這是因為不需要解析 JSON 來構建呼叫工具的程式碼:輸出可以直接執行。

下圖說明了這種差異

Code vs. JSON actions

要回顧程式碼動作與 JSON 動作之間的區別,您可以重新訪問 第一單元中的“動作”部分

smolagents 中的 Agent 型別

smolagents 中的 Agent 以 多步 Agent 的形式運作。

每個 MultiStepAgent 執行

  • 一次思考
  • 一次工具呼叫和執行

除了使用 CodeAgent 作為主要 Agent 型別外,smolagents 還支援 ToolCallingAgent,後者用 JSON 編寫工具呼叫。

我們將在接下來的部分中更詳細地探討每種 Agent 型別。

在 smolagents 中,工具透過包裝 Python 函式的 @tool 裝飾器或 Tool 類來定義。

smolagents 中的模型整合

smolagents 支援靈活的 LLM 整合,允許您使用任何滿足 特定標準 的可呼叫模型。該框架提供了幾個預定義的類來簡化模型連線

這種靈活性確保開發人員可以選擇最適合其特定用例的模型和服務,並便於進行實驗。

現在我們瞭解了為何以及何時使用 smolagents,讓我們更深入地探索這個強大的庫吧!

資源

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.