الإصدار 2 - 0: الإصدار الكامل للوحدة المفتوحة ضد 2
أولا، النتيجة هي:Opencode-models-discovery 2.0.0, published on 19 October 2026, formally restore OpenCode v2 to the main force and v1 to the compatible adaptor.هذا ليس تحديثاً روتينياً، شكل ملف التكوين تغيّر تماماً، وأنت تتبع المنهج القديم، وربما لا يمكنك الخروج من الخط.
لقد خطوت على ثلاثة ذيول بنفسي كل شيء هناك أولاً، ما تقوم به: إنه مضرب مفتوح يحل مشكلة مزعجة جداً - تحصل على مجموعة من البوابات المفتوحة المتوافقة مع الأقراص، والخدمات النموذجية المحلية، والمرور العابر للمبادرة، وكل نموذج جديد يذهب يدوياً إلى الوصية لضرب الاسم النموذجي، وطول السياق، والسعر. هذه البلوغة تجعلك تلائم مرة واحدة فقط وبقيتها تسحب نفسها
ما الذي تغير هذه المرة؟
وقد بني المستودع في نيسان/أبريل ٢٠٢٦ من قبل شركة " يوب " و " أوبينكود - موديلز " ، و " MIT " ، و " 188 " ، و " ٥٧ شوكة " . هذا لا يبدو مثل قمة القائمة، ولكن هناك بضعة مشاريع في إيكولوجيا الكودي المفتوحة
2.0.0 ولا يوجد سوى إجراء أساسي واحد:Raise OpenCode v2 to primary stable integrationلا أعلم ومن الناحية التقنية، يستخدم V2 الهياكل الأساسية الأصلية للتشكيل بالنسبة للكبريتينات/المقدمين، ودورة حياة مقدمي الخدمات، ومخزن الاستضافة، وقسيمة الاندماج، وشركة الكهرباء الوطنية، وشركة RPC Handler، والعميلة الأدوات.
المضرب القديم كان "لقد غيرت تشكيلتك" والآن هو "المضيف يفتحني" ولا يلزم أن تُكتب الوثيقة في ملف التشكيلة، وتُعطى المخبأة إلى المدير المضيف، ويمكن أن تُضيء الأغطية النموذجية في فريق التوي ولا تُعاد صياغتها.
مستوى الدعم للفترتين 1 و2
| خلاصة | مستوى الدعم | حقول الثقة | التخزين والقسائم |
|---|---|---|---|
| OpenCode v2 | ثابت/رئيس | plugins و providers | المضيفة ctx.storage / ctx.integration |
| OpenCode v1 | المقارنات | plugin و provider | v1 XDG Cache + auth Bottom |
' ١ ' لا يقطع، وسيبقى الإصلاح الآمن والعودة الخطيرة في مكانها. ولكن المهام الجديدة - دورة الحياة، المخبأ، الاتحاد الدولي للاتصالات السلكية واللاسلكية، RPC، النفقة النموذجية - كلها تذهب فقط إلى V2، وليس تلقائيا إلى v1.
شكلان أو تسعة هذه هي الصورة الكبيرة
v2.0.0 الوثيقة الرسمية تحتوي على تسعة استمارات معلومات نموذجية و التي تزيل تماماً "استنشاق البيانات" و "البرمجة السرية" وهذا تصميم ذكي: لا يلزم تغيير منطق الحركة بالنسبة لكل مصنع، مع تكييف شكلي.
| الشكل | أحصل على ماذا؟ | طلبات إضافية |
|---|---|---|
openrouter | الطول المستمر، سقف النواتج الرئيسية، الطريقة (الدرجة/الدرجة/الدرجة/الوعودية)، الأسعار السريعة/المكملة والرسوم، علامات الاتصال بالأدوات، فترات التعليل (المتوسط/العالي) | لا يوجد طلب إضافي |
aiproxy | Display of AIProxy Inline Limiteds, Price, effort + Models.dev First Name | التجمع |
bifrost | الحدود الداخلية، العفن، الخنازير، التعليل | لا يوجد طلب إضافي |
litellm | البيانات الوصفية النموذجية الغنية، القيود على السياق، الأسعار، القدرات | الطلب /v1/model/info |
lmstudio | Loaded instance formation (LM Studio 0.4.0+ native) /api/v1/modelsلست متأكدة | مرة |
llama-swap | طول السياق والهيكل وعلامات الاتصال | لا يوجد طلب إضافي |
models.dev | قاع الدليل العام والسياق المشترك والقدرات | اسحب models.json |
omniroute | (الشق/الضغط) | لا يوجد طلب إضافي |
vllm | مباشرة max_model_len | لا يوجد طلب إضافي |
شاهد الجملة الأخيرة:إذا كنت لا تطابق modelInfoFormatثمّ هناك هويّة نموذجيّة فقط، ليس هناك أيّ أدوية.انها ليست حشرة، انها تصميم - لا تخمين أي نوع من الخدمة كنت تأخذ، تجنب مجموعة من الأسعار الخاطئة وطول السياق.
أنا لم ألائم هذا الحقل في المقام الأول، ونظرت إلى قائمة من النماذج مع أسماء فقط وفكرت، "لماذا لم يتغير أي شيء؟" ونظرت إليهم نصف يوم
ماذا عن الملف؟ الكتابة
هذا هو أسهل مكان للتدحرج plugin / provider / options غير مكتملة في الـ2، إستبدلها بتعددية settingsلا أعلم
| OpenCode v1 | OpenCode v2 |
|---|---|
plugin | plugins |
provider | providers |
provider.<id>.npm | providers.<id>.package |
provider.<id>.options | providers.<id>.settings |
options.baseURL | settings.baseURL |
options.apiKey | settings.apiKey |
options.modelsDiscovery | settings.modelsDiscovery |
وفيما يلي تشكيلة من طراز V2 تعمل مباشرة:
{
"$schema": "https://opencode.ai/config.json",
"plugins": [
"opencode-models-discovery@2.0.0"
],
"providers": {
"gateway": {
"package": "@opencode/ai/providers/openai-compatible",
"name": "My Gateway",
"settings": {
"baseURL": "https://gateway.example.com/v1",
"apiKey": "{env:GATEWAY_API_KEY}",
"modelsDiscovery": {
"enabled": true,
"modelInfoFormat": "models.dev",
"smartModelName": true,
"cache": {
"enabled": true,
"ttlSeconds": 86400
}
}
}
}
}
}
وهناك عدة نقاط تشير إلى ما يلي:
modelsDiscovery.enabledنعمالرؤيةالكتابةtrueلا أعلم الخزنة 2 لم تعد مفتوحة، بل هي تغيير سلوكي، وليس اختياريا.packageالخدمة الموحدة@opencode/ai/providers/openai-compatibleلا أعلم- شهادة
{env:KEY}دع الحزمة المضيفة أو لا تكتبapiKeyمباشرةً يَستعملُ برنامجَ مفتوحَ./connectالدخول التفاعلي - السحب الافتراضي هو
/v1/models(يتصل بالأصل الأساسي). على اتصال مع ديب سيك/modelsأجل، أجل، أجلmodelsDiscoveryريجا"endpoint": "/models"لا أعلم - v2 على الإطلاق V1
auth.jsonوOPENCODE_AUTH_CONTENTإذهب إلى الأسفل سيعلق في 401.
رابعا - غطاء نموذجي ومخبأ، أكثر قابلية للتطبيق من المتوقع
نموذج V2 يغطي المضيف المخزن overrides:<providerID>:<modelID> مكان الاسم ويمكن إجراء تغييرات في ميادين مثل أسماء العرض، والحدود، والقدرات، والأسباب، والملحقات، والمتغيرات، والأسعار، والبيانات الفوقية المتوافقة.
هناك الكثير مما يجب قولهوسترفض مجالات مثل القسائم والأذون ولن تكون مستدامة أبدا.ومن الواضح أن الحدود مرسمة - تغطي التغطية بارامترات العرض والحركة، وليس المفتاح الذي تضعه.
منظمات أخرى /models-discovery-console التصوير البصري، وضع علامات على النماذج المغطاة في القائمة *لا أعلم تغيير قائمة النماذج لإعادة تحميل وتجديد الوحدة مباشرة، دون إعادة تشغيل الخدمة.(كاش) لن يحذفهذا ما يفعله الكثير من الناس بشكل خاطئ
خزائن الشارب مطفأة، ثم تخلف TTL 24 ساعة، مع الاستجابة الأصلية للكشف والتغذي، ctx.storageلا أعلم Note XDG cache file for v1لاواردات ف-2، مجموعتان من الأماكن المسماة معزولتان تماما.
V. TUI commands and agent Tools
The v2 offers four access points:
/models-discovery-refresh
/models-discovery-console
models_discovery_refresh
models_discovery_status
الأولان هما أوامر الوحدة، والاثنين الأخيران للتشغيل الآلي.models_discovery_status المرور rawCache: true إنّه مفيد بشكل خاص عندما يمكنكِ أن تبصقي النماذج الأصلية في المخبأ جنباً إلى جنب مع نتائج التهوية
ويدعم كونسول أيضاً التصفية من جانب مقدم الخدمات:/models-discovery-console status --provider <provider-id>لا أعلم عندما تأخذ ثلاثة أو خمسة بوابات، فإنه يوفر الوقت.
ستة: مرر ورقة الشيك هذه قبل الترقية.
- OpenCode Version' 5` يتطلب مبلغ 2.0.26؛ على الأقل 1.18.29 متبقيا في الفقرة 1.
- يستعاض عن جميع المجالات: معقد +
settingsلا أعلمnpmنعمpackageلا أعلمoptionsنعمsettingsلا أعلم - منفتحأكتب كل مزود ليجد
enabled: trueلا أعلم - الشيك النهائي: لا
/v1/modelsإنه يدويendpointلا أعلم
ومن السهل تجاهل الاثنين الأخرين: البناء المحلي.package لملء file:///绝对路径/distلا أعلمنقطة إلى الدليل بدلا من الرقم القياسي(ي)علينا تغيير الرمز opencode service restart دع خدمة المكتب الخلفي تحمّل الكتاب الجديد الثالث حيث أنا عالق نصف يوم بدون الرمز لأن الخدمة لم تبدأ
هل هذا يستحق التظاهر؟
انظر إلى مشهدك
- موظف واحد فقطلا تتظاهر قائمة النماذج هي تلك، مكتوبة بخط اليد لمدة سنة، والبلوجز هي طبقة أخرى.
- لدينا التوقف بوابة البوليمر: توصية قوية. وتتميز نماذج الخدمات هذه بالحضور، وبالأسماء الخاطئة، وبالنوبات المتكررة في الأسعار، كما أن الصيانة اليدوية لا تُستخدم إلا لحساب الذات.
- استوديو إدارة الشؤون المحلية/الحركة التحريرية/لاما سويب: وتُحمَّل نماذج الخدمات هذه عند الطلب. الـ (بلوغ-ين) سيحمّلك
max_model_lenإنه أكثر مباشرة بكثير، أسرع بكثير من تشكيلتك الخاصة - الشركة بنيت البوابةيستحق التقييم تسعة استمارات
bifrostلا أعلمomnirouteإنها للبوابةincludeBy/excludeByويدعم التصفيف المنتظم والمكافئ للميادين الأصلية، الذي يمكن أن يحجب مباشرة النماذج التي لا ينبغي أن ينظر إليها المستعملون العاديون.
2.0.0 وفيما يتعلق بحد ذاته، تشير مذكرات الإفراج إلى 41 ملفاً اختبارياً، و 314 اختباراً، بالإضافة إلى الاختبارات المحلية المفتوحة التي تتوافق مع اختبارات إدماج شركة HTTP وتوثيق منتجات الترجمة. هذه الكثافةِ الإختبارِ جدّيةُ لمشروعِ نجمِ 188.
V1 يعمل، ولكن الاشياء الجديدة في v2. إذا كنت تريد المتابعة في الأجل الطويل، حرك تشكيلاتك في وقت سابق، ولا تنتظر حتى اليوم الذي يكون فيه المكيّف V1 فقط رقعة أمان.
عنوان المشروع:Gythub.com/yuhp/opencode-models-discoveryاثبت مباشرة npm i opencode-models-discovery@2.0.0 أو كتابة اسم الطرد في التشكيلة أعلاه. pluginsسيحل "الوحدة المفتوحة" الحمولة نفسها