Adding memory layer in adk framework #239
Replies: 1 comment
-
|
ADK has built-in memory support via Option 1: Use BaseMemoryService (Recommended)ADK provides from google.adk.memory import InMemoryMemoryService
memory_service = InMemoryMemoryService()
runner = Runner(
agent=your_agent,
app_name="my_app",
session_service=session_service,
memory_service=memory_service,
)To build a custom backend (e.g., vector DB), extend from google.adk.memory import BaseMemoryService
class MyCustomMemoryService(BaseMemoryService):
def add_session_to_memory(self, session):
# Store session data in your preferred backend
pass
def search_memory(self, app_name, user_id, query):
# Retrieve relevant memories
passIntegrating mem0Wrap mem0 inside a custom from google.adk.memory import BaseMemoryService
from mem0 import Memory
class Mem0MemoryService(BaseMemoryService):
def __init__(self):
self.mem = Memory()
def add_session_to_memory(self, session):
for event in session.events:
if hasattr(event, "content") and event.content:
self.mem.add(event.content.parts[0].text, user_id=session.user_id)
def search_memory(self, app_name, user_id, query):
return self.mem.search(query, user_id=user_id)Why not a Tool?Building memory as a tool is less integrated — the agent must explicitly decide to call it. TL;DR: Use |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I want to have a memory layer with this framework like mem0 or langmem. Should I build a tool for it or should I use the
BaseMemoryServicefrom the memory module?If anyone have other ideas, please share here.
Beta Was this translation helpful? Give feedback.
All reactions