Slide 1

Slide 1 text

AIエージェント デザインパターンの選び方 Agent Design Patterns 2025/5/23

Slide 2

Slide 2 text

田村 悠 株式会社ノアク 代表取締役 1990年 東京都生まれ 著書: 『LangChain完全入門』 『AI駆動開発完全入門』 0→1のWebシステム開発に多く関わる ChatGPTリリース後はWebシステム開発からAIに転向 AI駆動開発の導入顧問、AIアプリケーションの開発 AI活用しシステム開発の高速化、効率化が好き 好きなLLMはGPT-4.1 自己紹介

Slide 3

Slide 3 text

AIエージェントって なんだっけ?

Slide 4

Slide 4 text

AIエージェントとは、AIを使って与えられたタスクを達成するために自律的に行動を選択し動 作するシステム IF文をLLMで書いて処理を振り分けるだけのシステムはAIエージェントとは呼ばない → ClineやRooCodeはシステム開発AIエージェントであるが、与えるものは「~~というシス テムを作って」だったり、 「~~というバグを修正して」だったりする。 → ECサイトのカスタマーサポートAIエージェントは必要に応じて、注文履歴などを参照でき るツールを使いユーザーの要望に合わせて対応する。 このようにタスクを与えるのがAIエージェントと呼ばれる AIエージェントの定義

Slide 5

Slide 5 text

ほんとにエージェント必要?

Slide 6

Slide 6 text

エージェント(Full Autonomous)、ワークフロー(Router)どっちで実装する? AIアプリケーションのデザインパターン

Slide 7

Slide 7 text

基本的にIF文やFor文の組み合わせでアプリケーションを作り、判定や処理にAIを使う 自律的ではないので、AIエージェントとは呼ばない。 例: 入力されたメールタイトル、本文を分析してリライトが必要かをチェックし、必要ならリラ イトするというアプリケーション この場合は、IF文に当たるものをLLMで行い、必要に応じて後続処理を行う。 ワークフロー(Router)

Slide 8

Slide 8 text

引用元:https://langchain-ai.github.io/langgraph/concepts/agentic_concepts/ エージェントデザインパターン

Slide 9

Slide 9 text

デザインパターン利用例

Slide 10

Slide 10 text

最もシンプルで一般的 引用元:https://langchain-ai.github.io/langgraph/tutorials/get-started/2-add-tools/#6- define-the-conditional_edges Single Agent

Slide 11

Slide 11 text

OpenDeepResearch (LangGraph実装のDeepResearch) 親エージェントがどの子エージェントに処理を任せるかを決める 子エージェントの結果を親エージェントがチェックし、必要に応じて子エージェントを再実行 したり、別のエージェントを呼び出す。 命令をSupervisorが受け取る。次に子のエージェントである。ResaerchAgentが検索を行 い。結果をSupervisorに報告する。Supervisorが十分な結果を得られたかを判定し、必要に 応じて子エージェントを再実行 達成されたと判断されたらReportAgentがレポートを作成する。 Supervisor

Slide 12

Slide 12 text

デザインパターンの選び方

Slide 13

Slide 13 text

デザインパターンを選ぶ前に、まずはプロンプトを書こう どのアーキテクチャもプロンプトを上手く動かすための方法でしかない。 LLM側が進化していて、以前はSurpervisor等のデザインパターンを使わないと実現できなか った動きが、単純なアーキテクチャで実現可能に 特にGPT-4.1はプロンプト無視が減ったのでデザインパターンを使う必要性が減った。 まずはプロンプトを書こう

Slide 14

Slide 14 text

ライブラリは何使う? ノーコード系 Dify n8n bot press TypeScript系 LangGraph + LangChain Mastra Python系 LangGraph + LangChain CrewAI デザインパターン決まったら

Slide 15

Slide 15 text

LangSmith、Langfuseなど使うとデプロイしてからのLLM呼び出し、レスポンスログが見ら れる 一連のフローでAPI利用料金がどれくらいかかったかがわかる https://smith.langchain.com/o/e29c339a-a6b3-4580-abfe- c0aebb9b0bf3/projects/p/cc56fbae-1b8e-4503-8c5a-25ceeecb92e7? peek=95285c51-23ba-4f1d-a628-43ec0b864025&peeked_trace=95285c51-23ba- 4f1d-a628-43ec0b864025 LLMOpsでプロンプトの改善

Slide 16

Slide 16 text

まずは必要十分で最小限な指示と指示に至った経緯を1行目に書く マークダウンであとから条件を追加しやすい形式で書いておく プロンプトエンジニアリングだけで対応できる範囲が多いように対応するのおすすめ あなたは、相談者に優しく寄り添い、西洋占星術(太陽星座・月星座)を用いて鑑定を行う占い師です。相談者が安心感を持ち、前向きな気持ちで未来に向かえるよう、温かく肯定的な言葉でサポートし、具体的なアドバイスを提供することを重要な役割とします。 ## 基本ルール - あなたはユーザーに寄り添う占いを提供しますが、この占いはセッションとして提供されます。 - モードに合わせて行動しなさい。通常モードでは占いを行ってはいけません。占いモードなら占いセッションが開始されています。占いを行ってください。 - ユーザーの名前がわからない場合は〇〇さんなどとするのではなく、「あなた」としてください。 - ユーザーの名前が明らかになった場合かつ、ユーザーの名前がわからないときはは必ず**register-user-name** ツールを使って名前を登録しなさい。 ### 占いセッション - 占いセッションは、ユーザーが占いを受けるためのセッションです。セッションは開始されているため、新たなセッション予約の案内などはせず、占いに集中する。 ~~~省略~~~ ## セッションでの対話の流れ 1. 挨拶と自己紹介: 「占い師の花村と申します。どのようなことをお伺いしましょうか?」など、丁寧な挨拶から始めます。(「AI鑑定師」とは名乗りません) ~~~省略~~~ ## 禁止事項・留意点 - 情報収集: 鑑定には相談者の生年月日のみが必要です。生まれた時間や出生地(都道府県)は聞かないでください。「鑑定のために、生年月日を教えていただけますか?」のように質問してください。 ~~~省略~~~ おまけ: 個人的に効果的なプロンプトを書くコツ

Slide 17

Slide 17 text

エージェント実装で一番めんどくさいのが既存サービスとのインテグレーション Composioはインテグレーションに特化したサービス おまけ2: Composio

Slide 18

Slide 18 text

講義 AI駆動開発で活用できるツールの種類 AI駆動開発前提の要件定義方法 AIと設計を進める方法 楽なプロンプトの書き方 Devin、Cline、Cursorの使い分け ...などなどノウハウをお伝えします プロジェクトサポート TypeScriptとPythonどっちで開発したほうがいい? メンバーそれぞれでキャッチアップしてて正解がわからない 先週リリースされたプロンプトはプロジェクトで本当に使える? 週1のミーティング・ペアプログラミング AI駆動開発ペアプログラミング チームで活用できるAI駆動開発のノウハウ 宣伝 AI駆動開発導入顧問をしています

Slide 19

Slide 19 text

まずはエージェントアーキテクチャを決める前に、API Playgroungでプロンプトを書いてみ よう プロンプトに合わせてエージェントアーキテクチャを決めよう そして、n8nで動作確認しよう ここまで終わったらやっと実装しよう まとめ

Slide 20

Slide 20 text

ご清聴ありがとうございました