Use hossenfelder as the canonical broker endpoint #12
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Suggestion
Wire
config.luato use hossenfelder (the LXD-hosted LLM router on the boltzmann host) as the single broker endpoint, instead of the current direct-to-llamafile addressing.Endpoint
Hossenfelder is an OpenAI-compatible proxy that:
modelfield on POST./v1/modelsfrom all reachable local backends + a curated cloud catalog.anthropic/,openai/,mistralai/,qwen/, …) to OpenRouter via server-side Bearer auth — aish never sees the API key.X-LLM-Backendso the actual route is observable.ThreadingHTTPServer(so multiple aish sessions / concurrent broker calls don't serialize).Recommended
config.luabrokers tableWhy over direct llamafile addressing
/v1/chat/completionsPOST shape works foranthropic/claude-*andllama-3.1-8b-instruct. aish doesn't need a separate cloud branch.GET /v1/modelsreturns the live merged catalog (8 cloud + 3 local at present). aish could surface this via a future:modelsmeta-command.Caveats / open questions
stream: truebehavior — hossenfelder forwards SSE properly per its_stream_response()path. Phase 1 SSE work in aish should be unaffected, but worth a sanity test once the FFI streaming lands.toolspayloads transparently for cloud routes (OpenRouter handles it) and for local routes (llamafile parses tool schemas if the model supports it, e.g. Hermes). When MCP support lands in aish, this needs a verification pass.boltzmann.fritz.box:8083for Llama 3.1) commented as failover entries the user can swap in. Or wait for Phase 5 multi-model fallback to handle this.Authorizationheaders).Source
Endpoint validated 2026-05-10 via
curl http://hossenfelder.fritz.box:8082/v1/models. Hossenfelder source: boltzmann LXChossenfelder,/opt/llm-proxy.py. Model-aware routing path tagged(routed)in proxy logs.Resolved by partial-accept in commit
8870eb0(config: route all presets through hossenfelder per issue #12).What landed
http://hossenfelder.fritz.box:8082for all three presets (fast / deep / cloud)GET /v1/models: qwen2.5-coder-1.5b (fast), mistral-nemo-12b (deep), anthropic/claude-haiku-4.5 (cloud)https://on cloud was flipped tohttp://to match the proxyWhat deferred
models→brokers(with multi-preset siblings like cloud_opus / cloud_haiku / cloud_sonnet) — would touch repl.lua + broker.lua. Not blocking. If the multi-preset shape becomes useful in practice, open a separate issue for the rename then.Phase 7 live verification
broker.chat(fast, ...)round-trip: ~3s, valid responseClosing.