Skip to content

Architecture

How reasoning works

Annet does not send every check-in to one large model. A fast first pass handles routine matching, then a controller wakes only the specialists likely to have something useful to add.

A check-in arrives

> managed 3km before work

tue 07:42
also accepted:goal tagscheckboxesmulti-selectlist reorder

Plain language by default. Goal tags are optional, and a check-in can arrive as a small form when that is more convenient.

System 1 scores it

worked example

microseconds · no model call

managed
manage
stem
3km
distance term
lexicon
before work
morning pattern
learned, this user
noisy-OR ⇒strong match · Running

slightly positive · deterministic, negation-aware

The check-in matches the running goal even though it never says “run.” Sentiment and energy use the same fast path. If your device has already matched the goal, no model is needed; the server calls one only when the match is still unclear.

A controller decides who wakes

  • + prior
  • + evidence
  • + novelty
  • + uncertainty
  • − cost
  • − cooldown
15-20 candidates scoredabout 5 run
  • runs
  • exploration pick
  • displaced by it

Each cycle has a hard cap and a token budget. The budget is usually the tighter limit, so only about five specialists run.

Without some exploration, the same specialists could win every time while quieter ones never build a track record. The controller sometimes lets a lower-scoring candidate replace the weakest pick. That keeps the system curious without spending beyond the limit.

System 2 weighs in, rarely

the exception, not the default · schema-constrained, no prose

Only the specialists the controller selects reach System 2, and even then it is a schema-constrained pass that returns a typed update rather than prose. It is explicitly instructed to treat System 1’s signals as evidence, not conclusions. System 1 is not a preliminary pass that feeds the model; it is the path almost every check-in takes without ever reaching one.

The mesh

small agents · layered by scope

Each layer sees only the context it needs. The voice that reaches you works from those shared signals instead of making a separate guess.

Stacked layers of the agent mesh. The voice layer converges on the user. The cross-goal layer spans separate goals. Oversight watches the system itself. Per-goal specialists cluster around individual goals. Most nodes are dim.

L2
Voice

Speaks from what the lower layers already established

Runs per check-in, through deliberation

L3
Cross-goal

The only layer that sees relationships between goals

Scheduled overnight, in dependency order

L4
Oversight

Watches the agent system itself, not your goals

Deterministic queries first, a model only on a finding

L5
Per-goal

Each specialist watches a single goal

Selected within a small per-cycle budget

  • model-backed
  • deterministic-first
  • goal
  • awake this cycle
  • exploration pick

Most of the mesh stays dark. Those specialists were considered and left asleep because there was no good reason to spend on them this cycle.

40-50
small specialists across the mesh
4
layers, scoped by what they can see
15-20
candidates considered for a goal
4-6
specialists usually awake for that goal

Later steps choose the smallest suitable model, stay within a continuously refilling budget, and decide whether an observation is worth showing you.

Start with one goal