Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

デザインパターンで理解するLLMエージェントの作り方 / How to develop an ...

r-kagaya
November 23, 2024

デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns

2024年11月23日のFullstack AI Dev & Raycast Summit(#FullstackAIDev2024 )の登壇資料です
Agentic Design Patternを中心に、AI/LLMエージェントのデザインパターンについて触れています

https://devx.jp/mt202411

r-kagaya

November 23, 2024
Tweet

More Decks by r-kagaya

Other Decks in Programming

Transcript

  1. © 2024 Loglass Inc. 0 © 2024 Loglass Inc. Fullstack

    AI Dev & Raycast Summit #FullstackAIDev2024 デザインパターンで理解する LLMエージェントの作り方 r.kagaya 2024.11.23
  2. © 2024 Loglass Inc. 2 今日の内容 • 話すこと ◦ LLMエージェント、Agentic

    Workflowの設計パターン ▪ 特にAgentic Design Pattern ◦ 関連事例/リソース紹介 • 話さないこと ◦ AI/LLMエージェント、Agentic Workflowの概要、定義の詳細 ◦ 特定言語 / フレームワークでの実装 言語・フレームワークレベルでの実装ではなく、LLMエージェント、Agenticワークフロー を作る上で参考になる抽象的な構造について言及します
  3. © 2024 Loglass Inc. 4 単一のプロンプトからAgenticなワークフローへ • 一回のプロンプト実行(Non-Agentic)での出力品質の制約 ◦ 複雑なタスクへの対応の難しさ

    • LLMが反復的、段階的、自律的にタスクをこなすAgenticワークフローへ • Agentic ≒ 設定された目標に向かって、より自律的に行動しタスクがこなせる • Agenticなワークフローの効果 ◦ コーディングベンチマークのHumanEvalを用いた検証(少し古い事例) ▪ GPT-3.5 ゼロショット: 48.1% ▪ GPT-4 ゼロショット: 67.0% ▪ GPT-3.5 Agenticワークフロー: 95.1% 補足: few shots promptingも強力
  4. © 2024 Loglass Inc. 5 翻訳プロセスを「事前調査」「ドラフト」「リファインメント」「校正」の4段階に分解 Zero-shot Promptingによる翻訳と比較して、各ステップで翻訳品質が段階的に向上 • 自然な表現に修正

    • 文法,語彙,構文を 改善 • 翻訳言語らしい表 現に調整 • 事前調査を基に下 訳を作成 • 正確性重視 • 原文の意味を忠実 に反映 翻訳タスクを複数のステップでこなすことで品質が上がる Translating Step-by-Step: Decomposing the Translation Process for Improved Translation Quality of Long-Form Texts 事前調査 ドラフト リファインメント 校正 • 原文の慣用句や比 喩表現を特定 • 課題の事前把握 • 翻訳戦略を立案 • 最終チェック • 誤字脱字の修正 • 文法的誤りの確認 • 正確性と流暢さの 最終確認
  5. © 2024 Loglass Inc. 6 Agentic Workflow == LLMが反復的、段階的、自律的にタスクをこなす プロンプト一回でタスクをこなすのではなく、タスクの分解、「〇〇を修正して」というフィードバック

    の提供等を反復的に行った方が求めた出力に近づく可能性は高くなる プロンプトを与えて一度で出力を生成 ≒ ゼロショット 一度で出力生成を完結させず、LLMが反復的にタス クをこなしながら、出力を改善 ≒ LLMエージェント、フローエンジニアリング Non Agentic Workflow Agentic Workflow
  6. © 2024 Loglass Inc. 7 Agentic Workflow == LLMが反復的、段階的、自律的にタスクをこなす プロンプト一回でタスクをこなすのではなく、タスクの分解、「〇〇を修正して」というフィードバック

    の提供等を反復的に行った方が求めた出力に近づく可能性は高くなる プロンプトを与えて一度で出力を生成 ≒ ゼロショット 一度で出力生成を完結させず、LLMが反復的にタス クをこなしながら、出力を改善 ≒ LLMエージェント、フローエンジニアリング Non Agentic Workflow Agentic Workflow -> 複数のLLM推論、not AIなプログラムをどう組み合わせ、処理の流れを作るか
  7. © 2024 Loglass Inc. 8 翻訳プロセスを「事前調査」「ドラフト」「リファインメント」「校正」の4段階に分解 Zero-shot Promptingによる翻訳と比較して、各ステップで翻訳品質が段階的に向上 • 自然な表現に修正

    • 文法,語彙,構文を 改善 • 翻訳言語らしい表 現に調整 • 事前調査を基に下 訳を作成 • 正確性重視 • 原文の意味を忠実 に反映 (再掲)翻訳タスクを複数のステップでこなすことで品質が上がる Translating Step-by-Step: Decomposing the Translation Process for Improved Translation Quality of Long-Form Texts 事前調査 ドラフト リファインメント 校正 • 原文の慣用句や比 喩表現を特定 • 課題の事前把握 • 翻訳戦略を立案 • 最終チェック • 誤字脱字の修正 • 文法的誤りの確認 • 正確性と流暢さの 最終確認
  8. © 2024 Loglass Inc. 9 翻訳プロセスを「事前調査」「ドラフト」「リファインメント」「校正」の4段階に分解 Zero-shot Promptingによる翻訳と比較して、各ステップで翻訳品質が段階的に向上 • 自然な表現に修正

    • 文法,語彙,構文を 改善 • 翻訳言語らしい表 現に調整 • 事前調査を基に下 訳を作成 • 正確性重視 • 原文の意味を忠実 に反映 (再掲)翻訳タスクを複数のステップでこなすことで品質が上がる Translating Step-by-Step: Decomposing the Translation Process for Improved Translation Quality of Long-Form Texts 事前調査 ドラフト リファインメント 校正 • 原文の慣用句や比 喩表現を特定 • 課題の事前把握 • 翻訳戦略を立案 • 最終チェック • 誤字脱字の修正 • 文法的誤りの確認 • 正確性と流暢さの 最終確認 翻訳を段階的に行う LLMワークフローで翻訳品質が向上
  9. © 2024 Loglass Inc. 10 LLMエージェントデザインパターンの意義 モデルやツールの進化に依存しない共通パターンを理解する • モデルやツールの状況は日進月歩で変化している •

    半年前はGPT-4o miniも、LangGraphも存在していない • 抽象的な共通パターンの理解は比較的長期で適用可能な知見 • LLMエージェントの研究/実装を本スライドで紹介するAgentic Design Patternで捉えることで 整理、理解を深めるなど
  10. © 2024 Loglass Inc. 12 Agentic Workflow / LLMエージェント構築の4つのデザインパターン •

    Andrew Ng氏が提唱 • Agentic Workflow / LLMエージェントに共通で見られるパターン、構造を整理 • Reflection、Tool Use、Planning、Multi-agent collaborationの4つに分類 Reflection Tool Use Multi-agent Planning
  11. © 2024 Loglass Inc. 13 Reflection: 自己改善プロセス • LLMが自身の出力を批評的に検証・評価するプロセス •

    シンプルながら、出力品質を大幅に改善可能 • 自動化された自己改善メカニズム 簡単な例は、プログラム生成において実行エラーを提供しそれを元にコードを改善 初期出力生成 自己評価・批評 出力の改善・修正 フィードバック生成
  12. © 2024 Loglass Inc. 14 Reflectionの実装例 • 良質なフィードバックを生成できるか、フィードバックを改善に繋げられるか 名称 アプローチ

    特徴 Self-Refine 単一LLMによる自己改善の反復的プロセス 自身の出力に対するフィードバック生成 フィードバックに基づく出力の改善 単一モデルで完結する設計 Reflexion メモリーと自己反省機能を活用した改善プ ロセス 言語的フィードバックの生成 長期記憶への保存機能 次回試行での改善に活用 CRITIC 外部ツールとの対話による検証・改善サイ クル 外部ツールとの連携による検証 LLM単体の限界を補完 多角的な出力評価が可能 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  13. © 2024 Loglass Inc. 15 Tool Use: LLMの能力拡張のためのツール活用 出力の改善・修正 フィードバック生成

    • 外部ツールの呼び出しによるLLMエージェントのケイパビリティ拡張 • タスクに適したツールを自律的に選択 • 情報収集・アクション実行・データ操作等が可能に 最も簡易な例は、Web検索ツールの利用
  14. © 2024 Loglass Inc. 16 Tool Useの実装例 • 何のツールを選定して、どのLLMにどのツールを、いつ使わせるか 名称

    アプローチ 特徴 Toolformer APIコール生成の自己学習 Few-shotベースの学習 API呼び出しのタイミング学習 適切な引数の自動生成 有用なAPIコールの選別 Gorilla APIコールに特化 検索システムとの連携 高精度なAPI選択 適切なコード生成 APIドキュメント更新対応 GPT-4超えの精度実現 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  15. © 2024 Loglass Inc. 17 Planning: 目標達成のための多段階計画の立案・実行 出力の改善・修正 フィードバック生成 •

    複雑なタスクの自律的な分割と計画立案 • 動的なサブタスク生成と実行順序の決定
  16. © 2024 Loglass Inc. 18 Planningの実装例 • 計画立案を自律的に行えば行うほど複雑度が増し、コントロールが難しい側面 名称 アプローチ

    特徴 Plan-and-Solve Plan段階でのタスク分割 Solve段階での順次実行 2段階プロンプティング 段階的な問題解決 HuggingGPT 複数モデルの連携 タスク依存関係の分析 最適モデルの選択 複雑タスクの分解 BabyAGI マルチエージェント方式 反復的なタスク生成 タスク優先順位付け 動的なタスク管理 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  17. © 2024 Loglass Inc. 19 • 複数LLMエージェントの協調による問題解決 • 専門性を活かした役割分担 •

    単一エージェントを超える解決能力 Multi-agent collaboration: 複数AIの協調によるタスク解決
  18. © 2024 Loglass Inc. 20 Multi-agent collaborationの実装例 • 役割分担とエージェント間のコミュニケーション設計 名称

    アプローチ 特徴 ChatDev 開発プロセスに特化 Chat Chainによる対話型協調 フェーズごとの役割分担 ロール別マルチエージェント CEO、CTO、プログラマー、テスター MetaGPT SOPsベースの協調 Pub/Subメカニズム 役割別スキーマ定義 専門的役割を持つエージェント群 標準化された作業手順 フィードバックメカニズム API-Bank 段階的データ生成 専門エージェントの連携 品質チェック機能 ドメインエージェント APIエージェント クエリ/実行エージェント テストエージェント 紹介する事例・研究は Agentic Design Pattern登場当時に言及されていた、少し昔の研究・実装
  19. © 2024 Loglass Inc. 21 Agentic Design Patternの使い方 • 登場直後はOSS/論文でも1,2つ程度のパターンが確認できるものが多かった印象

    • 今となってはこの4つだけでは分類/整理しきれない ◦ 濃淡はあれどAgentic Design Patternが確認できない方が珍しい(感想) • シンプルな形でも使いやすいのはReflection、Tool Use • Planningは強力。意図せぬ挙動になる可能性もあるが使いこなせると幅が広がる • Multi Agentは、エージェント数 / 役割分担の差配 /エージェント間の連携が重要 ◦ エージェント間の連携方法 ▪ 単に出力をそのまま渡すのではなく、YAML,XMLを用いて独自仕様の構造化ドキュ メント、pub-subに近い仕組みの導入 ▪ LangChainが公開したAgent Protocolのように標準I/F登場の可能性も
  20. © 2024 Loglass Inc. 23 Sakana.aiのAIサイエンティスト • アイデア創出から論文執筆まで自動化 • 1論文あたり約15ドルで生成可能

    • アイディア生成、実験、論文執筆の3フェーズ Idea Generation(アイデア生 成) • LLMによるアイデア・計画の革新 • Semantic Scholarによる新規性確認 • アイデアのスコアリングとアーカイブ Experiment Iteration(実験実 行) • 実験テンプレートの活用 • LLM & aiderによるコード生成 • 実験の実行と結果収集、反復 Paper Write-Up(論文執筆) • 論文テンプレートの活用 • 論文の執筆と改訂 • LLMによる論文レビュー 「AIサイエンティスト」: AIが自ら研究する時代へ
  21. © 2024 Loglass Inc. 24 Sakana.aiのAIサイエンティストに見るAgentic Design Pattern デザインパターン毎にざっくり見てみる、特にReflection, Tool

    Use(+ Chain of thought) • 研究アイデアの自 己評価 • 実験結果の分析と 改善 • 論文の品質チェッ クと修正 • Semantic Scholar APIによる文献調査 • Aiderによるコード 生成と実行 • LaTeXコンパイラの 活用 • 研究アイディアの 立案 • 実験計画の設計、 具体化 • 論文ピアレビュー を担当する Reviewer Agent Reflection Tool Use Planning Multi-Agent 「AIサイエンティスト」: AIが自ら研究する時代へ
  22. © 2024 Loglass Inc. 25 Sakana.aiのAIサイエンティストに見るAgentic Design Pattern デザインパターンの組み合わせ 振り返りに基づく計画の改善:

    実験結果を振り返り、次のステップを効率的に計画する Planning + Reflection ツールを活用した役割分担: 各エージェントが専門ツールを活用し、より高度な作業をこなす Multi-Agent + Tool Use 複数エージェント: 実験・執筆・レビューの各フェーズを専門エージェントが担当 各フェーズ・エージェントでもself-reflectionによる改善 Multi-Agent + Reflection 「AIサイエンティスト」: AIが自ら研究する時代へ
  23. © 2024 Loglass Inc. 26 MicrosoftのMagentic-One マルチエージェントの協調による複雑なタスクの解決 Orchestratorエージェントが4つの専門エージェントを指揮する、チームベースアプローチ タスクの分解/計画/進捗管理 Orchestrator

    Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks Webブラウザ操作 WebSurfer ファイル処理 FileSurfer コーディング Coder プログラム実行 ComputerTerminal
  24. © 2024 Loglass Inc. 28 AI Agentic Design Patterns with

    AutoGen AutoGenでAgentic Design Patternsを実装する学習コース AI Agentic Design Patterns with AutoGen
  25. © 2024 Loglass Inc. 29 Agent Design Pattern Catalogue •

    Agent Design Pattern Catalogue: A Collection of Architectural Patterns for Foundation Model based Agents • AIエージェントの設計に役立つ18のデザインパターンを紹介、より具体的
  26. © 2024 Loglass Inc. 30 AFlow: Automating Agentic Workflow Generation

    • モンテカルロ木探索を用いてLLMワークフローの自動生成 • コードで表現されたノードとエッジ、オペレーターで構成 ◦ オペレーター: 事前定義されたノードの組み合わせ。一般的なエージェント操作 (例: アン サンブル、レビュー) をカプセル化 -> AIエージェントを生成するAIエージェント、 Automated Design of Agentic Systemsも AFlow: Automating Agentic Workflow Generation
  27. © 2024 Loglass Inc. 31 Agent as a Judge •

    LLM as a Judgeに着想を得た、Agentを評価するAgentの提案 • 「LLM-as-a-Judgeよりも優れたパフォーマンスを発揮し、人間の評価ベースラインと同等の 信頼性があることを確認」 -> LLM as a JudgeのLLM部分を、Agenticに 作ればもっと性能が良くなるのではない? Agent-as-a-Judge: Evaluate Agents with Agents
  28. © 2024 Loglass Inc. 33 まとめ • 細かな名称/定義は違えど、単一のプロンプトではなく、Agenticなワークフローを用いるケー スはさらに増加するだろう •

    LLMエージェント / Agentic Workflowのデザインパターンとして、Agentic Design Patternを 紹介 • 言語/フレームワークに依存しないため、組み合わせ、設計を考える際の参考に • 評価も含めた、LLMも用いたワークフロー、パイプラインの設計がLLMアプリ / エージェントに 関わるエンジニアの腕の見せ所 • Agentic Workflowの自動生成/チューニングも遅かれ早かれ考えないといけない未来 ◦ 評価/データセットの整備はその時にも生きそう
  29. © 2024 Loglass Inc. 34 Appendix • LangChain - Agent

    architectures • Large Language Model-Based Agents for Software Engineering: A Survey ◦ ソフトウェアエンジニアリング領域のLLMエージェントの研究のサーベイ • LLMエージェントのデザインパターン、Agentic Design Patternsを理解する ◦ 本スライドの元となった記事