From c73a9579a48db75688ba5004e9cfdb8350f06214 Mon Sep 17 00:00:00 2001 From: cthomas Date: Mon, 5 Jan 2026 14:43:14 -0800 Subject: [PATCH] feat: yield to event loop in file bulk operation (#8281) --- letta/services/agent_manager.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/letta/services/agent_manager.py b/letta/services/agent_manager.py index 147d608f..4bbf5139 100644 --- a/letta/services/agent_manager.py +++ b/letta/services/agent_manager.py @@ -3074,10 +3074,14 @@ class AgentManager: # Generate visible content for each file line_chunker = LineChunker() visible_content_map = {} - for file_metadata in file_metadata_with_content: + for i, file_metadata in enumerate(file_metadata_with_content): content_lines = line_chunker.chunk_text(file_metadata=file_metadata) visible_content_map[file_metadata.file_name] = "\n".join(content_lines) + # Yield to event loop every 100 files to prevent saturation + if i > 0 and i % 100 == 0: + await asyncio.sleep(0) + # Use bulk attach to avoid race conditions and duplicate LRU eviction decisions closed_files = await self.file_agent_manager.attach_files_bulk( agent_id=agent_state.id,