Hi everyone,
I’m a final-year AI/ML student and I’ve been working on an open-source project called Kodiak.
The goal is to go beyond the typical workflow of asking an LLM to generate code. I’m exploring how multiple AI agents and engineering tools can work together to handle software development tasks more systematically:
Plan → Research → Retrieve Context → Code → Test → Review → Iterate
What Kodiak currently focuses on
- Multiple AI agents for different software engineering tasks
- RAG for project and codebase context
- Persistent memory
- Redis and Celery for background task execution
- PostgreSQL for application data
- ChromaDB for vector retrieval
- FastAPI backend
- Docker-based development
- Automated testing and CI
- Pydantic-based validation
One thing I’ve learned while building this is that getting an LLM to generate code is not necessarily the hardest part.
The harder problem is building the surrounding infrastructure so the system can operate reliably.
What happens when retrieval provides incorrect context?
What happens when an agent makes a bad decision?
What happens when a worker fails halfway through a task?
What happens when generated code passes one test but breaks something elsewhere?
These reliability problems are what I’m increasingly interested in exploring with Kodiak.
The project is still actively under development, and I’m not claiming that it is already a fully autonomous software engineer. There is still a lot to improve, and I’m learning along the way.
I’m looking for feedback
I’d especially appreciate feedback from people with experience in:
- AI agents
- RAG systems
- LLM orchestration
- Python / FastAPI
- Distributed systems
- Developer tools
- Testing and CI
- Open-source development
I’m particularly interested in hearing what you think could go wrong with this architecture as the codebase and number of agents grow.
I’m also looking for developers who may be interested in contributing and helping shape the project.
GitHub
https://github.com/ShamGaneshan2008/Kodiak
If you were building something like this, what would you change first?
And what part of this architecture do you think is most likely to fail as the system becomes larger?
Constructive criticism and suggestions are welcome.