Add compaction flow

This commit is contained in:
ajac-zero
2026-02-21 21:32:06 -06:00
parent 89b4d7ce73
commit 3cb78afc3a
6 changed files with 507 additions and 6 deletions

29
chat.py
View File

@@ -3,6 +3,7 @@
import asyncio
from google import genai
from google.adk.agents import LlmAgent
from google.adk.runners import Runner
from google.cloud.firestore_v1.async_client import AsyncClient
@@ -22,7 +23,11 @@ root_agent = LlmAgent(
async def main() -> None:
db = AsyncClient()
session_service = FirestoreSessionService(db=db)
session_service = FirestoreSessionService(
db=db,
compaction_token_threshold=800_000,
genai_client=genai.Client(),
)
runner = Runner(
app_name=APP_NAME,
@@ -30,11 +35,25 @@ async def main() -> None:
session_service=session_service,
)
session = await session_service.create_session(
app_name=APP_NAME,
user_id=USER_ID,
# Reuse existing session or create a new one
resp = await session_service.list_sessions(
app_name=APP_NAME, user_id=USER_ID
)
print(f"Session {session.id} created. Type 'exit' to quit.\n")
if resp.sessions:
session = await session_service.get_session(
app_name=APP_NAME,
user_id=USER_ID,
session_id=resp.sessions[0].id,
)
print(f"Resuming session {session.id}.")
else:
session = await session_service.create_session(
app_name=APP_NAME,
user_id=USER_ID,
)
print(f"Session {session.id} created.")
print("Type 'exit' to quit.\n")
while True:
try: