Most AI brokers neglect. They course of a request, reply it, then drop the context. Google Cloud’s generative-ai repository now ships a pattern that tackles this straight. It’s the At all times-On Reminiscence Agent, a reference implementation that treats reminiscence as a working course of.
At all times-On Reminiscence Agent
Basically, the challenge is a light-weight background agent that by no means stops. It runs 24/7 as a steady course of, not a one-shot name. It’s constructed with Google ADK (Agent Improvement Equipment) and Gemini 3.1 Flash-Lite. Notably, it makes use of no vector database and no embeddings. As an alternative, an LLM reads, thinks, and writes structured reminiscence into SQLite. The mannequin alternative targets low latency and low value for steady background work.
How It Works: Ingest, Consolidate, Question
Architecturally, an orchestrator routes each request to one among three specialist sub-agents. Every sub-agent owns its personal instruments for studying or writing the reminiscence retailer.
First, the IngestAgent handles incoming content material. It makes use of Gemini’s multimodal capabilities to extract a abstract, entities, matters, and an significance rating. That structured document then lands within the reminiscences desk.
Subsequent, the ConsolidateAgent runs on a timer, each half-hour by default. Like sleep cycles, it critiques unconsolidated reminiscences and finds connections between them. Then it writes a synthesized abstract, one key perception, and people connections to the database. Consequently, the agent builds new understanding whereas idle, with no immediate.
Lastly, the QueryAgent solutions questions. It reads all reminiscences and consolidation insights, then synthesizes a response. Importantly, it cites the reminiscence IDs it used as sources.
operate reset(){
i=0; consolidated=false; retailer.innerHTML=””; $(“wires”).innerHTML=””;
$(“perception”).className=”perception”; $(“perception”).innerHTML=””;
$(“qbox”).className=”qbox”; $(“qans”).innerHTML=””; $(“qask”).textContent=””;
$(“bCons”).disabled=true; $(“bQuery”).disabled=true; activate(null);
log(“Reset. Drop a file into the agent’s inbox to start.”);
}
$(“bIngest”).onclick=ingest;
$(“bCons”).onclick=consolidate;
$(“bQuery”).onclick=question;
$(“bReset”).onclick=reset;
window.addEventListener(“load”,publish);
window.addEventListener(“resize”,publish);
if(window.ResizeObserver){ new ResizeObserver(publish).observe(doc.physique); }
setTimeout(publish,150);
})();









