Skip to main content

Per-agent memory protocol for multi-agent systems

Project description

eachmind

Per-agent memory protocol for multi-agent systems

eachmind concept — same event, different perspective

The problem: shared memory = shared perspective = no real team cognition. But fully isolated memory = no collaboration, no learning from each other.


Problem Statement

Current agent swarms share a single memory system. Every agent draws from the same pool of context, producing the same perspective. This creates the illusion of collaboration — agents divide tasks but never truly think differently from each other. Shared memory = shared perspective = no real team cognition.

The opposite — fully isolated agents — breaks collaboration entirely. Agents cannot learn from each other, cannot build on shared experience, and cannot develop institutional knowledge over time.

eachmind solves this by giving each agent its own memory — privately encoded, individually shaped — while defining a protocol for what gets selectively shared, when, and how. Agents develop genuine perspectives. Teams develop genuine collective intelligence.

What It Is

A standalone, framework-agnostic Python library that defines how memory is stored, differentiated, and selectively shared across agents in a multi-agent system. It is a memory protocol — not an agent framework, not a task runner. Any agent system can adopt it.

Core Primitives

Primitive Description
PrivateMemory Each agent's own store. Encoded from its perspective. Never automatically shared.
SharedMemory What agents explicitly publish to the collective. Opt-in, not default.
MemoryEvent A discrete experience. Same event, encoded differently per agent based on its context.
Perspective The lens through which an agent encodes events — shaped by its history and role.
Consolidation How repeated private experiences abstract into durable beliefs over time.
Drift Agents in the same team naturally diverge in perspective over time. Measurable.

Design Principles

Private by default

Memory is private unless explicitly shared. Sharing is a deliberate act, not an automatic sync.

Same event, different encoding

When agents observe the same event, each encodes it through its own perspective. Divergence is the feature, not the bug.

Framework agnostic

Works alongside OpenAI Swarm, CrewAI, LangGraph, or a hand-written agent loop. No lock-in.

Institutional memory emerges

Over time, what agents repeatedly share consolidates into team-level knowledge — without forcing a single shared brain.

Installation

pip install eachmind

Quick Start

from eachmind import Agent, MemoryEvent, SharedMemory

# Create agents with their own private memory
analyst = Agent(name="analyst", role="data analysis")
writer = Agent(name="writer", role="content creation")

# Both agents observe the same event
event = MemoryEvent(
    content="Q1 revenue grew 23% YoY",
    source="quarterly_report",
    timestamp="2026-04-10T09:00:00Z"
)

# Each encodes it through their own perspective
analyst.observe(event)  # Encodes: statistical significance, trend implications
writer.observe(event)   # Encodes: narrative angle, audience framing

# Analyst decides to share a finding
analyst.share(
    content="Revenue growth acceleration suggests market expansion",
    to=SharedMemory.TEAM
)

# Writer can now access shared knowledge
shared = writer.recall(source=SharedMemory.TEAM)

# Over time, perspectives naturally drift — and that's measurable
drift = analyst.perspective.drift_from(writer.perspective)

Architecture

┌─────────────────────────────────────────────────┐
│                   Agent Team                     │
│                                                  │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐      │
│  │ Agent A   │  │ Agent B   │  │ Agent C   │      │
│  │┌────────┐│  │┌────────┐│  │┌────────┐│      │
│  ││Private ││  ││Private ││  ││Private ││      │
│  ││Memory  ││  ││Memory  ││  ││Memory  ││      │
│  │└────────┘│  │└────────┘│  │└────────┘│      │
│  │┌────────┐│  │┌────────┐│  │┌────────┐│      │
│  ││Perspect││  ││Perspect││  ││Perspect││      │
│  ││ive     ││  ││ive     ││  ││ive     ││      │
│  │└────────┘│  │└────────┘│  │└────────┘│      │
│  └─────┬────┘  └─────┬────┘  └─────┬────┘      │
│        │  share()     │  share()    │            │
│        ▼              ▼             ▼            │
│  ┌──────────────────────────────────────┐       │
│  │          Shared Memory (opt-in)       │       │
│  │  ┌─────────────────────────────────┐ │       │
│  │  │    Consolidated Team Knowledge   │ │       │
│  │  └─────────────────────────────────┘ │       │
│  └──────────────────────────────────────┘       │
└─────────────────────────────────────────────────┘

What It Is NOT

  • Not a vector database or RAG system — eachmind defines memory behavior, not storage engines.
  • Not an agent framework or task runner — it doesn't orchestrate agents or assign tasks.
  • Not a replacement for mem0, Zep, or MemGPT — those are memory backends; eachmind is a protocol layer above them.
  • Not a multi-agent orchestrator — it doesn't manage agent coordination or communication routing.

Project Status

Foundation complete. Project 1 of 2. All core primitives, protocol specification, storage backends, visualizations, and integration examples are implemented. Project 2 is an agent architecture built on top of eachmind that demonstrates genuine team cognition — agents that challenge, review, disagree, and accumulate institutional knowledge over time.

Roadmap

  • Core primitives implementation
  • Protocol specification
  • Storage backend adapters (in-memory, SQLite, Redis)
  • Integration examples (OpenAI Agents SDK, CrewAI, LangGraph)
  • Drift measurement and visualization
  • Consolidation algorithms
  • Project 2: Team cognition demo

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

License

MIT License — see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eachmind-0.1.0.tar.gz (47.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eachmind-0.1.0-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file eachmind-0.1.0.tar.gz.

File metadata

  • Download URL: eachmind-0.1.0.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eachmind-0.1.0.tar.gz
Algorithm Hash digest
SHA256 95faa04d3fae6079451300915bed3e0973731346b5f6d50f434d6cd76d8f2ebf
MD5 45659f4bb42dcf0e7effb8aa6eee9950
BLAKE2b-256 809dfeec92477c1f3186064ad8ac177bd9b51121de0350048bd347e6523c97f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for eachmind-0.1.0.tar.gz:

Publisher: publish.yml on inthepond/each-mind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eachmind-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: eachmind-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for eachmind-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b34f7f2bb7e664a919fcb4ab5506b74aae48d720e1f88b83baa324591894f4d
MD5 39b05c91f30f524b5abbe93edf3e1bb4
BLAKE2b-256 5cd0397ec8d626d6ca3a0b4ea43530b7a0f59a7cfac9660d0ba4c94906440e41

See more details on using hashes here.

Provenance

The following attestation bundles were made for eachmind-0.1.0-py3-none-any.whl:

Publisher: publish.yml on inthepond/each-mind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page