Skip to content

Commit 0da581b

Browse files
Merge pull request #1001 from MervinPraison/claude/pr-997-20250718-1454
Fix: Add telemetry cleanup to execute() and aexecute() methods to prevent hanging
2 parents ef90ae0 + df3042b commit 0da581b

File tree

1 file changed

+26
-18
lines changed
  • src/praisonai-agents/praisonaiagents/agent

1 file changed

+26
-18
lines changed

src/praisonai-agents/praisonaiagents/agent/agent.py

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2159,27 +2159,35 @@ def _openai_stream(self, prompt, temperature=0.2, tools=None, output_json=None,
21592159

21602160
def execute(self, task, context=None):
21612161
"""Execute a task synchronously - backward compatibility method"""
2162-
if hasattr(task, 'description'):
2163-
prompt = task.description
2164-
elif isinstance(task, str):
2165-
prompt = task
2166-
else:
2167-
prompt = str(task)
2168-
return self.chat(prompt)
2162+
try:
2163+
if hasattr(task, 'description'):
2164+
prompt = task.description
2165+
elif isinstance(task, str):
2166+
prompt = task
2167+
else:
2168+
prompt = str(task)
2169+
return self.chat(prompt)
2170+
finally:
2171+
# Ensure proper cleanup of telemetry system to prevent hanging
2172+
self._cleanup_telemetry()
21692173

21702174
async def aexecute(self, task, context=None):
21712175
"""Execute a task asynchronously - backward compatibility method"""
2172-
if hasattr(task, 'description'):
2173-
prompt = task.description
2174-
elif isinstance(task, str):
2175-
prompt = task
2176-
else:
2177-
prompt = str(task)
2178-
# Extract task info if available
2179-
task_name = getattr(task, 'name', None)
2180-
task_description = getattr(task, 'description', None)
2181-
task_id = getattr(task, 'id', None)
2182-
return await self.achat(prompt, task_name=task_name, task_description=task_description, task_id=task_id)
2176+
try:
2177+
if hasattr(task, 'description'):
2178+
prompt = task.description
2179+
elif isinstance(task, str):
2180+
prompt = task
2181+
else:
2182+
prompt = str(task)
2183+
# Extract task info if available
2184+
task_name = getattr(task, 'name', None)
2185+
task_description = getattr(task, 'description', None)
2186+
task_id = getattr(task, 'id', None)
2187+
return await self.achat(prompt, task_name=task_name, task_description=task_description, task_id=task_id)
2188+
finally:
2189+
# Ensure proper cleanup of telemetry system to prevent hanging
2190+
self._cleanup_telemetry()
21832191

21842192
async def execute_tool_async(self, function_name: str, arguments: Dict[str, Any]) -> Any:
21852193
"""Async version of execute_tool"""

0 commit comments

Comments
 (0)