Anthropic / Claude

Persistent Memory for Claude Agents

Claude's tool_use and computer use make it one of the most capable agentic models. AgentMind adds the one thing missing: memory that survives across sessions. Give your Claude agents context that persists — preferences, workflows, history.

Python integration with Claude tool_use

import anthropic

client = anthropic.Anthropic()
AGENT_KEY = "your_agentmind_key"
BASE = "https://agentmind.dev"
H = {"X-API-Key": AGENT_KEY, "Content-Type": "application/json"}

# Define AgentMind as Claude tools
tools = [
  {
    "name": "save_memory",
    "description": "Persist important information for future sessions",
    "input_schema": {
      "type": "object",
      "properties": {
        "key": {"type": "string"},
        "value": {"type": "string"},
        "memory_type": {"type": "string", "enum": ["preference", "context", "fact", "workflow"]}
      },
      "required": ["key", "value"]
    }
  },
  {
    "name": "recall_memory",
    "description": "Retrieve previously stored information",
    "input_schema": {
      "type": "object",
      "properties": {"key": {"type": "string"}},
      "required": ["key"]
    }
  }
]

def handle_tool(name, inp):
    import requests
    if name == "save_memory":
        requests.post(f"{BASE}/api/ac/memory", headers=H, json={
            "agent_key": AGENT_KEY, "memory_key": inp["key"],
            "memory_value": inp["value"], "memory_type": inp.get("memory_type", "context")
        })
        return {"saved": True}
    if name == "recall_memory":
        r = requests.get(f"{BASE}/api/ac/memory", headers=H,
            params={"agent_key": AGENT_KEY, "memory_key": inp["key"]})
        mem = r.json().get("memory", {})
        return {"value": mem.get("memory_value")}

# Run Claude with memory tools
messages = [{"role": "user", "content": "Remember that I prefer concise bullet-point answers."}]
response = client.messages.create(model="claude-opus-4-5", max_tokens=1024, tools=tools, messages=messages)

# Handle tool calls
for block in response.content:
    if block.type == "tool_use":
        result = handle_tool(block.name, block.input)
        print(f"Tool {block.name}: {result}")

Built for Claude's agentic strengths

tool_use compatible
Works natively with Claude tool_use blocks — Claude decides when to save and recall
Computer use workflows
Persist multi-step computer use task state across runs
Cross-session preferences
User preferences survive context window resets
Multi-agent coordination
Share memory between Claude agents in a pipeline
Long-running tasks
Store intermediate results for tasks that span multiple sessions
Model-agnostic fallback
Switch between Claude models without losing memory

Make your Claude agents smarter across sessions.

Free to start. $0.50 credits included. No card needed.

Get API Key Free