Memory infrastructure for AI agents. Give your AI a brain.
Project description
Memory infrastructure for AI agents.
Give your AI a brain.
โก Give your AI agents real memory in 3 lines
from neurogram import Agent
adam = Agent("adam")
adam.remember("User prefers concise, technical responses")
context = adam.think("How should I explain this API?")
That's it. Your agent now has persistent, searchable, evolving memory.
๐ง What is Neurogram?
Most AI agents today are stateless โ they forget everything after each conversation. Neurogram changes that.
Neurogram is an AI Memory OS that gives agents human-like memory:
| Memory Type | Human Analogy | Neurogram Feature |
|---|---|---|
| Semantic | Knowing what a router is | agent.remember("Docker is a containerization platform") |
| Episodic | Remembering yesterday's meeting | agent.learn(topic="API design", outcome="User liked REST") |
| Procedural | Knowing how to ride a bicycle | agent.learn_procedure("Deploy", steps=[...]) |
| Importance | Important memories persist | Automatic scoring + decay |
| Forgetting | Unused memories fade | agent.decay() โ Ebbinghaus curve |
Unlike simple vector stores, Neurogram implements a complete cognitive memory architecture.
๐ Installation
# Core (zero dependencies beyond numpy)
pip install neurogram
# With sentence-transformers (better embeddings)
pip install neurogram[embeddings]
# With FastAPI server
pip install neurogram[server]
# Everything
pip install neurogram[all]
JavaScript/TypeScript:
npm install neurogram-js
๐ Quick Start
Single Agent
from neurogram import Agent
# Create an agent โ memories persist across sessions
agent = Agent("Nova", description="Coding assistant")
# Store memories
agent.remember("User's project uses FastAPI + PostgreSQL")
agent.remember("User prefers type hints in Python code")
# Learn from experience
agent.learn(
topic="Code review",
action="Suggested type hints",
outcome="User appreciated it",
lesson="Always suggest type hints"
)
# Get context for LLM prompts
context = agent.think("How should I help with this Python code?")
# โ "Relevant memories:
# - User's project uses FastAPI + PostgreSQL
# - User prefers type hints in Python code"
# Search specific memories
results = agent.recall("user preferences")
for r in results:
print(f"[{r.relevance_score:.2f}] {r.memory.content}")
Multi-Agent System
from neurogram import Neurogram
brain = Neurogram()
# Each agent has isolated memory
adam = brain.create_agent("Adam", description="Researcher")
nova = brain.create_agent("Nova", description="Coder")
adam.remember("Transformers are the dominant NLP architecture")
nova.remember("User's stack: FastAPI, Docker, K8s")
# Memories don't leak between agents
adam.think("NLP") # โ finds transformer memory
nova.think("NLP") # โ empty (Nova doesn't know about NLP)
Memory-Augmented LLM
from neurogram import Agent
from openai import OpenAI
agent = Agent("assistant")
client = OpenAI()
def chat(user_message: str) -> str:
# Get relevant memories
context = agent.think(user_message, format_style="structured")
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"You have memory:\n{context}"},
{"role": "user", "content": user_message},
]
)
answer = response.choices[0].message.content
# Learn from this interaction
agent.learn(topic=user_message[:50], action="answered", outcome="responded")
return answer
๐๏ธ Architecture
User Input
โ
AI Agent
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NEUROGRAM MEMORY OS โ
โ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ Episodic โ โ Semantic โ โ
โ โ Memory โ โ Memory โ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โProcedural โ โ Importance โ โ
โ โ Memory โ โ Engine โ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ Embedding โ โ Storage โ โ
โ โ Engine โ โ Backend โ โ
โ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
LLM Reasoning
โ
Response
๐ Pluggable Backends
Embedding Engines
| Engine | Quality | Speed | Dependencies |
|---|---|---|---|
NumpyEmbeddingEngine |
โญโญ | โกโกโก | None (default) |
LocalEmbeddingEngine |
โญโญโญโญ | โกโก | sentence-transformers |
OpenAIEmbeddingEngine |
โญโญโญโญโญ | โก | openai + API key |
from neurogram import Agent
from neurogram import LocalEmbeddingEngine
# Use sentence-transformers for better quality
agent = Agent("nova", embedding_engine=LocalEmbeddingEngine())
Storage Backends
| Backend | Best For |
|---|---|
SQLiteBackend |
Development, single-agent (default) |
| Custom backends | Implement StorageBackend interface |
๐งช Memory Server (REST API)
Run the Neurogram server for multi-language access:
pip install neurogram[server]
neurogram server --port 8000
API docs at http://localhost:8000/docs
# Create agent
curl -X POST http://localhost:8000/agents \
-H "Content-Type: application/json" \
-d '{"name": "adam"}'
# Store memory
curl -X POST http://localhost:8000/agents/adam/remember \
-H "Content-Type: application/json" \
-d '{"content": "User prefers dark mode"}'
# Search memory
curl -X POST http://localhost:8000/agents/adam/recall \
-H "Content-Type: application/json" \
-d '{"query": "UI preferences"}'
JavaScript/TypeScript Client
import { Neurogram } from "neurogram-js";
const brain = new Neurogram("adam", { serverUrl: "http://localhost:8000" });
await brain.create("Research assistant");
await brain.remember("User studies machine learning");
const memories = await brain.recall("user interests");
const context = await brain.think("What should I recommend?");
๐งฌ Importance & Forgetting
Neurogram uses biologically-inspired memory dynamics:
Importance Score = ฮฑรFrequency + ฮฒรRecency + ฮณรEmotion + ฮดรFeedback
- Frequency: Memories accessed more often strengthen
- Recency: Recent memories are naturally more vivid
- Emotion: Emotionally charged memories persist longer
- Forgetting: Ebbinghaus exponential decay curve
agent = Agent("nova")
# Frequently accessed memories become stronger
for _ in range(10):
agent.recall("important topic")
# Run decay โ low-importance memories get pruned
forgotten = agent.decay()
print(f"Forgot {forgotten} faded memories")
๐ Project Structure
neurogram/
โโโ neurogram/ # Python SDK
โ โโโ __init__.py
โ โโโ agent.py # Primary developer API
โ โโโ neurogram.py # Multi-agent manager
โ โโโ memory_manager.py # Central orchestrator
โ โโโ embedding_engine.py # Pluggable embeddings
โ โโโ importance_engine.py # Scoring & decay
โ โโโ episodic_memory.py # Experience memory
โ โโโ semantic_memory.py # Factual knowledge
โ โโโ procedural_memory.py # Skills & procedures
โ โโโ cli.py # CLI interface
โ โโโ types.py # Core data types
โ โโโ storage/
โ โโโ base.py # Storage interface
โ โโโ sqlite_backend.py # Default SQLite storage
โโโ server/
โ โโโ app.py # FastAPI REST server
โโโ neurogram-js/ # NPM package
โ โโโ src/index.ts # TypeScript SDK
โโโ examples/
โ โโโ quickstart.py
โ โโโ chatbot_memory.py
โ โโโ multi_agent.py
โโโ tests/
โโโ pyproject.toml
โโโ README.md
๐ฃ๏ธ Roadmap
- Core memory engine (semantic, episodic, procedural)
- Importance scoring & decay
- SQLite storage backend
- FastAPI REST server
- TypeScript/JS SDK
- Knowledge graph connections
- PostgreSQL + pgvector backend
- Memory consolidation (short-term โ long-term)
- Memory visualization dashboard
- Hosted cloud platform
๐ค Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
# Setup development environment
git clone https://github.com/neurogram-ai/neurogram.git
cd neurogram
pip install -e ".[dev]"
python -m pytest tests/ -v
๐ License
MIT License โ see LICENSE for details.
Neurogram โ Because AI agents deserve to remember. ๐ง
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neurogram-0.2.0.tar.gz.
File metadata
- Download URL: neurogram-0.2.0.tar.gz
- Upload date:
- Size: 46.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0ea12a72be67e176230160a99c7ecb5f650f70370a29b85c134e1229a262c8d
|
|
| MD5 |
75f8aada89d2afc2a6518d255422bc59
|
|
| BLAKE2b-256 |
ade9e02d96a9fda7eb874e056c2646ceae7c438353352cea9460066cebda2641
|
File details
Details for the file neurogram-0.2.0-py3-none-any.whl.
File metadata
- Download URL: neurogram-0.2.0-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c661c5dd8338e9ccdbfbf39a7b4001aca1ffa89260c0f02f76d3e535cdc2e0b4
|
|
| MD5 |
776a20f6eceda5cdf06d7a2a41b22c27
|
|
| BLAKE2b-256 |
309f66b9f55b1ab584ea3c013a8fd2d42220c5f0b5bafafd65dc160ba4e7ed03
|