6.8K Views
March 01, 25
スライド概要
Dify Community (JP) は、LangGenius, Inc.社が提供するオープンソースのLLM(Large-Language-Model)アプリ開発プラットフォームをもっと上手に活用するためのユーザーコミュニティです。 DifyではRAGエンジン(Retrieval-Augmented Generationエンジン)を使用して、ChatBotのようなエージェントから複雑なAIワークフローまでさまざまなLLMアプリをノーコードで編成することができます。 このグループでは、Difyを支えるLLMやRAGなどの技術や、Difyの使い方の知見、またDifyを活用した業務や開発生産性の改善事例についてみなさまと議論していきます。
AIエージェント開発の未来 Difyによるエージェント デザインパターン構築の試み
自己紹介 サイバーエージェント > AIオペレーション室 大城 海斗 Oshiro kaito 2024年4月 バックエンドエンジニア入社 LangChain / LangGraph / Difyを用いた生成AIツールの開発
Contents 01 AIエージェント 02 エージェントデザインパターンについて 03 Difyで構築:エージェントデザインパターン例 04 まとめ
01 AIエージェント 作ってますか?
AIエージェントとは
環境に適応して、 与えられた指示を遂行する AIシステム??
システムに落とす時、 この言語化レベルで エージェント作れるの?
AIエージェントに書かれているものが色々
AIエージェントに必要な機能 Profile(役割、個性) Profile Contents 属性情報:年齢や居住地など 性格情報:性格特性や好みなど 社会的背景:関係性や役割など Generation Strategy 手作業でのプロフィール作成 大規模言語モデルによる生成 既存データセットとのアラインメント Memory(会話の記憶) Memory Structure すべての記憶を一元的に管理する構造 長期・短期など複数種類のメモリを組み合わせた構造 Memory Formats 言語ベースの表現、テキストなど ベクトル表現 データベース形式 リスト形式 Memory Operation 過去の記憶を読み取る 新しい情報を書き込み、更新する 過去の情報を振り返り、要約したり考察したりする Planning(行動の計画) Action(タスク実行) Planning without Feedback Action Target(アクションの目的) Single-path Reasoning(単一路径での思考) Multi-path Reasoning(複数経路を並行・比較する思考) External Planner(外部システムを利用する計画立案) Planning with Feedback Action Space(アクションの空間・種類) Task Completion(タスクの完了) Tools(外部ツールの利用) Exploration(探索や学習) Self-Knowledge(自分自身に関する情報の活 Communication(対話・コミュニケーシ 用) ョン) Action Production(アクションの生成) Action Impact(アクションの影響) Environments(周囲の環境や状況に変化を与 Environment Feedback(環境からの情報を取り込みながらの計画修正) Memory Recollection(必要な記憶の呼び える) Human Feedback(人間からの指示・評価を取り込む) 出し) New Actions(新たな行動や次のアクションを Plan Following(計画に従う) 誘発する) Model Feedback(モデル自身の推論からフィードバックを得る) Internal States(エージェント内部の状態に 影響を与える)
AIエージェントに必要な機能 Profile(役割、個性) Memory(会話の記憶) Memory Structure Profile Contents すべての記憶を一元的に管理する構造 長期・短期など複数種類のメモリを組み合わせた構造 属性情報:年齢や居住地など Memory Formats 性格情報:性格特性や好みなど 言語ベースの表現、テキストなど 社会的背景:関係性や役割など ベクトル表現 データベース形式 Generation Strategy リスト形式 手作業でのプロフィール作成 Memory Operation 大規模言語モデルによる生成 過去の記憶を読み取る 既存データセットとのアラインメント 新しい情報を書き込み、更新する この要素が含まれていればエージェントっぽい 振る舞いはするだろう 過去の情報を振り返り、要約したり考察したりする Planning(行動の計画) Action(タスク実行) Planning without Feedback Action Target(アクションの目的) Single-path Reasoning(単一路径での思考) Multi-path Reasoning(複数経路を並行・比較する思考) External Planner(外部システムを利用する計画立案) Planning with Feedback Action Space(アクションの空間・種類) Task Completion(タスクの完了) Tools(外部ツールの利用) Exploration(探索や学習) Self-Knowledge(自分自身に関する情報の活 Communication(対話・コミュニケーシ 用) ョン) Action Production(アクションの生成) Action Impact(アクションの影響) Environments(周囲の環境や状況に変化を与 Environment Feedback(環境からの情報を取り込みながらの計画修正) Memory Recollection(必要な記憶の呼び える) Human Feedback(人間からの指示・評価を取り込む) 出し) New Actions(新たな行動や次のアクションを Plan Following(計画に従う) 誘発する) Model Feedback(モデル自身の推論からフィードバックを得る) Internal States(エージェント内部の状態に 影響を与える)
AIエージェント エージェントの振る舞いはできそう と言いつつも
01 Difyでエージェント 構築できてますか?
こういう悩みを持っている方いらっしゃるのでは? エージェント構築難しい ワークフローどうやって 構築すべきか悩む 構築にパターンがない
今日話したいこと Difyでエージェント構築をするために エージェントデザインパターンを知って、 Difyのエージェント(ワークフロー)構築の幅を広げよう
02 エージェントデザイン パターンって何?
エージェントデザインパターンとは 複数のLLM(エージェント)が相互に連携して、 目的を達成するための設計パターン エージェントを設計するときの選択肢みたいなもの
参考にしたもの タイトル エージェントデザインカタログ 概要 エージェント設計のパターンを 18個紹介、複雑化するエージェント 設計のために設計ガイドラインの提 供
ピックアップしたものを紹介します 1. プロンプト・レスポンス最適化 3. リフレクション(チェック) 2. 役割ベース
ピックアップしたものを紹介します 1. プロンプト・レスポンス最適化 3. リフレクション(チェック) 2. 役割ベース
プロンプト・レスポンス最適化 ざっくり説明 ①入力をいい感じにする ②出力をいい感じにする
プロンプト・レスポンス最適化 アウトプットが大幅に変わる ことはないが、 細かい言い回しや欲しい追加 情報がアウトプットされる
プロンプト・レスポンス最適化 - Dify_ver
結果: 入力(カレーの作り方教えて) プロンプト最適 レスポンス最適
通常のものと比較: 入力(カレーの作り方教えて)
通常のものと比較: 入力(カレーの作り方教えて) レスポンス最適 通常アウトプット
プロンプト・レスポンス最適化 レスポンス最適 通常アウトプット 細かい文章の最適化 追加情報などが追加される
ピックアップしたものを紹介します 1. プロンプト・レスポンス最適化 3. リフレクション(チェック) 2. 役割ベース
役割ベース ユーザの入力に対して、 計画を立てて タスクを生成し タスクを実行していく というような流れを1つのLLM に任せず、それぞれ分けて実行 していく
役割ベース- Dify_ver ユーザの入力情報をもとに、検索を行ってレポートを返す
比較用:役割なしDify_ver ユーザの入力情報をもとに、検索を行ってレポートを返す
違い 計画&タスク生成あり 計画&タスク生成なし ユーザの入力情報をもとに、検索を行ってレポートを返す
違い(いちごの育て方について) 計画&タスク生成あり 計画&タスク生成なし 左の方が細かく言語化できている
違い(いちごの育て方について) 計画&タスク生成あり 計画&タスク生成なし 左の方が細かく言語化できている
余談:ヒューマンインザループとの相性が良さそう
余談:ヒューマンインザループとの相性が良さそう チェックしてス テートを切り替 える human in the loop
余談:ヒューマンインザループとの相性が良さそう ヒアリングすることで、ユーザのニーズを引き出 し、ブレのないアウトプットになりやすい
ピックアップしたものを紹介します 1. プロンプト・レスポンス最適化 3. リフレクション(チェック) 2. 役割ベース
リフレクション リフレクションとは、人でいうところの セルフチェックやクロスチェックになります
メリット アウトプットが正しいかチェックした後 に出力できる
リフレクション 図で表すと タスク実行 GPT 目標設定 Gemini Claude タスク分解 実行結果を リフレクション 人間 タスク完了 もう一度実行 判定 全タスク終了 実行結果を まとめる 次のタスクへ アウトプットのチェック
リフレクション Difyでできるの? タスク実行 GPT 目標設定 Gemini Claude タスク分解 実行結果を リフレクション 人間 タスク完了 もう一度実行 判定 次のタスクへ 全タスク終了 実行結果を まとめる チェックはありがたいが、 DIfyに同じものをループする機能はない
リフレクション _dify ver 画像からペルソナを作成する 画像分析
リフレクション _dify ver 画像分析
リフレクション _dify ver 画像分析
デモ動画 動いている様子
リフレクション _dify ver 画像分析
デモ動画 動いている様子
まとめ Difyでエージェント構築をするために エージェントデザインパターンを知って、 Difyのエージェント(ワークフロー)構築の幅を広げよう
Thank you! ありがとうございました!