跳转至

OpenRouter 提供商

Claude-mem 支持将 OpenRouter 作为观察提取的替代提供商。OpenRouter 提供统一 API,可访问来自不同提供商的 100 多种模型,包括 Google、Meta、Mistral、DeepSeek 等。

Tip

不占用套餐配额:使用 OpenRouter(或运行在此提供商上的 claude-mem observer)时,观察提取在您的 Claude 套餐之外进行——因此记忆工作绝不会与您的套餐用量共享。

Note

claude-mem observer:在 npx claude-mem install 过程中登录并选择 claude-mem observer 时,claude-mem 会自动为您配置此提供商并配发密钥——无需手动设置。本页其余内容介绍使用您自己的 OpenRouter 密钥。

为什么使用 OpenRouter?

  • 不占用套餐配额:观察提取绝不会与您的 Claude 套餐用量共享
  • 访问 100+ 模型:通过一个 API 从多个提供商提供的模型中选择
  • 免费模型选项:多款高质量模型可免费使用
  • 错误明确抛出:429、5xx 和网络故障会抛出——使消息保持待处理状态,以便重试
  • 支持热切换:无需重启 worker 即可切换提供商
  • 多轮对话:跨 API 调用维护完整对话历史

OpenRouter 上的免费模型

OpenRouter 积极支持通过提供免费模型来推动 AI 访问的民主化。这些是适合观察提取的生产就绪模型。

模型 ID 参数 上下文 适用场景
Cohere North Mini Code cohere/north-mini-code:free 30B (3B active, MoE) 256K 默认;智能体编码
Poolside Laguna XS 2.1 poolside/laguna-xs-2.1:free 33B (3B active, MoE) 256K 编码智能体
NVIDIA Nemotron 3 Ultra nvidia/nemotron-3-ultra-550b-a55b:free 550B (55B active, MoE) 1M 推理、编排

Note

默认模型:Claude-mem 默认使用 cohere/north-mini-code:free,这是一个稀疏混合专家编码模型,上下文窗口为 256K。

免费模型的注意事项

  • 速率限制:免费模型可能比付费模型有更严格的速率限制
  • 可用性:免费容量取决于提供商合作情况和需求
  • 退役:OpenRouter 会定期淘汰免费模型 ID。如果默认模型被淘汰,claude-mem 会自动将存储的设置移出该模型。如果您选择的模型被淘汰,observer 会报告“OpenRouter model unavailable”(参见故障排除)
  • 排队时间:高峰使用期间,请求可能会短暂排队
  • 最大 token 数:大多数免费模型支持 65,536 个完成 token

所有免费模型都支持:

  • 工具使用和函数调用
  • 温度和采样控制
  • 停止序列
  • 流式响应

获取 API 密钥

  1. 前往 OpenRouter
  2. 使用 Google、GitHub 或邮箱登录
  3. 导航到 API Keys
  4. 点击创建密钥
  5. 复制并安全存储您的 API 密钥

Tip

免费起步:创建账户或使用免费模型无需信用卡。仅在您想使用高级模型时才需要添加积分。

配置

设置项

设置项 值 默认值 说明
CLAUDE_MEM_PROVIDER claude, codex, gemini, openrouter, openai-compatible claude 用于观察提取的 AI 提供商
CLAUDE_MEM_OPENROUTER_API_KEY 字符串 — 您的 OpenRouter API 密钥
CLAUDE_MEM_OPENROUTER_MODEL 字符串或数组 cohere/north-mini-code:free 模型标识符,或用于回退的列表(参见模型回退)
CLAUDE_MEM_OPENROUTER_BASE_URL 字符串 — 可选:自定义 OpenAI 兼容的基础 URL(参见自定义 OpenAI 兼容网关)
CLAUDE_MEM_OPENROUTER_SITE_URL 字符串 — 可选:用于分析归因的 URL
CLAUDE_MEM_OPENROUTER_REASONING_EFFORT none, minimal, low, medium, high — 可选:适用于 openrouter.ai 模型的推理强度。none 会关闭推理,用于修复模型将全部输出预算用于思考却未给出任何回答的问题。其他每个值都会作为推理 token 上限发送(reasoning.max_tokens:455、1,024、4,096 或 16,384 个 token,与 OpenRouter 在默认 4,096 token 回答上限下的强度份额匹配),并添加到 max_tokens 中,因此思考不会占用回答的预算。未设置则不发送任何内容。绝不会发送到自定义基础 URL 或 claude-mem observer
CLAUDE_MEM_OPENROUTER_APP_NAME 字符串 claude-mem 可选:用于分析的应用程序名称
CLAUDE_MEM_OPENROUTER_TEMPERATURE 数字,0–2 未设置 (0.3) 可选的 worker 采样温度,例如 0.7 或 "0.7"。可通过设置文件或环境变量设置;环境变量优先。设置后会覆盖 extra-body 中的温度。空白或无效值保持现有行为
CLAUDE_MEM_OPENROUTER_EXTRA_BODY JSON 对象 — 可选:额外的请求字段(参见额外请求字段)。仅限设置文件或环境变量

