Edit: prevent the FAISS/KeyError (or any extension error) from crashing agent loop at the agent.py level. The call to self.call_extensions("message_loop_prompts", ...) in prepare_prompt is now wrapped in a try/except block.
deci committed
May 11, 2025 at 20:15 UTC
0e5647c31a30dd6259745f523bfa0287a9c2bb8f
1 file changed
+13
-1
agent.py
+13
-1
@@ -363,7 +363,19 @@ class Agent:
363
loop_data.history_output = self.history.output()
364
365
# and allow extensions to edit them
366
- await self.call_extensions("message_loop_prompts", loop_data=loop_data)
366
+ try:
367
+ await self.call_extensions("message_loop_prompts", loop_data=loop_data)
368
+ except Exception as e:
369
+ error_message = errors.format_error(e)
370
+ error_text = errors.error_text(e)
371
+ self.context.log.log(
372
+ type="error",
373
+ heading="Extension Error",
374
+ content=error_message,
375
+ kvps={"text": error_text},
376
+ )
377
+ PrintStyle.error(error_message)
378
+ self.hist_add_warning(error_message)
379
380
# extras (memory etc.)
381
extras: list[history.OutputMessage] = []