Akashik Protocol
Specification v0.1.0-draft

Give your AI agents
shared memory.

An open protocol built on attunement ~ where agents declare who they are, and the right context finds them automatically.

Compatible with MCP and A2A  ·  Progressive adoption from Level 0 to 3  ·  Open specification

The Problem

Our agents can call tools.
They can talk to each other.
But they can't remember.

They can't share what they know. And when two agents contradict each other, there's no standard way to catch it.

Every multi-agent system today carries its own ad-hoc memory layer ~ bespoke, fragile, and non-interoperable. Akashik is the protocol that replaces it.

Where it fits

Application
Your agents
Akashik
Shared memory · Context · Coordination
MCP / A2A
Tool calls · Agent messaging
Transport
HTTP · stdio · WebSocket

MCP handles agent-to-tool. A2A handles agent-to-agent. Akashik handles what they share, how they stay coordinated, and how they resolve contradictions.

What makes it different

Intent is mandatory.

You cannot write to the Field without declaring why. Every finding carries the question it answers. You get a reasoning chain for free.

Attunement, not search.

Agents declare who they are ~ role, task, budget. The Field figures out what's relevant and delivers it. Context finds the agent.

Conflicts are expected.

When agents contradict each other, Akashik detects it and gives you structured resolution paths ~ from last-write-wins to human escalation.

Level 0 — under ten lines

TypeScript
import { Field } from '@akashikprotocol/core'

const field = new Field()

const researcher = await field.register({ id: 'researcher-01', role: 'researcher' })
const strategist = await field.register({ id: 'strategist-01', role: 'strategist' })

// Researcher records a finding — intent is required
await researcher.record({
  type: 'finding',
  content: 'European SaaS market growing at 23% CAGR',
  intent: { purpose: 'Validate market size for go-to-market strategy' }
})

// Strategist attunes — receives relevant context automatically
const context = await strategist.attune({ max_units: 10 })
// → Returns the finding, ranked by relevance
// → Every result includes WHY it was recorded

Two agents. One RECORD. One ATTUNE. The Field handles scoring and delivery.

Progressive adoption

Start with Level 0 in an afternoon.
Grow to production-grade when you need it.

Level 0Starter

REGISTER, RECORD, ATTUNE. In-memory. No embeddings.

~ an afternoon
Level 1Core

Persistence, logical clocks, explicit conflict detection.

~ a week
Level 2Standard

Semantic attunement, MERGE, push subscriptions, REPLAY.

~ serious build
Level 3Full

Security model, authority hierarchy, coordination extension.

~ production-grade

The spec is published. The SDK is building.
Now is the best time to shape it.