google / google/adk-python-community

Feature Request: Add Milvus-backed Memory Service

Open
#69 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
182
Forks
75
PR merge metrics
No merged PRs in 30d

Description

### Description

Add `MilvusMemoryService`, an implementation of `BaseMemoryService` that uses [Milvus](https://milvus.io/) as the vector store for cross-session conversation memory.

### Motivation

ADK's existing memory services (`InMemoryMemoryService`, `VertexAiMemoryBankService`, `VertexAiRagMemoryService`) either lack semantic search or require GCP infrastructure. Milvus provides a lightweight, open-source alternative that supports local (Milvus Lite), self-hosted, and fully managed (Zilliz Cloud) deployments.

This complements the `MilvusToolset` (PR google/adk-python#4417) which handles RAG knowledge base search, by adding a separate memory persistence layer for conversation history.

### Proposed Solution

- `MilvusMemoryService(BaseMemoryService)`: stores session events as vector-embedded text in Milvus, with `app_name`/`user_id` scoping and deduplication.
- Users provide their own embedding function (e.g., Google GenAI `gemini-embedding-001`).
- Works with `PreloadMemoryTool` and `LoadMemoryTool` out of the box.

### Related PR

google/adk-python#4417

Contributor guide

Open the contributing guide

Research direction

Start by reading BaseMemoryService and the existing InMemoryMemoryService, VertexAiMemoryBankService, and VertexAiRagMemoryService implementations. Use the proposed MilvusMemoryService behavior as the scope: vector-backed session events with app_name/user_id scoping and deduplication, compatible with PreloadMemoryTool and LoadMemoryTool. The issue does not name specific files or tests, so the project’s existing memory-service conventions need to be located first.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.