fix(dream): allow LLM to retry on tool errors instead of failing immediately

Dream Phase 2 uses fail_on_tool_error=True, which terminates the entire
run on the first tool error (e.g. old_text not found in edit_file).
Normal agent runs default to False so the LLM can self-correct and retry.
Dream should behave the same way.
This commit is contained in:
chengyongru 2026-04-05 22:04:12 +08:00 committed by Xubin Ren
parent 5479a44691
commit 401d1f57fa
2 changed files with 2 additions and 2 deletions

View File

@ -627,7 +627,7 @@ class Dream:
model=self.model,
max_iterations=self.max_iterations,
max_tool_result_chars=self.max_tool_result_chars,
fail_on_tool_error=True,
fail_on_tool_error=False,
))
logger.debug(
"Dream Phase 2 complete: stop_reason={}, tool_events={}",

View File

@ -72,7 +72,7 @@ class TestDreamRun:
mock_runner.run.assert_called_once()
spec = mock_runner.run.call_args[0][0]
assert spec.max_iterations == 10
assert spec.fail_on_tool_error is True
assert spec.fail_on_tool_error is False
async def test_advances_dream_cursor(self, dream, mock_provider, mock_runner, store):
"""Dream should advance the cursor after processing."""