Smolagents AIエージェント・フレームワーク

 HuggingFaceの新しいエージェント・フレームワーク,最小限の労力で強力なAIエージェントを作る

SmolAgents - Hugging Faceフレームワーク上の最小限のコードでパワフルなAIエージェント|プロダクトハント

Deep Research build By Smolagents FREE

Powered By Smolagents

Aiコード Smolagents|FAST&FREE

Powered By Together AI and LlamaCoder

smolagents and tools gallery

best smolagents in huggingface

 エージェントとは何か?

AIエージェントは LLM出力がワークフローを制御するプログラム.

この表は、エージェンシーがシステムによってどのように異なるかを示している:

代理店レベル説明その呼び方パターン例
☆☆☆LLMのアウトプットはプログラムの流れに影響しないシンプル・プロセッサーprocess_llm_output(llm_response)
★☆☆LLM出力が基本的な制御フローを決定ルーターif llm_decision(): path_a() else: path_b()
★★☆LLM出力が関数の実行を決定ツールコールrun_function(llm_chosen_tool, llm_chosen_args)
★★★LLM出力が反復とプログラム継続を制御する多段階エージェントwhile llm_should_continue(): execute_next_step()
★★★エージェントのワークフローは、別のエージェントのワークフローを開始することができます。マルチエージェントif llm_trigger(): execute_agent()

スモールエージェントの特徴

🤗 スモラージェンツ は、Hugging Faceチームによって開発された最小限のAIエージェントフレームワークで、開発者がわずか数行のコードで堅牢なエージェントを展開できるように作られています。シンプルさと効率性を取り入れたsmolagentsは、大規模な言語モデル(LLM)が現実世界とシームレスに対話できるようにします。

シンプルさ

コンパクトなコードベース:約1,000行のコアコードで エージェント.pysmolagentsでは、抽象的な表現は最小限に抑えられており、わかりやすい開発となっている。

ユーザー・フレンドリー

開発者は、エージェントを素早く定義し、必要なツールを提供し、複雑な設定をすることなくすぐに実行することができる。

コード・エージェント

 smolagentsは次のことに重点を置いている。 コードエージェントエージェントは、JSONやテキストブロブとしてアクションを生成する代わりに、Pythonコードスニペットを書いて実行する。

高効率

標準的なツール呼び出し方法と比較して、コードエージェントは効率と精度を向上させ、ステップとLLM呼び出しを約30%削減し、複雑なベンチマークで優れた性能を達成した。

安全な実行

 安全なコード実行を保証するために、smolagentsは次のようなサンドボックス環境でのコード実行をサポートしています。 E2B保護され隔離された実行空間を提供する。

様々なLLM

 smolagentsは、Transformersを介してHugging Face Hubでホストされているモデルや、LiteLLM統合を介してOpenAIやAnthropicなどのモデルを含む、あらゆる大規模言語モデルと簡単に統合できます。

SmolAgents:ハギング・フェイス・ハブとの統合

ツールの共有とロード:Hugging Face Hubとの深い統合により、開発者はツールの共有やインポートを簡単に行うことができ、コミュニティ内でのコラボレーションや共有が促進されます。

エコシステムの成長:ハブの機能を活用し、smolagentsは継続的に機能性とツールを拡張し、開発の無限の可能性を提供します。

伝統的なツール・コール・エージェントのサポート

多彩な選択肢:コードエージェントに加え、smolagentsは従来の ツール呼び出しエージェントアクションはJSONまたはテキストブロックとして記述され、特定のシナリオや要件に適している。

コード・スモールエージェントを選ぶ理由

優れた構成力:コードは自然に関数の入れ子と再利用をサポートし、複雑なロジックの表現を可能にする。

効率的なオブジェクト処理:JSONに比べて、コードはオブジェクトの管理と転送を単純化する。

究極の柔軟性:コードは、コンピューターが実行できるあらゆる操作を表現することができ、その汎用性は計り知れない。

豊富なトレーニングデータ:LLMは膨大な量の高品質コードで訓練され、コードを生成し理解する能力を高めてきた。

パフォーマンスのメリット smolagentsの

様々なベンチマークにおいて、オープンソースモデルを利用したsmolagentは、プロプライエタリモデルを利用したエージェントの性能に匹敵しました。コードエージェントの効率性とオープンソースモデルの継続的な進歩のおかげで、開発者はクローズドソースのサービスに依存することなく、強力なエージェントシステムを構築することができます。

スモールエージェントの使用例

Smolagents では、エージェントは特定のタスクを実行するためのクラスにカプセル化されています。例えば マネージド・エージェント エージェントタイプを使い分けることで、様々なタスクを管理することができます。以下は、2つのエージェント(1つはウェブ検索用、もう1つは画像生成用)がどのように実装できるかの簡略化された例です。ここでは、Googleマップから旅行時間を取得するカスタムツールの作成方法と、それをトラベルプランナーエージェントに使用する方法を説明します:

from typing import Optional
from smolagents import CodeAgent, HfApiModel, tool