使用设置 UI

  1. 打开启动时打印的 worker URL
  2. 点击齿轮图标打开设置
  3. 在 AI 提供商下选择 OpenRouter
  4. 输入您的 OpenRouter API 密钥
  5. 可选:选择其他模型

设置会立即生效——无需重启。

手动配置

编辑 ~/.claude-mem/settings.json:

{
  "CLAUDE_MEM_PROVIDER": "openrouter",
  "CLAUDE_MEM_OPENROUTER_API_KEY": "sk-or-v1-your-key-here",
  "CLAUDE_MEM_OPENROUTER_MODEL": "cohere/north-mini-code:free"
}

模型回退

CLAUDE_MEM_OPENROUTER_MODEL 也接受列表形式的模型 ID。第一个是通常使用的模型;其余模型会交给 OpenRouter 原生的 models 回退数组,当前一个模型出错时按顺序依次尝试。

{
  "CLAUDE_MEM_PROVIDER": "openrouter",
  "CLAUDE_MEM_OPENROUTER_API_KEY": "sk-or-v1-your-key-here",
  "CLAUDE_MEM_OPENROUTER_MODEL": [
    "vendor/fast-model:free",
    "vendor/backup-model:free",
    "vendor/paid-model"
  ]
}

逗号或空格分隔的字符串同样适用,因此
"vendor/a, vendor/b" 与包含两个条目的数组含义相同。

回退(Fallbacks)仅发送至 openrouter.ai。自定义的 CLAUDE_MEM_OPENROUTER_BASE_URL 网关使用标准 OpenAI 协议,而该协议没有 models 字段,因此它只会接收第一个 id,并忽略其余部分。

或者,通过环境变量设置 API 密钥:

export OPENROUTER_API_KEY="sk-or-v1-your-key-here"

设置文件的优先级高于环境变量。

自定义 OpenAI 兼容网关

