たった1,000行の衝撃。Hugging Faceの最新兵器「smolagents」でAIエージェント開発を始めよう

投稿者: | 2026-06-03

皆さんは、AIに「複雑な計算」や「条件分岐」を伴うタスクを任せたいと思ったことはありませんか?今週、GitHubで大きな話題となっているsmolagentsは、Hugging Faceが公開した「コード駆動型」の次世代AIエージェント構築ライブラリです。

ライブラリの概要・なぜ注目されているか

smolagentsは、AIエージェントに「Pythonコードを書いて問題を解かせる」ことに特化した超軽量ライブラリです。従来の多くのフレームワークがJSON形式の指示に頼る中、このライブラリはAIにプログラムそのものを書かせるため、数学的な推論やデータの加工において圧倒的な強みを発揮します。

ソースコードがわずか約1,000行というシンプルさも魅力で、ブラックボックス化されがちなエージェントの挙動を完全に把握・カスタマイズできる点が、プログラマーたちの心を掴んでいます。

Windowsでのインストール方法

WindowsのコマンドプロンプトまたはPowerShellで、以下のコマンドを実行してください。

pip install smolagents litellm python-dotenv

※検索機能などを活用する場合は、以下のツールも併せて導入するのがおすすめです。

pip install duckduckgo-search

基本的な使い方(コード例)

AIが自らPythonコードを生成して、論理的な質問に回答する最もシンプルな例です。今回はGeminiのAPIを利用します。

import os
from dotenv import load_dotenv
from smolagents import CodeAgent, LiteLLMModel

# .envファイルから環境変数を読み込む
load_dotenv()

# 環境変数からGeminiのAPIキーを取得
api_key = os.environ.get("GEMINI_API_KEY")

# GoogleのGeminiモデルを設定
model = LiteLLMModel(
    model_id="gemini/gemini-3-flash-preview",
    api_key=api_key
)

# エージェントを初期化
agent = CodeAgent(tools=[], model=model)

# 複雑な計算を依頼
result = agent.run("フィボナッチ数列の第10項を計算して、その数値に123を足した結果を教えて。")

print(result)

「main.py」という名前で保存してください。

同階層に「.env」ファイルを用意して、APIキーを設定してください。

GEMINI_API_KEY="(ここに設定)"

「main.py」を実行すると結果が出力されます。

╭────────────────────────────────────────────────────── New run ───────────────────────────────────────────────────────╮
│                                                                                                                      │
│ フィボナッチ数列の第10項を計算して、その数値に123を足した結果を教えて。                                              │
│                                                                                                                      │
╰─ LiteLLMModel - gemini/gemini-3-flash-preview ───────────────────────────────────────────────────────────────────────╯
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Step 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ─ Executing parsed code: ─────────────────────────────────────────────────────────────────────────────────────────────
  def fibonacci(n):
      a, b = 0, 1
      for _ in range(n):
          a, b = b, a + b
      return a

  # The 10th term (starting from F_1 = 1, F_2 = 1, ...)
  # Or simply using the formula where F_0 = 0, F_1 = 1, ...
  # If the sequence is 1, 1, 2, 3, 5, 8, 13, 21, 34, 55... then the 10th term is 55.
  fib_10 = fibonacci(10)
  result = fib_10 + 123
  print(f"Fibonacci 10th term: {fib_10}")
  print(f"Result: {result}")
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Execution logs:
Fibonacci 10th term: 55
Result: 178

Out: None
[Step 1: Duration 7.17 seconds| Input tokens: 2,174 | Output tokens: 937]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Step 2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ─ Executing parsed code: ─────────────────────────────────────────────────────────────────────────────────────────────
  final_answer(178)
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Final answer: 178
[Step 2: Duration 2.44 seconds| Input tokens: 4,852 | Output tokens: 1,301]
178

実際の活用シーンやメリット

  • 圧倒的な推論精度: プログラムを書いて実行するため、LLMが苦手とする数値計算ミスを回避できます。
  • ミニマリズム: 依存関係が少なく、既存のプロジェクトに数行追加するだけでエージェント機能を組み込めます。
  • 高い拡張性: 自分で作成したPython関数を「ツール」として即座にエージェントに渡すことができます。

AIにただ「聞く」だけでなく、AIに「作らせて動かす」。そんな開発体験をぜひ味わってみてくださいね。