Repository navigation
What's new
LLM upgrade — Claude Opus 4.7 + prompt caching everywhere
- New
src/otto/model_config.py— single source of truth for model IDs, every one env-overridable - Detector → Claude Opus 4.7 (better pragmatic inference: "I'll try" vs "I will" → confidence → nudge timing)
- Agent loop → Claude Sonnet 4.6
- Optional response_gen → Claude Haiku 4.5 (downgrade — 1–3 sentence rephrase doesn't need Sonnet)
- Prompt caching on all three surfaces: detector system prompt, agent system + tool definitions (single breakpoint covers ~2 KB of stable prefix from turn 2 onward), response_gen system prompt
TEMPERATURE = 0.0preserved everywhere — Patent P1 determinism guard
Docs
- README rewrite with three two-tone Mermaid architecture diagrams (slate
#1e293b+ warm amber#fde68a):- Core message → detect → store → schedule → nudge → constitutional gate loop
- PRISM signals → NEXUS 5-phase router → 4 modes → constitutional gate → UCB1 learner feedback
model_config.pyfan-out to detector / agent / response_gen
- ADHD-friendly install walkthrough — mile markers, explicit permission to stop, expected output per step, no "just" or "simply"
- Constitutional principles section
Tests
- +7 new tests in
tests/test_model_config.py(defaults, env overrides,TEMPERATURE == 0.0regression guard for P1) - 645 total tests passing (589 core + 56 agent)
Rollback
Each model surface is one env var away from the previous Sonnet 4.5:
$env:OTTO_DETECTOR_MODEL = "claude-sonnet-4-5-20250929"
$env:OTTO_AGENT_MODEL = "claude-sonnet-4-5-20250929"
$env:OTTO_RESPONSE_GEN_MODEL = "claude-sonnet-4-5-20250929"Deferred to a future release (Tier 2)
Three optional Opus 4.7 augments are designed but not shipped. All three would be default OFF, env-gated, advisory-only, with deterministic fallback paths:
OTTO_SMART_DECOMPOSE— personalized task breakdowns using Opus 4.7's 1M context over prior commitment historyOTTO_ENHANCED_SIGNALS— semantic signal layer that augments (never replaces) the regex pattern banksOTTO_LEARNER_ADVISOR— falsifiable observations on UCB1 outcome trends, surfaced via a newotto insightscommand
Constitutional core — unchanged
constitutional.py, nudge.py, router.py NEXUS phases, modes/, signals.py regex layer, and learner.py UCB1 math are all untouched. The deterministic state-evolution thesis (Patent P1) is intact.
Upgrade
git pull origin master
cd otto_v4
pip install -e ".[dev]"
python -m pytest tests/ -m "not integration"Set ANTHROPIC_API_KEY in your shell or .env and you're on Opus 4.7.