Skip to main content
Back to Projects
Multi-Agent Systems
LLM Orchestration
Advanced AI

Professor Profiler

An advanced Hierarchical Multi-Agent System (HMAS) that analyzes exam papers and curriculum files to reverse-engineer topic weights and cognitive complexity distributions.

Architecture

HMAS

Hub-and-Spoke Pattern

Agent Workers

3 + Hub

Coordinated Personas

PDF Parser

PyPDF

Formula Token Extractor

Methodology

Bloom's

Cognitive Taxonomy

The Problem & Solution

Students preparing for highly competitive academic exams are often overwhelmed. They waste time studying minor topics while missing high-frequency, complex question patterns. Traditional study guides are static and fail to capture the teacher's cognitive testing habits.

Professor Profiler acts as a cognitive academic coach. It ingests exam history PDFs, extracts math and scientific formula text, and feeds this structured data into a hierarchical multi-agent framework. Specialized sub-agents analyze the exam across Bloom's Taxonomy, map topic frequencies, and generate study strategies.

Key Features

  • Dynamic Directed Acyclic Graph (DAG) Agent Flow
  • Automated PDF Question Extraction & Page Indexing
  • Math Formula Token Preservation Checks
  • Persistence via Local JSON Memory Banks
  • Matplotlib Trend Visualizations (Bar & Pie Charts)

Hierarchical Multi-Agent Graph

Exam data is processed sequentially by specialized agents. A central Root Orchestrator distributes tasks and synchronizes results using a shared JSON memory bank.

HMAS Agent Orchestration Flow

Llama-3.3-70B and Gemini models coordinate to analyze questions, compute distributions, and build target recommendations.

Input PDFJSON TextDelegateTaxonomy JSONDelegateStats JSONDelegateStrategySave PDF01PDF UploadUpload exams & syllabus02OCR ParserExtracts formula tokens03Root AgentHMAS Coordinator (Gemini)04TaxonomistBloom's Level classifier05Trend SpotterFrequency pattern analyst06StrategistStudy guidelines compiler07DashboardInteractive Study Guide

Agent Persona Breakdown

1

The Taxonomist

Model: Gemini 2.0 Flash

Processes each extracted question card. Tags the specific topic and classifies the cognitive category (Remember, Understand, Apply, Analyze, Evaluate, Create).

2

The Trend Spotter

Model: Llama 3.3 70B

Applies the Stats Engine. Inspects historical frequency, flags statistical outliers, and isolates cognitive complexity weight spikes.

3

The Strategist

Model: Llama 3.3 70B

Translates analytics into actionable study guides. Compiles a high-impact Hit List, Safe Zone topics, and Drop Zone topics to optimize student preparation.

HMAS Agent Control Panel

Visualizing the multi-agent task traces, global JSON context variables, and repository blueprints.

hmas-coordinator-node

# Starting HMAS Runner (Root Orchestrator - Gemini 2.0 Pro)...

[PARSER] Reading 'exam_fall_2025.pdf' using pypdf

[PARSER] Ingestion verified: 12 pages, 24 questions, math token parser checked (OK)

[HMAS] Spawning sub-agent: TAXONOMIST (Gemini 2.0 Flash)...

[TAXONOMIST] Classifying cognitive levels. Tagged 15 'Apply' nodes and 9 'Remember' nodes.

[HMAS] Spawning sub-agent: TREND_SPOTTER (Llama 3.3 70B)...

[TREND_SPOTTER] Calculating standard deviation and outlier weights for Calculus & Linear Algebra.

[HMAS] Spawning sub-agent: STRATEGIST (Llama 3.3 70B)...

[STRATEGIST] Mapping difficulty vectors. Compiled 5 Hit List topics.

[MEMORY] Syncing shared JSON state variables. Cache database backup updated.

[SUCCESS] Run completed. Output dashboard compiled: trends_chart.png generated.

Shared HMAS Memory StateSync JSON
{
  "session_id": "hmas_exam_2025_fall",
  "files_ingested": ["exam_fall_2025.pdf"],
  "taxonomy_results": [
    { "question_id": 1, "topic": "Eigenvalues", "bloom_level": "Apply" }
  ],
  "statistics_trends": {
    "total_questions": 24,
    "top_topic": "Linear Algebra",
    "cognitive_distribution": { "lower_order": 9, "higher_order": 15 }
  },
  "strategist_guide": {
    "hit_list": ["Matrix Orthogonalization", "Integration by Parts"],
    "safe_zones": ["Vector Spaces"]
  }
}
State Banking

JSON Memory System

Executing multiple agents simultaneously runs the risk of losing state variables or inflating costs. A centralized JSON memory system tracks sub-agent outputs, enabling error recovery and rerun capability without losing progress.

Benchmarking

Gemini vs NIM Runner

To maintain speed under load, I built a benchmark suite verifying request latencies. The coordinator defaults to NVIDIA NIM models, falling back dynamically to Google Gemini upon encountering rate limits.

Codebase BlueprintProfessor_Profiler/

├── google/adk/ # Orchestrator core

    ├── agents/ # Prompt layouts

    ├── clients/ # NIM wraps

    └── runners/ # State Sync

├── profiler_agent/ # Custom Personas

    ├── sub_agents/ # Specialized

    └── tools.py # Matplotlib stats

└── run.py # CLI Entrypoint

© 2026 Amit Divekar. All rights reserved.