Architecture Overview
A brief overview of how Smith coordinates multiple AI agents to build software.
How It Works
Smith uses a coordinator agent that delegates work to specialized background agents. You chat with the coordinator in the REPL, while background agents work on planning, coding, testing, and reviewing your features.
You chat with Smith
Request features in natural language
Coordinator breaks it down
Analyzes request and creates tasks
Agents work in parallel
Planning, coding, testing happen concurrently
Results integrated
Code written, tests passing, ready to commit
Key Components
🎯 REPL
Interactive terminal interface where you chat with Smith and see agent progress in real-time.
🕶️ Coordinator
Main agent that talks to you, breaks down requests, and manages other agents.
🤖 Background Agents
Specialized agents (planning, implementation, testing, review) that work autonomously.
📋 Task Queue
BBolt-based queue that coordinates work between agents safely.
🛠️ Tools
File operations, command execution, Git integration - agents use these to build software.
🔒 Safety System
Controls what agents can do automatically vs. what requires your approval.
Why Multiple Agents?
Parallel Execution
Planning can happen while tests are being written. Multiple tasks progress simultaneously instead of sequentially.
Specialized Focus
Each agent has a specific role with tailored prompts and tools, leading to higher quality output than a single generalist agent.
Natural Workflow
Mirrors how dev teams work - planning, implementation, testing, and review happen as distinct activities.
Technical Stack
- Language: Go - for performance, concurrency, and single binary distribution
- Storage: BBolt - embedded key-value store for reliable, lock-free concurrent coordination
- UI: Lotus - blazing fast terminal interface
- LLM Providers: GitHub Copilot, OpenRouter - flexible model choices
Learn More
For detailed technical information about Smith's internals, package structure, and design decisions, check out:
- GitHub Repository - Source code and detailed README
- Internal Packages - Package-level documentation