Amazon Bedrock AgentCore Memory を使った技術学習支援エージェントです。エンジニアの技術学習をサポートし、学習履歴を記憶し、苦手分野の分析や復習提案をしてくれるアシスタントです。
- 🧠 記憶機能: Short-term Memory と Long-term Memory で学習履歴を自動管理
- 📊 学習分析: 技術知識の蓄積、学習傾向の分析、苦手分野の特定
- 🎯 復習支援: 過去の学習内容から復習すべきトピックを自動提案
- 📋 サマリー生成: 学習セッションの要約を自動作成
- 👥 マルチユーザー対応: ユーザー別・セッション別に学習データを分離管理
- AWS CLI 2.28.8 以上
- Python 3.12.6 以上
- AWSアカウント(us-west-2 リージョン)
- Bedrock モデルの有効化:
anthropic.claude-3-5-haiku-20241022-v1:0
# プロジェクトディレクトリに移動
cd tech-learning-assistant
# 仮想環境の作成と有効化
python3 -m venv venv
source venv/bin/activate # Linuxの場合
# または
venv\\Scripts\\activate # Windowsの場合
# 依存関係のインストール
pip install -r requirements.txt# 環境変数テンプレートをコピー
cp .env.sample .env
# .envファイルを編集してAWSアカウントIDを設定
# YOUR_ACCOUNT_ID を実際のAWSアカウントIDに置き換え# AWS CLIの設定(未設定の場合)
aws configurepython create_iam_role.pypython create_memory.py実行後、.env ファイルの MEMORY_ID が自動更新されます。
python deploy_agent.py# 基本的な質問
python chat.py "Pythonのデコレータについて教えて"
# ユーザーを指定して質問
python chat.py "ReactのuseEffectについて学習中です" --user "engineer_alice"
# セッションを指定して質問
python chat.py "学習進捗を分析して" --user "engineer_alice" --session "python_study_20250817"
# 学習支援ツールの使用
python chat.py "私の苦手分野を教えて" --user "engineer_alice"
python chat.py "復習すべきトピックを提案して" --user "engineer_alice"
python chat.py "セッションサマリーを表示して" --user "engineer_alice"- 学習進捗分析 (
analyze_learning_progress): 特定技術分野の学習進捗を確認 - 苦手分野特定 (
identify_weak_areas): 学習傾向から苦手分野を分析 - 復習提案 (
suggest_review_topics): 過去の学習内容から復習トピックを提案 - セッションサマリー (
get_session_summary): 学習セッションの要約を表示
tech-learning-assistant/
├── README.md # このファイル
├── requirements.txt # 依存関係
├── .env.sample # 環境変数テンプレート
├── .env # 環境変数(要設定)
├── .gitignore # Git除外設定
├── create_memory.py # Memory作成スクリプト
├── create_iam_role.py # IAMロール作成スクリプト
├── agent_tech_learning_assistant.py # メインエージェント実装
├── deploy_agent.py # デプロイスクリプト
└── chat.py # チャットクライアント
- 技術知識:
tech_learning/knowledge/{actorId}- ユーザー単位で技術知識を蓄積
- 学習傾向:
tech_learning/preferences/{actorId}- ユーザーの学習スタイルや苦手分野を記録
- セッションサマリー:
tech_learning/summaries/{actorId}/{sessionId}- セッション単位で学習履歴を管理
- SemanticMemoryStrategy: 技術的な知識や概念を抽出・保存
- UserPreferenceMemoryStrategy: 学習傾向、理解度、苦手分野を記録
- SummaryMemoryStrategy: 学習セッションのサマリーを生成
-
技術的な質問をする
python chat.py "Pythonの非同期プログラミングについて教えて" --user "alice"
-
学習進捗を確認
python chat.py "私のPythonの学習進捗は?" --user "alice"
-
苦手分野を分析
python chat.py "苦手分野を教えて" --user "alice"
-
復習トピックを確認
python chat.py "復習すべきトピックを提案して" --user "alice"