Skip to main content

Engine Migration Guide

Benchmarked against: Anthropic — Migration guide Scope: Switching between engines for dispatch, search, and agent operations

When an engine changes its API, pricing, or capabilities — or when a better alternative emerges — you need to migrate. This guide covers engine migration at every level.


Migration levels

LevelWhat changesWho's affectedComplexity
Dispatch engineengine= parameter in WO dispatchSingle WOLow — just change the parameter
Default engineProvider default in configAll new dispatchesMedium — test before switching
Embedding modelVector dimensions, similarityAll UB searchHigh — requires re-embedding
Primary engineClaude model versionAll agentsHigh — affects all operations
Agentic lineLine 1 ↔ Line 2 architectureAgent infrastructureVery high — architecture change

Dispatch engine migration

The simplest migration — change the engine for a specific Work Order:

# Before: using free Groq for research
dispatch_work_order(work_order_id="WO-2026-0305-001", engine="groq")

# After: switching to Gemini for better quality
dispatch_work_order(work_order_id="WO-2026-0305-001", engine="gemini-search")

No data migration needed — engine selection is per-dispatch, not persistent.

When to switch dispatch engines

FromToWhen
groqgeminiNeed better quality or citations
geminigroqCost reduction for trivial tasks
groqclaudeTask requires file operations
claudegroqTask is text-only, save costs
groq-searchgemini-searchNeed authoritative citations

Default engine migration

Changing the default engine for call_model() or search_web():

# Check current defaults
list_models()

# Use a different provider
call_model(prompt="Analyze this...", provider="deepseek")

# Or for web search
search_web(query="Latest AI news", engine="gemini")

Testing checklist:

  1. Run 3–5 representative queries with the new engine
  2. Compare output quality with the previous engine
  3. Check for tool calling compatibility (flat vs nested mode)
  4. Verify response format matches expectations
  5. Monitor token usage and costs

Embedding model migration

This is a significant migration. Changing the embedding model means all existing vectors become incompatible.

Current setup: Gemini embedding-001 (768 dimensions)

Estimated time: Hours (depends on entry count) Risk: Search quality regression during transition

Migration steps

  1. Parallel deployment — Run new embedding model alongside existing
  2. Batch re-embed — Process all entries through new model
  3. Quality comparison — Run standard test queries against both indexes
  4. Switch — Point search_brain to new index
  5. Cleanup — Remove old index after verification period

Claude model version migration

When Anthropic releases new Claude versions:

PhaseAction
AnnouncementCheck release notes, note breaking changes
TestingRun representative tasks with new model
Gradual rolloutSwitch Sonnet agents first, then Opus
Full migrationUpdate all agent configurations
VerificationMonitor for quality regression

Key considerations:

  • Max Plan quota is shared across all Claude models
  • Model ID changes require config updates (e.g., claude-opus-4-6 → next version)
  • Agent behavior may change with model updates — test critical workflows

Agentic line migration

Moving work between Line 1 (Claude Agentic) and Line 2 (LangGraph):

AspectLine 1 (Claude)Line 2 (LangGraph)
EngineClaude Code SDKLangGraph + any engine
Tool accessFull MCPCustom tool wiring
State managementClaude's context windowCheckpoint persistence
Cost$$$$ (low-cost engines)

Migration direction: Line 1 designs blueprints, Line 2 implements. Not a replacement — mutual rescue architecture.


Migration anti-patterns

Anti-patternWhy it failsBetter approach
Migrate everything at onceOne failure breaks all operationsGradual rollout, one agent at a time
Skip quality testingNew engine may degrade outputAlways compare before switching
Hardcode engine choicesCan't adapt to new optionsUse config-driven engine selection
Migrate during incidentAdds complexity when you need simplicityMigrate during calm periods
Forget to update UBTeam doesn't know about the changeIngest migration decision to UB

PageRelationship
Engine OverviewAll engines
Choosing an EngineSelection framework
Engine DeprecationsSunset timelines
Backup & RecoveryRecovery if migration fails