Versioning Components & Agents
The power of Edgit: version every piece independently. No more “bump the entire app to v2.0.0 because you changed one prompt.”The Problem with Traditional Versioning
Traditional approach:Component Versioning
What Gets Versioned
Components are versioned artifacts that agents use:- Prompts (
.md) - AI instructions - Configs (
.json,.yaml) - Settings - Queries (
.sql) - Database queries - Scripts (
.js,.ts) - Functions - Schemas (
.json) - Validation rules - Templates (
.html,.md) - Output templates
Create Component Versions
Git Tag Format
Edgit uses namespaced Git tags:Semantic Versioning
Follow semver:v{major}.{minor}.{patch}
Major (v2.0.0): Breaking changes
Reference Versions in Ensembles
Lock to specific versions:- Predictable behavior (won’t break on updates)
- Can A/B test different versions
- Easy rollback (just change the version)
Agent Versioning
What Are Agents?
Agents are workers that execute tasks. They can be versioned just like components:- Pre-built agents (scraper, validator, RAG, HITL)
- Custom agent implementations
Version Agent Implementations
Git Tag Format for Agents
Agents use a separate namespace:- Clear distinction between components and agents
- No naming collisions
- Better organization in Git
Reference Agent Versions
The Versioning Multiverse
The real power: version components AND agents independently, then mix them.Example: Testing Matrix
You have:- 2 agent versions (analyzer v1.0.0, v2.0.0)
- 3 prompt versions (prompt v1.0.0, v1.5.0, v2.0.0)
- 2 config versions (config v1.0.0, v2.0.0)
Real-World Use Case: Progressive Testing
Version Strategies
Strategy 1: Lock Everything (Maximum Stability)
Strategy 2: Latest Everything (Maximum Innovation)
Strategy 3: Mixed (Balanced)
Strategy 4: Canary (Gradual Rollout)
Version Lifecycle
Development Flow
When to Create Versions
Do version:- After merging to main
- After successful tests in staging
- When deploying to any environment
- When you want to lock a working state
- L Every commit during development
- L WIP (work in progress) changes
- L Before testing
- L In feature branches

