-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_UdemyAgenticAI
- 戻る(テキスト生成系(Transformer系) > 学習系(テキスト生成系(Transformer系)の該当節を参照)、LLMエージェント)
- LLM Engineering:Master AI、Large Language Models&Agents
- The Complete Agentic AI Engineering Course (2025)(本ページ)
- オリジナル・コンテンツ(イキナリLLMからスタートしたい)
- Master Vibe Coding with AI Coding Agents:Claude Code...
- オリジナル・コンテンツ(イキナリLLMコーディング・エージェント)
- https://www.udemy.com/course/the-complete-agentic-ai-engineering-course/
- 世界10万人が学んだ講師が教えるAIエージェント開発(日本語字幕)
https://www.udemy.com/course/the-complete-agentic-ai-engineering-course-japanese/
このコースは、経験豊富なプログラマーの方から、初心者の方まで、
Agentic AIの変革の可能性を探求したい方に最適です。
自律型AIエージェントの設計、構築、導入スキルを習得し、
現実世界のビジネス課題の解決を支援します。
実践的なプロジェクトに積極的に参加することで、刺激を受け、
需要の高い専門知識を習得できます。
この刺激的な旅にご参加いただき、AIの世界であなたの未来を切り開きましょう!
-
第1週:基礎を学ぶ
- PJ1:キャリアアバター(自己紹介AIエージェント):
将来の雇用主にあなたを代表する独自のエージェントを構築して展開。
- PJ1:キャリアアバター(自己紹介AIエージェント):
-
第2週:OpenAI Agents SDKを学ぶ
- PJ2:即席のSDR(セールス・ディベロップメント・レプレゼンタティブ)エージェント:
プロフェッショナルなメールを作成して送信する営業担当者を作成。 - PJ3:独自のDeep Researchエージェント:OpenAIのホスト型ツールを使用して
任意のトピックについて徹底的な調査を行うエージェント・チームを実装。
- PJ2:即席のSDR(セールス・ディベロップメント・レプレゼンタティブ)エージェント:
-
第3週:CrewAI を学ぶ
-
第4週:LangGraphを学ぶ
-
第5週:AutoGenを学ぶ
- PJ7:AutoGenを使用して新しいエージェントを構築および起動し、
無限の AI の可能性を解き放つAgent Creator:
- PJ7:AutoGenを使用して新しいエージェントを構築および起動し、
-
第6週:MCP を学ぶ
- PJ8:最終課題(集大成):6 台の MCP サーバーと 44 個のツールを活用し、
4 人のエージェントが自律的に取引を行うトレーディング フロアを構築。
- PJ8:最終課題(集大成):6 台の MCP サーバーと 44 個のツールを活用し、
-
前提
- 前提知識として、エージェントの下位スタックにあたる
「LLM Engineering:Master AI、Large Language Models&Agents」程度の
前提知識はあった方が良い。 - 何気に「LLM Engineering:Master AI、Large Language Models&Agents」でも
エージェントは出てきていたが、コチラは、より今風(2025)のエージェント - しかし、これらの前提知識(E資格相当)がなくとも、
エージェントについて理解したりコードを書けるようにするだけの目的で、
コンテンツは十分に機能はする。 - その他「LLM Engineering:Master AI、Large Language Models&Agents」と同様で、
講師のローカル環境はMACのM1でGitHub上にコードが配置されている。
- 前提知識として、エージェントの下位スタックにあたる
-
解説
- 英語版のトランスクリプトは微妙なので日本語版を選択する。
しかし、時間の関係からか、講師はコードの詳細をあまり解説できていない。 - 幸いにも、詳細の解説はGitHub上にコードが配置されているので、
Copilotに生成して貰う事で代替できる。講師より詳細に説明してくれる。 - 余談:日本語版と英語版を比べると、
日本語版が最新版(英語版とGitHub実装)に追いついていないケースが
エージェント版で観測されたので、そういうケースもありそうだと認識しておくと良いかも。
- 英語版のトランスクリプトは微妙なので日本語版を選択する。
-
その他、個人的に思ったコト...
-
まず、LLMエージェントについてコチラを見ておく。
-
何故、自前で実装する?
→ SDKでカスタム開発されたエージェントが、
特化型のタスクにおいて顕著な性能差を示すため。- ローコードの汎用エージェント < ライブラリの汎用エージェント
< SDKで開発されたカスタム・エージェント - ローコードは設定可能な範囲が限られ、微調整や複雑な条件分岐が困難、
SDKカスタムは、内部のデータ、アルゴリズムまで制御可能 - 出力制御と品質保証:関数呼び出しだけでは
「応答が壊れていた場合のハンドリング」が弱いので、
結果のバリデーション + 評価ループによる再実行を書く必要あり。 - 複数エージェントやツールのオーケストレーション:
複数のツール選択やハンドオフ制御は、単純な関数呼び出しではなく
「フロー制御」が必要
- ローコードの汎用エージェント < ライブラリの汎用エージェント
-
何故、複数のフレームワークを紹介する?
→ エージェントはタスクが複雑で多様で、抽象化レイヤーが多く、
フレームワークごとに得意領域が異なる。- このため、エージェント設計では「どのフレームワークを使うか」が
パフォーマンスや拡張性に直結する。 - 様々なフレームワークに触れておくことで、
最適な選択を可能にする選択・比較能力の養成が目的。
- このため、エージェント設計では「どのフレームワークを使うか」が
-
- ちなみに講師のローカル環境はMACのM1だが、
私は、WSL2 Ubuntu 24.04 LTSだった。 -
Cursor IDEはWindows側に入れて
Python、Jupyter、WSLプラグインでUbuntuと接続(参考)。 - 仮想環境を起動したら、JupyterLabを起動して、
カーネルを[Existing Jupyter Server]からURLで指定する。 - (手順では)カーネルから直接、仮想環境を選択できるような説明だったが、
WSL経由だとできないのかもしれない。 - プロキシ環境下、特にSSLフォワード・プロキシでは少々手こずる可能性がある。
※ Cursor IDEは、VS Code+GitHubに切り替えても良い。
なお、可視性は、JupyterLabの方が良い。
-
LLMクライアント
-
UI(Gradio、Streamlit)
-
LLM向けフレームワーク
- LangChain
- Semantic Kernel
-
エージェント
-
データストア
- SQLite
- Chroma
-
Agentツール
- langchain_community
- FileManagementToolkit:ローカルファイルと対話
- GoogleSerperAPIWrapper:Google検索Serper APIのラッパ
- WikipediaAPIWrapper:Wikipedia検索MediaWiki APIのラッパ
- PlayWrightBrowserToolkit:次世代Selenium、MS製 - UIオートメーション
- PythonREPLTool:対話型実行環境(≒即時実行結果確認)ツール
- langchain_community
-
JupyterLab
-
Cursor IDE
VS CodeベースのAI支援機能を搭載したコードエディタで
Jupyterの代替にNotebook系の開発に使える。 -
Visual Studio Code
...と言う事は、VS Code+GitHubでも、大凡、Cursor IDEと同じ様に使える。
-
OpenAI、Anthropic、Gemini、DeepSeek、Groq
-
OpenRouter(紹介のみ、互換API、課金の一本化)
-
MCPサーバー
- Brave Search
- Polygon.io
Alpha Vantage API
-
Serper API
-
MediaWiki API
-
Pushover(✕ Twilio)
-
SendGrid(→ Resend)
-
基礎を学ぶ
- PJ1:キャリアアバター(自己紹介AIエージェント):
将来の雇用主にあなたを代表する独自のエージェントを構築して展開。
- PJ1:キャリアアバター(自己紹介AIエージェント):
-
コンテンツ
-
内容
- 自律型AIエージェントデモ:n8nを使ったスマートホームデバイスの制御
- AIエージェントフレームワーク解説:OpenAI SDK、CrewAI、LangGraph、AutoGen
- エージェント開発環境のセットアップ:Cursor IDE、UV、APIオプションの理解
- WindowsでのAI開発環境セットアップ:Git、Cursor IDE、UVパッケージマネージャー
- MacでのAIプロジェクトセットアップ:GitHub、Cursor IDE、OpenAI APIキー
- 初めてのエージェントAIワークフロー構築:OpenAI APIを使ったステップバイステップガイド
- エージェントAI入門:自律性を持つマルチステップLLMワークフローの作成
-
要約
- n8n というローコード/ノーコードのワークフローアプリを用いて、
生成AIとツールを組み合わせたエージェントの動作例を実演。 - LLMチャットから、Philips Hueの照明制御ツールを接続し部屋の電球を点灯・色変更
(Philips Hue MCPサーバー)。 - 今後のコースではローコードツールを離れ、実際にコードを書いてAIエージェントを構築し、
複数のエージェントを連携させて問題解決に挑む - コーディング開始前に環境設定が必要。IDEは Cursor IDE、
仮想環境管理には UV を使用(Anacondaの代替)。 - 環境設定:Windows/Mac/Linux(GitHubリポジトリの取得 → Cursor IDE導入 →
uvで環境構築 → OpenAI APIキー設定 → .envファイル作成) - 演習課題:エージェント的 (1) LLMにビジネスセクターを選ばせる
(2) そのセクターのペインポイントを特定させる (3) AIソリューションを提案させる
- n8n というローコード/ノーコードのワークフローアプリを用いて、
-
コンテンツ
(座学)
-
内容
- 効果的なエージェントの構築:LLMの自律性とツール連携の解説
- 堅牢なAIシステムを構築するための5つの必須LLMワークフローデザインパターン
- LLMアプリケーション設計におけるエージェントパターンとワークフローパターンの理解
-
要約
エージェントの定義は曖昧だが「エージェントアーキテクチャ」の理論解説。- 一般的な特徴:複数LLM呼び出し、ツール使用、連携、プランナー、自律性。
- Hugging Faceの定義:LLMの出力がワークフローを制御するプログラム
- Anthropicの区分:ワークフロー vs エージェント
- 多くの「エージェント」と呼ばれるものは実際にはワークフロー
- エージェントの定義(エージェントらしさ、デザインパターン)
(LLMエージェントの該当節を参照)
-
内容
-
要約
「エージェント型ワークフローの構築」と「複数LLMのオーケストレーション」に焦点- 使用モデル(OpenAI、Claude、Gemini、DeepSeek、Groq、Ollama)を
Vellum Leaderboardで比較 -
Cursor IDE上で複数のLLMを設定・呼び出し、
応答を取得・比較しながら学ぶ実践型ラボ - Anthropic以外、OpenAI互換API形式を採用。
ローカル実行はリソースに依存、適切なモデルを選択。 - 複数LLMの回答を評価・順位付けするPythonモデル間オーケストレーション実装と商業的応用例
- 使用モデル(OpenAI、Claude、Gemini、DeepSeek、Groq、Ollama)を
-
コンテンツ
-
内容
- AIエージェントフレームワークの比較:LLMオーケストレーションにおけるシンプルさとパワー
- リソース&ツール:エージェントAIでLLMの能力を強化する2つの方法
- GradioとOpenAIであなたのように振る舞うキャリアアバター(経歴紹介AI)を構築
- Geminiを使ってGPT-4の応答を評価する:マルチLLMパイプライン
- エージェントLLMワークフローの構築:リソース、ツール、構造化出力
-
要約
-
コンテンツ
-
内容
- キャリアアバター(経歴紹介AI)を構築:LLMの関数呼び出しとプッシュ通知
- LLMのツール呼び出しを解明:関数リクエストの処理と実行方法
- AIアシスタントの構築:未知の質問を処理するためのツールの実装
- AIエージェントの作成とデプロイ:チャットループからHuggingFace Spacesまで
- キャリア会話GradioチャットボットをHuggingFace Spacesにデプロイする
- 基礎週間の総括:APIとツールで完全なAIエージェントを構築する
-
要約
-
LLMからのJSONツール呼び出しを受け取り、Pythonで関数を実行する仕組みの解説
- プロンプトやAPIの設定から、Function Callingを実装し、tool_calls を取得する。
- handle_tool_calls:tool_calls に含まれる下記の各ツール呼び出しを順番に処理
- record_user_details:ユーザー情報(メール、名前、メモ)を記録してプッシュ通知
- record_unknown_question:答えられなかった質問を記録して通知
-
Function Callingでツール実装したキャリアアバター(経歴紹介AI)
- GradioのチャットUIを作成し、Hugging Face Spaces にデプロイ。
- 改善と拡張の提案、商業的活用の観点についての解説。
-
-
コンテンツ
- https://github.com/ed-donner/agents/blob/main/1_foundations/4_lab4.ipynb
- https://github.com/ed-donner/agents/blob/main/1_foundations/app.py
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/1_foundations/4_lab4_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/1_foundations/app.py
-
OpenAI Agents SDKを学ぶ
- PJ2:即席のSDR(セールス・ディベロップメント・レプレゼンタティブ)エージェント:
プロフェッショナルなメールを作成して送信する営業担当者を作成。 - PJ3:独自のDeep Researchエージェント:OpenAIのホスト型ツールを使用して
任意のトピックについて徹底的な調査を行うエージェント・チームを実装。
- PJ2:即席のSDR(セールス・ディベロップメント・レプレゼンタティブ)エージェント:
-
コンテンツ
-
内容
-
要約
-
OpenAI Agents SDK
- asyncioの基本概念を理解することが必須で、
特にI/O待ちの多いエージェント処理で威力を発揮 - 重要な用語:エージェント、ハンドオフ、ガードレール
- 実行ステップ:create、with trace、await runner.run
- asyncioの基本概念を理解することが必須で、
-
バイブコーディング
- LLMにコードを生成させ、それに少し修正を加えながら進めるアドホックな作業モード
- 5つのヒント:① 1つ1つ丁寧に、② 鵜呑みにせず、③ 検証的に、④ 段階的に、
⑤ 根拠含め多様な解を得る。
-
-
コンテンツ
-
内容
- SendGrid(→ Resend)でAIセールスエージェントを構築:Agent SDKでのツールと連携
- 並行LLM呼び出し:並列エージェント実行のためのAsyncioの実装
- エージェントをツールに変換する:階層的なAIシステムの構築
- エージェントの制御フロー:ハンドオフとエージェント as ツールの使い分け
- 関数呼び出しからエージェントの自律性へ:OpenAI SDKによるセールスオートメーション
- ビジネス向けエージェントAI:インタラクティブなセールスアウトリーチツールの作成
-
要約
- SendGrid(→ Resend)を使ったメール送信環境を準備し、
- 3種類のSales Development Agentを作成してストリーミングでメールコンテンツを生成
-
OpenAIの@function_toolデコレータを使うことで、
以前は大量のJSONを手動で書く必要があったツール化が大幅に簡略化 - 複数のエージェントをツール化し、管理エージェントは与えられたツールを使って
メールを生成し最良のモノを選びハンドオフで送信。 - 「ツール化:エージェントを外部から呼び出せる道具として提供」
「ハンドオフ化:タスクを他のエージェントやシステムに引き渡す」
-
コンテンツ
※ ハンドオフはエージェントフローを「指揮」せず「委任」の形で実装できる感じ。
-
内容
- マルチモデル連携:OpenAIエージェントでGemini、DeepSeek、Groqを使用する
- 堅牢なAIエージェントシステムのためのガードレールと構造化出力の実装
- 実践におけるAIセーフティ:LLMエージェントアプリケーションのためのガードレールの実装
-
要約
-
コンテンツ
-
内容
- 深層リサーチエージェントの構築:OpenAIのWeb検索ツールの実装
- プランナーエージェントの構築:AIにおけるPydanticによる構造化出力の活用
- GPT-4エージェントと非同期タスクによるエンドツーエンドのリサーチパイプライン構築
- 深層リサーチエージェントの構築:AsyncIOによる並列検索
-
要約
-
Deep Researchはエージェント型AIの典型的なユースケースを紹介
-
クエリを受け取り、その調査に役立つ複数の検索クエリを考案するエージェントを作成
- 実際に検索を行うのではなく、
検索計画(検索すべきキーワードと理由)を構造化出力で返す。 - 1回の検索に約2.5セントかかるため、初期設定は3回の検索に制限。
回数を増やせば網羅性は増すがコストも上がる。 - 構造化は、WebSearchPlan(searches = WebSearchItem(reason、query)のリスト)の
Pydanticモデルとして出力される。 - docstringで注釈を加えることでモデルの出力品質を高める
(内容、意味や制約、期待する値の形式を自然言語で補足)
- 実際に検索を行うのではなく、
-
AIエージェント(検索計画、検索実行、レポート作成、メール送信)を組み合わせて
調査レポートを作成・メール送信 -
各エージェントを関数でラップする。関数を順次呼び出すフローを書くことで、
エージェント・フローを実装できる。
-
-
コンテンツ
-
内容
- Gradio UI実装によるモジュール型AIリサーチシステムの構築
- 深層リサーチアプリ:Gradioで自律型AIエージェントを可視化・監視する
- GradioとHuggingFace Spacesでスマートリサーチエージェントをデプロイする
-
要約
- ノートブックで試作したエージェントを整理されたPythonモジュールとGradio UIへ移行
- 試作コードから本格的なアプリケーション構造へ進化させるプロセスを学ぶ
- deep_researchスクリプトをUV経由で実行し、Gradio UIに非同期リサーチ結果を表示
- GradioでUIを調整し、Gradio deployでHugging Faceにデプロイして共有可能。
-
コンテンツ
-
CrewAIを学ぶ
-
コンテンツ
-
内容
-
要約
- CrewAIは uv ツールを利用しており、プロジェクトも uv ベースでセットアップされる。
-
CrewAIが提供する3つのプロダクト、Enterprise / UI Studio / Frameworkで、
ココでは、OSSのFrameworkにフォーカス。 - Frameworkのエージェントには、Crews:自律協調的に問題解決を行う方式と、
Flows:決定論的で監査可能なワークフロー方式がありココでは前者にフォーカス。 - Crewの概念:「エージェント」と「タスク」の集合体で、
実行モードにはシーケンシャル・ヒエラルキー型がある。
「エージェント」は「役割・目標・バックストーリー」を持ち「タスク」を処理する。 - Crewごとに 完全なプロジェクトとディレクトリ構造 が自動生成され、
エージェントやタスクは、@CrewBase, @agent, @crew, @taskなどのデコレータで整理、
YAMLファイルで設定可能 -
Cursor IDEでCrewプロジェクトをゼロから作成し、
ディレクトリ構成や自動生成ファイルを確認。続いて、エージェントの定義をYAMLで行い
「役割・目標・バックストーリー」の重要性を解説。 -
CrewAIを使った複数エージェント
(ディベーターとジャッジに異なるLLMを割り当て)構成の
ディベート・シナリオを構築するデモンストレーション
-
コンテンツ
- https://github.com/ed-donner/agents/tree/main/3_crew/debate
- https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/my_crew
- https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/jp_crew
- https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/1_debate
-
内容
-
要約
-
CrewAIを使った財務調査・分析エージェントの設定、タスク構築、
モデル選択、実行までのフローをステップごとに解説 - 高速Google検索APIのSerper API(無料クレジット)を準備、サインアップ後、
APIキーを取得し環境変数「SERPER_API_KEY」を設定 - 最新のテスラの財務調査・分析レポートを生成。
ツール追加で最新情報を取得できるようになり、高品質な自動レポート作成が可能に。
-
CrewAIを使った財務調査・分析エージェントの設定、タスク構築、
-
コンテンツ
-
内容
-
要約
- 新しいプロジェクト「株式銘柄選択ツール」を構築し、CrewAIの応用例を学ぶ。
- 3つの新要素:「Crewでの構造化出力」「カスタムツール(Serper+Pushover)」
「ヒエラルキー型」 - エージェント・タスクを1対1で対応させる。
- エージェント(Manager、Trending Company Finder、Financial Researcher、Stock Picker)
- タスク(Find Trending Companies、Research Trending Companies、Pick Best Company)
-
コンテンツ
-
内容
-
要約
-
銘柄選択プロジェクトへのメモリ組み込み。
- 4つのメモリタイプ(種類):長期(RDB)、短期(RAG)、実体(RAG)、文脈(統合)
- 短期・長期・エンティティメモリをインポートし、
RAGストレージやSQLiteストレージを設定。
-
Pythonコードを書き、実行できる「コーダーエージェント」をCrew環境で作成する。
- Dockerコンテナを利用することで、隔離された安全な環境でコード実行が可能。
- 「コーダーエージェント」は単なるコード生成ツールではなく問題解決のための手段。
- 円周率πの近似(交互級数 を10,000項計算し、合計に4を掛ける)のコードを生成して実行。
-
-
コンテンツ
- https://github.com/ed-donner/agents/tree/main/3_crew/stock_picker
- https://github.com/ed-donner/agents/tree/main/3_crew/coder
- https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/3_stock_picker
- https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/4_coder
-
内容
-
要約
- さらにCrewに、リードに設計、バックエンドに実装、フロントエンドにUI作成、
テストエンジニアに単体テストを割り当て。 - 最後に、取引プラットフォーム用の口座管理・ポートフォリオ管理フレームワークを作る
コーディングチャレンジを実行 - UIやバックエンド・フロントエンドの連携がスムーズに動作した体験に非常に感動し、
これを強調 -
CrewAIは多機能で便利だが、
処理が隠蔽されているためデバッグが難しいというトレードオフがある。
- さらにCrewに、リードに設計、バックエンドに実装、フロントエンドにUI作成、
-
コンテンツ
-
LangGraphを学ぶ
-
コンテンツ
-
内容
-
要約
- LangChain社は3つの製品を提供している:
LangChain(最初期のLLMフレームワーク) / LangSmith(モニタリング) / LangGraph(エージェント) - 複雑なマルチエージェントワークフローを(ノード、エッジ、状態の)「グラフ」構造で設計、
安定性(人間の関与)・回復性(メモリ、状態復元)・再現性を重視。 -
LangGraphの商用戦略として、
Platformを前面に出して「LangGraph」と同一視して宣伝しているが、
実際に学習対象となるのはフレームワーク部分 - LangChain系は便利だが、抽象化が増えることで内部の仕組みが不透明になり、
デバッグが難しくなる。使う場合も内部の動きを理解することが重要。 - 構築の2フェーズと5ステップ:
構築フェーズ(状態クラスを定義 / グラフビルダー起動 / ノード作成 / エッジ作成 /
グラフをコンパイル)、実行フェーズ
- LangChain社は3つの製品を提供している:
-
内容
-
要約
-
LangGraphは、状態を不変オブジェクトとして扱い、
ノード関数とReducerによって安全に状態遷移を管理 - 余談:Redux の Reducer と同じで、現在の state と 一連の Action の流れを通じ
state を段階的に変化・集約。 - 変数や戻り値に「意味付け」をするPythonの型ヒント(特にAnnotated)が
Reducerを指定するために重要な役割を果たす。 - ノードを作り、グラフに追加し、エッジで接続し、コンパイルしてGradioチャットで実行する
一連の流れをランダム文章生成を例に紹介。
-
LangGraphは、状態を不変オブジェクトとして扱い、
-
コンテンツ
-
内容
-
要約
-
スーパーステップの概念、状態管理とReducer、チェックポイント機能について説明
- スーパーステップ:「グラフ全体の1回呼び出し」で並列実行ノードをまとめる。
- 状態管理とReducer:同一スーパーステップの状態変化をReducerで結合する。
- チェックポイント機能:各スーパーステップ終了後に状態を記録(凍結)
-
LangGraph上で、LangSmithの設定、LangChainの既製ツール利用、
カスタムツール作成、ツール呼び出し方法 -
GradioのチャットボットとLangGraphのエージェント・ツール呼び出しを
統合する手順と実行 -
チェックポイント機能により、独立した呼び出し間でも状態を保持・再現可能になり、
任意の時点に戻って再実行できる。 -
メモリをSQLiteで永続化し、ツール呼び出しや会話の状態を保持、
再起動や再利用時にも情報が維持されることを確認。
-
-
コンテンツ
-
内容
-
要約
-
Playwright
-
LangGraphを用いた非同期マルチエージェントワークフローの構築と、
Playwrightブラウザツールの統合手順の解説 - Pythonでブラウザ操作ツールを自動化し、
LLMと組み合わせてユーザー入力に応答するエージェントを構築・実行
-
LangGraphを用いた非同期マルチエージェントワークフローの構築と、
-
Sidekick
- 「Sidekick」と呼ばれる大きなプロジェクトに向け、
構造化出力とマルチエージェントフローを学ぶ。 - ワーカーLLMとエバリュエーターLLMを組み合わせたマルチエージェントフローで、
LLMの出力を構造化して評価・状態管理、
フィードバック処理を通じてタスク完遂を管理 - エージェントのワークフロー設計とルーティング→評価プロセスの解説
(条件付きルーティングでワーカーとエバリュエーターを連携させ、
状態と成功基準に応じてフローを制御) - GradioとLangGraphを使った「Sidekick personal coworker」のデモで
実装した内部的な仕組みを説明。
- 「Sidekick」と呼ばれる大きなプロジェクトに向け、
-
-
コンテンツ
- https://github.com/ed-donner/agents/blob/main/4_langgraph/3_lab3.ipynb
- https://github.com/ed-donner/agents/blob/main/4_langgraph/4_lab4.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/4_langgraph/3_lab3_ja.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/4_langgraph/4_lab4_ja.ipynb
-
内容
- エージェントAI:アシスタントにWeb検索、ファイルシステム、Python REPLを追加する
- LangChainツール連携:強力なAIサイドキックをゼロから構築する
- AIワークフローの作成:グラフビルダーとノード間通信技術
- Gradioアプリで状態管理を使い、独立したユーザーセッションを作成する
- AIフィードバックループの内部:AIがエラーを評価・修正する仕組みを見る
- AIアシスタントのアップグレード:メモリ、明確化の質問、カスタムツール
-
要約
- Sidekickアプリに様々なツールを組み込み、より強力なAIエージェントとして機能させる
- 機能:ウェブ検索、プッシュ通知送信、FSアクセス、Wikipedia参照、Pythonコード実行
(注意:自由度が上がれば危険性も高まる) - ノートブックでのプロトタイピングを経て、モジュールとして本番環境で利用する。
- 構成と調整(ワーカーのプロンプト → ルーティング → エバリュエーター設定 →
グラフ管理(構築と実行)→ クリーンアップ) - Gradio での UI 操作はUIイベントハンドリングされ、
Sidekickのエージェントのワークフローが呼び出され、そこで状態が管理される。 - デモ:Sidekickが計算や情報収集、レポート作成、ファイル更新などを自律的に行い、
評価フィードバックを取り込みながら正確にタスクを完遂 - 課題:=カスタマイズ、ポイントは「プロンプト、ツール追加、メモリやユーザー識別機能、
エージェント権限とタスクの分散、意欲的に実験」など。
-
コンテンツ
-
内容
-
要約
-
コンテンツ
-
内容
-
要約
-
AutoGen Agent Chatでは、マルチモーダル会話が可能、構造化出力が容易、
LangChainツールへのアクセスが可能 - エージェント間でフィードバックを回すチーム形式で、
より精度の高いアウトプットを生成可能だが
無限ループや処理長時間化のリスクに注意する必要がある。 - エージェントが脱線する問題は、よりインテリジェントな終了条件を設定することで防げる。
ハードコードされたテキスト検索だけに頼るのは避ける。 - MCP準拠のツールはAutoGenから簡単に利用可能。
mcp_server_toolsで任意の処理をMCPクライアント対応のエージェントから
使用できるようにMCPサーバから配信できる。
-
AutoGen Agent Chatでは、マルチモーダル会話が可能、構造化出力が容易、
-
コンテンツ
-
内容
-
要約
-
AutoGen Core は、
多様で分散した自律型エージェント同士のインタラクションを管理する基盤。 -
ライブラリ非依存でメッセージング機構とエージェント管理のみ提供、
エージェント間の相互作用に焦点を置く。 -
基本概念
- 分離の原則:エージェントのロジック(実際の動作)とメッセージの配信方法、
およびその相互作用を分離する。 - フレームワークの役割:エージェントの作成・ライフサイクル管理、メッセージ通信
- 分離の原則:エージェントのロジック(実際の動作)とメッセージの配信方法、
-
ランタイムの種類
- スタンドアロン:ローカルマシンでシンプルに実行
- 分散型:リモートのエージェント間で相互作用
-
AutoGen Coreが 「エージェント型の登録」「ID指定のメッセージルーティング」 を提供、
実際の処理はエージェントの実装に委ねられる。 -
「Hi there」→「You said 'Hi there' and I disagree」と回答するエージェントを組み合わせて、
どのようになるかを示す簡単なデモ -
続いて「じゃんけんゲーム」を構築・実行し、
AutoGenの本質は異なるエージェント同士が相互作用できる仕組みを
提供することを説明
-
-
コンテンツ
-
内容
-
要約
-
AutoGen Core の分散ランタイムはまだ実験的で、
本番利用には早いが将来性がある仕組み。 -
単一マシン上の処理ではなく、プロセスやマシンをまたいでメッセージングを行う。
-
構成要素は2つ:エージェントをホストサービスに登録し、分散環境で利用可能にする。
- ホスト・サービス:ワーカー・ランタイムを管理(セッション管理、メッセージ間通信)
- ワーカー・ランタイム:実際にエージェントを保持しコードを実行
-
エージェント起動のコードを変えるだけで、
エージェントの登録先ワーカー(プロセス)を変更できる。- 各エージェントを1つのワーカーに登録するか、別々のワーカーに登録するか変更できる。
- ワーカーの実体はプロセスで、単一プロセスか?複数プロセス構成か?を
起動コードで変更できる。 - なお、スレッドは基本使わず、非同期(asyncio)で
タスク並列処理がされる。
-
-
コンテンツ
-
内容
-
要約
-
コンテンツ
-
MCP を学ぶ
- PJ8:最終課題(集大成):6 台の MCP サーバーと 44 個のツールを活用し、
4 人のエージェントが自律的に取引を行うトレーディング フロアを構築。
- PJ8:最終課題(集大成):6 台の MCP サーバーと 44 個のツールを活用し、
-
コンテンツ
-
内容
- モデルコンテキストプロトコル(MCP)入門:AnthropicのAIコネクタ
- MCPアーキテクチャ解説:ホスト、クライアント、サーバーの理解
- MCPサーバー・スタジオ:LLMを強力な外部ツールに接続する
- MCPサーバーマーケットプレイス:OpenAIエージェントのための数千のツールへのアクセス
-
要約
- Anthropic社のModel Context Protocol (MCP) を中心に解説
(MCP は Anthropic社 が提唱・開発したプロトコル) - 目的は、AIエージェントやLLMが
外部のツールやデータソースと安全かつ標準化された方法でやり取りできるようにすること。 - LLMエージェントと外部ツール(データベース、API、アプリケーションなど)を
接続する仕組みとして設計されている。 - MCPは大きく3つの要素で構成される(ホスト / クライアント / サーバー)。
ホストがクライアントを使ってサーバからツールを取得。 - 3つのアーキテクチャモデル
(ローカル実行(テスト) / ローカル+外部(実際) / リモートサーバー(レア)) - よくある誤解、サーバーという言葉からサーバーで動作するものと考えがちだが、
多くはローカル起点で動作。 - 通信方式(トランスポート):stdio:一般的だがリモートでは利用不可。
SSE:HTTPSベースでリモートで利用可。 -
OpenAI Agents SDKにMCP(Model Context Protocol)が
統合された最新機能を使ったデモ - MCPサーバーは、PlaywrightやWeb Storage、MCP Weather、Slack、GitHub、
Blender接続など多数が公開されている。 - MCPは、これら数千もの外部ツールを数行のコードで統合できる仕組みが
シンプルながら強力。
- Anthropic社のModel Context Protocol (MCP) を中心に解説
-
コンテンツ
-
内容
-
要約
MCPクライアントとサーバーを使ったツール実行の裏側を理解し、
統一的にリソースを管理・共有できる仕組み を示し、演習を通して体験-
MCPサーバーを開発する(作らない場合、Function Callingだけで事足りる)
-
Cursor IDEのラボで独自の MCP サーバーを作成し、
Python モジュールをツールとして公開 - クライアント実装 (accounts.py) とサーバー実装 (accounts_server.py) を
分離して実装。 - 口座名、残高、戦略、保有資産、取引リスト、ポートフォリオ価値の時系列データから
株の売買やポートフォリオ計算を行う。 - サーバーにデコレートされた関数
(get_balance、get_holdings、buy_shares、sell_shares)が
自動的にクライアントに公開される。
-
Cursor IDEのラボで独自の MCP サーバーを作成し、
-
MCPクライアントを開発する
(クライアントはありモノ実装を使えばいいが、ココでは、あえて自作)- クライアントを使用してMCPサーバーと通信、ツールやパラメーターを取得&呼出。
- 必要になるのは、独自アプリケーションで複数のMCPサーバーを呼び出す場合や、
既存のSDKが利用できない場合。
-
-
コンテンツ
-
内容
- MCPナレッジグラフサーバーでAIエージェントに永続メモリを追加する
- MCPサーバーで Brave Search と Polygon.io をセットアップする
- 金融データAPIのセットアップ:MCPサーバー接続のクローンと設定
-
要約
3つのアーキテクチャモデル(ローカル実行 / ローカル+外部 / リモートサーバー)の実装- ローカル実行:ローカルストレージを使って、
構造化された関係性ベースのメモリをエージェントに追加 - ローカル実行:ローカルMCPサーバーで、Brave Searchのウェブ検索を利用
- ローカル+外部:Polygon.io のリモートMCPサーバーによる株価取得の試行
- ローカル実行:ローカルストレージを使って、
-
コンテンツ
-
内容
-
要約
最終課題では、OpenAI Agents SDKとMCPを用いた
自律型エージェント「Autonomous Polygon.io Agents」のシミュレーターを開発。- 金融市場を対象とした株式取引シミュレーションで、
4人のトレーダーと1人のリサーチャーが、
6つのMCPサーバーから16のツールやデータを取得して完全自律的に動作。 - リサーチャー:オンライン検索ツール(Brave)を使用し
市場調査やニュース収集など調査タスク担当に特化。MCPツールに変換される。 - トレーダー:MCPツールのリサーチャーが提供する情報に基づき取引判断を行う。
口座情報、メモリ共有、ウェブ取得、検索ツールを持ち、キャッシュ機能で効率化。 - 先ずは、EdというトレーダーをリサーチャーMCPツールで初期化し、
戦略に基づく意思決定・株取引を実行、トレースで活動全体を検証。 - さらに、trade と rebalance という2つの主要タスクをエージェントに実行させ、
自律的に株取引を行い、トレース様子を確認する。
- 金融市場を対象とした株式取引シミュレーションで、
-
コンテンツ
- https://github.com/ed-donner/agents/blob/main/6_mcp/
- https://github.com/ed-donner/agents/blob/main/6_mcp/4_lab4.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/4_lab4_ja.ipynb
-
内容
- 最終課題の集大成:AIトレーダーのためのプッシュ通知と戦略の進化
- AI取引ダッシュボード:Gradioでポートフォリオのパフォーマンスを可視化する
- エージェントAIエンジニアリング:コースの結論と実社会への応用
-
要約
-
複数の自律エージェントがシミュレーション取引環境で取引を行う
Autonomous Polygon.io Agentsに機能を追加し完成させる。 -
4人のトレーダー:ウォーレン(ファンダメンタル)、ジョージ(マクロ経済イベント)、
レイ(マクロ経済サイクル)、キャシー(イノベーション) -
トレーダー毎にLLMを変え、新しいMCPツールとして「戦略変更」「プッシュ通知」を
追加して使用。 -
フロア(各トレーダーの取引やリバランスを実行)を追加し、GradioによるUIを実装する。
-
重要なこと
- 解決策ではなく、問題から始める
- 成功を評価する指標を持つ
- 最初は自律性よりもワークフローを優先する
- トップダウンではなくボトムアップで作業する
- シンプルに始め、それから追加していく
- 大規模なフロンティアモデルから始め削減していく
- メモリではなく実際のコンテキストを考慮
- ほとんどの問題はプロンプトで解決する
- トレースを見ること
- 研究者になる。研究開発への近道はない。
-
-
コンテンツ
- https://github.com/ed-donner/agents/blob/main/6_mcp/
- https://github.com/ed-donner/agents/blob/main/6_mcp/5_lab5.ipynb
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/
- https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/5_lab5_ja.ipynb
- WSL2で構築するWindows 11で動くLinux環境とCursor(カーソル)のセットアップ|sojin
http://note.com/sojin25/n/nd50cb457d882 - CursorやWindsurfを日本語化する方法【忘備録】 #VSCode - Qiita
https://qiita.com/k1mu0419/items/2d903660d1f571abb8f2
(元 Wiki では未記載)
移行メモ
PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、
- 同一ページ内のアンカは、見出しから生成されるアンカに張り替え、
- 他ページのアンカを指すリンクは「〜(
ページ名の該当節を参照)」の形に置き換えた。Week1〜Week6 に「Day1」〜「Day5」の見出しが重複し GitHub Wiki ではアンカが衝突するため、 「Day1(Week1)」のように括弧で週を補って一意にした(計 30 見出し)。
元 Wiki の取り消し線(
%%…%%)は<del>に置き換えた。元ページの誤記を修正した。 「明示的制御が必要とが確認された」→「明示的制御が必要であることが確認された」、 「実験的な試として」→「実験的な試みとして」、 「機能に付いて説明」→「機能について説明」、 「Magenta One」→「Magentic-One」、 「[OpenAI API]]を使った」→「OpenAI APIを使った」 (PukiWiki のリンク記法が壊れていた)。
Week3 Day4 の「5つのメモリタイプ」は、 実際に列挙されているのが 4 種類(長期・短期・実体・文脈)であるため 「4つのメモリタイプ」に修正した。
「スライド」の節は元 Wiki が「...」のみで内容が無いため、その旨を注記した。
Tags: 移行, Udemy, エージェント, Agentic AI, OpenAI Agents SDK, CrewAI, LangGraph, AutoGen, MCP, Cursor
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。