Memory Layer

List memories

Retrieve a paginated list of memories with optional filtering.

Method

client.memories.list(query?: ListMemoriesQuery): Promise<ListMemoriesResponse>

Parameters

interface ListMemoriesQuery {
  limit?: number; // 1-100, default: 20
  offset?: number; // default: 0
  layerId?: string; // Filter by layer ID
}
  • limit (number, optional): Number of memories to return (1-100, default: 20)
  • offset (number, optional): Number of memories to skip (default: 0)
  • layerId (string, optional): Filter memories by layer ID

Basic Example

// List all memories (first 20)
const response = await client.memories.list();

console.log(`Found ${response.data.total} total memories`);
response.data.memories.forEach(memory => {
  console.log(`${memory.id}: ${memory.content}`);
});

Filtered Example

// List memories for specific layer with pagination
const response = await client.memories.list({
  layerId: "REPLACE_THIS_LAYER_ID",
  limit: 10,
  offset: 0
});

console.log(`Found ${response.data.total} memories for layer`);
response.data.memories.forEach(memory => {
  console.log(`${memory.id}: ${memory.content}`);
});

Response

Returns a ListMemoriesResponse object:

interface ListMemoriesResponse {
  success: true;
  data: {
    memories: Memory[];
    total: number;
    limit: number;
    offset: number;
  };
}

Example Response

{
  "success": true,
  "data": {
    "memories": [
      {
        "id": "memory_id",
        "layerId": "layer_id",
        "content": "I prefer dark mode in my applications",
        "metadata": {
          "source": "preferences",
          "analysis": {
            "sentiment": "neutral",
            "intent": "preference",
            "topics": ["ui", "preferences"]
          }
        },
        "createdAt": "2024-01-15T10:30:00Z",
        "updatedAt": "2024-01-15T10:30:00Z",
        "embedding": null
      }
    ],
    "total": 1,
    "limit": 10,
    "offset": 0
  }
}

Pagination

Handle large datasets with pagination:

const limit = 20;
let offset = 0;
let allMemories = [];

while (true) {
  const response = await client.memories.list({
    layerId: "REPLACE_THIS_LAYER_ID",
    limit,
    offset
  });

  allMemories.push(...response.data.memories);
  
  // Check if we've retrieved all memories
  if (response.data.memories.length < limit) {
    break;
  }
  
  offset += limit;
}

console.log(`Retrieved ${allMemories.length} total memories`);

Error Handling

try {
  const response = await client.memories.list({
    layerId: "REPLACE_THIS_LAYER_ID",
    limit: 50
  });
  
  console.log(`Retrieved ${response.data.memories.length} memories`);
} catch (error) {
  console.error('Failed to list memories:', error.message);
}