# Google Cloud’s Always-On Memory Agent Replaces RAG and Embeddings With Continuous LLM Consolidation on Gemini 3.1 Flash-Lite

> Source: <https://www.marktechpost.com/2026/07/18/google-clouds-always-on-memory-agent-replaces-rag-and-embeddings-with-continuous-llm-consolidation-on-gemini-3-1-flash-lite/>
> Published: 2026-07-18 07:57:51+00:00

Most AI agents forget. They process a request, answer it, then drop the context. Google Cloud’s [ generative-ai repository now ships a sample that tackles this directly. It is the Always-On Memory Agent](https://github.com/GoogleCloudPlatform/generative-ai/tree/main/gemini/agents/always-on-memory-agent), a reference implementation that treats memory as a running process.

**Always-On Memory Agent**

Fundamentally, the project is a lightweight background agent that never stops. It runs 24/7 as a continuous process, not a one-shot call. It is built with **Google ADK** (Agent Development Kit) and **Gemini 3.1 Flash-Lite**. Notably, it uses no vector database and no embeddings. Instead, an LLM reads, thinks, and writes structured memory into **SQLite**. The model choice targets low latency and low cost for continuous background work.

**How It Works: Ingest, Consolidate, Query**

Architecturally, an orchestrator routes every request to one of three specialist sub-agents. Each sub-agent owns its own tools for reading or writing the memory store.

First, the **IngestAgent** handles incoming content. It uses Gemini’s multimodal capabilities to extract a summary, entities, topics, and an importance score. That structured record then lands in the `memories`

table.

Next, the **ConsolidateAgent** runs on a timer, every 30 minutes by default. Like sleep cycles, it reviews unconsolidated memories and finds connections between them. Then it writes a synthesized summary, one key insight, and those connections to the database. Consequently, the agent builds new understanding while idle, with no prompt.

Finally, the **QueryAgent** answers questions. It reads all memories and consolidation insights, then synthesizes a response. Importantly, it cites the memory IDs it used as sources.

**Supported Inputs**

Beyond text, the IngestAgent accepts 27 file types across five categories. Simply drop any supported file into the `./inbox`

folder for automatic pickup.

| Category | Extensions |
|---|---|
| Text | `.txt` , `.md` , `.json` , `.csv` , `.log` , `.xml` , `.yaml` , `.yml` |
| Images | `.png` , `.jpg` , `.jpeg` , `.gif` , `.webp` , `.bmp` , `.svg` |
| Audio | `.mp3` , `.wav` , `.ogg` , `.flac` , `.m4a` , `.aac` |
| Video | `.mp4` , `.webm` , `.mov` , `.avi` , `.mkv` |
| Documents | `.pdf` |

**How It Compares to RAG, Summaries, and Knowledge Graphs**

To clarify the difference, it frames three common memory approaches. Each solves part of the problem, yet leaves a gap.

| Approach | How it stores | Active processing | Main limitation |
|---|---|---|---|
| Vector DB + RAG | Embeddings in a vector store | None | Passive; embeds once, retrieves later |
| Conversation summary | Compressed text | None | Loses detail; no cross-reference |
| Knowledge graphs | Nodes and edges | Manual upkeep | Expensive to build and maintain |
| Always-On Memory Agent | Structured rows in SQLite | Continuous consolidation | Query reads up to 50 recent memories |

Unlike RAG, this agent processes memory actively, not only on retrieval.

**Use Cases With Examples**

Practically, the pattern fits any workload needing durable, evolving context. **Consider three examples.**

- A
**research assistant** ingests PDFs, meeting audio, and screenshots all week. Later, it links a cost target to a reliability problem on its own. - A
**personal knowledge base** absorbs notes, articles, and images continuously. Over time, consolidation surfaces themes you never explicitly connected. - A
**support agent** stores past tickets as structured memories. Then it answers new questions with cited references to earlier cases.

**Getting Started**

With the design clear, setup stays minimal for early-level engineers. Install dependencies, set your key, then start the process.

```
pip install -r requirements.txt
export GOOGLE_API_KEY="your-gemini-api-key"
python agent.py
```

Once running, the agent watches `./inbox`

, consolidates every 30 minutes, and serves an HTTP API on port 8888. Therefore, you can also feed it over HTTP.

```
# Ingest text
curl -X POST http://localhost:8888/ingest \
  -H "Content-Type: application/json" \
  -d '{"text": "AI agents are the future", "source": "article"}'

# Ask a question
curl "http://localhost:8888/query?q=what+do+you+know"
```

Additionally, the API exposes `/status`

, `/memories`

, `/consolidate`

, `/delete`

, and `/clear`

. An optional Streamlit dashboard adds ingest, query, browse, and delete controls. CLI flags change the watch folder, port, and consolidation interval.

```
python agent.py --watch ./docs --port 9000 --consolidate-every 15
```

**Key Takeaways**

**No vector DB, no embeddings**— an LLM reads, thinks, and writes structured memory into SQLite.** Runs 24/7**on Google ADK + Gemini 3.1 Flash-Lite as a lightweight background process.** Three sub-agents**under one orchestrator: Ingest, Consolidate, and Query.** Consolidates every 30 minutes**— links related memories and writes new insights while idle.** Ingests 27 file types**across text, images, audio, video, and PDFs, dropped into`./inbox`

.

Check out the ** FULL CODES here. **Also, feel free to follow us on

**and don’t forget to join our**[Twitter](https://x.com/intent/follow?screen_name=marktechpost)

**and Subscribe to**

[150k+ML SubReddit](https://www.reddit.com/r/machinelearningnews/)**. Wait! are you on telegram?**

[our Newsletter](https://www.aidevsignals.com/)

[now you can join us on telegram as well.](https://t.me/machinelearningresearchnews)Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? [Connect with us](https://forms.gle/wbash1wF6efRj8G58)

Michal Sutter is a data science professional with a Master of Science in Data Science from the University of Padova. With a solid foundation in statistical analysis, machine learning, and data engineering, Michal excels at transforming complex datasets into actionable insights.
