Instinct layer¶
Enterprise Edition
This capability is part of the Enterprise Edition — a proprietary overlay on the open-source core. See Editions for the full Community vs Enterprise matrix.
The instinct layer lets vornik learn from its own history. It mines the telemetry every task already produces, distils recurring patterns into confidence-scored instincts — "in situation T, action A held up" — and makes those instincts available as evidence to the parts of vornik that decide how the next task runs.
The defining rule: instincts are advisory. Nothing mutates silently. An instinct can raise the confidence of a workflow proposal an operator is already reviewing, or surface a remediation hint on a failed task — but it never edits a prompt, swaps a model, deletes a memory, or promotes a workflow on its own. Every behaviour-affecting decision still passes through the same operator and review gates it always did. With the layer disabled (the default), behaviour is unchanged.
How it learns¶
A background worker runs on a cadence (30 minutes by default) and reads the audit spine — the step outcomes, tool-call log, and memory-retrieval log that vornik writes for every task. Deterministic extractors turn finalised outcomes into atomic patterns; only genuinely ambiguous clusters fall through to a cheap distillation model. Each pattern is deduplicated by a canonical trigger key and scored.
Confidence and decay¶
An instinct's confidence is a Wilson lower bound on its success rate (so a pattern seen 3 times is trusted far less than one seen 300 times), multiplied by a recency decay with a 30-day half-life (so a pattern that stops recurring fades rather than lingering forever). An instinct moves through states as the evidence accumulates:
| State | Reached when |
|---|---|
candidate |
freshly mined; not yet trusted |
active |
confidence ≥ 0.6 and seen at least 3 times |
promoted |
holds across ≥ 2 projects at confidence ≥ 0.8 (becomes a global prior) |
retired |
confidence falls below 0.2 (sticky — stays retired) |
These thresholds are tunable (see Configuration).
What consumes instincts¶
Four consumers read instincts, each independently switchable and each strictly advisory:
- Failure-class playbooks — when a task fails, high-confidence remediation instincts for that failure class are surfaced on the task's detail page and offered to the lead as recovery context. The operator's recovery-approval gate is unchanged.
- Architect evidence priors — when the workflow architect proposes a change, matching instincts act as priors. They can only nudge the proposal's confidence up toward the strongest supporting evidence (never above what the model itself reported, never widening the edit's scope); a rejected proposal is written back as contrary evidence.
- Memory hygiene — instincts suggest which memory scopes to boost and which chunks are prune candidates. The consolidation sweeper surfaces these; it never deletes on their say-so, and firewall-sensitive chunks are screened out.
- Tool-budget tiers — when a planner gives no explicit complexity verdict, a learned tier can fill the gap. An explicit verdict always wins, and the configured budget caps still bound the result.
There is an optional auto_apply mode (off by default, gated by its own
confidence floor) that changes only how strongly a recovery remediation is
presented to the lead — it does not bypass the approval gate.
Enabling it¶
Run the feature doctor to diagnose prerequisites and enable:
vornikctl doctor feature enable instinct
This sets instinct.enabled plus the consumer gates and restarts the daemon
during an idle window. Because it is restart-gated, the doctor refuses to apply
while tasks are running and waits for an idle window. (The tool-budget and
auto_apply consumers stay manually opt-in.)
Inspecting what it learned¶
Everything the layer knows is browsable. Use the CLI:
vornikctl instinct list --domain recovery --min-confidence 0.8
vornikctl instinct show <instinct_id>
vornikctl instinct export -o instincts.json # filtered snapshot
vornikctl instinct retire <instinct_id> # advisory; the row stays for audit
list filters by --domain, --scope, --project, --status, and
--min-confidence. The same inventory is available as a read-only browser at
/ui/admin/instincts, and failed tasks show their learned remediations inline
on the task detail page. All admin surfaces require an admin-scoped key.
Configuration¶
The layer is configured under the instinct block. The most useful keys:
| Key | Default | Meaning |
|---|---|---|
instinct.enabled |
false |
master switch |
instinct.cadence_seconds |
1800 |
how often the miner runs |
instinct.min_support |
3 |
observations before a pattern can leave candidate |
instinct.active_confidence |
0.6 |
promotion-to-active threshold |
instinct.promote_confidence |
0.8 |
cross-project global-promotion threshold |
instinct.promote_projects |
2 |
projects a pattern must hold across to go global |
instinct.retire_floor |
0.2 |
confidence below which an instinct retires |
instinct.decay_halflife_days |
30 |
recency-decay half-life |
instinct.model |
chat.model |
distillation model for ambiguous clusters |
The four consumers are toggled under instinct.consumers:
failure_playbooks, architect_priors, memory_hygiene,
application_feedback, and tool_budget. The optional auto-apply mode lives
under instinct.consumers.auto_apply (enabled, min_confidence,
allowed_error_classes).