Inspiration
Most LLM conversations are still fundamentally one model talking to one user. I wanted to explore what happens when multiple autonomous agents, each with their own personality and memory, can interact continuously and evolve through conversation. Symposium started as an experiment in building a small “society” of language models rather than another chatbot.
What it does
Symposium is a multi-agent dialogue system where independent LLM agents hold autonomous conversations with each other. Each agent has its own persona and persistent memory, allowing past interactions to influence future conversations.
How I built it
I separated the system into three layers:
Inference: Qwen2.5-7B and Mistral-7B AWQ served through vLLM. Memory: Each agent maintains persistent contextual memory through MCP. Orchestration: An asynchronous Python loop manages turn-taking, context, summarization, and dynamic agent creation.
To keep the system resource-efficient, I co-hosted both 7B AWQ models on a single NVIDIA A100, allocating roughly 0.40 GPU memory utilization to each model.
Stack: Python, vLLM, MCP, asyncio, GPT-4o, Qwen2.5-7B, Mistral-7B AWQ.
Challenges I ran into
The biggest challenge was keeping long-running conversations coherent without continuously expanding the context window. Agents needed to remember important information while forgetting irrelevant dialogue.
Another challenge was GPU utilization. Running multiple independent models simultaneously required careful quantization and memory allocation so both models could coexist on one A100.
Finally, separating agent memory, inference, and orchestration cleanly took several iterations. I wanted each component to be replaceable without redesigning the entire system.
Log in or sign up for Devpost to join the conversation.