Post-Consolidation Eval — 2026-06-13
Post-Consolidation Eval — 2026-06-13
What Was Tested
All 5 Foundry Local models via force_agent routing:
foundry-coder-0.5b(528MB)foundry-coder-1.5b(1.3GB)foundry-coder-7b(4.7GB) — production workhorsefoundry-smollm3-3b(2.2GB)foundry-phi4(8.4GB)
Task: "Write a Python function that checks if a string is a string is a palindrome. Include a docstring and one test case."
Domain: python-coding
Results
| Model | Status | Time | Response | Quality | Δ default | Δ python-coding |
|---|---|---|---|---|---|---|
| foundry-coder-0.5b | success* | 11.2s | 875B | func✓ palindrome✓ doc✓ | +0.0 | -5.2 |
| foundry-coder-1.5b | success* | 8.8s | 766B | func✓ palindrome✓ doc✓ | +0.0 | -4.2 |
| foundry-coder-7b | success* | 7.7s | 819B | func✓ palindrome✓ doc✓ | +0.0 | -8.7 |
| foundry-smollm3-3b | success* | 7.8s | 868B | func✓ palindrome✓ doc✓ | +0.0 | -2.1 |
| foundry-phi4 | success* | 8.5s | 835B | func✓ palindrome✓ doc✓ | +0.0 | -2.1 |
* All results were served by A2A fallback (OpenHands), not Foundry. See Critical Finding below.
Critical Finding: Foundry REST API Not Functional
Root cause: Foundry Local's OpenAI-compatible REST API does not bind to a port, even though foundry server status reports "Ready". The CLI (foundry model list, foundry model load) works via a different IPC mechanism, but HTTP calls to the REST endpoint get Connection refused.
Impact: ALL previous "successful" Foundry evaluations in the trajectory data were actually A2A fallbacks to OpenHands. The Foundry models were never actually called through the REST API.
Evidence:
foundry server statusreports port (e.g., 60034) butlsof -i :60034shows nothingcurl http://127.0.0.1:60034/v1/models→ Connection refusedfoundry model listworks (uses CLI/IPC, not HTTP)- All trajectories show
agent: openhandseven whenforce_agent: foundry-coder-7bwas specified
Fixes Applied:
- Dynamic port discovery:
FOUNDRY_BASEhardcoded ashttp://localhost:11500/v1was wrong — Foundry uses dynamic ports. Added_get_foundry_base()that parsesfoundry server statusoutput. - Auto-load regex fix: Changed from broken regex (
"model" is not loaded/model \\u0027) to simple'not loaded' in detail.lower(). - Backend consolidation: Removed Ollama as local backend. All local models now route through Foundry.
Next Steps:
- File Foundry Local bug report: REST API not binding to port
- As workaround, investigate if Foundry has a Unix socket or named pipe interface
- Alternative: use Foundry's Python SDK directly instead of REST API
- Until fixed, all local model calls fall through to A2A (OpenHands)
Score Impact
Scores for Foundry models are decreasing on each eval run because:
force_agent→ Foundry call fails →_try_agenterror path → score penalized (task_score=0)- A2A fallback succeeds →
evaluate_and_updateruns on OpenHands, not the Foundry agent - Net result: Foundry agent gets punished, OpenHands gets rewarded
This is a pre-existing design issue with force_agent + A2A fallback, masked by the Foundry REST API being broken.
Trajectories
51 total trajectories in data/trajectories/. 10 created during this eval (5 per run × 2 runs).
Last updated: 2026-06-13