@tool
def get_travel_duration(start_location: str, destination_location: str, transportation_mode: Optional[str] = None) -> str:
    """Gets the travel time between two places.

    Args:
        start_location: the place from which you start your ride
        destination_location: the place of arrival
        transportation_mode: The transportation mode, in 'driving', 'walking', 'bicycling', or 'transit'. Defaults to 'driving'.
    """
    import os   # All imports are placed within the function, to allow for sharing to Hub.
    import googlemaps
    from datetime import datetime

    gmaps = googlemaps.Client(os.getenv("GMAPS_API_KEY"))

    if transportation_mode is None:
        transportation_mode = "driving"
    try:
        directions_result = gmaps.directions(
            start_location,
            destination_location,
            mode=transportation_mode,
            departure_time=datetime(2025, 6, 6, 11, 0), # At 11, date far in the future
        )
        if len(directions_result) == 0:
            return "No way found between these places with the required transportation mode."
        return directions_result[0]["legs"][0]["duration"]["text"]
    except Exception as e:
        print(e)
        return e

agent = CodeAgent(tools=[get_travel_duration], model=HfApiModel(), additional_authorized_imports=["datetime"])

agent.run("Can you give me a nice one-day trip around Paris with a few locations and the times? Could be in the city or outside, but should fit in one day. I'm travelling only with a rented bicycle.")

数ステップの移動時間の収集と計算の後、エージェントは最終的な提案を返す:


1.午前9時にエッフェル塔をスタート。
2.午前10時30分までエッフェル塔観光。
3.午前10時46分、ノートルダム大聖堂へ。
4.午後12時16分までノートルダム大聖堂観光。
5.午後12時41分、モンマルトルへ。
6.午後2時11分までモンマルトル観光。
7.午後2時33分、リュクサンブール公園へ。
8.午後4時3分までリュクサンブール公園観光。
9.午後4時12分、ルーブル美術館へ。
10.午後5時42分までルーブル美術館観光。
11.午後6時12分まで昼食休憩。
12.終了予定時刻:午後6時12分。

ツールを作った後、それをハブに共有するのは簡単だ:

get_travel_duration.push_to_hub("{your_username}/get-travel-duration-tool")

スモールエージェントのリソース

smolagentに関するよくある質問

smolagentsは、Hugging Faceチームによって開発された最小限のAIエージェントライブラリです。開発者は最小限のコードで強力なAIエージェントを作成し、実行することができます。シンプルさと効率性を重視することで、smolagentsは大規模な言語モデル(LLM)が実世界のタスクとシームレスに相互作用することを可能にします。

複雑な抽象化と構成を持つ多くのAIエージェントフレームワークとは異なり、smolagentsは約1,000行のコンパクトなコードベースを維持しています。使いやすさを重視し、エージェントがPythonのコードスニペットを直接実行するコードエージェントをサポートすることで、効率を高め、必要なステップやLLM呼び出しの数を減らしています。

 コードエージェントはsmolagentの重要な機能です。JSONやテキストブロブとしてアクションを生成する代わりに、コードエージェントはタスクを実行するためにPythonコードスニペットを書いて実行します。このアプローチは、LLMのコードを生成し理解する能力を活用し、複雑なロジックを表現する際に、より良いコンポーザビリティと柔軟性を提供します。

smolagentsはpipを使ってコマンドでインストールできる:

复制pip install smolagents

始めるには、必要なクラスをインポートしてエージェントを定義し、必要なツールと LLM モデルを提供し、タスクを実行します。例えば

パイソン复制from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel

agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
agent.run("タスクはこちら")

 smolagentsは、LLMと幅広い互換性を持つように設計されています。Transformersを介してHugging Face Hubでホストされているモデルや、LiteLLMの統合を介してOpenAIやAnthropicなどのモデルとシームレスに統合できます。この柔軟性により、プロジェクトのニーズに最も適したLLMを選択することができます。

 コードエージェントに加えて、smolagentsは従来のツール呼び出しエージェントもサポートしています。このモードでは、アクションはJSONまたはテキストブロブとして記述され、コードスニペットの実行が理想的でない特定のシナリオに適しています。

 smolagentsは、サンドボックス環境をサポートすることで、安全なコード実行を優先する。例えば、E2B(Execution to Binary)を利用することができ、コードスニペットを実行するための安全で隔離された環境を提供します。これにより、コードの実行がホストシステムのセキュリティを侵害しないことが保証されます。

 コードエージェントにはいくつかの利点がある:

  • より良いコンポーザビリティ: コードは自然に関数の入れ子や再利用が可能になり、複雑なロジックを表現しやすくなる。
  • 効率的なオブジェクト管理: オブジェクトの管理と受け渡しは、JSONに比べてコード上でより簡単だ。
  • 高い柔軟性: コードはあらゆる計算操作を表現することができ、その汎用性は計り知れない。
  • 豊富なトレーニングデータの活用: LLMは大量のコードで訓練されるため、コード・スニペットの生成と理解に長けている。

 smolagentsはHugging Face Hubと深く統合しており、開発者は簡単にツールを共有し、ロードすることができます。これは、ツールやリソースがコミュニティによって貢献され、アクセスできる共同エコシステムを育成し、smolagentsの機能とリーチを強化します。

smolagentについてもっと知りたい方は、以下のリソースをご覧ください:

  • 公式文書: のsmolagentsドキュメントをご覧ください。 ハギング・フェイスのウェブサイト
  • スタートガイド ハギング・フェイス・チームが提供する入門ガイドとチュートリアルをご覧ください。
  • プロジェクト例: GitHubにあるサンプルプロジェクトやコード例で、smolagentが実際に使われている様子をご覧ください。
  • コミュニティ・フォーラム フォーラムやディスカッションを通じて開発者コミュニティと関わり、洞察やサポートを得る。

Choose from Your languange