From 40347973a597bbc05a7776a68f6464fe50770d0e Mon Sep 17 00:00:00 2001 From: wuyiqunLu Date: Tue, 24 Sep 2024 15:40:32 +0800 Subject: [PATCH] feat: error handling for conversation agent --- vision_agent/agent/vision_agent.py | 21 +++++++++++++++++++-- vision_agent/tools/meta_tools.py | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/vision_agent/agent/vision_agent.py b/vision_agent/agent/vision_agent.py index c64390d5..53827876 100644 --- a/vision_agent/agent/vision_agent.py +++ b/vision_agent/agent/vision_agent.py @@ -314,15 +314,32 @@ def chat_with_code( # sometimes it gets stuck in a loop, so we force it to exit if last_response == response: - response["let_user_respond"] = True self.streaming_message( - {"role": "assistant", "error": "Stuck in loop"} + { + "role": "assistant", + "finished": True, + "content": "{}", + "error": { + "name": "Error when running conversation agent", + "value": "Agent is stuck in conversation loop, exited", + "traceback_raw": [], + }, + } + ) + break + elif response["let_user_respond"]: + self.streaming_message( + {"role": "assistant", "content": response, "finished": True} ) + break else: self.streaming_message({"role": "assistant", "content": response}) +<<<<<<< Updated upstream finished = response["let_user_respond"] +======= +>>>>>>> Stashed changes code_action = parse_execution( response["response"], test_multi_plan, customized_tool_names ) diff --git a/vision_agent/tools/meta_tools.py b/vision_agent/tools/meta_tools.py index 52d732f7..8c32e7fc 100644 --- a/vision_agent/tools/meta_tools.py +++ b/vision_agent/tools/meta_tools.py @@ -425,6 +425,7 @@ def detect_dogs(image_path: str): agent = va.agent.VisionAgentCoder() if name not in artifacts: + print(f"[Artifact {name} does not exist]") return f"[Artifact {name} does not exist]" code = artifacts[name]