1414 "dotenv not installed, skipping loading environment variables"
1515 )
1616
17+ from google .adk .apps .app import App
1718from google .adk .runners import Runner
1819from google .adk .sessions .in_memory_session_service import InMemorySessionService
1920from google .genai .types import Content , Part
2021
2122from auto_agent .agent import root_agent
23+ from auto_agent .config import get_compaction_config
2224
2325logger = logging .getLogger (__name__ )
2426
2527
2628class AutoAgentClient :
27- user_id : str
28- session_id : str
29- query : str
30- app_name : str = "auto_agent"
31-
3229 def __init__ (
3330 self ,
3431 user_id : str ,
3532 session_id : str ,
3633 query : str ,
3734 agent : Optional [Any ] = None ,
35+ app_name : str = "auto_agent" ,
36+ events_compaction : bool = False ,
3837 ):
3938 self .user_id = user_id
4039 self .session_id = session_id
4140 self .query = query
4241 self .agent = agent or root_agent
4342 self .session_service = InMemorySessionService ()
4443 self .session = None
44+ self .app_name = app_name
45+ self .events_compaction = events_compaction
4546
4647 async def create_session (
4748 self , initial_state : Optional [dict [str , Any ]] = None
@@ -77,9 +78,19 @@ async def run_async(self) -> None:
7778 if not self .session :
7879 await self .create_session ()
7980
81+ # Compaction configuration must be passed via an App object
82+ if self .events_compaction :
83+ compaction_config = get_compaction_config ()
84+ else :
85+ compaction_config = None
86+ app = App (
87+ name = self .app_name ,
88+ root_agent = self .agent ,
89+ events_compaction_config = compaction_config ,
90+ )
91+
8092 runner = Runner (
81- app_name = self .app_name ,
82- agent = self .agent ,
93+ app = app ,
8394 session_service = self .session_service ,
8495 )
8596
@@ -124,6 +135,11 @@ def main():
124135 default = "client_query.txt" ,
125136 help = "File containing the query to send" ,
126137 )
138+ parser .add_argument (
139+ "--events_compaction" ,
140+ action = "store_true" ,
141+ help = "Enable event compaction" ,
142+ )
127143 args = parser .parse_args ()
128144
129145 user_id = args .user_id
@@ -132,7 +148,12 @@ def main():
132148 query = read_query_from_file (args .query_file )
133149
134150 # Create client instance
135- client = AutoAgentClient (user_id , session_id , query )
151+ client = AutoAgentClient (
152+ user_id = user_id ,
153+ session_id = session_id ,
154+ query = query ,
155+ events_compaction = args .events_compaction ,
156+ )
136157
137158 logger .info (
138159 f"Generating script for user { user_id } in session { session_id } with query: { query } "
0 commit comments