GuidesUsing the SDK
Memory Operations
Create, update, search, and manage memories with the TypeScript SDK.
The SDK provides full CRUD operations for memories, conversations, facts, topics, and entities.
Creating memories
Basic creation
const memory = await client.memories.create({
content: "Deployed v1.26.2 with OpenAPI validation fixes.",
topics: ["deployment", "core-api", "openapi"],
importance: 0.8,
});
console.log("Created:", memory.id);
With a conversation
Group related memories into a conversation:
// Create a new conversation
const conv = await client.conversations.create({
title: "API Rate Limiting Implementation",
});
// Create memories in that conversation
await client.memories.create({
content: "Starting rate limiting feature. Will use token bucket algorithm.",
topics: ["rate-limiting", "architecture"],
importance: 0.7,
conversationId: conv.id,
});
await client.memories.create({
content: "Rate limiting middleware complete. 100 req/min default.",
topics: ["rate-limiting", "implementation"],
importance: 0.8,
conversationId: conv.id,
});
Retrieving memories
Get a single memory
const memory = await client.memories.get("mem_abc123");
console.log(memory.content);
console.log(memory.topics);
List memories
const memories = await client.memories.list({
page: 0,
limit: 20,
});
for (const memory of memories.data) {
console.log(`[${memory.importance}] ${memory.content}`);
}
Batch get
const memories = await client.memories.batchGet([
"mem_abc123",
"mem_def456",
"mem_ghi789",
]);
Updating memories
await client.memories.update("mem_abc123", {
content: "Updated: Deployed v1.26.3 with additional fixes.",
importance: 0.9,
});
Deleting memories
await client.memories.delete("mem_abc123");
Working with facts
Facts are structured knowledge as subject-predicate-object triples:
// Create a fact
const fact = await client.facts.create({
subject: "MemNexus",
predicate: "built_with",
object: "Node.js",
confidence: 1.0,
});
// Search facts
const facts = await client.facts.search({
query: "Node.js",
});
// List facts
const allFacts = await client.facts.list({ page: 0, limit: 50 });
Working with conversations
// List recent conversations
const conversations = await client.conversations.list({
page: 0,
limit: 10,
});
// Get conversation details
const conv = await client.conversations.get("conv_abc123");
// Get conversation timeline
const timeline = await client.conversations.timeline("conv_abc123");
Working with topics
// List topics
const topics = await client.topics.list();
// Discover related topics
const related = await client.topics.discoverRelated("topic_abc123");
// Cluster topics
const clusters = await client.topics.cluster({
algorithm: "kmeans",
numClusters: 5,
});
Pagination pattern
All list operations return paginated results:
async function getAllMemories() {
const memories = [];
let page = 0;
let hasMore = true;
while (hasMore) {
const result = await client.memories.list({ page, limit: 100 });
memories.push(...result.data);
hasMore = result.data.length === 100;
page++;
}
return memories;
}
Next steps
- Search — Semantic and hybrid search
- Core Concepts — Understand the data model