mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-06-18 13:46:02 +00:00
Merge branch 'main' into 2.0.0-release
This commit is contained in:
@@ -132,10 +132,22 @@ class AioSandbox(Sandbox):
|
||||
output = result.data.output if result.data else ""
|
||||
|
||||
if output and _ERROR_OBSERVATION_SIGNATURE in output:
|
||||
logger.warning("ErrorObservation detected in sandbox output, retrying with a fresh session")
|
||||
logger.warning("ErrorObservation detected in sandbox output, retrying on a fresh session")
|
||||
# exec_command only auto-creates a session when called with
|
||||
# no id, so the recovery session must be created explicitly
|
||||
# before we target it on retry.
|
||||
fresh_id = str(uuid.uuid4())
|
||||
result = self._client.shell.exec_command(command=command, id=fresh_id, no_change_timeout=self._DEFAULT_NO_CHANGE_TIMEOUT)
|
||||
output = result.data.output if result.data else ""
|
||||
self._client.shell.create_session(id=fresh_id)
|
||||
try:
|
||||
result = self._client.shell.exec_command(command=command, id=fresh_id, no_change_timeout=self._DEFAULT_NO_CHANGE_TIMEOUT)
|
||||
output = result.data.output if result.data else ""
|
||||
finally:
|
||||
# Release the one-shot recovery session, best-effort, so
|
||||
# repeated corruption can't accumulate sessions.
|
||||
try:
|
||||
self._client.shell.cleanup_session(fresh_id)
|
||||
except Exception as cleanup_error:
|
||||
logger.warning(f"Failed to release recovery session {fresh_id}: {cleanup_error}")
|
||||
|
||||
return output if output else "(no output)"
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user