Amping Up an Agentic System
Welcome to the second edition of "Building an Agentic System." This book explores the evolution from local-first AI coding assistants to collaborative, server-based systems through deep analysis of Amp—Sourcegraph's multi-user AI development platform.
What's New in This Edition
While the first edition focused on building single-user AI coding assistants like Claude Code, this edition tackles the challenges of scaling to teams:
- Server-first architecture enabling real-time collaboration
- Multi-user workflows with presence, permissions, and sharing
- Enterprise patterns for authentication, usage tracking, and compliance
- Production deployment strategies for thousands of concurrent users
- Multi-agent orchestration for complex, distributed tasks
Who This Book Is For
This book is written for engineers building the next generation of AI development tools:
- Senior engineers architecting production AI systems
- Technical leads implementing collaborative AI workflows
- Platform engineers designing multi-tenant architectures
- Developers transitioning from local-first to cloud-native AI tools
What You'll Learn
Through practical examples and real code from Amp's implementation, you'll discover:
- Architectural patterns for server-based AI systems
- Synchronization strategies for real-time collaboration
- Permission models supporting team hierarchies
- Performance optimization for LLM-heavy workloads
- Enterprise features from SSO to usage analytics
How to Read This Book
The book is organized into six parts:
- Part I: Foundations - Core concepts and architecture overview
- Part II: Core Systems - Threading, sync, and tool execution
- Part III: Collaboration - Multi-user features and permissions
- Part IV: Advanced Patterns - Orchestration and scale
- Part V: Implementation - Building and migrating systems
- Part VI: Future - Emerging patterns and ecosystem evolution
Each chapter builds on previous concepts while remaining self-contained enough to serve as a reference.
Code Examples
All code examples are drawn from Amp's actual implementation, available in the amp/
directory. Look for these patterns throughout:
// Observable-based state management
export class ThreadService {
private threads$ = new BehaviorSubject<Thread[]>([]);
getThreads(): Observable<Thread[]> {
return this.threads$.asObservable();
}
}
Getting Started
Ready to build collaborative AI systems? Let's begin with Chapter 1, where we'll explore the journey from local-first Claude Code to server-based Amp, and why this evolution matters for the future of AI-assisted development.