Inspired by Alex Xu’s ByteByteGo edition on “How to ace System Design Interviews”, this System Design Agent is an advanced multi-agent tool designed to assist software architects and engineers in creating robust, scalable, and efficient design documents for any proposed sopftware system.
It leverages the sequential chat pattern in Autogen for a multi-agent system to break down complex design tasks into manageable components, ensuring a thorough and well-structured approach to system architecture. The agents collaborate to clarify requirements, estimate capacity, design high-level architecture, choose optimal database types, and design interfaces, among other tasks.
The following table describes the various agents that are part of this multi-agent system:
| Agent | Description |
|---|---|
requirement_clarification_agent |
Ensures a complete understanding of system requirements by asking critical questions. |
capacity_estimation_agent |
Estimates system resource needs based on requirements using back-of-the-envelope calculations. |
high_level_design_agent |
Designs & visualizes the high-level architecture, breaking it into critical components. |
database_design_agent |
Models data and designs efficient data storage systems. |
interface_design_agent |
Designs interfaces between system components, choosing appropriate communication methods. |
scalability_and_performance_agent |
Ensures the system can scale and maintain efficiency under load. |
reliability_and_resilience_agent |
Designs fault-tolerant and resilient systems, ensuring high availability and reliability. |
writer_agent |
Writes well-structured, formatted, and engaging software design documentation in markdown format. |
sample_systems_designed folder.git clone https://github.com/tezansahu/ai-garage.git
cd ai-garage/diagram-generator
poetry shell
poetry install # (installs Autogen & other necessary packages)
.env file (add the necessary environment variables as specified in .env.example) python app.py
The System Design Agent Project is a powerful tool for software architects and engineers, providing a structured and efficient approach to system design. By leveraging a multi-agent system and a user-friendly CLI, this project ensures that all aspects of system design are thoroughly addressed, resulting in robust and scalable architectures.