Skip to content

yuu551/tech-learning-assistant

Repository files navigation

Tech Learning Assistant

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

環境セットアップ

1. プロジェクトのクローン・セットアップ

# プロジェクトディレクトリに移動
cd tech-learning-assistant

# 仮想環境の作成と有効化
python3 -m venv venv
source venv/bin/activate  # Linuxの場合
# または
venv\\Scripts\\activate  # Windowsの場合

# 依存関係のインストール
pip install -r requirements.txt

2. 環境変数の設定

# 環境変数テンプレートをコピー
cp .env.sample .env

# .envファイルを編集してAWSアカウントIDを設定
# YOUR_ACCOUNT_ID を実際のAWSアカウントIDに置き換え

3. AWS認証設定

# AWS CLIの設定(未設定の場合)
aws configure

デプロイ手順

1. IAMロールの作成

python create_iam_role.py

2. Memory の作成

python create_memory.py

実行後、.env ファイルの MEMORY_ID が自動更新されます。

3. エージェントのデプロイ

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                           # チャットクライアント

Memory戦略

Namespace設計

  • 技術知識: tech_learning/knowledge/{actorId}
    • ユーザー単位で技術知識を蓄積
  • 学習傾向: tech_learning/preferences/{actorId}
    • ユーザーの学習スタイルや苦手分野を記録
  • セッションサマリー: tech_learning/summaries/{actorId}/{sessionId}
    • セッション単位で学習履歴を管理

Memory Strategy

  1. SemanticMemoryStrategy: 技術的な知識や概念を抽出・保存
  2. UserPreferenceMemoryStrategy: 学習傾向、理解度、苦手分野を記録
  3. SummaryMemoryStrategy: 学習セッションのサマリーを生成

使用例

技術学習のフロー

  1. 技術的な質問をする

    python chat.py "Pythonの非同期プログラミングについて教えて" --user "alice"
  2. 学習進捗を確認

    python chat.py "私のPythonの学習進捗は?" --user "alice"
  3. 苦手分野を分析

    python chat.py "苦手分野を教えて" --user "alice"
  4. 復習トピックを確認

    python chat.py "復習すべきトピックを提案して" --user "alice"

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages