MindForge is a multi-agent collaborative system specifically designed for emotion analysis and journal processing. The system is managed by a central coordinator (Supervisor Agent) that orchestrates multiple specialized agents to perform tasks such as:
- Emotional diary analysis
- Mood tracking
- Theme extraction
- Report generation
By decomposing complex tasks into smaller, specialized components, MindForge efficiently processes user requests and provides deep emotional insights and personalized analysis.
MindForge employs a centralized coordination with distributed execution architecture:
+-------------------+
| supervisor_agent |
| (Task Coordinator)|
+-------------------+
|
+---------------+---------------+
| | |
+-----------------+ +------------+ +---------------+ | summarize_agent | | emotion_ | | topic_agent | | (diary | | agent | | (Theme | | Summary) | | (Emotion | | Analysis) | +-----------------+ | Analysis) | +---------------+ +------------+ | | | +------------------+ | report_agent | | (Report | | Generation) | +------------------+
The Supervisor Agent serves as the central coordinator of the system and is responsible for:
- Analyzing the user's original request
- Determining which specialized agents are needed
- Coordinating workflows between agents
- Integrating outputs and returning final results
The Emotion Agent conducts emotional analysis based on Plutchik's Wheel of Emotions. It is capable of:
- Providing quantitative scores for 8 basic emotion dimensions
- Detecting complex emotion combinations and intensity levels
- Tracking emotional trends over time
- Offering detailed emotional explanations
The Topic Agent specializes in theme and keyword extraction. It performs:
- Theme analysis across documents
- Keyword and concept extraction
- Topic clustering and classification
- Foundation building for word clouds or knowledge graphs
The Report Agent synthesizes all analysis results and generates comprehensive reports by:
- Transforming raw data into structured formats
- Generating data visualizations (charts, graphs, etc.)
- Providing insights and recommendations
- Supporting various report formats
User Request:
"I need to write an emotional journal about how meditation helps reduce anxiety, and analyze my emotional state from the past week."
Step-by-step Process:
-
Supervisor Agent analyzes the request and delegates tasks to:
summarize_agent→ process the journalemotion_agent→ analyze emotional statestopic_agent→ extract themesreport_agent→ generate the report
-
User writes the journal
-
Agents execute:
summarize_agent→ creates journal summaryemotion_agent→ evaluates emotions in the entrytopic_agent→ extracts terms like “meditation”, “anxiety”
-
For past emotional records:
emotion_agent→ analyzes logs from the past weektopic_agent→ identifies weekly recurring themes
-
Final stage:
report_agentintegrates all findings into a polished reportsupervisor_agentreturns the final report to the user
The codebase includes JSON-based functional definitions for each agent, which contain:
- Agent name and unique identifier
- Function descriptions
- Expected input parameters
- Usage examples
These agent definition files enable the supervisor_agent to:
- Discover available agents
- Understand their capabilities
- Properly invoke them with structured input