「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>テキスト生成系(Transformer系)]] > [[教育系>テキスト生成系(Transformer系)#eab0d86b]] --[[LLM Engineering:Master AI、Large Language Models&Agents]] --The Complete Agentic AI Engineering Course (2025) *目次 [#h8073cbd] #contents *概要 [#cd603494] -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エージェント):将来の雇用主にあなたを代表する独自のエージェントを構築して展開。 -第2週:[[OpenAI]] Agents SDKを学ぶ --PJ2:即席のSDR(セールス・ディベロップメント・レプレゼンタティブ)エージェント:プロフェッショナルなメールを作成して送信する営業担当者を作成。 --PJ3:独自のDeep Researchエージェント:[[OpenAI]]のホスト型ツールを使用して任意のトピックについて徹底的な調査を行うエージェント・チームを実装。 -第3週:CrewAI を学ぶ --PJ4:財務調査・分析エージェント(Stock Picker):CrewAI を使用して数分で構築し、良い投資先の検索を自動化。 --PJ5:4エージェント・エンジニアリング・チーム:Docker上にCrewAIの独自エージェント・チームを展開してアプリを開発。 -第4週:[[LangGraph>LangChain]]を学ぶ --PJ6:[[OpenAI]]のAIエージェント「Operator」の独自バージョン、相棒・相方(Sidekick):コレは、[[LangGraph>LangChain]]を介してブラウザー内で連携。 -第5週:[[AutoGen]]を学ぶ --PJ7:[[AutoGen]]を使用して新しいエージェントを構築および起動し、無限の AI の可能性を解き放つAgent Creator: -第6週:MCP を学ぶ --PJ8:最終課題(集大成):6 台の MCP サーバーと 44 個のツールを活用し、4 人のエージェントが自律的に取引を行うトレーディング フロアを構築。 *詳細 [#s39e8b29] -前提知識として、エージェントの下位スタックにあたる「[[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上にコードが配置されている。 -前提 --前提知識として、エージェントの下位スタックにあたる「[[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エージェントについて[[コチラ>LLMエージェント]]を見ておく。 --何故、自前で実装する?~ → SDKでカスタム開発されたエージェントが、特化型のタスクにおいて顕著な性能差を示すため。 ---ローコードの汎用エージェント < ライブラリの汎用エージェント < SDKで開発されたカスタム・エージェント ---ローコードは設定可能な範囲が限られ、微調整や複雑な条件分岐が困難、SDKカスタムは、内部のデータ、アルゴリズムまで制御可能 ---出力制御と品質保証:関数呼び出しだけでは「応答が壊れていた場合のハンドリング」が弱いので、結果のバリデーション + 評価ループによる再実行を書く必要あり。 ---複数エージェントやツールのオーケストレーション:複数のツール選択やハンドオフ制御は、単純な関数呼び出しではなく「フロー制御」が必要 --何故、複数のフレームワークを紹介する?~ → エージェントはタスクが複雑で多様で、抽象化レイヤーが多く、フレームワークごとに得意領域が異なる。 ---このため、エージェント設計では「どのフレームワークを使うか」がパフォーマンスや拡張性に直結する。 ---様々なフレームワークに触れておくことで、最適な選択を可能にする選択・比較能力の養成が目的。 **前提ソフト [#ve30029a] ***環境 [#ea76807c] -ちなみに講師のローカル環境はMACのM1だが、私は、[[WSL2 Ubuntu 24.04 LTS>WSL2 Ubuntu 24.04 LTS 2025/1/21]]だった。 -Cursor IDEはWindows側に入れてPython、Jupyter、WSLプラグインでUbuntuと接続([[参考>#def28b57]])。 -仮想環境を起動したら、Jupyter Labを起動して、カーネルを[Existing Jupyter Server]からURLで指定する。 -(手順では)カーネルから直接、仮想環境を選択できるような説明だったが、WSL経由だとできないのかもしれない。 -[[プロキシ環境下、特にSSLフォワード・プロキシでは少々手こずる可能性がある。>プロキシの設定方法]] ※ [[Cursor IDEは、VS Code+GitHubに切り替えても良い。>#k5b7df6d]]。なお、可視性は、Jupyter Labの方が良い。 ***パッケージ [#i87adacc] -LLMクライアント --[[OpenAI]] --Anthropic:[[OpenAI]] SDK互換性を2025/8/1に停止(ClaudeでGPT-5の開発を支援していたとか) --LightLLM:LangChainのような複雑な構造がなく、あらゆるLLMに簡単に接続。 -UI(Gradio、Streamlit) -LLM向けフレームワーク --[[LangChain]] --Semantic Kernel -エージェント --[[OpenAI]] Agents SDK~ (以前はSwarmと呼ばれていた) --CrewAI --[[AutoGen]] --[[LangGraph>LangChain]] -データストア --SQLite --Chroma -Agentツール --langchain_community ---FileManagementToolkit:ローカルファイルと対話 ---GoogleSerperAPIWrapper:Google検索Serper APIのラッパ ---WikipediaAPIWrapper:Wikipedia検索MediaWiki APIのラッパ ---PlayWrightBrowserToolkit:次世代Selenium、MS製 - UIオートメーション ---PythonREPLTool:対話型実行環境(≒即時実行結果確認)ツール ***アプリ [#k5b7df6d] -JupyterLab -Cursor IDE~ VS CodeベースのAI支援機能を搭載したコードエディタでJupyterの代替にNotebook系の開発に使える。 -Visual Studio Code~ ...と言う事は、VS Code+GitHubでも、大凡、Cursor IDEと同じ様に使える。 ***サービス [#o833f7b3] -[[OpenAI]]、Anthropic、Gemini、DeepSeek、Groq -OpenRouter(紹介のみ、互換API、課金の一本化) -MCPサーバー --Brave Search --Polygon.io %%Alpha Vantage API%% -Serper API -MediaWiki API -Pushover(✕ Twilio) -SendGrid(→ Resend) **Week1 [#td286183] -基礎を学ぶ --PJ1:キャリアアバター(自己紹介AIエージェント):将来の雇用主にあなたを代表する独自のエージェントを構築して展開。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/1_foundations --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/1_foundations/ -- ***Day1 [#g92eb7d5] -内容 --自律型AIエージェントデモ:n8nを使ったスマートホームデバイスの制御 --AIエージェントフレームワーク解説:[[OpenAI]] SDK、[[CrewAI]]、[[LangGraph>LangChain]]、[[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、仮想環境管理には UV を使用(Anacondaの代替)。 --環境設定:Windows/Mac/Linux(GitHubリポジトリの取得 → Cursor IDE導入 → uvで環境構築 → [[OpenAI API]]キー設定 → .envファイル作成) --演習課題:エージェント的 (1) LLMにビジネスセクターを選ばせる (2) そのセクターのペインポイントを特定させる (3) AIソリューションを提案させる -コンテンツ --https://github.com/ed-donner/agents/blob/main/1_foundations/1_lab1.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/1_foundations/1_lab1_ja.ipynb ***Day2 [#o1d5f7f8] (座学) -内容 --効果的なエージェントの構築:LLMの自律性とツール連携の解説 --堅牢なAIシステムを構築するための5つの必須LLMワークフローデザインパターン --LLMアプリケーション設計におけるエージェントパターンとワークフローパターンの理解 -要約~ エージェントの定義は曖昧だが「エージェントアーキテクチャ」の理論解説。 --一般的な特徴:複数LLM呼び出し、ツール使用、連携、プランナー、自律性。 --Hugging Faceの定義:LLMの出力がワークフローを制御するプログラム --Anthropicの区分:ワークフロー vs エージェント --多くの「エージェント」と呼ばれるものは実際にはワークフロー --[[エージェントの定義(エージェントらしさ、デザインパターン)>LLMエージェント#x3f0673e]] -コンテンツ -- ***Day3 [#u9408f0b] -内容 --複数LLMのオーケストレーション:GPT-4o、Claude、Gemini、DeepSeekの比較 --マルチLLM API連携:[[OpenAI]]、Anthropic、その他のモデルの比較 --LLM APIの比較:[[OpenAI]]クライアント・ライブラリでClaude、Geminiなどを利用する --複数LLMのオーケストレーション:AIの応答を評価するシステムの構築 --エージェントのデザインパターンとツール利用の連携:AI構築に不可欠な要素 -要約~ 「エージェント型ワークフローの構築」と「複数LLMのオーケストレーション」に焦点 --使用モデル([[OpenAI]]、Claude、Gemini、DeepSeek、Groq、Ollama)をVellum Leaderboardで比較 --Cursor IDE上で複数のLLMを設定・呼び出し、応答を取得・比較しながら学ぶ実践型ラボ --Anthropic以外、[[OpenAI]]互換API形式を採用。ローカル実行はリソースに依存、適切なモデルを選択。 --複数LLMの回答を評価・順位付けするPythonモデル間オーケストレーション実装と商業的応用例 -コンテンツ --https://github.com/ed-donner/agents/blob/main/1_foundations/2_lab2.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/1_foundations/2_lab2_ja.ipynb ***Day4 [#of86c961] -内容 --AIエージェントフレームワークの比較:LLMオーケストレーションにおけるシンプルさとパワー --リソース&ツール:エージェントAIでLLMの能力を強化する2つの方法 --Gradioと[[OpenAI]]であなたのように振る舞うキャリアアバター(経歴紹介AI)を構築 --Geminiを使ってGPT-4の応答を評価する:マルチLLMパイプライン --エージェントLLMワークフローの構築:リソース、ツール、構造化出力 -要約~ --フレームワーク「使わない:MCP直」、「軽量:[[OpenAI]]、[[CrewAI]]」、「重量:[[LangGraph>LangChain]]、[[AutoGen]]」 --リソース・構造化出力・ツールを組み合わせ、エージェント的フローを構築する。 --「リソース:LLMの回答を強化する情報やデータ」「ツール:LLMに拡張アクションを実行させる手段」 ---リソース実装:GradioのUIからPyPDF2で読んでLLMに投げるキャリアアバター(経歴紹介AI) ---構造化出力:自己紹介の内容の評価を構造化出力 ---ツール実装:評価 → 再回答(今回は手書き、デバッグ技術で内部動作を把握) -コンテンツ --https://github.com/ed-donner/agents/blob/main/1_foundations/3_lab3.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/1_foundations/3_lab3_ja.ipynb ***Day5 [#kc86084a] -内容 --キャリアアバター(経歴紹介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 **Week2 [#c23688fe] -[[OpenAI]] Agents SDKを学ぶ --PJ2:即席のSDR(セールス・ディベロップメント・レプレゼンタティブ)エージェント:プロフェッショナルなメールを作成して送信する営業担当者を作成。 --PJ3:独自のDeep Researchエージェント:[[OpenAI]]のホスト型ツールを使用して任意のトピックについて徹底的な調査を行うエージェント・チームを実装。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/2_openai --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/2_openai/ -- ***Day1 [#n8daf7f2] -内容 --非同期Pythonの理解:[[OpenAI]] Agents SDKの基礎 --[[OpenAI]] Agents SDKの基礎:エージェントの作成、トレース、実行 --[[OpenAI]] Agents SDK入門:Agent、Runner、Traceクラスの概要 --Vibe Coding:LLMで効率的にコードを生成するための5つの必須テクニック --[[OpenAI]] Agents SDK:AI開発のためのコアコンセプトの理解 -要約 --[[OpenAI]] Agents SDK ---asyncioの基本概念を理解することが必須で、特にI/O待ちの多いエージェント処理で威力を発揮 ---重要な用語:エージェント、ハンドオフ、ガードレール ---実行ステップ:create、with trace、await runner.run --バイブコーディング ---LLMにコードを生成させ、それに少し修正を加えながら進めるアドホックな作業モード ---5つのヒント:① 1つ1つ丁寧に、② 鵜呑みにせず、③ 検証的に、④ 段階的に、⑤ 根拠含め多様な解を得る。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/2_openai/1_lab1.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/2_openai/1_lab1_ja.ipynb ***Day2 [#ncd0ab68] -内容 --SendGrid(→ Resend)でAIセールスエージェントを構築:Agent SDKでのツールと連携 --並行LLM呼び出し:並列エージェント実行のためのAsyncioの実装 --エージェントをツールに変換する:階層的なAIシステムの構築 --エージェントの制御フロー:ハンドオフとエージェント as ツールの使い分け --関数呼び出しからエージェントの自律性へ:[[OpenAI]] SDKによるセールスオートメーション --ビジネス向けエージェントAI:インタラクティブなセールスアウトリーチツールの作成 -要約 --SendGrid(→ Resend)を使ったメール送信環境を準備し、3種類のSales Development Agentを作成してストリーミングでメールコンテンツを生成 --[[OpenAI]]の@function_toolデコレータを使うことで、以前は大量のJSONを手動で書く必要があったツール化が大幅に簡略化 --複数のエージェントをツール化し、管理エージェントは与えられたツールを使ってメールを生成し最良のモノを選びハンドオフで送信。 --「ツール化:エージェントを外部から呼び出せる道具として提供」「ハンドオフ化:タスクを他のエージェントやシステムに引き渡す」 -コンテンツ --https://github.com/ed-donner/agents/blob/main/2_openai/2_lab2.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/2_openai/2_lab2_ja.ipynb ※ ハンドオフはエージェントフローを「指揮」せず「委任」の形で実装できる感じ。 ***Day3 [#d646dd11] -内容 --マルチモデル連携:[[OpenAI]]エージェントでGemini、DeepSeek、Groqを使用する --堅牢なAIエージェントシステムのためのガードレールと構造化出力の実装 --実践におけるAIセーフティ:LLMエージェントアプリケーションのためのガードレールの実装 -要約 --異なるLLM([[OpenAI]]以外含む)をAgents SDKで扱う。ツール化とハンドオフ、構造化出力とガードレール導入。 --事例から、自律型エージェントは本質的に不安定さを持ち、明示的制御が必要とが確認された。 --AnthropicのClaudeが[[OpenAI]]互換でないためOpenRouterやMCPプロトコルといった代替手段を紹介。 --「careful sales manager」というエージェントで構造化出力 → ガードレールでPII(個人情報)入力を防ぐ。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/2_openai/3_lab3.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/2_openai/3_lab3_ja.ipynb ***Day4 [#j67cddf1] -内容 --深層リサーチエージェントの構築:[[OpenAI]]のWeb検索ツールの実装 --プランナーエージェントの構築:AIにおけるPydanticによる構造化出力の活用 --GPT-4エージェントと非同期タスクによるエンドツーエンドのリサーチパイプライン構築 --深層リサーチエージェントの構築:AsyncIOによる並列検索 -要約 --Deep Researchはエージェント型AIの典型的なユースケースを紹介 ---独自のDeep Researchエージェントを[[OpenAI]]のホスト型ツールを使用して実装。 ---ホスト型ツールには「Web検索ツール」「ファイル検索ツール」「コンピュータ・ツール」がある。 ---今回は「Web検索ツール」を使い、コレは、1回あたり2.5セント程度のコストがかかる。 ---実際に「2025年の最新AIエージェントフレームワーク」を検索、~ [[LangChain]], [[LangGraph>LangChain]], [[CrewAI]], Semantic Kernel, [[AutoGen]] などの結果を得る。 --クエリを受け取り、その調査に役立つ複数の検索クエリを考案するエージェントを作成 ---実際に検索を行うのではなく、検索計画(検索すべきキーワードと理由)を構造化出力で返す。 ---1回の検索に約2.5セントかかるため、初期設定は3回の検索に制限。回数を増やせば網羅性は増すがコストも上がる。 ---構造化は、WebSearchPlan(searches = WebSearchItem(reason、query)のリスト)のPydanticモデルとして出力される。 ---docstringで注釈を加えることでモデルの出力品質を高める(内容、意味や制約、期待する値の形式を自然言語で補足) --AIエージェント(検索計画、検索実行、レポート作成、メール送信)を組み合わせて調査レポートを作成・メール送信 --各エージェントを関数でラップする。関数を順次呼び出すフローを書くことで、エージェント・フローを実装できる。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/2_openai/4_lab4.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/2_openai/4_lab4_ja.ipynb ***Day5 [#h6c42a49] -内容 --Gradio UI実装によるモジュール型AIリサーチシステムの構築 --深層リサーチアプリ:Gradioで自律型AIエージェントを可視化・監視する --GradioとHuggingFace Spacesでスマートリサーチエージェントをデプロイする -要約 --ノートブックで試作したエージェントを整理されたPythonモジュールとGradio UIへ移行 --試作コードから本格的なアプリケーション構造へ進化させるプロセスを学ぶ --deep_researchスクリプトをUV経由で実行し、Gradio UIに非同期リサーチ結果を表示 --GradioでUIを調整し、Gradio deployでHugging Faceにデプロイして共有可能。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/2_openai/deep_research --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/2_openai/deep_research --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/2_openai/5_lab5_ja.ipynb **Week3 [#h7fab763] -[[CrewAI]]を学ぶ --PJ4:財務調査・分析エージェント(Stock Picker):[[CrewAI]]を使用して数分で構築し、良い投資先の検索を自動化。 --PJ5:4エージェント・エンジニアリング・チーム:Docker上に[[CrewAI]]の独自エージェント・チームを展開してアプリを開発。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/3_crew --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/ ***Day1 [#c9871b08] -内容 --[[CrewAI]]フレームワーク:協調型AIエージェントチームの作成 --[[CrewAI]]フレームワーク解説:エージェント、タスク、処理モードのチュートリアル --[[CrewAI]]とLightLLM:複数LLMを連携させる柔軟なフレームワーク --[[CrewAI]]チュートリアル:GPT-4o miniを使ったディベートプロジェクトのセットアップ --[[CrewAI]]と複数LLMでAIディベートシステムを作成する方法 --[[CrewAI]]でAIディベートシステムを構築:異なるLLMの比較 -要約 --[[CrewAI]]は uv ツールを利用しており、プロジェクトも uv ベースでセットアップされる。 --[[CrewAI]]が提供する3つのプロダクト、Enterprise / UI Studio / Frameworkで、ココでは、OSSのFrameworkにフォーカス。 --Frameworkのエージェントには、Crews:自律協調的に問題解決を行う方式と、Flows:決定論的で監査可能なワークフロー方式がありココでは前者にフォーカス。 --Crewの概念:「エージェント」と「タスク」の集合体で、実行モードにはシーケンシャル・ヒエラルキー型がある。「エージェント」は「役割・目標・バックストーリー」を持ち「タスク」を処理する。 --Crewごとに 完全なプロジェクトとディレクトリ構造 が自動生成され、エージェントやタスクは、@CrewBase, @agent, @crew, @taskなどのデコレータで整理、YAMLファイルで設定可能 --Cursorで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 ***Day2 [#b480dc68] -内容 --[[CrewAI]]プロジェクトの構築:ツール、コンテキスト、Google検索連携 --[[CrewAI]]でマルチエージェント金融リサーチシステムを構築する --Web検索でAIエージェントを強化:知識のカットオフ問題を解決する -要約 --[[CrewAI]]を使った財務調査・分析エージェントの設定、タスク構築、モデル選択、実行までのフローをステップごとに解説 --高速Google検索APIのSerper API(無料クレジット)を準備、サインアップ後、APIキーを取得し環境変数「SERPER_API_KEY」を設定 --最新のテスラの財務調査・分析レポートを生成。ツール追加で最新情報を取得できるようになり、高品質な自動レポート作成が可能に。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/3_crew/financial_researcher --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/2_financial_researcher ***Day3 [#x38dd3cd] -内容 --[[CrewAI]]で株式ピッカーを構築:投資のためのマルチエージェントシステム --[[CrewAI]]でのPydantic出力の実装:株式ピッカーエージェントチュートリアル --[[CrewAI]]のカスタムツール開発:JSONスキーマとプッシュ通知 -要約 --新しいプロジェクト「株式銘柄選択ツール」を構築し、[[CrewAI]]の応用例を学ぶ。 --3つの新要素:「Crewでの構造化出力」「カスタムツール(Serper+Pushover)」「ヒエラルキー型」 --エージェント・タスクを1対1で対応させる。 ---エージェント(Manager、Trending Company Finder、Financial Researcher、Stock Picker) ---タスク(Find Trending Companies、Research Trending Companies、Pick Best Company) -コンテンツ --https://github.com/ed-donner/agents/tree/main/3_crew/stock_picker --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/3_stock_picker ***Day4 [#k450b6cf] -内容 --[[CrewAI]]のメモリ:AIエージェントのためのベクトルストレージとSQL実装 --コーディングタスクのための[[CrewAI]]:Pythonコードを生成・実行するエージェント --Pythonを記述するAIエージェントの作成:Coderによる実践的な実装 -要約 --銘柄選択プロジェクトへのメモリ組み込み。 ---5つのメモリタイプ(種類):長期(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 ***Day5 [#t641dbc5] -内容 --AIチームの構築:協調開発のための[[CrewAI]]の設定 --株式取引フレームワークのための協調型AIエージェント開発 --GPT-4oとClaudeを使って取引アプリケーションを構築する --単一モジュールから完全なシステムへ:高度な[[CrewAI]]テクニック -要約 --さらにCrewに、リードに設計、バックエンドに実装、フロントエンドにUI作成、テストエンジニアに単体テストを割り当て。 --最後に、取引プラットフォーム用の口座管理・ポートフォリオ管理フレームワークを作るコーディングチャレンジを実行 --UIやバックエンド・フロントエンドの連携がスムーズに動作した体験に非常に感動し、これを強調 --[[CrewAI]]は多機能で便利だが、処理が隠蔽されているためデバッグが難しいというトレードオフがある。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/3_crew/engineering_team --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/3_crew/5_engineering_team **Week4 [#n9914116] -[[LangGraph>LangChain]]を学ぶ --PJ6:[[OpenAI]]のAIエージェント「Operator」の独自バージョン、相棒・相方(Sidekick):コレは、[[LangGraph>LangChain]]を介してブラウザー内で連携。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/4_langgraph --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/4_langgraph/ ***Day1 [#k64f2799] -内容 --[[LangGraph>LangChain]]解説:堅牢なAIエージェントを実現するグラフベースアーキテクチャ --[[LangGraph>LangChain]]解説:フレームワーク、Studio、Platformコンポーネントの比較 --[[LangGraph>LangChain]]の理論:高度なエージェントシステムを構築するためのコアコンポーネント -要約 --LangChain社は3つの製品を提供している:[[LangChain(最初期のLLMフレームワーク) / LangSmith(モニタリング) / LangGraph(エージェント)>LangChain]] --複雑なマルチエージェントワークフローを(ノード、エッジ、状態の)「グラフ」構造で設計、安定性(人間の関与)・回復性(メモリ、状態復元)・再現性を重視。 --[[LangGraph>LangChain]]の商用戦略として、Platformを前面に出して「[[LangGraph>LangChain]]」と同一視して宣伝しているが、実際に学習対象となるのはフレームワーク部分 --LangChain系は便利だが、抽象化が増えることで内部の仕組みが不透明になり、デバッグが難しくなる。使う場合も内部の動きを理解することが重要。 --構築の2フェーズと5ステップ:構築フェーズ(状態クラスを定義 / グラフビルダー起動 / ノード作成 / エッジ作成 / グラフをコンパイル)、実行フェーズ -コンテンツ --... ***Day2 [#k2f14df5] -内容 --[[LangGraph>LangChain]]深掘り:グラフベースのエージェントワークフローにおける状態管理 --[[LangGraph>LangChain]]をマスターする:状態オブジェクトの定義とリデューサーの使用方法 --[[LangGraph>LangChain]]の基礎:ノード、エッジ、ワークフローのステップバイステップ作成 --[[LangGraph>LangChain]]チュートリアル:グラフ構造を持つ[[OpenAI]]チャットボットの構築 -要約 --[[LangGraph>LangChain]]は、状態を不変オブジェクトとして扱い、ノード関数とReducerによって安全に状態遷移を管理 --余談:Redux の Reducer と同じで、現在の state と 一連の Action の流れを通じ state を段階的に変化・集約。 --変数や戻り値に「意味付け」をするPythonの型ヒント(特にAnnotated)がReducerを指定するために重要な役割を果たす。 --ノードを作り、グラフに追加し、エッジで接続し、コンパイルしてGradioチャットで実行する一連の流れをランダム文章生成を例に紹介。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/4_langgraph/1_lab1.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/4_langgraph/1_lab1_ja.ipynb ***Day3 [#t40cf0b5] -内容 --[[LangGraph>LangChain]]上級チュートリアル:スーパーステップとチェックポイント機能の解説 --[[Langsmith>LangChain]]のセットアップと[[LangGraph>LangChain]]アプリケーション用カスタムツールの作成 --[[LangGraph>LangChain]]のツール呼び出し:条件付きエッジとツールノードの操作 --[[LangGraph>LangChain]]のチェックポイント機能:会話間でメモリを維持する方法 --SQLiteによる永続的AIメモリの構築:[[LangGraph>LangChain]]の状態管理 -要約 --スーパーステップの概念、状態管理とReducer、チェックポイント機能に付いて説明 ---スーパーステップ:「グラフ全体の1回呼び出し」で並列実行ノードをまとめる。 ---状態管理とReducer:同一スーパーステップの状態変化をReducerで結合する。 ---チェックポイント機能:各スーパーステップ終了後に状態を記録(凍結) --[[LangGraph>LangChain]]上で、LangSmithの設定、LangChainの既製ツール利用、カスタムツール作成、ツール呼び出し方法 --Gradioのチャットボットと[[LangGraph>LangChain]]のエージェント・ツール呼び出しを統合する手順と実行 --チェックポイント機能により、独立した呼び出し間でも状態を保持・再現可能になり、任意の時点に戻って再実行できる。 --メモリをSQLiteで永続化し、ツール呼び出しや会話の状態を保持、再起動や再利用時にも情報が維持されることを確認。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/4_langgraph/2_lab2.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/4_langgraph/2_lab2_ja.ipynb ***Day4 [#nab60c2e] -内容 --[[LangGraph>LangChain]]とPlaywrightの連携:WebブラウジングAIエージェントの作成 --AIウェブアシスタントの作成:Playwright、LangChain、Gradioの実装 --LLM評価者エージェント:構造化出力によるフィードバックループの作成 --LLMフィードバックループの作成:[[LangGraph>LangChain]]でのワーカー・評価者パターンの実装 --[[LangGraph>LangChain]]、Gradio、ブラウザオートメーションでAIサイドキックを構築する -要約 --Playwright ---[[LangGraph>LangChain]]を用いた非同期マルチエージェントワークフローの構築と、Playwrightブラウザツールの統合手順の解説 ---Pythonでブラウザ操作ツールを自動化し、LLMと組み合わせてユーザー入力に応答するエージェントを構築・実行 --Sidekick ---「Sidekick」と呼ばれる大きなプロジェクトに向け、構造化出力とマルチエージェントフローを学ぶ。 ---ワーカーLLMとエバリュエーターLLMを組み合わせたマルチエージェントフローで、LLMの出力を構造化して評価・状態管理、フィードバック処理を通じてタスク完遂を管理 ---エージェントのワークフロー設計とルーティング→評価プロセスの解説(条件付きルーティングでワーカーとエバリュエーターを連携させ、状態と成功基準に応じてフローを制御) ---Gradioと[[LangGraph>LangChain]]を使った「Sidekick personal coworker」のデモで実装した内部的な仕組みを説明。 -コンテンツ --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 ***Day5 [#l14398ec] -内容 --エージェントAI:アシスタントにWeb検索、ファイルシステム、Python REPLを追加する --LangChainツール連携:強力なAIサイドキックをゼロから構築する --AIワークフローの作成:グラフビルダーとノード間通信技術 --Gradioアプリで状態管理を使い、独立したユーザーセッションを作成する --AIフィードバックループの内部:AIがエラーを評価・修正する仕組みを見る --AIアシスタントのアップグレード:メモリ、明確化の質問、カスタムツール -要約 --Sidekickアプリに様々なツールを組み込み、より強力なAIエージェントとして機能させる --機能:ウェブ検索、プッシュ通知送信、FSアクセス、Wikipedia参照、Pythonコード実行(注意:自由度が上がれば危険性も高まる) --ノートブックでのプロトタイピングを経て、モジュールとして本番環境で利用する。 --構成と調整(ワーカーのプロンプト → ルーティング → エバリュエーター設定 → グラフ管理(構築と実行)→ クリーンアップ) --Gradio での UI 操作はUIイベントハンドリングされ、Sidekickのエージェントのワークフローが呼び出され、そこで状態が管理される。 --デモ:Sidekickが計算や情報収集、レポート作成、ファイル更新などを自律的に行い、評価フィードバックを取り込みながら正確にタスクを完遂 --課題:=カスタマイズ、ポイントは「プロンプト、ツール追加、メモリやユーザー識別機能、エージェント権限とタスクの分散、意欲的に実験」など。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/4_langgraph/ --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/4_langgraph/5_lab5_ja.ipynb **Week5 [#i48413af] -[[AutoGen]]を学ぶ --PJ7:[[AutoGen]]を使用して新しいエージェントを構築および起動し、無限の AI の可能性を解き放つAgent Creator: -コンテンツ --https://github.com/ed-donner/agents/tree/main/5_autogen --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/5_autogen ***Day1 [#t7ce4ee5] -内容 --Microsoft [[AutoGen]] 0.5.1:初心者のためのAIエージェントフレームワーク解説 --[[AutoGen]]と他のエージェントフレームワークの比較:機能とコンポーネント --[[AutoGen]] Agent Chatチュートリアル:ツール作成とデータベース連携 --AIの必須コンポーネント:モデル、メッセージ、エージェントの解説 -要約 --[[AutoGen]]は手早く学べる非常に軽量でシンプルなフレームワークで、他との共通点も多い。 --同名の分派 AG2 が存在するため、混同しないよう注意が必要。ココではMS公式版を採用。 --[[AutoGen]]は単一ではなく集合体(Core、AgentChat、Studio、Magenta One) --中心的な構成要素(特にAgentChatの)Models、Messages、Agents、Teams -コンテンツ --https://github.com/ed-donner/agents/blob/main/5_autogen/1_lab1_autogen_agentchat.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/1_lab1_autogen_agentchat_ja.ipynb ***Day2 [#ec214a8a] -内容 --高度な[[AutoGen]] Agent Chat:マルチモーダル機能と構造化出力 --[[AutoGen]]と[[LangChain]]でプライマリーエージェントと評価者エージェントを実装する --ヘッドレスWebスクレイピングチュートリアル:[[AutoGen]]でのMCPサーバーフェッチ連携 -要約 --[[AutoGen]] Agent Chatでは、マルチモーダル会話が可能、構造化出力が容易、[[LangChain]]ツールへのアクセスが可能 --エージェント間でフィードバックを回すチーム形式で、より精度の高いアウトプットを生成可能だが無限ループや処理長時間化のリスクに注意する必要がある。 --エージェントが脱線する問題は、よりインテリジェントな終了条件を設定することで防げる。ハードコードされたテキスト検索だけに頼るのは避ける。 --MCP準拠のツールはAutoGenから簡単に利用可能。mcp_server_toolsで任意の処理をMCPクライアント対応のエージェントから使用できるようにMCPサーバから配信できる。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/5_autogen/2_lab2_autogen_agentchat.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/2_lab2_autogen_agentchat_ja.ipynb ***Day3 [#s0f5746c] -内容 --[[AutoGen]] Core:分散エージェント通信のバックボーン --[[AutoGen]] Coreでのエージェント通信:メッセージハンドラとディスパッチ --[[AutoGen]] Coreのエージェント登録とメッセージハンドリング:実践例 --[[AutoGen]] Coreスタンドアロンエージェント:GPT-4oとLlamaでじゃんけん -要約 --[[AutoGen]] Core は、多様で分散した自律型エージェント同士のインタラクションを管理する基盤。 --ライブラリ非依存でメッセージング機構とエージェント管理のみ提供、エージェント間の相互作用に焦点を置く。 --基本概念 ---分離の原則:エージェントのロジック(実際の動作)とメッセージの配信方法、およびその相互作用を分離する。 ---フレームワークの役割:エージェントの作成・ライフサイクル管理、メッセージ通信 --ランタイムの種類 ---スタンドアロン:ローカルマシンでシンプルに実行 ---分散型:リモートのエージェント間で相互作用 --[[AutoGen]] Coreが 「エージェント型の登録」「ID指定のメッセージルーティング」 を提供、実際の処理はエージェントの実装に委ねられる。 --「Hi there」→「You said 'Hi there' and I disagree」と回答するエージェントを組み合わせて、どのようになるかを示す簡単なデモ --続いて「じゃんけんゲーム」を構築・実行し、[[AutoGen]]の本質は異なるエージェント同士が相互作用できる仕組みを提供することを説明 -コンテンツ --https://github.com/ed-donner/agents/blob/main/5_autogen/3_lab3_autogen_core.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/3_lab3_autogen_core_ja.ipynb ***Day4 [#ucfd48c6] -内容 --[[AutoGen]] Core分散ランタイム:アーキテクチャとコンポーネントの解説 --[[AutoGen]] CoreとgRPCランタイムで分散AIエージェントを実装する --分散エージェントシステムの構築:[[AutoGen]]のクロスプロセス通信 -要約 --[[AutoGen]] Core の分散ランタイムはまだ実験的で、本番利用には早いが将来性がある仕組み。 --単一マシン上の処理ではなく、プロセスやマシンをまたいでメッセージングを行う。 --構成要素は2つ:エージェントをホストサービスに登録し、分散環境で利用可能にする。 ---ホスト・サービス:ワーカー・ランタイムを管理(セッション管理、メッセージ間通信) ---ワーカー・ランタイム:実際にエージェントを保持しコードを実行 --エージェント起動のコードを変えるだけで、エージェントの登録先ワーカー(プロセス)を変更できる。 ---各エージェントを1つのワーカーに登録するか、別々のワーカーに登録するか変更できる。 ---ワーカーの実体はプロセスで、単一プロセスか?複数プロセス構成か?を起動コードで変更できる。 ---なお、スレッドは基本使わず、非同期(asyncio)で[[タスク並列処理がされる>https://techinfoofmicrosofttech.osscons.jp/index.php?async%2Fawait]]。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/5_autogen/4_lab4_autogen_distributed.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/4_lab4_autogen_distributed_ja.ipynb ***Day5 [#b0ee9256] -内容 --[[AutoGen]]で他のエージェントを記述・デプロイする自律型エージェントの作成 --[[AutoGen]] Coreとテンプレートによるエージェント間メッセージングの実装 --非同期Pythonを使って連携する自律型AIエージェントの作成 -要約 --[[AutoGen]]の柔軟で動的な側面を学ぶため教育的で実験的な試として[[AutoGen]]を使って"エージェント"を生成する"エージェント"を作る。 --agent.pyテンプレートからcreator.pyが生成したエージェントをworld.pyがオーケストレーション、対話、協力してアイデアを出す。 --コレには、importlib.import_moduleを使う。ただし、Pythonコードをガードレールなしで生成・実行するためリスクがある。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/5_autogen/ --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/5_autogen/5_lab5_autogen_ja.ipynb **Week6 [#g1a56535] -MCP を学ぶ --PJ8:最終課題(集大成):6 台の MCP サーバーと 44 個のツールを活用し、4 人のエージェントが自律的に取引を行うトレーディング フロアを構築。 -コンテンツ --https://github.com/ed-donner/agents/tree/main/6_mcp --https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path/ed-donner_agents/6_mcp ***Day1 [#z758d941] -内容 --モデルコンテキストプロトコル(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は、これら数千もの外部ツールを数行のコードで統合できる仕組みがシンプルながら強力。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/6_mcp/1_lab1.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/1_lab1_ja.ipynb ***Day2 [#yd0d4c77] -内容 --MCPサーバーの作成方法:共有可能なツールコレクションの構築 --独自のMCPサーバーを構築:PythonコードからAIアクセス可能なツールへ --[[OpenAI]]でポートフォリオ管理のためのカスタムMCPツールを実装する --[[OpenAI]]とAnthropicのツール連携のためのMCPクライアントの実装方法 --MCPアーキテクチャ:LLMエージェントツールのためのクライアント・サーバーシステムの構築 -要約~ MCPクライアントとサーバーを使ったツール実行の裏側を理解し、統一的にリソースを管理・共有できる仕組み を示し、演習を通して体験 --MCPサーバーを開発する(作らない場合、Function Callingだけで事足りる) ---Cursorのラボで独自の MCP サーバーを作成し、Python モジュールをツールとして公開 ---クライアント実装 (accounts.py) とサーバー実装 (accounts_server.py) を分離して実装。 ---口座名、残高、戦略、保有資産、取引リスト、ポートフォリオ価値の時系列データから株の売買やポートフォリオ計算を行う。 ---サーバーにデコレートされた関数(get_balance、get_holdings、buy_shares、sell_shares)が自動的にクライアントに公開される。 --MCPクライアントを開発する(クライアントはありモノ実装を使えばいいが、ココでは、あえて自作) ---クライアントを使用してMCPサーバーと通信、ツールやパラメーターを取得&呼出。 ---必要になるのは、独自アプリケーションで複数のMCPサーバーを呼び出す場合や、既存のSDKが利用できない場合。 -コンテンツ --https://github.com/ed-donner/agents/blob/main/6_mcp/2_lab2.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/2_lab2_ja.ipynb ***Day3 [#i4d224ab] -内容 --MCPナレッジグラフサーバーでAIエージェントに永続メモリを追加する --MCPサーバーで Brave Search と Polygon.io をセットアップする --金融データAPIのセットアップ:MCPサーバー接続のクローンと設定 -要約~ 3つのアーキテクチャモデル(ローカル実行 / ローカル+外部 / リモートサーバー)の実装 --ローカル実行:ローカルストレージを使って、構造化された関係性ベースのメモリをエージェントに追加 --ローカル実行:ローカルMCPサーバーで、Brave Searchのウェブ検索を利用 --ローカル+外部:Polygon.io のリモートMCPサーバーによる株価取得の試行 -コンテンツ --https://github.com/ed-donner/agents/blob/main/6_mcp/3_lab3.ipynb --https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/6_mcp/3_lab3_ja.ipynb ***Day4 [#t908df0a] -内容 --メモリ共有とWeb検索を備えたマルチエージェント取引システムの作成 --エージェントの連携:[[OpenAI]] Agents SDKでリサーチャーをツールに変換する --ツールを使用する取引エージェント:株式市場リサーチのためのMCP実装 --[[OpenAI]] Agents SDK:マルチエージェント取引システムモジュールの開発 --高度な手法:[[OpenAI]] Agents SDKでの取引関数の実装 --回復力のある取引エージェントの構築:金融AIシステムにおけるエラーハンドリング -要約~ 最終課題では、[[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 ***Day5 [#v9fb2635] -内容 --最終課題の集大成: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 *参考 [#def28b57] **Cursor [#f4157fc6] -WSL2で構築するWindows 11で動くLinux環境とCursor(カーソル)のセットアップ|sojin~ http://note.com/sojin25/n/nd50cb457d882 -CursorやWindsurfを日本語化する方法【忘備録】 #VSCode - Qiita~ https://qiita.com/k1mu0419/items/2d903660d1f571abb8f2 **コード [#l8a17173] -https://github.com/ed-donner/agents/ -日本語化:https://github.com/OpenTouryoProject/DxCommon/blob/master/Notebook/path/ed-donner_agents/ **スライド [#uf357c75] ...