import { Agent, MongoDBStorage, openai } from "@radaros/core";
const storage = new MongoDBStorage({ uri: process.env.MONGODB_URI! });
const agent = new Agent({
name: "assistant",
model: openai("gpt-4o"),
memory: {
storage,
summaries: true,
userFacts: true,
entities: true,
decisions: true,
},
});
async function runMaintenance() {
const curator = agent.memory!.curator;
// Step 1: Prune old data (older than 90 days)
const pruned = await curator.prune({
maxAgeDays: 90,
agentName: "assistant",
});
console.log(`Pruned ${pruned} old entries`);
// Step 2: Deduplicate user facts for all active users
const activeUsers = await storage.listUsers("assistant");
let totalDeduped = 0;
for (const userId of activeUsers) {
const removed = await curator.deduplicate({ userId });
totalDeduped += removed;
}
console.log(`Removed ${totalDeduped} duplicate facts across ${activeUsers.length} users`);
// Step 3: Log maintenance results
console.log(`Maintenance complete: ${pruned} pruned, ${totalDeduped} deduped`);
}
// Run daily at 3 AM
import { CronJob } from "cron";
new CronJob("0 3 * * *", runMaintenance).start();