[Feature]: Custom Agent Personas & numbers- team Agent Count
- Dominant language
- TypeScript
- Stars
- 37.2k
- Forks
- 5.9k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 195
Description
### Problem or Motivation
- Custom Agent Personas with Configurable Names, Expertise, and No Hard Limit on Agent Count
The current multi-agent system has two significant limitations:
1. Agent personas are pre-defined and generic.
The classroom generates agents with fixed names and personalities (e.g., "Dr. Aris Thorne" as the teacher, "Finley" as a data-focused student, "Skyler" as another student). Users have no control over who these agents are, what expertise they represent, or how they behave. For professional and domain-specific use cases, generic personas reduce credibility. If I'm creating a lesson about blockchain regulation, I want agents named "Compliance Advisor" and "Smart Contract Engineer" — not "Dr. Thorne" and "Skyler."
2. The agent count is hardcoded to a maximum of 4.
In many real-world educational scenarios, you need more perspectives. A corporate training about product development might need a designer, an engineer, a product manager, a customer representative, a legal advisor, and a finance controller — that's 6 roles. A roundtable debate about energy policy might benefit from 5-7 stakeholders (government, industry, citizen, environmental NGO, utility company, researcher, investor). The current 4-agent limit forces you to combine or omit important perspectives.
Combined effect: The classroom feels like a scripted demo rather than a customizable professional tool. Users who create content for organizations, training, or domain-specific education need control over who is in the classroom and what perspective they bring.
### Proposed Solution
Agent Configuration Panel
Add an "Agent Setup" step between topic input and generation. The user can:
Add agents beyond the current limit (suggested soft limit: 8-10 for performance, but no hard cap at 4)
Remove agents (minimum: 1 teacher + 0 students, for solo lecture mode)
For each agent, configure:
Name: Free text (e.g., "Dr. Sarah Chen" or "Compliance Advisor" or "Skeptical Investor")
Role: Teacher / Student / Moderator / Expert Panelist / Devil's Advocate
Expertise area: Free text describing their domain (e.g., "Blockchain regulation and MiCA compliance", "Mechanical engineering with focus on wind turbines", "Financial modeling and investment analysis")
Personality traits: Dropdown or tags (e.g., analytical, skeptical, enthusiastic, cautious, provocative)
Communication style: Technical / Simplified / Academic / Business / Casual
Avatar: Select from existing library or upload custom image
4.2 — Agent Presets / Templates
To avoid overwhelming new users, provide:
Default preset: Current behavior (1 teacher + 2-3 students, auto-named) — this remains the default for quick generation
Domain presets: Pre-configured agent teams for common scenarios:
"Business Case Review" (CEO, CFO, CTO, Legal Counsel)
"Scientific Debate" (Researcher A, Researcher B, Peer Reviewer, Journal Editor)
"Policy Discussion" (Government, Industry, NGO, Citizen)
"Technical Deep-Dive" (Architect, Developer, QA Engineer, Product Owner)
Save custom presets: Users save their agent configurations for reuse across lessons
4.3 — Agent Behavior During Classroom
The configured expertise and personality should influence:
What they say: A "Skeptical Investor" agent asks about ROI and risk; a "Sustainability Expert" agent highlights environmental impact
When they speak: A "Devil's Advocate" agent is more likely to challenge statements; an "Enthusiastic Student" is more likely to ask follow-up questions
How they interact: Experts in related domains may agree or debate; agents with opposing perspectives create natural tension in roundtable discussions
Quiz perspective: Different agents could grade the same answer from their own perspective (e.g., the finance agent focuses on cost accuracy, the legal agent on regulatory compliance)
4.4 — Scalable Orchestration
For more than 4 agents, the lib/orchestration/ LangGraph state machine needs:
Dynamic turn allocation based on agent count (avoid some agents never speaking)
Conversation grouping: in a 7-agent classroom, not everyone speaks on every topic — the system should select the 2-3 most relevant agents per scene based on their expertise
Performance optimization: more agents means more LLM calls per interaction, so the system should batch where possible and allow async agent responses
Technical suggestion
The agent definitions likely live in the orchestration config within lib/orchestration/. Currently these are hardcoded per generation. The change would be to: accept an agents[] array in the generation request, pass agent profiles to the LLM prompt as system context ("You are playing the role of [name], an expert in [expertise], with a [personality] communication style"), remove the hardcoded agent count limit in the orchestration graph, and add a dynamic turn-allocation algorithm that considers agent relevance to the current scene topic.
### Alternatives Considered
Prompt engineering: Adding "create an agent named X who is an expert in Y" to the topic prompt. Works inconsistently — the LLM sometimes ignores custom names, defaults to generic behavior, or creates too few/many agents regardless of instruction.
Post-generation rename: Editing agent names in the exported PPTX narration script. Changes the name in text but doesn't affect behavior, expertise, or classroom interaction patterns.
Multiple separate classrooms: Creating one classroom per expert perspective and viewing them sequentially. Loses the entire multi-agent interaction value — agents can't debate or respond to each other across separate classrooms.
External role-play setup: Using a separate LLM chat to simulate multi-agent discussion, then pasting results into OpenMAIC as input text. Extremely manual and loses all interactive features.
None of these provide integrated, configurable multi-agent behavior within the classroom experience.
### Area
Classroom generation
### Additional Context
I run a multi-venture startup where different domains intersect: renewable energy, blockchain/tokenization, mobility, legal compliance, and sustainability. When creating a training classroom about "Tokenized Renewable Energy Investment," the ideal agent panel would be:
Teacher — Energy transition expert (covers the topic)
Blockchain Specialist — Explains tokenization mechanics and smart contracts
Legal Advisor — Covers MiCA regulation, EU cooperative law
Sustainability Analyst — Validates environmental claims against EU taxonomy
Skeptical Investor — Asks tough financial questions, challenges assumptions
Community Member — Represents the non-technical citizen perspective
That's 6 agents. Currently I'm limited to 4, which means I must drop 2 critical perspectives — usually legal and sustainability, which are the most important for our compliance requirements.
Why removing the hard limit matters:
4 agents works for simple topics
5-6 agents is ideal for professional/corporate scenarios
7-8 agents enables rich roundtable debates and panel discussions
The system should handle this gracefully: more agents = smarter turn allocation, not everyone speaks on every slide
Agent presets would drive adoption:
New users don't want to configure 6 agents manually. But offering a "Business Review Panel" preset that creates CEO/CFO/CTO/Legal with one click lowers the barrier dramatically. Power users then customize from there.
Performance consideration:
More agents means more LLM calls. A practical approach: for scenes where only 2-3 agents are relevant (based on expertise matching), only those agents generate responses. This keeps token cost proportional to scene complexity, not total agent count.
Contributor guide
Assessment
This issue has not been assessed yet.