OpenRouter provider 是一个通用的 OpenAI 兼容客户端。将 CLAUDE_MEM_OPENROUTER_BASE_URL 设置为任何支持 /chat/completions 的服务器,例如 DeepSeek(https://api.deepseek.com)、LM Studio(http://localhost:1234/v1)或 io.net 的 IO Intelligence。模型 id 会原样发送,回退列表中的第一个 id 会被使用(标准 OpenAI 没有 models 字段)。请使用该端点签发的密钥:claude-mem observer 密钥(cm_pro_…)只会被发送给 claude-mem observer。

Tip

OpenAI 兼容 provider 使用自己的设置完成相同的工作,内置常见端点的预设,且不会发送 OpenRouter 的任何归属头(attribution headers)。对于非 OpenRouter 的端点,建议优先使用它。

例如,IO Intelligence:

{
  "CLAUDE_MEM_PROVIDER": "openrouter",
  "CLAUDE_MEM_OPENROUTER_BASE_URL": "https://api.intelligence.io.solutions/api/v1",
  "CLAUDE_MEM_OPENROUTER_MODEL": "meta-llama/Llama-3.3-70B-Instruct",
  "CLAUDE_MEM_OPENROUTER_API_KEY": "YOUR_IO_INTELLIGENCE_API_KEY"
}

模型 id 是 IO Intelligence 模型列表 中形如 org/name 的 ID,例如 deepseek-ai/DeepSeek-R1-0528 或 zai-org/GLM-4.6。基础 URL 末尾带斜杠是可以的;/chat/completions 会自动追加。

附加请求字段

CLAUDE_MEM_OPENROUTER_EXTRA_BODY 将一个 JSON 对象合并到每个请求中,用于补充 claude-mem 自身不会设置的 provider 特有字段。常见场景是推理模型将全部输出预算用于思考,最终什么答案都没有。此时可以关闭其推理功能:

{
  "CLAUDE_MEM_OPENROUTER_EXTRA_BODY": { "reasoning": { "enabled": false } }
}

作为环境变量时,它以字符串形式表示同一个对象:CLAUDE_MEM_OPENROUTER_EXTRA_BODY='{"reasoning":{"enabled":false}}'。自定义网关可以使用其供应商自己的字段代替,例如 {"thinking":{"type":"disabled"}}。

  • 值必须是 JSON 对象。其他任何内容都会被忽略,并在 worker 日志中记录警告。
  • 它不能替换 model、models、messages、stream、max_tokens 或 max_completion_tokens。这些字段会被丢弃并记录警告。请使用 CLAUDE_MEM_OBSERVER_MAX_OUTPUT_TOKENS 设置输出上限。
  • 它绝不会被发送给 claude-mem observer。
  • 当设置了 CLAUDE_MEM_OPENROUTER_REASONING_EFFORT 时,该变量负责决定 reasoning,附加请求体中的 reasoning 字段会被忽略。
  • 可在 ~/.claude-mem/settings.json 或环境中设置。设置 UI 和 API 不会写入该字段。

模型选择指南

免费模型

推荐:cohere/north-mini-code:free(默认) - 256K 上下文窗口可处理大型观察结果 - 64K 最大完成令牌数 - 稀疏混合专家架构(3B 活跃参数)

备选方案: - poolside/laguna-xs-2.1:free - 编码 agent 模型,256K 上下文 - nvidia/nemotron-3-ultra-550b-a55b:free - 1M 上下文,推理能力强

高级模型(更高品质/速度)

模型 适用场景
anthropic/claude-haiku-4.5 与 Claude provider 的默认模型相同
google/gemini-2.5-flash 响应速度快
openai/gpt-4o 具有 GPT-4 的品质

高级模型会消耗您的 OpenRouter 额度——仍然不属于套餐范围,因此绝不会影响您的 Claude 套餐用量。

上下文窗口管理

每次请求时,完整的对话历史都会发送给模型。claude-mem 不会应用任何客户端截断或消息数量上限——provider 和模型自行管理各自的上下文窗口。如果您需要为特定模型限制上下文,请选择具有合适上下文长度的模型,或在 OpenRouter/provider 层面管理限制。

用量追踪

日志中包含详细的用量信息:

OpenRouter API usage: {
  model: "cohere/north-mini-code:free",
  inputTokens: 2500,
  outputTokens: 1200,
  totalTokens: 3700,
  estimatedCostUSD: "0.00",
  messagesInContext: 8
}

Provider 切换

您可以随时切换 provider:

  • 无需重启:更改将在下一条观察结果上生效
  • 对话历史保留:在会话中途切换时,新 provider 可以看到完整的对话上下文
  • 无缝过渡:所有 provider 使用相同的观察结果格式

通过 UI 切换

  1. 在查看器中打开设置
  2. 更改 AI Provider 下拉选项
  3. 下一条观察结果将使用新的 provider

通过设置文件切换

{
  "CLAUDE_MEM_PROVIDER": "openrouter"
}

错误行为

如果 OpenRouter 出错,claude-mem 会记录失败并重新抛出异常,使消息保持待处理状态以便稍后重试。没有 Claude SDK 回退机制——早期文档声称会自动回退到 Claude,但该接线从未在生产环境中真正启用(#2087)。要切换 provider,请在设置中更改 CLAUDE_MEM_PROVIDER。

触发异常的条件: - 限流(HTTP 429) - 服务器错误(HTTP 500、502、503) - 网络问题(连接被拒绝、超时) - 除 429 以外的 4xx 错误 - 缺少 API 密钥

多轮对话支持

OpenRouter agent 会跨 API 调用维护完整的对话历史:

Session Created
  ↓
Load Pending Messages (observations from queue)
  ↓
For each message:
  → Add to conversation history
  → Call OpenRouter API with FULL history
  → Parse XML response
  → Store observations in database
  → Sync to Chroma vector DB
  ↓
Session complete

这实现了: - 连贯的多轮交流 - 跨观察结果保留上下文 - 会话中途无缝切换 provider

故障排除

"未配置 OpenRouter API 密钥"

可以这样做: - 在 ~/.claude-mem/settings.json 中设置 CLAUDE_MEM_OPENROUTER_API_KEY,或 - 设置 OPENROUTER_API_KEY 环境变量

速率限制

免费模型在高峰使用时段可能会有限速。如果遇到限速: - 代理会抛出异常并让消息保持待处理状态——稍后会重试 - 考虑切换为其他免费模型 - 为获得高级模型访问权限而充值

模型不可用

当 OpenRouter 报告配置的模型已退役(“This model has been deprecated”)、未知(“is not a valid model ID”)或没有剩余端点(“No endpoints found for …”)时,观察器会报告 OpenRouter model unavailable。重试无法解决该问题,因此不会重试;worker 日志和会话开始警告会提示您更改模型: - 从 OpenRouter Models 中选择一个模型,并将其设置为 ~/.claude-mem/settings.json 中的 CLAUDE_MEM_OPENROUTER_MODEL(或在查看器的 Settings 中设置)。下一次观察将使用该模型 - 使用 :free 后缀来指定免费模型变体 - 模型 ID 区分大小写

如果您仍在使用已退役的默认模型 xiaomi/mimo-v2-flash:free,claude-mem 在首次加载设置时已为您切换到 cohere/north-mini-code:free。

高 Token 用量

如果会话积累了大量的对话历史,请求体量可能会增长。为控制每个请求的大小: - 选择适合您使用量的模型 - 如果遇到提供商限制,请考虑使用上下文窗口更大的模型

连接错误

如果您看到连接错误: - 检查您的互联网连接 - 在 status.openrouter.ai 查看 OpenRouter 服务状态 - 代理会抛出异常并让消息保持待处理状态,以便稍后重试

API 详情

OpenRouter 使用与 OpenAI 兼容的 REST API:

端点:https://openrouter.ai/api/v1/chat/completions

请求头:

Authorization: Bearer {apiKey}
HTTP-Referer: https://github.com/thedotmack/claude-mem
X-Title: claude-mem
Content-Type: application/json

请求格式:

{
  "model": "cohere/north-mini-code:free",
  "messages": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."}
  ],
  "temperature": 0.3,
  "max_tokens": 4096
}

服务提供商对比

特性 Claude (SDK) Gemini OpenRouter
套餐用量 共享您的 Claude 套餐 不计入套餐(使用您的 Gemini 密钥) 不计入套餐(使用您的 OpenRouter 余额或 claude-mem 观察器)
模型 仅 Claude 仅 Gemini 100+ 种模型
质量 最高 高 因模型而异
速率限制 取决于层级 5-4000 RPM 因模型而异
出错时 抛出异常 抛出异常 抛出异常
配置 自动 需要 API 密钥 需要 API 密钥

Tip

建议:在安装时选择的 claude-mem 观察器是在套餐外运行记忆功能的最简单方式。想使用自己的密钥?从免费的 cohere/north-mini-code:free 模型开始。如果您需要更高质量或遇到速率限制,请切换到高级模型或 Claude 提供商。

后续步骤

多个密钥

CLAUDE_MEM_OPENROUTER_API_KEYS 可接受额外的密钥(以换行符或逗号分隔),与 CLAUDE_MEM_OPENROUTER_API_KEY 一起使用。当某个密钥触发速率限制、用尽配额或被判定为无效时,OpenRouter 请求会轮换到下一个密钥,而不会在窗口的剩余时间内持续失败。参见 多密钥轮换。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem