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.
Agent Persona Breakdown
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).
The Trend Spotter
Model: Llama 3.3 70B
Applies the Stats Engine. Inspects historical frequency, flags statistical outliers, and isolates cognitive complexity weight spikes.
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.
# 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.
{
"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"]
}
}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.
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.
├── 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