自动捕获 AI 提供商
自动捕获运行后台 AI 请求以总结技术工作并将其保存为记忆。它需要以下提供商配置之一。
推荐: 使用已在 opencode 中认证且支持结构化输出的提供商:
"opencodeProvider": "anthropic","opencodeModel": "claude-haiku-4-5-20251001",插件向 opencode 的会话 API 发出结构化输出请求,而非直接调用提供商端点,因此由 opencode 拥有认证、令牌刷新与提供商路由。提供商名称必须与 opencode providers list 中的条目匹配,且所选模型必须通过 opencode 支持结构化 JSON 输出。
可选地用 "opencodeVariant": "xhigh" 固定模型推理变体(例如用于 grok-4.7)。它会应用于插件的内部 LLM 调用(自动捕获摘要、画像学习、画像清理),包括当 opencodeModel 为 "inherit" 时,以便后台工作可以使用与交互式会话不同的推理级别。
慢速推理模型(或非常大的画像提示)可能超过默认的 90 秒结构化输出预算。设置 "opencodeTimeoutMs"(毫秒)可为内部结构化输出调用(自动捕获摘要、画像学习)延长 — 例如 "opencodeTimeoutMs": 180000 表示 3 分钟。值钳制在 10000..600000;默认保持 90000。数字字符串会被强制转换。画像清理使用单独的、更长的超时。
支持的提供商:opencode providers list 列出的任何提供商(例如 anthropic、openai、github-copilot 等)。
若设置了 opencodeProvider 与 opencodeModel,它们优先于下方的手动 memoryProvider 设置。
跟随会话模型: 设置 "opencodeModel": "inherit" 以在调用时使用具体的 OpenCode 模型,而非固定 id。对于自动捕获,每个提示通过 chat.params 钩子记录,捕获请求重用该提示的提供商/模型。对于画像学习及其他结构化输出路径(不绑定到单条用户消息),inherit 先复用主机在 chat.params / V2 context 钩子上报的最近模型,再回退到 OpenCode model.json 最近列表(若存在;优先使用已配置的 opencodeProvider)。OpenCode v2 不再写入 model.json,因此进程内会话模型是主要回退。发送字面模型 id inherit 永远无效,此前会在这些路径上导致 ProviderModelNotFoundError: Model not found: <provider>/inherit。opencodeProvider 仍作为正常配置门控是必需的。
回退: 手动 API 配置(若不使用 opencodeProvider):
"memoryProvider": "openai-chat","memoryModel": "gpt-4o-mini","memoryApiUrl": "https://api.openai.com/v1","memoryApiKey": "sk-...",API 密钥格式:
"memoryApiKey": "sk-...""memoryApiKey": "file://~/.config/opencode/api-key.txt""memoryApiKey": "env://OPENAI_API_KEY"手动 memoryProvider 模式:
openai-chat:兼容 OpenAI Chat Completions、带工具/函数调用的 API。仅当所选上游模型与代理保留工具调用时,这可与兼容代理(如 LiteLLM)一起工作。openai-responses:带函数调用输出的 OpenAI Responses API。anthropic:带工具使用的 Anthropic Messages API。minimax:MiniMax Anthropic Messages 兼容端点。将memoryApiUrl设置为全球端点(https://api.minimax.io)或中国端点(https://api.minimax.cn);/anthropic/v1/messages路径与x-api-key标头会自动应用。使用MiniMax-M3.1-Flash(推荐)或MiniMax-M3,二者均为 1,000,000-token 上下文。Flash 始终开启思考;可选将memoryExtraParams设为{ "output_config": { "effort": "max" } },取值为low、medium、high、xhigh或max(默认)。Flash 会拒绝禁用思考与 effortnone,且不支持service_tier。在此端点上 M3 思考默认关闭;可通过{ "thinking": { "type": "adaptive" } }启用。模型 ID 仍需显式配置;已有自定义或旧版 ID 会原样透传。参见 MiniMax 兼容性参考。orcarouter:带命名空间模型 ID 的 OpenAI 兼容模型网关。memoryApiUrl与memoryModel可选 — 它们默认为https://api.orcarouter.ai/v1与orcarouter/auto(按请求选择有能力模型的路由别名)。若设置memoryModel,请使用命名空间 ID,例如openai/gpt-5.5或deepseek/deepseek-v4-flash;OrcaRouter 拒绝裸模型名。示例:OrcaRouter 还在同一端点上为 AI 代理运行网关级零信任安全 — 默认拒绝基础上筛选每个提示/响应并治理每个工具调用,无需更改应用代码。"memoryProvider": "orcarouter","memoryApiKey": "<OrcaRouter API key>",atlas-cloud:面向 Atlas Cloud 的 OpenAI 兼容 Chat Completions 预设。memoryApiUrl与memoryModel可选 — 它们默认为https://api.atlascloud.ai/v1与deepseek-ai/deepseek-v4-pro。若省略memoryApiKey,则使用环境中的ATLASCLOUD_API_KEY。示例:选择此提供商时,自动捕获 / 画像提示、模型响应与相关对话上下文会传输到"memoryProvider": "atlas-cloud","memoryApiKey": "env://ATLASCLOUD_API_KEY",https://api.atlascloud.ai。cheaper-inference:面向 Cheaper Inference 的 OpenAI 兼容 Chat Completions 预设。memoryApiUrl与memoryModel可选 — 它们默认为https://api.cheaperinference.com/v1与gpt-5.4-mini。若省略memoryApiKey,则使用环境中的CHEAPER_INFERENCE_API_KEY。示例:选择此提供商时,自动捕获 / 画像提示、模型响应与相关对话上下文会传输到"memoryProvider": "cheaper-inference","memoryApiKey": "env://CHEAPER_INFERENCE_API_KEY",https://api.cheaperinference.com。api-route:面向 API Route 的 OpenAI 兼容 Chat Completions 预设。memoryApiUrl与memoryModel可选 — 它们默认为https://global.api-route.com/v1与gpt-6.1-sol。若省略memoryApiKey,则使用环境中的API_ROUTE_API_KEY。示例:选择此提供商时,自动捕获 / 画像提示、模型响应与相关对话上下文会传输到"memoryProvider": "api-route","memoryApiKey": "env://API_ROUTE_API_KEY",https://global.api-route.com。runcrate:面向 Runcrate 的 OpenAI 兼容 Chat Completions 预设。memoryApiUrl与memoryModel可选 — 它们默认为https://api.runcrate.ai/v1与deepseek-ai/DeepSeek-V4.1-Flash。若省略memoryApiKey,则使用环境中的RUNCRATE_API_KEY。示例:选择此提供商时,自动捕获 / 画像提示、模型响应与相关对话上下文会传输到"memoryProvider": "runcrate","memoryApiKey": "env://RUNCRATE_API_KEY",https://api.runcrate.ai。cloudgpu:面向 CloudGPU 的 OpenAI 兼容 Chat Completions 预设。memoryApiUrl与memoryModel可选 — 它们默认为https://cloudgpu.app/v1与deepseek-v4.1-flash。若省略memoryApiKey,则使用环境中的CLOUDGPU_API_KEY(在 https://cloudgpu.app/api/console 创建密钥;API 文档:https://cloudgpu.app/api/docs)。示例:选择此提供商时,自动捕获 / 画像提示、模型响应与相关对话上下文会传输到"memoryProvider": "cloudgpu","memoryApiKey": "env://CLOUDGPU_API_KEY",https://cloudgpu.app。
故障排除:
- 自动捕获失败不会阻止手动
memory工具使用。 - 若自动捕获报告提供商未连接,请用
opencode providers list确认提供商名称,并先在 opencode 中配置该提供商。 - 若代理或自定义提供商返回纯文本而非结构化/工具输出,请选择另一模型/提供商,或使用上方手动提供商模式之一。
- 对于拒绝
temperature的模型,在使用手动 API 配置时添加"memoryTemperature": false。 - 对于拒绝强制工具调用(
tool_choice: "required",例如某些思考模式)的模型,在使用openai-chat/orcarouter/atlas-cloud/cheaper-inference/api-route/runcrate/cloudgpu时添加"forceToolChoice": false。 - 对于
opencodeProvider/opencodeModel(例如 DeepSeek V4 thinking),OpenCode 仍会为结构化输出发送强制的tool_choice。opencode-mem 在内部opencode-mem-structured代理上禁用思考(并在变体合并后在chat.params中重新应用),以便自动捕获与画像学习可以完成。你的交互式聊天代理不变。若捕获仍因 thinking/tool_choice错误失败,请为opencodeModel选择非思考模型,或配置完整的手动回退(memoryModel+memoryApiUrl)。 opencode-claude-auth/ Claude Code: 自动捕获使用带有你已认证anthropic提供商的 OpenCode。强制的format: json_schema常与 Claude-auth 循环,因此 opencode-mem 对opencodeProvider: "anthropic"使用保留认证的 text-JSON 路径(无强制StructuredOutput工具;用 Zod 解析回复)。步骤看门狗仍会在 2 步后中止失控的内部会话。若捕获仍失败,请配置完整的手动 Anthropic API 密钥回退(memoryProvider: "anthropic"+memoryModel+memoryApiUrl+memoryApiKey)— Claude Pro/Max OAuth 无法在 OpenCode 外重用。- 不支持的平台: 不支持 Intel Mac(
darwin/x64) —@tursodatabase/database与固定版本的onnxruntime-node发行版(固定1.31.1)不提供 x64 原生绑定。请使用 Apple Silicon、Linux 或 Windows,或通过embeddingApiUrl+embeddingApiKey使用远程嵌入端点。不支持 MLX。