مزود الذكاء الاصطناعي للالتقاط التلقائي
يشغّل الالتقاط التلقائي طلب ذكاء اصطناعي في الخلفية لتلخيص العمل التقني وحفظه كذاكرة. يحتاج أحد إعدادات المزود أدناه.
موصى به: استخدم مزودًا مصادقًا بالفعل في opencode ويدعم المخرجات المنظمة:
"opencodeProvider": "anthropic","opencodeModel": "claude-haiku-4-5-20251001",يصدر المكون الإضافي طلبات مخرجات منظمة إلى API جلسة opencode بدل استدعاء نقاط نهاية المزود مباشرة، لذا يملك opencode المصادقة وتحديث الرموز وتوجيه المزود. يجب أن يطابق اسم المزود إدخالًا من opencode providers list، ويجب أن يدعم النموذج المحدد مخرجات JSON منظمة عبر opencode.
اختياريًا ثبّت متغير استدلال للنموذج بـ "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 ملموس وقت الاستدعاء بدل معرّف مثبت. لـ الالتقاط التلقائي، تُسجَّل كل مطالبة عبر خطاف chat.params ويعيد طلب الالتقاط استخدام مزود/نموذج تلك المطالبة. لـ تعلّم الملف ومسارات المخرجات المنظمة الأخرى (غير المرتبطة برسالة مستخدم واحدة)، يعيد inherit أولاً استخدام آخر نموذج أبلغ به المضيف عبر chat.params / خطاف سياق V2، ثم يرجع إلى قائمة model.json الحديثة في OpenCode إن وُجدت (مفضّلًا opencodeProvider المُعَد). OpenCode v2 لم يعد يكتب model.json، لذا نموذج الجلسة داخل العملية هو الاحتياطي الأساسي هناك. إرسال معرّف النموذج الحرفي 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: API متوافق مع OpenAI Chat Completions مع استدعاء أدوات/دوال. يمكن أن يعمل مع وكلاء متوافقين مثل 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 رمز. Flash يفكر دائمًا؛ ويمكن اختياريًا تعيينmemoryExtraParamsإلى{ "output_config": { "effort": "max" } }بالقيمlowأوmediumأوhighأوxhighأوmax(الافتراضي). يرفض Flash تعطيل التفكير وeffortnone، ولا يدعمservice_tier. تفكير M3 معطّل افتراضيًا على هذه النقطة؛ فعّله بـ{ "thinking": { "type": "adaptive" } }. تبقى معرّفات النماذج مُعدّة صراحةً؛ وتُمرَّر المعرّفات المخصصة أو القديمة دون تغيير. راجع مرجع توافق MiniMax.orcarouter: بوابة نماذج متوافقة مع OpenAI بمعرّفات نماذج ذات مساحة أسماء.memoryApiUrlوmemoryModelاختياريان — الافتراضيhttps://api.orcarouter.ai/v1وorcarouter/auto(اسم مستعار للتوجيه يختار نموذجًا قادرًا لكل طلب). إذا عيّنتmemoryModel، استخدم معرّفًا ذا مساحة أسماء مثلopenai/gpt-5.5أوdeepseek/deepseek-v4-flash؛ يرفض OrcaRouter أسماء النماذج العارية. مثال:يشغّل OrcaRouter أيضًا أمانًا صفري الثقة على مستوى البوابة لوكلاء الذكاء الاصطناعي على نفس النقطة — فحص كل مطالبة/استجابة وحوكمة كل استدعاء أداة على أساس الرفض الافتراضي، دون تغييرات في شيفرة التطبيق."memoryProvider": "orcarouter","memoryApiKey": "<OrcaRouter API key>",atlas-cloud: إعداد مسبق لـ OpenAI-compatible Chat Completions لـ Atlas Cloud.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: إعداد مسبق لـ OpenAI-compatible Chat Completions لـ Cheaper Inference.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: إعداد مسبق لـ OpenAI-compatible Chat Completions لـ API Route.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: إعداد مسبق لـ OpenAI-compatible Chat Completions لـ Runcrate.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: إعداد مسبق لـ OpenAI-compatible Chat Completions لـ CloudGPU.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، أضف"memoryTemperature": falseعند استخدام إعداد API اليدوي. - للنماذج التي ترفض استدعاءات الأدوات المفروضة (
tool_choice: "required"، مثل بعض أوضاع التفكير)، أضف"forceToolChoice": falseعند استخدامopenai-chat/orcarouter/atlas-cloud/cheaper-inference/api-route/runcrate/cloudgpu. - لـ
opencodeProvider/opencodeModel(مثل DeepSeek V4 thinking)، ما زال OpenCode يرسلtool_choiceمفروضًا للمخرجات المنظمة. يعطّل opencode-mem التفكير على الوكيل الداخليopencode-mem-structured(ويعيده فيchat.paramsبعد دمج المتغير) حتى يكتمل الالتقاط التلقائي وتعلّم الملف. وكيل الدردشة التفاعلي لديك دون تغيير. إذا فشل الالتقاط ما زال بخطأ تفكير/tool_choice، اختر نموذجًا غير تفكير لـopencodeModelأو أعد رجوعًا يدويًا كاملًا (memoryModel+memoryApiUrl). opencode-claude-auth/ Claude Code: يستخدم الالتقاط التلقائي OpenCode مع مزودكanthropicالمصادق. غالبًا ما يتكررformat: json_schemaالمفروض مع Claude-auth، لذا يستخدم opencode-mem مسار نص-JSON يحافظ على المصادقة لـopencodeProvider: "anthropic"(بدون أدواتStructuredOutputمفروضة؛ تُحلَّل الرد بـ Zod). ما زال مراقب الخطوات يجهض الجلسات الداخلية الجامحة بعد خطوتين. إذا فشل الالتقاط ما زال، أعد رجوع 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 غير مدعوم.