Akashik Protocol
Concepts

Temporal Layers

How Akashik organises memory in time - past, present, and future as semantic categories.

The three layers

Akashik does not treat all memory as equal. Every MemoryUnit is tagged with a temporal layer that describes its semantic position in the workflow — not when it was created, but what kind of memory it represents.

LayerSemantic meaningExamples
PastConcluded, immutable contextResearch findings, resolved decisions, completed tasks
PresentActive, current working memoryOngoing hypotheses, in-progress analysis, live task state
FuturePlanned, anticipated, projectedScheduled actions, expected outcomes, pending decisions

Why temporal layers matter

Without temporal structure, memory collapses into a flat list. An agent attuning to the Field receives findings from concluded work mixed with active deliberation mixed with future projections — with no way to weight them differently.

Temporal layers give the attunement engine a critical signal. An agent focused on current decision-making weights present units more heavily. An agent producing a forward plan integrates future units. An agent reviewing what happened focuses on past.

Setting temporal position

temporal_layer on a MemoryUnit and temporal_bias on ATTUNE are Level 2+ extensions. They are not part of the Level 0–1 MemoryUnit or Scope schemas. The formal mechanism at Level 2+ is the temporal_layers array in the Scope passed to ATTUNE. The field-level tagging shown below represents planned extension behaviour.

Temporal position is declared at record time:

// A completed finding — past
await researcher.record({
  type: 'finding',
  content: 'Segment A has 3 dominant players',
  temporal_layer: 'past',
  intent: { purpose: 'Capture competitive landscape' }
})

// An active hypothesis — present
await analyst.record({
  type: 'hypothesis',
  content: 'Segment B may be underserved',
  temporal_layer: 'present',
  intent: { purpose: 'Guide further research' }
})

// A planned action — future
await orchestrator.record({
  type: 'instruction',
  content: 'Validate Segment B assumption with primary research',
  temporal_layer: 'future',
  intent: { purpose: 'Direct next research phase' }
})

Temporal layers in attunement

At Level 2+, agents include temporal_layers in their Scope to shift relevance scoring toward specific layers without excluding others. This is the formal spec mechanism:

const context = await agent.attune({
  scope: {
    role: 'analyst',
    max_units: 10,
    temporal_layers: ['present']  // prioritise active working memory
  }
})

Memory evolution

MemoryUnits are not static. A hypothesis in present may be resolved into a finding and moved to past. A planned action in future may become an active instruction in present. The Field tracks these transitions and maintains provenance through the lifecycle.

This is distinct from deletion — Akashik does not erase memory. It evolves it, with a full audit trail.