Module 9: From Toy to SystemLesson 2 of 6

Production vs Experiments

Production vs Experiments

Know the difference. Treat them differently.

Experiment Mode

Goal: Learn, try things, break stuff safely

Characteristics:

  • Local machine
  • Frequent changes
  • Okay to fail
  • No one depends on it
  • Easy rollback (git reset)

Mindset:

"Let's see what happens if..."

Example tasks:

  • Trying new prompts
  • Testing sub-agent patterns
  • Exploring tool capabilities
  • Building proof of concepts

Production Mode

Goal: Reliable, consistent, valuable

Characteristics:

  • Always-on server
  • Stable configuration
  • Failures have consequences
  • Others may depend on it
  • Changes are deliberate

Mindset:

"This needs to work every time."

Example tasks:

  • Daily briefings
  • Email processing
  • Monitoring and alerts
  • Business-critical automation

The Hybrid Approach

Run both:

Production (VPS) Experiment (Local) ├── Stable config ├── Latest changes ├── Proven prompts ├── New ideas ├── Critical tasks ├── Testing └── Monitored └── Breaking stuff

Test in experiment. Promote to production.

Promotion Checklist

Before moving something to production:

  • Tested: Does it work reliably? (5+ successful runs)
  • Documented: Can you explain what it does?
  • Recoverable: What if it fails? Can you roll back?
  • Monitored: Will you know if it breaks?
  • Bounded: What's the worst it can do?

Anti-Patterns

❌ Experimenting in Production

"I'll just try this quick change..." Production breaks

Fix: Separate environments

❌ Never Shipping to Production

"It's not quite ready yet..." Stays in experiment forever

Fix: Ship when "good enough", iterate

❌ No Rollback Plan

"I'll update the config and..." Can't undo when it breaks

Fix: Version control everything. Always.

Version Control for Agents

Your entire workspace should be in git:

cd workspace git init git add -A git commit -m "Initial agent setup" # After changes git add -A git commit -m "Added memory rules" # To rollback git log --oneline git checkout <commit-hash>

Every change is recoverable.