Overview
The Decisioning Autopilot watches your experiments and models in the background and proposes concrete configuration changes. Every proposal lands in the Recommendation Inbox (AI > Insights) as anAiRecommendation; what happens next is controlled by a per-tenant autonomy mode.
The decision path itself stays fully deterministic — the Autopilot only tunes configuration, through the same review and audit machinery a human would use.
What it proposes
The Autopilot sweep runs every 6 hours (GET /api/v1/cron/ai-autopilot, CRON_SECRET-gated, registered in the in-process maintenance scheduler). Per tenant it produces two kinds of proposals:
Proposals are deduplicated: a re-run never creates a second open recommendation with the same type and title.
Autonomy modes
Configured in Settings > AI Configuration > AI Autonomy (stored ontenant_settings.aiAutopilot, editable via PUT /api/v1/tenant-settings with {"aiAutopilot": {"mode": "..."}}):
Applying a proposal
Whether applied by hand or by the Autopilot, all applications flow through the same executor:experiment— flipschampionModelIdon the (tenant-scoped) experiment and sets it active — the same operation as theplaybook_promote_challenger_if_winningplaybook.modelwithaction: retrain— runs the shared retrain-and-persist path (same asPOST /api/v1/algorithm-models/[id]/train): version snapshot, metrics history, model update.modelwithaction: pause— sets the model status topaused.weights— updates a ranking profile’s weights and bumps its version.
applied unless the change actually happened.
Relationship to scheduled retrains
The existingscheduled-retrains cron (auto-retrain on autoLearn models) is unchanged. The Autopilot adds drift-triggered retrain proposals and the experiment promotion loop on top — the promotion evaluator (evaluateAutoPromote) previously existed as configuration only, with nothing running it.