Welcome to the AshSwarm documentation! This directory contains comprehensive documentation for understanding, setting up, and working with the AshSwarm project.
AshSwarm is an Elixir-based project that explores how to use the Ash Framework alongside concurrency patterns and AI-driven logic to create domain-specific "swarms" that coordinate multiple steps and LLM (large language model) interactions.
A detailed explanation of the system architecture, including:
- System overview
- Core architecture principles
- Key system components
- Data flow
- Infrastructure components
- Architectural decisions
A comprehensive guide to help new developers understand and work with the codebase:
- What is AshSwarm
- Getting started
- Key concepts
- Development workflow
- Common development tasks
- Code organization
Detailed information about the key APIs and interfaces in AshSwarm:
- DSL Modeling
- Domain Reasoning
- Instructor Helper
- Reactors
- Ecto Schemas
Visual representation of the system's architecture using Mermaid diagrams:
- System overview diagram
- DSL modeling components
- Domain reasoning components
- Reactor components
- LLM integration flow
- Data flow diagram
- Deployment view
Documentation of coding patterns and practices used in the project:
- General principles
- File organization
- Naming conventions
- Module structure
- Documentation standards
- Elixir-specific patterns
- Testing conventions
- Error handling
6. Setup Guide
Step-by-step instructions for setting up the development environment:
- Prerequisites
- Installation
- Database setup
- LLM provider configuration
- Running the application
- Running LiveBooks
- Troubleshooting
If you find any issues or have suggestions for improving the documentation, please:
- Create a new branch for your changes
- Make your updates
- Submit a pull request with a clear description of your changes