google / google/adk-python

No way to delete memories from a MemoryService

Offen
#6,949 3 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @sanketpatil06 Auf GitHub ansehen
needs review services
Vorherrschende Sprache
Python
Sterne
21.5k
Forks
4k
Ø Merge
1 T. 14 Std.
Gemergte PRs (30 T.)
37

Beschreibung

### Is your feature request related to a specific problem?

`BaseSessionService` has `delete_session` and `BaseArtifactService` has `delete_artifact`, but `BaseMemoryService` only has `add_session_to_memory`, `add_events_to_memory`, `add_memory` and `search_memory`. Once something is written to memory there is no way to remove it through ADK.

This comes up when a user asks for their data to be deleted. Sessions and artifacts I can handle. Whatever was extracted into long-term memory I cannot, so I end up going around ADK and deleting straight from the backing store.

Most of the pieces are already there. `MemoryEntry` has an `id` field, and the Vertex API has `projects.locations.reasoningEngines.memories.delete`. `VertexAiMemoryBankService` just doesn't wrap it. It only uses `memories.create`, `memories.generate` and `memories.ingest_events`.

### Describe the Solution You'd Like

Two methods on `BaseMemoryService`:

```python
async def delete_memory(self, *, app_name: str, user_id: str, memory_id: str) -> None
async def delete_memories(self, *, app_name: str, user_id: str) -> None
```

First one deletes a single entry, second one everything stored for a user.

For `VertexAiMemoryBankService` both map onto `memories.delete`. `InMemoryMemoryService` keeps a dict so it's easy. Implementations that can't support it could raise `NotImplementedError`.

### Impact on your work

I'm building agents for users in the EU, where a deletion request has to be answered within a month. Right now the memory part of that is a manual step outside ADK, and it's the part I can't show was actually done.

### Willingness to contribute

Yes, happy to open a PR if you're OK with the method names and signatures.

### Describe Alternatives You've Considered

Deleting from the backing store directly. It works but it's different for every implementation and bypasses ADK completely. The other option is not using MemoryService at all.

### Version

google-adk 2.8.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.