Record: llama.vscode three-tier configuration applied — 2026-09-25

Outcome

The llama-vscode.* settings in ~/.config/Code/User/settings.json were replaced with a configuration that matches the live routers, and a canonical copy now lives in the repository.

The owner chose the tier mapping, the change scope, and to leave the athena router untouched.

Router mode is kept. It works with the extension and is the better fit here; the evidence is below.

Previous settings defects (verified 2026-09-25)

All four model lists named models the routers no longer serve, or named the wrong endpoint:

Defect Detail
Removed beast models Qwen/Qwen2.5-Coder-32B-Instruct-GGUF:Q4_K_M, unsloth/Devstral-Small-2-24B-Instruct-2512-GGUF:Q4_K_M, and unsloth/DeepSeek-R1-Distill-Qwen-14B-GGUF:UD-Q4_K_XL were removed from beast on 2026-09-03 and are absent from GET /v1/models.
Wrong router for the 120B Every gpt-oss-120b entry used http://beast.lan:2001; the 120B is served only by the CPU router on :2002.
Wrong quant suffix gpt-oss and gemma ids were written :UD-Q4_K_XL; the live ids end :Q4_K_XL. Requests would fail with model not found.
No embeddings model llama-vscode.embeddings_models_list was unset, so RAG and the search_source tool had no embedding endpoint.
Off-schema field One tools entry carried apiKey and a trailing-slash endpoint; apiKey is not in the extension schema, and keys are stored per endpoint in the extension’s own persistence.

Live router facts (verified 2026-09-25)

Endpoint Role Live models
http://beast.lan:2001 MI25 GPU router, --models-max 1 coder14 (16384), qwen9 (32768), gemma-12b (32768), gemma-26b (81920), gpt-oss-20b (32768), qwen38 (16384)
http://beast.lan:2002 CPU router gpt-oss-120b (65536)
http://athena.lan:2001 desktop GPU router 16 models, 8 aliased: coder15, coder3, llama3, gemma-e4, qwen27, coder32-fallback, r1-32b-fallback, nomic-embed

Router mode assessment

The extension does not require localStartCommand. A model entry with only endpoint and aiModel is contacted over HTTP, and the extension runs a shell command only when localStartCommand is set (selectStartModel in dist/extension.js).

Everything llama.vscode sends was exercised against the routers:

Call Result
POST <endpoint>/infill Proxied to the child server and honors model. coder3 returned a valid FIM completion in 0.40 s.
POST <endpoint>/v1/chat/completions with tools Returns OpenAI tool_calls for gpt-oss and gemma models.
POST <endpoint>/v1/embeddings nomic-embed returned a 768-dimension vector in 1.9 s.
GET <endpoint>/health {"status":"ok"} at router level.
GET <endpoint>/v1/models Reports owned_by: "llamacpp" and a meta block, which is exactly what the extension’s provider detection and token-limit extraction read.
GET <endpoint>/props?model=<id>&autoload=false Forwarded to the child and returns its default_generation_settings and model_path.

The endpoint value must not include /v1. Chat is built as ${endpoint}/${ai_api_version}/chat/completions and FIM as ${endpoint}/infill.

Two router-mode caveats are recorded rather than fixed:

Tool-call behavior by model

Model Endpoint tool_calls Note
gpt-oss-20b beast:2001 yes 28 s cold, load included
gpt-oss-120b beast:2002 yes 94 s cold, load included
gemma-4-E4B athena:2001 yes
Llama-3.2-3B athena:2001 yes
Qwen2.5-Coder-14B beast:2001 no Emitted a <tools>{...}</tools> text block instead; usable for chat, not for the agent.

coder14 is therefore absent from tools_models_list on purpose.

Context is per slot, not per model

default_generation_settings.n_ctx is the per-slot context. Athena runs parallel = 4, so its 8192 context yields 2048 tokens per request; beast GPU runs parallel = 1, so coder14 reports its full 16384. This is why athena is used for FIM completion only.

Applied configuration

The canonical fragment is sources/config/llama-vscode-settings.json. Four envs are defined:

Env Completion Chat Tools
Tiered - Athena FIM, MI25 chat, CPU 120B agent athena coder3 beast coder14 beast:2002 gpt-oss-120b
MI25 single model - gpt-oss-20B chat and agent athena coder3 beast gpt-oss-20b beast gpt-oss-20b
Athena only - local GPU, beast offline athena coder3 athena Llama-3.2-3B athena gemma-e4
CPU heavy - 120B chat and agent athena coder3 beast:2002 gpt-oss-120b beast:2002 gpt-oss-120b

gpt-oss-120b is listed only against http://beast.lan:2002. qwen38 is not referenced: the 2026-09-21 benchmark concluded it cannot be made to work well on this host.

Files

Verification

Open items

Commits