Festinger now reads X-Agent-Name from every intercepted request and
resolves the utility LLM model in priority order:
1. agent_models table — agent-specific (e.g. gunnar → claude, rind → qwen)
2. write_model_id config — global default
3. Request mirror — same provider/model Agent0 is currently using
New API: GET/PUT/DELETE /agent-models
New admin UI: "Agent models" section with assignment form and table.
Agent0 side: add a custom header X-Agent-Name: <name> in the LLM
provider config per agent container (AGENT_NAME env var can drive this).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>