LM Warden

Aider,运行在你自己的 GPU 上。

Aider 通过其兼容 OpenAI 的提供方,使用一个已部署的模型。

来自 Aider 的请求去往何处 Aider 把请求发送给 LM Warden,OPENAI_API_BASE 设为 warden,OPENAI_API_KEY 填写 warden 密钥。LM Warden 检查密钥,支持 OpenAI Chat Completions,按密钥优先级为请求排队,并交给副本路由器。路由器让每个会话留在已持有其缓存的副本上(每块 GPU 一个模型副本)。 Aider OPENAI_API_BASE the warden, at /v1 OPENAI_API_KEY vw_…, the warden key POST /v1/chat/completions LM Warden checks the key: one per app speaks OpenAI Chat Completions scheduler, key priority usage, latency and live stats per key Replica router a session goes back to the replica that holds its cache one model copy per GPU your GPUs: vLLM or llama.cpp replica 0, GPU 0 replica 1, GPU 1 replica 2, GPU 2 a conversation stays on its replica
来自 Aider 的请求去往何处 Aider 把请求发送给 LM Warden,OPENAI_API_BASE 设为 warden,OPENAI_API_KEY 填写 warden 密钥。LM Warden 检查密钥,支持 OpenAI Chat Completions,按密钥优先级为请求排队,并交给副本路由器。路由器让每个会话留在已持有其缓存的副本上(每块 GPU 一个模型副本)。 Aider OPENAI_API_BASE the warden, at /v1 OPENAI_API_KEY vw_…, the warden key POST /v1/chat/completions LM Warden checks the key: one per app speaks OpenAI Chat Completions scheduler, key priority usage, latency, live stats per key Replica router a session goes back to the replica that holds its cache replica 0 GPU 0 replica 1 GPU 1 replica 2 GPU 2 your GPUs: vLLM or llama.cpp a conversation stays on its replica
来自 Aider 的请求去往何处:Connect 写入的两项设置,中间是 warden,然后每块 GPU 上一份模型副本。

文字说明: Aider 把请求发送给 LM Warden,OPENAI_API_BASE 设为 warden,OPENAI_API_KEY 填写 warden 密钥。LM Warden 检查密钥,支持 OpenAI Chat Completions,按密钥优先级为请求排队,并交给副本路由器。路由器让每个会话留在已持有其缓存的副本上(每块 GPU 一个模型副本)。

协议
OpenAI Chat Completions
支持情况
仅限本地模型

仅限本地模型,通过 Chat Completions。Aider 通过文本格式进行编辑,因此模型不需要工具调用。元数据文件只用于让 Aider 不再警告未知模型,并设置它的上下文大小。

要求

  • 至少有 32,768 个 token 的上下文时效果最好。

设置

在控制台中,Connect 会用你的 warden 地址、你的密钥和你选择的模型写入这些文件。下面以占位符展示这些文件。

本地模型

把 Aider 的 OpenAI 提供方指向这个 warden。

Shell
export OPENAI_API_BASE=https://your-warden/v1
export OPENAI_API_KEY=vw_YOUR_KEY
aider --model openai/your-served-model-name
.aider.model.metadata.json (.aider.model.metadata.json)
{
  "openai/your-served-model-name": {
    "max_input_tokens": 32768,
    "max_output_tokens": 8192,
    "max_tokens": 8192,
    "input_cost_per_token": 0,
    "output_cost_per_token": 0,
    "litellm_provider": "openai",
    "mode": "chat"
  }
}
每次启动的会话 ID(可选)
# Run this instead of `aider ...`: it writes a fresh session id per launch.
SID=$(python3 -c 'import uuid; print(uuid.uuid4())')
cat > .aider.model.settings.yml <<EOF
- name: openai/your-served-model-name
  extra_params:
    extra_headers:
      X-Session-Id: $SID
EOF
aider --model openai/your-served-model-name

官方文档:https://aider.chat/docs/llms/openai-compat.html(查阅日期:2026-10-04)。