AI Agentについて
🤖 AI Agent とは?
AI Agentとは、自律的に状況を判断しタスクを実行できるプログラムのことです。
従来のチャットボットと異なり、AI Agentは以下のような特徴を持ちます:
- 目標を理解し、それを達成するための計画を立てる
- 外部ツール(今回ではJPYC SDKなど)やAPIを使用して情報を取得したり、アクションを実行する
- 状況に応じて柔軟に判断し、行動を調整する
- 複数のステップを経て、複雑なタスクを完遂する
🆚 チャットボット vs AI Agent
従来のチャットボットとAI Agentの違いを見てみましょう:
チャットボット
- 事前に定義されたシナリオに沿って応答
- 単純な質問応答のみ
- 外部システムとの連携が限定的
- 能動的な行動ができない
AI Agent
- 状況を理解し、自律 的に判断
- 複雑なタスクを計画・実行
- 外部ツールを自由に使用
- 目標達成のために能動的に行動
🧠 AI Agent のアーキテクチャ
AI Agentは、一般的に以下のコンポーネントで構成されます:
1. 言語モデル(LLM)
AI Agentの「脳」にあたる部分です。
ユーザーの意図を理解し、適切な行動を決定します。
このプロジェクトでは、Claude(Anthropic社の大規模言語モデル)を使用します。
2. ツール(Tools)
AI Agentが実行できる具体的な機能です。
例えば以下のようなものがそれにあたります。
- Web検索
- データベースへのクエリ
- APIの呼び出し
- ファイル操作
このプロジェクトでは、JPYCの残高確認や送信などがツールになります。
3. メモリ(Memory)
過去の会話やアクションを記憶する機能です。
これにより、文脈を理解した応答が可能になります。
4. プランナー(Planner)
複雑なタスクを小さなステップに分解し、実行順序を決定します。
🔄 AI Agent の動作フロー
AI Agentは、以下のようなループで動作します:
-
入力の理解:
ユーザーからの指示を解析 -
計画の立案:
目標を達成するための手順を決定 -
ツールの実行:
必要なツールを呼び出す -
結果の評価:
実行結果を確認し、次のアクションを決定 -
応答の生成:
ユーザーに結果を報告
このサイクルを、目標が達成されるまで繰り返します。
💬 具体例:JPYC 送信の場合
ユーザーが「太郎さんに100 JPYC送って」と指示した場合:
1. 入力の理解
→ 「送信」というアクションが必要
→ 送信先:太郎さん
→ 送信額:100 JPYC
2. 計画の立案
Step 1: 太郎さんのウォレットアドレスを取得
Step 2: 送信を実行
Step 3: 結果をユーザーに報告
3. ツールの実行
- アドレス帳ツールで太郎さんのアドレスを検索
- 送信ツールで送信を実行
4. 結果の評価
- 送信が成功したかを確認
- エラーがあれば原因を特定
5. 応答の生成
「太郎さん(0x123...)に100 JPYCを送信しました。
トランザクションID: 0xabc... 」
🎯 AI Agent のユースケース
AI Agentは、様々な分野で活用されています:
web3・ブロックチェーン
- 自動取引(トレーディングBot)
業務自動化
- カスタマーサポート
- データ分析とレポート作成
- スケジュール管理
パーソナルアシスタント
- メール管理
- 情報収集と要約
- タスク管理
🔧 AI Agent 開発の課題
AI Agentを開発する際には、以下のような課題があります:
1. ツールの統合
様々なAPIやサービスをAI Agentに組み込むのは複雑です。
→ 解決策:MCP(Model Context Protocol)のような標準化されたプロトコルを使用
2. エラーハンドリング
外部ツールの実行は失敗する可能性があります。
→ 解決策:適切なエラーハンドリングとリトライロジックの実装
3. セキュリティ
AI Agentに強力な権限を与えると、悪用のリスクがあります。
→ 解決策:権限の最小化、操作の承認フロー、監査ログの記録、外部ルール呼び出し時の認可機能追加
4. 信頼性
LLMの出力は常に正確とは限りません。
→ 解決策:重要な操作には確認ステップを挟む、出力の検証
次のレッスンでは、AI AgentとツールをつなぐMCP(Model Context Protocol)について学びます!
🙋♂️ 質問する
ここまでの作業で何かわからないことがある場合は、Discordの#jpycで質問をしてください。
ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨
- 質問が関連しているセクション番号とレッスン番号
- 何をしようとしていたか
- エラー文をコピー&ペースト
- エラー画面のスクリーンショット
次のレッスンでは、MCPについて学びます!