DAC Architecture¶
The Individual Experience AI Engine is organised as a Distributed Adaptive Control (DAC) system (Verschure, 2016). Four layers, from raw signals up to long-term memory, with a meta-control layer that orchestrates them per request.
Think of the engine as a mind with four levels of response, each slower and more considered than the one below:
- Somatic: the senses. Raw intake of what the visitor does.
- Reactive: reflexes. Fast, generic responses that need no history, including a sensible welcome for first-time visitors.
- Adaptive: learning. Builds a model of this visitor and uses it to personalise.
- Contextual: long-term memory. Holds rich, durable knowledge of the visitor and the collection.
A meta-control layer sits on top and decides, for each request, how much to lean on each layer: pure reflex for a newcomer, deep personalisation for a returning visitor. Nothing is hard-coded; the balance is learned from how visitors respond.
flowchart TB
meta["Meta-control<br/>(contextual bandit: tunes weights + mode)"]
subgraph layers["DAC layers"]
direction TB
ctx["Contextual: long-term memory<br/>digital twin · KG · vector DB · goals · narrative"]
ada["Adaptive: learning<br/>state estimation · preference discovery · fusion"]
rea["Reactive: reflexes<br/>keyword search · faceted filters · cold-start seeding"]
som["Somatic: raw intake<br/>clicks · scroll · dwell · context · explicit intents"]
end
meta --> ctx & ada & rea & som
som --> rea --> ada --> ctx
| Layer | Role | Detail |
|---|---|---|
| Somatic | sensors | capture interactions (clicks, scrolls, dwell, observed content), runtime context (app, device, geo, timestamp), and explicit intents ("similar to this", "near me", "save") |
| Reactive | reflexes | simple retrieval (keyword search, faceted filters by date/type/geo/author) and cold-start seeding via topic discovery |
| Adaptive | learning | user state estimation, preference discovery, and recommendation strategies that fuse content with context (see hybrid scoring) |
| Contextual | long-term memory | the user digital twin, Knowledge Graph, vector store, goal alignment (student to educational timelines, researcher to deep archive), and narrative generation |
Inputs: user identifier (user_id or anonymous session_id) plus context
(application, device, geo, timestamp).
Outputs: a ranked recommendation list, brief explanations, and structured logs.
Meta-control. On each request the meta layer orchestrates the DAC layers. It can be powered by a lightweight learning loop (a contextual bandit) that tunes how strongly each strategy contributes and whether to serve single items or a narrative path, improving fit without hard-coding one strategy. See hybrid scoring for the weights it tunes.
This conceptual architecture maps onto the implemented, typed codebase documented under Implementation: the Somatic and Reactive concerns become event capture and normalization, the Adaptive layer becomes signal building and ranking, and the Contextual layer becomes the stores behind the ports.