AkurAI Build
Menu

popagent

public

Latest change 6edc7e928c57dab23c0973ed3f7ee70b3ebb72d5 - Initial popagent baseline by AkurAI Build

import { Memory } from "@mastra/memory";
import { PostgresStore } from "@mastra/pg";
import { AGENT_CONTEXT_KEYS, agentContextValue } from "./agent-context";
import { resolveModel } from "./models";

const connectionString = process.env.DATABASE_URL;
if (!connectionString) throw new Error("DATABASE_URL is required");

export const storage = new PostgresStore({
  id: "popagent-postgres",
  connectionString,
});

export const memory = new Memory({
  storage,
  options: {
    lastMessages: false,
    observationalMemory: {
      enabled: false,
      model: ({ requestContext }) => {
        const settings = agentContextValue(requestContext, AGENT_CONTEXT_KEYS.runtimeSettings);
        if (!settings) throw new Error("Agent runtime settings are required for observational memory");
        return resolveModel(settings.defaultModel);
      },
      observation: { bufferOnIdle: true },
      retrieval: true,
    },
  },
});