Groqを活用したエージェンティック研究アシスタント:LangGraph、ツール呼び出し、サブエージェント、エージェンティックメモリによる構築
このチュートリアルでは、Groqの無料OpenAI互換推論エンドポイントを使用し、LangGraph、LangChain、およびカスタムツール(Web検索、ファイル操作、Python実行、スキル読み込み、サブエージェント委任、長期メモリ)を組み合わせて、多段階の研究エージェントを構築する方法を詳しく説明します。実際のタスク(小規模言語モデルのブリーフィング)を通じて、エージェントがスキルを発見し、サブ研究を委任し、構造化出力を生成し、メモリを保存する完全な流れを示します。
記事インテリジェンス
要点
- GroqのAPIをバックエンドとして使用し、LangChainのChatOpenAIインターフェースを介してllama-3.3-70b-versatileモデルを呼び出します。
- Web検索、ファイル読み書き、コード実行、スキル管理、メモリ保存のためのツールセットを構築します。
- サブエージェントメカニズムを実装し、メインエージェントが焦点を絞ったサブタスクを分離されたワークフローに委任できるようにします。
- LangGraphのグラフ構造でエージェントループを管理し、ツール呼び出しと状態追跡をサポートします。
重要な理由
このニュースが重要なのは、GroqのAPIをバックエンドとして使用し、LangChainのChatOpenAIインターフェースを介してllama-3.3-70b-versatileモデルを呼び出しますためです。
技術的影響
モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。
本稿では、Groqを活用したエージェンティック研究ワークフローを段階的に構築します。このワークフローは、Groqの無料OpenAI互換推論エンドポイントを直接使用し、LangChainのChatOpenAIインターフェースをGroqのAPIキーとベースURLで構成することで、llama-3.3-70b-versatileのような高速ホストモデルをツールベースの推論に利用可能にします。その後、モデルにWeb検索、Webページ取得、ファイル処理、Python実行、スキル読み込み、サブエージェント委任、長期メモリなどの実用的なツールを接続します。チュートリアルの終了時には、トピックを調査し、焦点を絞ったサブタスクを委任し、構造化出力を生成し、後続の実行のために有用な情報を保存できる、動作可能なGroqベースの多段階エージェントが完成します。
最初に、Colab内にサンドボックスプロジェクトディレクトリを作成し、アップロード、ワークスペースファイル、出力、スキル、メモリを単一の管理された場所に整理します。サンドボックスパスは/content/deerflow_sandboxであり、uploads、workspace、outputs、skills/public、skills/custom、memoryのサブディレクトリを含みます。パスがサンドボックス内にあることを確認する安全関数_safe()も定義します。次に、研究(research)、レポート生成(report-generation)、コード実行(code-execution)の3つの再利用可能なスキルを定義します。各スキルはregister_skill関数で登録され、SKILLS辞書に保存されます。また、複数回の実行にわたって事実と設定を保存するシンプルなJSON長期メモリファイルlong_term.jsonを初期化します。
主要なツールセットには、list_skills(全スキルの説明を表示)、load_skill(特定のスキルのSKILL.mdをロード)、web_search(DuckDuckGoでWeb検索)、web_fetch(URLを取得してクリーンなテキストを返す)、file_write(サンドボックスパスにファイルを書き込む)、file_read(ファイルの最初の8KBを読み取る)、file_list(サンドボックス内のファイル一覧)、python_exec(サンドボックスでPythonコードを実行)、remember(事実を長期メモリに保存)、recall(長期メモリから情報を取得)が含まれます。これらのツールはLangChainの@toolデコレータで定義され、Groqモデルにバインドされます。
特に、spawn_subagentツールを実装し、メインエージェントが焦点を絞ったタスクを隔離されたアシスタントに委任できるようにします。サブエージェントは制限されたツールセット(デフォルトではweb_search、web_fetch、file_write、file_read)を持ち、独立した会話コンテキストで動作し、メインエージェントの履歴にアクセスできません。最終的に「FINAL REPORT:」で始まる構造化レポートを返します。
すべてのツールをALL_TOOLSリストにまとめ、リーダーシステムプロンプトLEAD_SYSTEMを定義します。「DeerFlow-Lite」という名前のエージェントに、サンドボックスレイアウト、操作原則(複雑なタスクではまずスキルをリストしてロードして実行、サブエージェントを使用して集中サブタスクを処理、中間結果はworkspace/に、最終成果物はoutputs/に保存、remember()でセッション間知識を保持)を指示します。
LangGraphを使用してワークフローを構築します。AgentState型(メッセージリストを含む)を定義し、agentノード(ツールをバインドしたLLMを呼び出す)とtoolsノード(ツール実行)を作成し、条件付きエッジでエージェントがツール呼び出しを行わなくなるまで推論とツール実行をループさせます。コンパイルされたグラフオブジェクトAPPがエージェント全体を表します。
最後に、run()関数を実装してタスクを実行します。各ステップをストリーム処理し、ツール呼び出しと出力を表示します。デモタスクとして、2025年の小規模言語モデル(SLM)に関するブリーフィングを依頼します。エージェントはスキルを発見し、サブ研究エージェントを生成して3つの注目SLMの詳細(サイズ、ベンチマーク、ユースケース)を収集し、レポート生成スキルをロードしてブリーフィングを作成し、最も重要な要点を長期メモリに保存し、結果を要約します。このプロセスを通じて、エージェントの自律的な作業能力を示します。
結論として、GroqのOpenAI互換APIが高度なLLMワークフローのための高速でアクセス可能なバックエンドとして機能することを示す、コンパクトでありながら強力なGroqベースのエージェントフレームワークを作成しました。LangGraphでエージェントループを管理し、LangChainでツールをバインドし、カスタムPythonユーティリティで検索、ファイル、コード実行、メモリへの制御されたアクセスを提供しました。分離されたサブエージェントは焦点を絞った研究タスクを効果的に処理し、メインエージェントが全体を調整します。このフレームワークは、研究アシスタント、自動ブリーフィングジェネレーター、多段階AIアプリケーションに拡張可能です。
完全なコードとノートブックは元の記事を参照してください。Twitterでフォローし、130k+ ML SubRedditに参加するか、Newsletterに購読してください。TelegramユーザーはTelegramグループにも参加できます。