はじめに ~ AI時代にできること
最近Anthropic社からAIエージェントをなるべく手軽に作成・
本連載では、AIエージェントの基礎的な考え方を学べることを目標に、ある程度多機能なメール返信エージェントを実際に動かしつつ、全4回にわたってそれぞれの要素を見ていく構成となっています。
また、皆さんの手元で必ずしもコードを動かさなくても、記事をご覧いただくだけで、たとえばAIエージェントのセキュリティ対策にはどういった手法があるのかなど、幅広いトピックを網羅的に掴み取れる内容にしていますので、ぜひお楽しみいただけますと幸いです。
題材は、単にメールを読み書きするだけでなく、多言語で届く取引先からのメールに応じて会食会場の提案や取引先の好みの記憶まで行う
AI(LLM)とAIエージェントの違い
生成AIサービスの中核を担っているのが
では、近年注目されている
- LLM
(単体) : 入力された情報に対して回答を生成・返答する、一問一答型の処理が基本 - AIエージェント: LLMを頭脳として活用しつつ、状況の判断、外部ツールの操作、次の行動の決定などを自律的に繰り返すシステム
たとえば、
一方、AIエージェントは自ら天気予報システム
AIエージェント開発のエコシステム
AIエージェントを作るためのフレームワークやライブラリは、ここ1~2年で急速に増えています。ここでは、代表的なものを簡単に紹介します。
LangChain
AIエージェント開発フレームワークの先駆けとも言える存在です。Python版
Mastra
本連載で使用するフレームワークです。TypeScriptネイティブで設計されており、Agent、Tools、Workflow、Memory、Guardrails、Evalsといった機能を統合的に提供しています。詳しくは次のセクションで紹介しますが、
Claude Agent SDK
Anthropic社が提供する、Claudeを使ったエージェント開発のためのSDKです。昨今広く使われているコーディング支援ツール
これら以外にもさまざまなフレームワークが登場しています。重要なのはチームの技術スタックや作りたいエージェントの規模感に合ったものを選ぶことです。
本連載の教材としてMastraを選んだ理由
本連載でMastraを教材として選んだ理由は、大きく3つあります。
①TypeScriptネイティブであること
Web開発で標準となっているTypeScriptでそのまま書けます。ツール入出力やエージェント設定も型安全で、IDE補完やコンパイル時チェックが効きます。
②学習教材として適した構造を持っていること
Mastraは、AIエージェント開発に必要な概念を整理された形で提供しています。Agent、Tools、Memory、Workflow、Guardrails、Evalsといった各機能が独立したモジュールとして設計されており、1つずつ学んでいくことができます。これは連載記事の構成とも相性が良く、各回で新しい概念を導入しながら段階的にエージェントを高度化していく、という流れを自然に作ることができます。
③主要機能を網羅的にカバーしていること
Mastraが提供する主要機能の全体マップは以下のとおりです。
| 機能 | 概要 | 本連載での登場回 |
|---|---|---|
| Agent | LLMに指示文とツールを与えてエージェントを定義する | 第2回 |
| Tools | エージェントが呼び出せる外部機能 |
第2回 |
| Structured Output | エージェントの出力をスキーマに沿って構造化する | 第2回 |
| Workflow | 複数ステップの処理を定義・ |
第2回 |
| Memory | 会話履歴や文脈を記憶し、パーソナライズに活用する | 第3回 |
| Guardrails | 入出力の安全性を検証するフィルター機能 | 第3回 |
| Evals | エージェントの応答品質を定量的に評価する仕組み | 第4回 |
このように、AIエージェント開発において押さえるべき要素がMastra1つで学べます。もちろんMastraが唯一の正解というわけではありませんが、
補足: 本連載のデモで登場するスケジュール提案機能やレストラン検索など、一部の内部処理はサンプル用のモック実装となっています。ただしいずれも外部API
完成形のデモ
百聞は一見にしかず。まずは、本連載の全4回を通じて完成する多機能メール返信エージェントの動作を見てみましょう。単なる定型返信ではなく、会食の候補日時やレストランの提案まで行う、多言語対応の実践的なシステムとして動きます。
次の画像では、Slack上で担当者が受信メールの要約を依頼し、エージェントが取引先ごとに内容を要約して返している様子が確認できます。
とくに3件目の要約に注目してください。メール本文に紛れ込んだ悪意ある指示
続く画像では、担当者のスケジュールを考慮した会食会場の提案と、それに基づく返信メール案の作成が段階的に行われています。エージェントが勝手にメールを送信するのではなく、担当者がSlack上で内容を確認し、承認ボタンを押して初めて送信される構成になっている点にも注目してください。AIエージェントの自律性と人間による最終判断を組み合わせる
メール受信から返信送信までの全体フロー
完成形のエージェントは、以下のフローで動作します。
- メール受信: Mailpit
(ローカルSMTPサーバ) に届いたメールをエージェントが検出 - 返信案の作成: 相手のメール内容に応じて、AIが返信案を生成
- Slack通知: 返信案がSlackチャンネルに通知され、承認/却下ボタンが表示される
- 人間の承認: 担当者がSlack上で返信内容を確認し、承認ボタンを押す
- メール送信: 承認された返信案が自動的にメールとして送信される
このデモの裏側では、前節の機能マップ
連載ロードマップと次回予告
本連載は全4回構成で、各回で以下の内容を扱います。
各回の学習テーマ
- 第1回: AIエージェントを作ってみよう
(本記事)
――AIとAIエージェントの違いを整理し、開発フレームワークのエコシステムを俯瞰した上で、本連載の教材としてMastraを選んだ理由と完成形のデモを紹介します。 - 第2回: AIエージェントの基礎を作ろう
――Agent・Tools・ Structured Outputの基本に加え、Slack連携・ Human-in the-loop・ Workflowまで組み立て、 「動くもの」 を手元に用意します。 - 第3回: メモリとガードレールでエージェントを賢く安全にしよう
――Memoryで過去のやり取りを踏まえたパーソナライズを、Guardrailsでプロンプトインジェクション対策を導入します(個人情報漏洩対策については概念のみ触れます)。 - 第4回: Evalでエージェントの品質を改善しよう
――Mastra Evalsで応答品質を定量的に測り、計測→分析→改善→再計測のサイクルを回します。
お知らせ:第1回のまとめ
本記事では、AIとAIエージェントの違いを整理し、開発フレームワークのエコシステムを俯瞰した上で、本連載の教材としてMastraを選んだ理由を紹介しました。そして完成形のデモをお見せし、全4回の道のりを概観しました。
次回からはいよいよ実装に入ります。エージェントの定義、ツールの作成、Slack連携まで、手を動かしながらAIエージェント開発の基本を体験していきましょう。リポジトリをGit Cloneすれば、すぐに開発を始められる環境が整っています
参考: デモで使用した素材は、それぞれのライセンスに準拠した形で利用しています。
- レストラン提案のサンプル画像: Unsplash
- Slack Botのアバターアイコン: Lucide Icons
