mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-29 18:40:38 +00:00
mini_swe_agent.py adds recovery nudges so the agent doesn't exit silently when the cloud model produces an empty turn: - _loop_cloud_openai: finish_reason='length' with empty content/tool_calls → re-prompt instead of breaking. Hit gpt-5-mini on SWE n=100 (caused 0-score exits with empty final_summary). - _loop_cloud_gemini: MALFORMED_FUNCTION_CALL / MAX_TOKENS with empty parts → same recovery. Hit gemini-2.5-flash on SWE n=100 (24/100 tasks). Also: proper Gemini Schema-shaped bash tool params, gpt-5-family handling, missing is_gpt5_family import. 5 regression tests cover both recovery paths and natural-stop sanity guards. scripts/ablation/run_sweep.py parse_cell anchors on the n100 suffix and walks left, so advisors-*-gaia-n100 cells report GAIA as bench instead of 'qwen27b'. Old logic only handled cloud-only/skillorchestra-qwen prefixes explicitly. Companion working-tree changes shipped here: Gemini price entries, baseline_cloud module registration, swebench dataset variant note, swebench_harness Modal cgroup-v2 patch (file write swallows FileNotFoundError on cgroup paths so Modal v2 sandboxes don't die). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>