AI・機械学習
中級
smolagents(スモールエージェンツ)
Hugging Faceが開発したシンプル・軽量なLLMエージェントライブラリ。CodeAgent(Pythonコードを生成・実行)とToolCallingAgent(JSON形式ツール呼び出し)の2種類のエージェントを提供し、HF Hubのモデルと直接統合できる。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
エージェント
HuggingFace
コード生成
オープンソース
smolagents とは
smolagentsはHugging Faceが2025年1月に公開した軽量LLMエージェントライブラリです。「smol(小さい)」という名の通り、最小限のコードでパワフルなエージェントを実装できる設計思想が特徴で、コアは約1,000行のコードで構成されています。
2種類のエージェント
CodeAgent(推奨)
LLMがPythonコードをアクション手段として生成・実行するエージェントです。
from smolagents import CodeAgent, HfApiModel
agent = CodeAgent(
tools=[],
model=HfApiModel("Qwen/Qwen2.5-Coder-32B-Instruct")
)
agent.run("1から100の素数をリストアップして")
LLMは以下のようなPythonコードをアクションとして生成します。
primes = [n for n in range(2, 101) if all(n % i != 0 for i in range(2, n))]
print(primes)
ToolCallingAgent
JSON形式のツール呼び出しを使う従来型エージェントです。
from smolagents import ToolCallingAgent, DuckDuckGoSearchTool, HfApiModel
agent = ToolCallingAgent(
tools=[DuckDuckGoSearchTool()],
model=HfApiModel()
)
agent.run("今日のAI関連ニュースを教えて")
ツール定義
@tool デコレータでカスタムツールを簡潔に定義できます。docstringがツールの説明としてLLMに渡されます。
from smolagents import tool
@tool
def calculate_bmi(weight_kg: float, height_m: float) -> float:
"""BMIを計算する。Args: weight_kg=体重(kg), height_m=身長(m)"""
return weight_kg / (height_m ** 2)
agent = CodeAgent(tools=[calculate_bmi], model=model)
agent.run("体重70kg、身長1.75mのBMIは?")
マルチモデル対応
from smolagents import HfApiModel, LiteLLMModel, TransformersModel
model = HfApiModel("meta-llama/Llama-3.3-70B-Instruct") # HF Inference API
model = LiteLLMModel("gpt-4o-mini") # LiteLLM経由
model = TransformersModel("Qwen/Qwen2.5-0.5B-Instruct") # ローカル
マルチエージェント
エージェント自体をツールとして別エージェントに渡すことで、階層的マルチエージェントが構成できます。
web_agent = ToolCallingAgent(tools=[search_tool], model=model)
manager_agent = CodeAgent(
tools=[web_agent.as_tool(name="web_search_agent")],
model=model
)
CodeAgentが優れている理由
Hugging Faceの研究によると、コード形式のアクション表現はJSON形式より複雑タスクで高精度を示します。コードは自己記述的で構造が明確であり、中間変数で複数ステップを組み合わせやすく、Pythonの標準ライブラリを直接活用できます。
まとめ
smolagentsはHF Hubとの緊密な統合と最小限のコードベースを武器に、迅速なプロトタイピングと研究用途に特に適したエージェントライブラリです。CodeAgentのコード実行アプローチは従来のJSON型エージェントより高性能で、2025年の注目フレームワークの一つです。