llamaindex-memory 0.0 on LoCoMollm-baseline 0.0 on LoCoMomem0-local 0.0 on LongMemEvalmem0-local 0.0 on LongMemEvalllamaindex-memory 0.0 on LongMemEvalllm-baseline 0.0 on LongMemEvallangchain-memory 0.0 on LongMemEvalcognee 0.0 on LongMemEval13 systems independently scored64 systems indexedllamaindex-memory 0.0 on LoCoMollm-baseline 0.0 on LoCoMomem0-local 0.0 on LongMemEvalmem0-local 0.0 on LongMemEvalllamaindex-memory 0.0 on LongMemEvalllm-baseline 0.0 on LongMemEvallangchain-memory 0.0 on LongMemEvalcognee 0.0 on LongMemEval13 systems independently scored64 systems indexed
Methodology
Adapter Contractv1.0

Agent Memory Adapter Spec

Adapter contract for agent memory systems. These systems provide persistent memory for autonomous agents, supporting cross-session recall and multi-agent isolation.

Required methods

def setup(self) -> None

Initialize the agent memory backend. May start services, connect to databases, etc.

def reset(self) -> None

Clear agent memory state. Must isolate between benchmark items.

def teardown(self) -> None

Shut down services and clean up.

def ingest(self, turns: List[Dict[str, Any]]) -> None

Store agent interaction history. Turns represent agent actions and observations.

def recall(self, query: str) -> str

Retrieve relevant agent memories for decision-making context.

Required capabilities

  • -Agent interaction history storage
  • -Cross-session memory persistence
  • -Memory isolation between agents/tasks
  • -Efficient recall under token constraints

Applicable benchmarks

Example implementation

python
"""Example agent memory adapter."""
from typing import Any, Dict, List, Optional
from benchd_harness.adapters.base import BaseAdapter


class MyAgentMemoryAdapter(BaseAdapter):

    @property
    def name(self) -> str:
        return "my-agent-memory"

    @property
    def version(self) -> Optional[str]:
        return "1.0.0"

    def setup(self) -> None:
        self._memory = AgentMemoryStore(agent_id="benchd-eval")

    def reset(self) -> None:
        self._memory.clear(agent_id="benchd-eval")

    def teardown(self) -> None:
        self._memory.shutdown()

    def ingest(self, turns: List[Dict[str, Any]]) -> None:
        for turn in turns:
            self._memory.store(
                agent_id="benchd-eval",
                role=turn["role"],
                content=turn["content"],
            )

    def recall(self, query: str) -> str:
        results = self._memory.recall(
            agent_id="benchd-eval",
            query=query,
        )
        return "\n".join(results)

Quick start

Install

bash
pip install benchd-harness

Validate & test

bash
benchd adapter validate my-agent-memory && benchd run -a my-agent-memory -b smoke-memory-v0

Stable URL: benchd.ai/spec/adapter/agent-memory/v10
Version: 1.0 | This spec is referenced in adapter manifests and will not change within the same major version.

Command Palette

Search for a command to run...