Reasonix 是按 provider 端点说话的,不是按模型名说话。加一个新端点,就是在 ~/.reasonix/config.toml 里添一个 [[providers]],再把对应的 key 放进 ~/.reasonix/.env。本地 llama.cpp、Ollama、vLLM、远程网关都是同一套写法。



常见端点
| Provider | base_url | 示例模型 | key 环境变量 |
|---|---|---|---|
| Ollama(本机) | http://127.0.0.1:11434/v1 | qwen2.5-coder:14b | 不真校验 key —— 填任意字符串 |
| lm-studio(本机) | http://127.0.0.1:1234/v1 | mlx-community/Qwen2.5-Coder-14B-Instruct | 不真校验 key —— 填任意字符串 |
| vLLM(本机 / 集群) | http://127.0.0.1:8000/v1 | meta-llama/Meta-Llama-3-8B-Instruct | 不真校验 key —— 填任意字符串 |
| OpenRouter | https://openrouter.ai/api/v1 | openai/gpt-4o-mini | OPENROUTER_API_KEY |
| 内部网关 | https://llm.internal/v1 | mistral-large-latest | INTERNAL_GATEWAY_API_KEY |
配置写法
两个文件:TOML 放非敏感配置,.env 放 key 字符串。解析顺序是 flag > ./reasonix.toml > ~/.reasonix/config.toml > 内置默认。
# ~/.reasonix/config.toml
default_model = "local-coder"
[[providers]]
name = "local-coder"
kind = "openai"
base_url = "http://127.0.0.1:11434/v1" # Ollama 默认
models = ["qwen2.5-coder:14b", "deepseek-coder-v2:16b"]
default = "qwen2.5-coder:14b"
api_key_env = "OLLAMA_API_KEY"
# extra_body 会合并到每一次 chat-completions 请求
extra_body = { num_ctx = 32768 }
[[providers]]
name = "openrouter"
kind = "openai"
base_url = "https://openrouter.ai/api/v1"
models = ["openai/gpt-4o-mini", "anthropic/claude-3.5-sonnet"]
default = "openai/gpt-4o-mini"
api_key_env = "OPENROUTER_API_KEY"
# ~/.reasonix/.env
OLLAMA_API_KEY=ollama
OPENROUTER_API_KEY=sk-or-v1-...
# 启动时选 provider/model
reasonix --model local-coder/qwen2.5-coder:14b
reasonix run "解释这个文件" --model openrouter/anthropic/claude-3.5-sonnetprovider 关键开关
| 键 | 作用 |
|---|---|
chat_url |
完整 chat URL —— Reasonix 不会再拼 /chat/completions。 |
models_url |
单独配 /v1/models 发现地址。发现服务在另一台机器时常用。 |
extra_body |
合并进每一次请求体的厂商特定字段。不能覆盖 model / messages / tools / stream。 |
context_window |
单模型 token 预算;同一端点暴露多个模型时用 model_overrides 分别覆盖。 |
effort |
provider 支持 reasoning effort 时填 high 或 max;省略走 auto。 |
prices |
可选 {input, output, cache_hit, currency} 覆盖,用于成本统计。 |
常见问题
- OpenAI 兼容服务的
base_url必须以/v1结尾。Ollama / lm-studio / vLLM 默认就是/v1,自建网关要看清楚。漏掉就会在chat/completions上 404。 - key 字符串只放
~/.reasonix/.env,不要进config.toml。api_key_env是变量名,不是 key。 - 本地服务其实不校验 key,但 Reasonix 仍要求
.env里非空。给 Ollama 写OLLAMA_API_KEY=ollama比留空稳。 extra_body不能替换model。如果端点把模型 id 放在非标准字段,要么服务端重写,要么用自定义chat_url适配。- 会话中途切换 provider 会重建 controller 但保留历史;切
work_mode重建;切tool_approval不重建。
评论