google / google/adk-python

No way to delete memories from a MemoryService

オープン
#6,949 コメント 3 件 リアクション 0 件 担当者 1 名 @sanketpatil06 が担当を希望しています GitHub で見る
needs review services
主要言語
Python
スター
21.5k
フォーク
4k
平均マージ
1日 14時間
マージ済み PR(30日)
37

説明

### 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

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。