Agent memory for TypeScript & Python
Aether gives your AI agent persistent, per-user memory and document retrieval behind one API — with SDKs for TypeScript, Python, Go, and .NET. Store what your agent learns, recall what it needs by meaning, and ground every reply.
Why Aether: Agent memory plus document RAG — four SDKs, including first-party .NET.
01What is agent memory?
Agent memory is persistent storage that lets an AI agent remember information across sessions — user preferences, earlier conversations, and source documents — and recall the most relevant pieces at query time using semantic (vector) search. Without it, an agent forgets everything once its context window fills up or the session ends.
Aether is a memory layer for autonomous AI agents. It unifies vector search, document storage, and embeddings behind a single API, so the same store handles two jobs at once: per-user memory (facts about a user or agent, recalled by meaning) and document RAG (retrieval over the PDFs, transcripts, and pages your agent needs to cite).
02Add memory in five minutes
Install the SDK for your language, set one environment variable (AETHER_API_KEY), and use the Memory facade. Scope memory to a stable user or agent id; recall() returns the most relevant memories ranked by score.
npm install @aether-ai/sdk # TypeScript / Node
pip install aether-ai # Pythonimport { Memory } from "@aether-ai/sdk";
// Scope memory to a stable user or agent id.
const memory = new Memory("user-42", { apiKey: process.env.AETHER_API_KEY });
await memory.remember("Prefers concise weekly summaries");
const hits = await memory.recall("communication style", { k: 5 });
for (const hit of hits) {
console.log(hit.score, hit.text); // higher score = more relevant
}import os
from aether import Memory
# Scope memory to a stable user or agent id.
memory = Memory("user-42", api_key=os.environ["AETHER_API_KEY"])
memory.remember("Prefers concise weekly summaries")
for hit in memory.recall("communication style", k=5):
print(hit.score, hit.text) # higher score = more relevantRetrieve over your own documents
The same client does retrieval-augmented generation. Insert source text once, then retrieve() passages that are ready to drop into a prompt.
import { AetherClient } from "@aether-ai/sdk";
const client = new AetherClient({ apiKey: process.env.AETHER_API_KEY });
// Store source material once...
await client.insertText("Aether bundles vector search, storage, and embeddings.");
// ...then retrieve passages ready to drop into a prompt.
const passages = await client.retrieve("what does Aether bundle?", 5);Full guides: TypeScript quickstart, Python quickstart, and the concepts guide.
03Aether vs Mem0 vs Zep, for a TS or Python builder
| Capability | Aether | Mem0 | Zep |
|---|---|---|---|
| Official SDK languages | TypeScript, Python, Go, .NET | Python, TypeScript | Python, TypeScript, Go |
| First-party .NET SDK | Yes | No | No |
| Per-user memory (remember / recall) | Yes | Yes | Yes |
| Document RAG in the same store | Yes — PDF, DOCX, HTML | Limited (chat-first) | Limited (graph-first) |
| MCP server for coding agents | Yes | Yes (hosted) | Yes (Graphiti) |
| Pricing model | Flat-rate platform | Metered by operations | Metered by data volume |
| Self-host | Single binary | Python service + vector DB | Python + graph DB |
To be fair to the alternatives: Mem0 and Zep are excellent, well-funded memory layers with more mature memory abstractions — automatic fact extraction (Mem0) and a temporal knowledge graph (Zep) — and published benchmarks. Aether competes on a different axis: bundled infrastructure, language coverage, and document-first retrieval. If you want one platform, one bill, and the same store for memory and RAG across four languages, that is where Aether wins.
04Why teams choose Aether
One platform, one bill
Vector search, document storage, and embeddings are bundled behind a single API — not Mem0 plus a vector DB plus an embeddings provider, each on its own invoice.
Four SDKs, including .NET
First-party SDKs for TypeScript, Python, Go, and .NET. Mem0 stops at Python and TypeScript; Zep adds Go. Aether is the only one of the three with a first-party .NET SDK.
Document-first, not just chat
The same store that holds per-user memory also ingests PDFs, DOCX, and HTML for retrieval — so an agent remembers conversations and the source material behind them.
Self-host from one binary
Run Aether as a single binary with no external vector database to operate, or use managed hosting at aetherdb.ai. Flat-rate pricing means your agent fleet can scale without your bill scaling with it.
05Frequently asked questions
What is agent memory?
Agent memory is persistent storage that lets an AI agent remember information across sessions — user preferences, earlier conversations, and source documents — and recall the most relevant pieces at query time using semantic (vector) search. Without it, an agent forgets everything once its context window fills up or the session ends.
What is the best agent memory library for a TypeScript app?
Common choices are Aether, Mem0, and Zep. Aether gives a TypeScript app per-user memory and document RAG behind one API and one bill, via the official @aether-ai/sdk package. Pick Aether when you want memory and document retrieval bundled, flat-rate pricing, single-binary self-hosting, or SDK parity across TypeScript, Python, Go, and .NET.
How is Aether different from Mem0 and Zep?
Aether bundles vector search, document storage, and embeddings into one API and one bill, and ships first-party SDKs for TypeScript, Python, Go, and .NET. Mem0 covers Python and TypeScript; Zep adds Go; neither ships a first-party .NET SDK. Aether is document-first as well as conversation-first, so one store handles per-user memory and RAG over PDFs, DOCX, and HTML.
Does Aether work with Python and TypeScript?
Yes. Install @aether-ai/sdk for TypeScript/Node or aether-ai for Python. Aether also ships official SDKs for Go and .NET, plus an MCP server so coding agents can read and write memory directly.
How do I add memory to my AI agent?
Create an API key, then use the Memory facade: new Memory(userId).remember('a fact') to store, and memory.recall('a question') to retrieve the most relevant memories, ranked by score. It takes about five minutes — see the TypeScript and Python quickstarts.
Can I self-host Aether?
Yes. Aether runs as a single binary with no external vector database to operate, and managed cloud hosting is available at aetherdb.ai if you would rather not run the infrastructure yourself.
Give your agent a memory.
Start free with the TypeScript or Python SDK. One API for memory and document retrieval, one bill, sub-millisecond recall.