【すもーるえーじぇんつ】

smolagents とは?

最終更新:
💡 操作をPythonコードで表す、シンプルなエージェント開発

Hugging Faceが提供する、AIエージェントを構築するためのオープンソースPythonライブラリ。CodeAgentではモデルが操作をコードとして記述し、実行環境がツール呼び出しや計算を実行する。

📌 このページのポイント
CodeAgentの操作と結果の循環 モデル 次の操作を判断 Pythonコード 操作を記述 実行器 ツール呼出し等 実行結果 値・取得情報 結果を次の判断に使い、終了時に回答 既定はローカル実行。隔離は構成による
CodeAgent方式の一例。ToolCallingAgentはコードではなく一般的なツール呼び出し形式を使う。
ひよこ ひよこ
smolagentsってどんなもの?
ペンギン先生 ペンギン先生
Hugging FaceのPythonライブラリで、モデルにツールを使わせるAIエージェントを作るためのものだよ。特徴の一つは、操作をコードで表すCodeAgent。ライブラリが小さいからモデルの応答も必ず速くなる、という意味ではないんだ。
ひよこ ひよこ
CodeAgentはコードを書くお手伝いをするの?
ペンギン先生 ペンギン先生
コードを書くこと自体が目的ではなく、行いたい操作をPythonコードで表すんだ。たとえばツールを呼んで結果を変数に保存し、必要ならループや条件分岐で次の処理につなぐ。生成したコードを実行環境が動かし、その結果をモデルに返すよ。
ひよこ ひよこ
JSONでツールを呼ぶ方式は使えない?
ペンギン先生 ペンギン先生
ToolCallingAgentが一般的なJSONなどのツール呼び出し形式に対応しているよ。CodeAgentとどちらを使うかは、モデルやツール、実行環境の要件に応じて選べるんだ。
ひよこ ひよこ
生成したコードは最初から完全に隔離される?
ペンギン先生 ペンギン先生
既定のCodeAgentはローカルで、制約付きのPython実行器を使う。許可するimportなどに制限はあるけれど、完全な安全は保証されないよ。Dockerや外部の隔離実行環境を選ぶ構成もあり、渡すツールや権限と合わせて設計するんだ。
ひよこ ひよこ
Hugging Faceのモデル専用なの?
ペンギン先生 ペンギン先生
専用ではないよ。Hubの推論サービス、他社のAPI、Transformersなどを使ったローカルモデルといった接続方法がある。モデルに加え、利用するツールと実行環境を組み合わせてエージェントを作るんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「smolagents」って出てきたら「Hugging Faceのシンプルなエージェント開発用ライブラリ」と思えばだいたいOK!
📖 おまけ:英語の意味
「smolagents」 = 小さなエージェントを表す名前
💬 軽量でシンプルなエージェントの仕組みを目指すPythonライブラリの名前。モデルそのものの名前ではないよ。

参考資料

← 用語集にもどる