Vision provider configurable, default Gemini (reads the chess board -> Rd5). Solver falls back to plain-text when structured output returns empty (was dropping the Excel question). python_repl preloads pandas as pd and prompts push numeric work through it. HF_TOKEN documented.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fetch task files from HF Hub GAIA dataset (scoring API /files is 404)
The scoring API's /files endpoint returns 404 for all attachments, so the agent was guessing on file questions. fetch_task_file now falls back to the gated gaia-benchmark/GAIA dataset on the Hub via file_name (threaded through state/agent/app). Recovers the audio (page numbers) and python (code output) questions. Needs HF_TOKEN with GAIA terms accepted.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pin mistralai/mistral-large-3-675b (fast, non-Groq, reliable tools) to stop the gateway roulette. Add fetch_webpage (read full pages), youtube_transcript (spoken-content video Qs), run_python_file (code-output Qs); expose downloaded file path in context. Guard None from structured outputs (fixes 'NoneType has no attribute verdict' crash).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cache good answers by task_id so re-runs skip solved questions
GaiaAgent persists non-empty answers to gaia_cache.json and returns cached results on re-run, saving gateway tokens + time and surviving partial failures. Blanks are never cached so they retry. Cache file git-ignored (ephemeral on HF Spaces).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Raise default QUESTION_TIMEOUT to 500s for gateway stalls
Drop planner LLM (always probe for file), merge evidence into solver, make formatter pure-Python: ~8-12 calls/question -> ~3-6. Add max_tool_rounds cap so research-heavy questions terminate fast (no more 300s timeouts). Pin openai/gpt-oss-120b on the gateway (fast + reliable tool/structured); force function_calling for structured output since routed models ignore json_schema.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add openai_compatible provider branch for freellmapi gateway
ChatOpenAI(base_url, api_key) path with no client-side rate limiter (gateway handles failover + limits). Set LLM_PROVIDER=openai_compatible + the OPENAI_COMPATIBLE_* vars to use it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Default to Gemini 2.5-flash (thinking disabled) for text/judge nodes
Key fixed on a non-billing project; 2.5-flash with thinking_budget=0 is fast and accurate (Mercedes Sosa -> correct '3'). Pace lowered to 0.15 rps for the ~10 RPM free tier.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add provider toggle (Groq/Gemini) + global rate limiter to beat free-tier limits
Default to Groq llama-3.1-8b-instant (high TPM) so the batch survives without rate-limit errors; Gemini-2.0-flash selectable via LLM_PROVIDER. Shared InMemoryRateLimiter paces all text-LLM calls. Vision/Whisper stay on Groq.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
research node retries malformed tool calls then bails to evidence; agent wrapper bounds each question with QUESTION_TIMEOUT via a per-call executor; judge retries cut to 1 to reduce Groq rate-limit stalls; add progress logging.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>