Repository navigation
feat: add LLMTR as a model provider - #213
knowhycodata wants to merge 3 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Checked the id parsing against current Two things worth settling:
|
|
Thanks for reading it this closely, @caspianchan31. On (2): LLMTR's catalog guarantees it. Every routed id is |
Fixes #212
What changed
LLMTR is an OpenAI-compatible gateway (I maintain it). With this change OpenMuse can use it next to OpenAI, Anthropic and Google:
MODEL=llmtr/<catalog id>plusLLMTR_API_KEYselects it, and the base URL defaults tohttps://llmtr.com/v1(LLMTR_BASE_URLoverrides it). Traffic goes through chat completions, following the same path as the OpenAI-compatible gateways in #80.A hosted id such as
llmtr/qwen3-8-27bkeeps itsllmtr/prefix; a routed id such asqwen/qwen3.8-27b-freeis sent unchanged.reasoningis not sent.Touched:
apps/server/src/engine/tanstack-agent.ts,apps/server/src/agent.ts,.env.example,README.md, newtests/llmtr-provider.test.ts, and an update totests/model-provider.test.ts.Verification
pnpm lint,pnpm typecheck,pnpm --dir apps/worker typecheck,pnpm build:server: passpnpm test: 524 passedpnpm install --frozen-lockfile,.envfrom.env.examplewithAGENT_BACKEND=model,MODEL=llmtr/qwen/qwen3.8-27b-free,LLMTR_API_KEY,WEB_SEARCH_ENABLED=false):GET /api/healthreturned{"ok":true,"mode":"sample","agentConfigured":true}POST /api/agent/tasksasking it to save a note artifact titled "Smoke" and then callfinish_taskreachedsucceededin under 5 s. Both tool calls worked: the artifact was saved andfinish_taskreturnedpong.pongin about 2 s; it stopped atwaiting_inputbecause the model answered in text instead of callingfinish_task, which is model behaviour rather than a transport issue.Integration limits
llmtr-key; the run above used the freeqwen/qwen3.8-27b-free.llmtr/leyla) and embedding models are not routed.