نظرة عامة
MeshPool هو شبكة الذكاء الاصطناعي للشركة بين أدواتك وكتالوج النماذج. يعرض واجهة HTTP متوافقة مع OpenAI ومسار Anthropic Messages لـ Claude Code. يرسل المحرر أو النص طلبًا إلى بوابة MeshPool. يصادق MeshPool على المفتاح، ويطبّق ميزانية مساحة العمل وسياسة النماذج، ثم يعيد الإكمال. يقع الاستخدام على المقعد والفاتورة نفسيهما كالمحادثة.
احصل على مفتاح
أنشئ المفاتيح في MeshPool chat. هذا هو المسار الأساسي. لا تحتاج صلاحيات مسؤول. كل موظف له مقعد يستطيع إصدار مفتاح لأدواته.
في المحادثة (موصى به)
- سجّل الدخول إلى محادثة MeshPool.
- في الشريط الجانبي، انقر أيقونة المفتاح. أو افتح قائمة الحساب واختر API keys.
- امنح المفتاح اسمًا يبيّن أين سيُستخدم، مثل
Claude Code — work laptopأوCI — release pipeline. هذا الاسم هو ما ستراه عندما تلغيه لاحقًا. - أنشئ المفتاح وانسخه فورًا. يُعرض السر مرة واحدة فقط. يخزّن MeshPool الأحرف الأربعة الأخيرة فقط، فلا يستطيع أحد — بمن فيهم الدعم — استعادته.
في لوحة التحكم
يمكنك أيضًا إنشاء المفاتيح في Account → API keys في لوحة الشركة. تعرض اللوحة كل اسم مستعار يجوز لمساحة العمل استدعاؤه، وتتضمن جولات Cursor وAndroid Studio وOpenCode وOpenWork وOpenClaw وHermes Agent وOpen WebUI.
تفاصيل الاتصال
استبدل القيم الحية أدناه في أداتك. المصادقة دائمًا Authorization: Bearer sk-…. تبدأ المفاتيح بـ sk- ثم سلسلة مبهمة.
| الإعداد | القيمة |
|---|---|
| عنوان OpenAI الأساسي | https://llm.meshpool.ai/v1 |
| عنوان Anthropic الأساسي | https://llm.meshpool.ai — لـ Claude Code فقط؛ دون /v1 |
| المصادقة | Authorization: Bearer sk-… |
المسارات المدعومة:
| المسار | الغرض |
|---|---|
POST /v1/chat/completions | المسار الذي تستخدمه كل أداة تقريبًا. البث مدعوم. |
POST /v1/completions | إكمال نصي قديم. |
POST /v1/messages | واجهة Anthropic Messages — Claude Code. |
POST /v1/messages/count_tokens | عدّ الرموز لمسار Anthropic. |
POST /v1/responses | واجهة OpenAI Responses. |
POST /v1/embeddings | التضمينات. |
POST /v1/rerank | إعادة الترتيب. |
GET /v1/models | يسرد النماذج التي يجوز لمفتاحك استدعاؤها بالضبط. |
المسارات الأخرى تعيد 404. هذا مقصود: مسارات الاستدلال وحدها عامة.
Claude Code
يتحدث Claude Code إلى واجهة Anthropic Messages. وجّهه إلى عنوان الأساس دون /v1، واستخدم ANTHROPIC_AUTH_TOKEN — وليس ANTHROPIC_API_KEY، لأن الأخير يسلك مسار مصادقة مختلفاً.
- أنشئ مفتاحاً شخصياً في المحادثة (انظر الحصول على مفتاح) وانسخ السر
sk-…. - صدّر متغيرات البيئة أدناه في الصدفة التي تشغّل فيها
claude. لجعلها دائمة، أضف الأسطر نفسها إلى~/.zshrcأو~/.bashrc. لقصرها على مشروع واحد، ضعها في.envrcواستخدم direnv. - اضبط
ANTHROPIC_MODELعلى اسم مستعار في MeshPool. ابدأ بـmeshpool-maxللاستدلال الصعب، أو باسم مستعار فعّلته مساحة عملك. - وجّه النموذج السريع الخلفي إلى
meshpool-fastحتى لا يستهلك التلخيص وما يشبهه الطبقة الأعلى تكلفة. - يمكنك ضبط
CLAUDE_CODE_MAX_CONTEXT_TOKENS. لا يتعرّف Claude Code على أسماء MeshPool المستعارة، فيطبع تنبيهunrecognized_modelويفترض نافذة من 200 ألف رمز. كل شيء يعمل؛ هذا المتغير يمنع الضغط التلقائي من أن يبدأ أبكر مما يلزم عندما يكون النموذج الأساسي أكبر.
export ANTHROPIC_BASE_URL="https://llm.meshpool.ai"
export ANTHROPIC_AUTH_TOKEN="sk-…"
export ANTHROPIC_MODEL="meshpool-max"
export ANTHROPIC_SMALL_FAST_MODEL="meshpool-fast"
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000
claudeتحقق من الاتصال:
claude -p "reply with exactly: connected"إذا توقف الأمر أو ظهر خطأ، نفّذ فحص curl أولاً. يفصل ذلك بين مشكلة المفتاح وإعداد Claude Code.
Cursor
يتحدث Cursor عبر OpenAI Chat Completions. استخدم عنوان /v1 وأضف كل اسم مستعار من MeshPool تريده في القائمة. لا يستورد Cursor /v1/models إلى قائمته — إذا تخطيت هذه الخطوة فلن يظهر الاسم المستعار.
- افتح Cursor Settings بـ ⌘⇧J (macOS) أو Ctrl+Shift+J (Windows / Linux)، ثم انتقل إلى Models.
- الصق مفتاح MeshPool في OpenAI API Key وفعّل المفتاح. اترك مفاتيح Anthropic وGoogle في Cursor فارغة لحركة MeshPool — يُقدَّم Claude وGemini على MeshPool عبر المسار المتوافق مع OpenAI.
- فعّل Override OpenAI Base URL واضبطه على
https://llm.meshpool.ai/v1. أبقِ/v1. لا تُلحق/chat/completions. - في Add or search model اكتب اسم MeshPool المستعار كما هو ثم انقر Add Custom Model وفعّله. كرّر ذلك لكل نموذج تريده. ابدأ بالأوضاع — فهي لا تتعارض مع قائمة Cursor المدمجة — ثم أضف الأسماء المستعارة. انسخ قائمة المحادثة كاملة:
meshpool-fast meshpool-balanced meshpool-max kimi-k3 glm-5.2 kimi-k2.6 deepseek-v4-pro deepseek-v4-flash gpt-5.6-sol gpt-6-astra gpt-6-sol gpt-6.1-sol gpt-5.4 gpt-6-luna grok-4.6 grok-4.7 mistral-medium-3-5 phi-4 claude-opus-5 claude-opus-5.5 claude-sonnet-5 claude-sonnet-5.5 claude-haiku-4.5 gpt-5.6-terra gpt-5.6-luna gpt-oss-120b gemini-3.7-flash glm-5.3 glm-4.7 qwen-3-8-max deepseek-v4.1-flash glm-5.3-flash qwen-3-8-27b claude-fable-5 claude-fable-5.1 - اضغط Verify. في المحادثة اختر الاسم المستعار من قائمة النماذج. تجنّب Auto — فهو يبقى على موجّه Cursor نفسه.
لا يمكن استخدام أسماء الصور المستعارة مثل nano-banana وgpt-image-2 و grok-imagine في محادثة Cursor — انظر نماذج الصور.
Android Studio
يمكن لـ Gemini في Android Studio استدعاء MeshPool كمزوّد بعيد من طرف ثالث. يتحدث عبر OpenAI Chat Completions، لذا استخدم عنوان /v1 ومفتاح MeshPool sk-…. بخلاف Cursor، يستورد Android Studio GET /v1/models بعد النقر على Refresh — لا تكتب الأسماء المستعارة يدوياً.
- أنشئ مفتاحاً شخصياً في المحادثة (انظر الحصول على مفتاح) وانسخ السر
sk-…. - افتح إعدادات Android Studio: Android Studio → Settings على macOS، أو File → Settings على Windows / Linux. وسّع Tools → AI واختر Model Providers.
- انقر Add واختر Third-Party Remote Provider. إذا غابت هذه القائمة، حدّث Android Studio إلى إصدار يتضمن Tools → AI → Model Providers.
- املأ بيانات المزوّد:
- Description — أي تسمية، مثل
MeshPool. - URL —
https://llm.meshpool.ai/v1. أبقِ/v1. لا تُلحق/chat/completions، ولا تستخدم مضيف Anthropic (هذا المسار لـ Claude Code فقط). - API key — الصق سر MeshPool.
- Description — أي تسمية، مثل
- انقر Refresh ليحمّل Android Studio الأسماء المستعارة التي يجوز لهذا المفتاح استدعاؤها. فعّل ما تريده — ابدأ بـ
meshpool-fastوmeshpool-balancedوmeshpool-max— ثم OK. - افتح محادثة الذكاء الاصطناعي أو لوحة الوكيل واختر اسماً مستعاراً من MeshPool. أبقِ Gemini المدمج من Google فقط للميزات التي لا تغطيها نماذج الطرف الثالث.
OpenCode
يتحدث OpenCode عبر OpenAI Chat Completions. استخدم عنوان /v1 والصق الإعداد أدناه. مثل Cursor، OpenCode لا يستورد /v1/models — كل اسم محادثة مستعار مذكور في opencode.json. لا يستطيع مفتاحك استدعاء إلا النماذج التي فعّلتها مساحة العمل؛ الأسماء الزائدة في الملف تعيد 403.
- أنشئ مفتاحًا شخصيًا في المحادثة (انظر احصل على مفتاح) وانسخ السر
sk-…. - في OpenCode، نفّذ
/connect، واختر Other، واضبط معرّف المزوّد علىmeshpool، والصق المفتاح. ذلك يخزّن الاعتماد فقط — ما زلت تحتاج ملف الإعداد بعد ذلك. - أنشئ أو حدّث
~/.config/opencode/opencode.json(عام) أوopencode.jsonفي جذر المشروع. يجب أن يطابق معرّف المزوّدmeshpoolتمامًا. أبقِ/v1على العنوان الأساسي. لا تُلحق/chat/completions. - أعد تشغيل OpenCode، ونفّذ
/models، واختر اسمًا مستعارًا من MeshPool (مثلmeshpool/meshpool-maxأوmeshpool/claude-opus-5).
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"meshpool": {
"npm": "@ai-sdk/openai-compatible",
"name": "MeshPool",
"options": {
"baseURL": "https://llm.meshpool.ai/v1"
},
"models": {
"meshpool-fast": { "name": "MeshPool Fast" },
"meshpool-balanced": { "name": "MeshPool Balanced" },
"meshpool-max": { "name": "MeshPool Max" },
"kimi-k3": { "name": "Kimi K3" },
"glm-5.2": { "name": "GLM 5.2" },
"kimi-k2.6": { "name": "Kimi K2.6" },
"deepseek-v4-pro": { "name": "DeepSeek-V4-Pro" },
"deepseek-v4-flash": { "name": "DeepSeek-V4-Flash" },
"gpt-5.6-sol": { "name": "GPT-5.6 Sol" },
"gpt-6-astra": { "name": "GPT-6 Astra" },
"gpt-6-sol": { "name": "GPT-6 Sol" },
"gpt-6.1-sol": { "name": "GPT-6.1 Sol" },
"gpt-5.4": { "name": "GPT-5.4" },
"gpt-6-luna": { "name": "GPT-6 Luna" },
"grok-4.6": { "name": "Grok 4.6" },
"grok-4.7": { "name": "Grok 4.7" },
"mistral-medium-3-5": { "name": "Mistral Medium 3.5" },
"phi-4": { "name": "Phi-4" },
"claude-opus-5": { "name": "Claude Opus 5" },
"claude-opus-5.5": { "name": "Claude Opus 5.5" },
"claude-sonnet-5": { "name": "Claude Sonnet 5" },
"claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
"claude-haiku-4.5": { "name": "Claude Haiku 4.5" },
"gpt-5.6-terra": { "name": "GPT-5.6 Terra" },
"gpt-5.6-luna": { "name": "GPT-5.6 Luna" },
"gpt-oss-120b": { "name": "GPT-OSS 120B" },
"gemini-3.7-flash": { "name": "Gemini 3.7 Flash" },
"glm-5.3": { "name": "GLM 5.3" },
"glm-4.7": { "name": "GLM 4.7" },
"qwen-3-8-max": { "name": "Qwen 3.8 Max" },
"deepseek-v4.1-flash": { "name": "DeepSeek-V4.1-Flash" },
"glm-5.3-flash": { "name": "GLM 5.3 Flash" },
"qwen-3-8-27b": { "name": "Qwen3.8 27B" },
"claude-fable-5": { "name": "Claude Fable 5" },
"claude-fable-5.1": { "name": "Claude Fable 5.1" }
}
}
}
}
خطوات المزوّد المخصص الرسمية: OpenCode providers.
OpenWork
OpenWork وكيل سطح مكتب مفتوح المصدر مبني على أساسيات OpenCode. استخدم عنوان /v1 ومفتاحًا شخصيًا sk-…. مثل OpenCode، هو لا يستورد /v1/models — تسمّي الأسماء المستعارة عند ربط المزوّد.
ثبّته من ملف README للمشروع أو من صفحة التنزيل الرسمية:
- المستودع: github.com/different-ai/openwork
- التنزيلات: openworklabs.com/docs/start-here/downloads
- مستندات النموذج المخصص: Add a custom LLM
من التطبيق
- أنشئ مفتاحًا شخصيًا (انظر احصل على مفتاح) وانسخ السر
sk-…. - افتح Settings → AI → Connect provider.
- اختر Add custom provider في أسفل القائمة.
- اضبط Name على
MeshPool، وID علىmeshpool، وBase URL علىhttps://llm.meshpool.ai/v1. أبقِ/v1؛ ولا تُلحق/chat/completions. الصق مفتاح MeshPool في API key. في Model IDs ابدأ بـmeshpool-fastوmeshpool-balancedوmeshpool-max. أضف الأسماء المسماة من خريطةmodelsفي OpenCode إذا أردتها في القائمة. - انقر Add provider. يكتب OpenWork ملف مساحة العمل
opencode.jsoncوتظهر الأسماء المستعارة في قائمة النماذج.
من ملف الإعداد
يفضّل OpenWork ملفًا داخل مساحة العمل على إعداد OpenCode العام: <workspace>/.config/opencode/opencode.json. الصق كتلة مزوّد MeshPool نفسها كما في OpenCode. يجب أن يكون معرّف المزوّد meshpool.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"meshpool": {
"npm": "@ai-sdk/openai-compatible",
"name": "MeshPool",
"options": {
"baseURL": "https://llm.meshpool.ai/v1"
},
"models": {
"meshpool-fast": { "name": "MeshPool Fast" },
"meshpool-balanced": { "name": "MeshPool Balanced" },
"meshpool-max": { "name": "MeshPool Max" },
"kimi-k3": { "name": "Kimi K3" },
"glm-5.2": { "name": "GLM 5.2" },
"kimi-k2.6": { "name": "Kimi K2.6" },
"deepseek-v4-pro": { "name": "DeepSeek-V4-Pro" },
"deepseek-v4-flash": { "name": "DeepSeek-V4-Flash" },
"gpt-5.6-sol": { "name": "GPT-5.6 Sol" },
"gpt-6-astra": { "name": "GPT-6 Astra" },
"gpt-6-sol": { "name": "GPT-6 Sol" },
"gpt-6.1-sol": { "name": "GPT-6.1 Sol" },
"gpt-5.4": { "name": "GPT-5.4" },
"gpt-6-luna": { "name": "GPT-6 Luna" },
"grok-4.6": { "name": "Grok 4.6" },
"grok-4.7": { "name": "Grok 4.7" },
"mistral-medium-3-5": { "name": "Mistral Medium 3.5" },
"phi-4": { "name": "Phi-4" },
"claude-opus-5": { "name": "Claude Opus 5" },
"claude-opus-5.5": { "name": "Claude Opus 5.5" },
"claude-sonnet-5": { "name": "Claude Sonnet 5" },
"claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
"claude-haiku-4.5": { "name": "Claude Haiku 4.5" },
"gpt-5.6-terra": { "name": "GPT-5.6 Terra" },
"gpt-5.6-luna": { "name": "GPT-5.6 Luna" },
"gpt-oss-120b": { "name": "GPT-OSS 120B" },
"gemini-3.7-flash": { "name": "Gemini 3.7 Flash" },
"glm-5.3": { "name": "GLM 5.3" },
"glm-4.7": { "name": "GLM 4.7" },
"qwen-3-8-max": { "name": "Qwen 3.8 Max" },
"deepseek-v4.1-flash": { "name": "DeepSeek-V4.1-Flash" },
"glm-5.3-flash": { "name": "GLM 5.3 Flash" },
"qwen-3-8-27b": { "name": "Qwen3.8 27B" },
"claude-fable-5": { "name": "Claude Fable 5" },
"claude-fable-5.1": { "name": "Claude Fable 5.1" }
}
}
}
}
OpenClaw
OpenClaw وكيل شخصي يتحدث عبر OpenAI Chat Completions من خلال مزوّد مخصص. استخدم عنوان /v1 ومفتاحًا شخصيًا sk-…. مثل OpenCode، هو لا يستورد /v1/models — تسمّي الأسماء المستعارة تحت models.providers.meshpool.
ثبّته من المستندات الرسمية، ثم أضف MeshPool:
- المستندات: docs.openclaw.ai
- مزوّدون مخصصون: مزوّدو النماذج
- ملف الإعداد: ~/.openclaw/openclaw.json
من ملف الإعداد
ادمج الكتلة أدناه في ~/.openclaw/openclaw.json. أبقِ /v1 في العنوان الأساسي. لا تُلحق /chat/completions. مراجع النماذج هي meshpool/<alias>.
{
"agents": {
"defaults": {
"model": {
"primary": "meshpool/meshpool-max"
}
}
},
"models": {
"mode": "merge",
"providers": {
"meshpool": {
"baseUrl": "https://llm.meshpool.ai/v1",
"apiKey": "${MESHPOOL_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "meshpool-fast",
"name": "MeshPool Fast"
},
{
"id": "meshpool-balanced",
"name": "MeshPool Balanced"
},
{
"id": "meshpool-max",
"name": "MeshPool Max"
},
{
"id": "kimi-k3",
"name": "Kimi K3"
},
{
"id": "glm-5.2",
"name": "GLM 5.2"
},
{
"id": "kimi-k2.6",
"name": "Kimi K2.6"
},
{
"id": "deepseek-v4-pro",
"name": "DeepSeek-V4-Pro"
},
{
"id": "deepseek-v4-flash",
"name": "DeepSeek-V4-Flash"
},
{
"id": "gpt-5.6-sol",
"name": "GPT-5.6 Sol"
},
{
"id": "gpt-6-astra",
"name": "GPT-6 Astra"
},
{
"id": "gpt-6-sol",
"name": "GPT-6 Sol"
},
{
"id": "gpt-6.1-sol",
"name": "GPT-6.1 Sol"
},
{
"id": "gpt-5.4",
"name": "GPT-5.4"
},
{
"id": "gpt-6-luna",
"name": "GPT-6 Luna"
},
{
"id": "grok-4.6",
"name": "Grok 4.6"
},
{
"id": "grok-4.7",
"name": "Grok 4.7"
},
{
"id": "mistral-medium-3-5",
"name": "Mistral Medium 3.5"
},
{
"id": "phi-4",
"name": "Phi-4"
},
{
"id": "claude-opus-5",
"name": "Claude Opus 5"
},
{
"id": "claude-opus-5.5",
"name": "Claude Opus 5.5"
},
{
"id": "claude-sonnet-5",
"name": "Claude Sonnet 5"
},
{
"id": "claude-sonnet-5.5",
"name": "Claude Sonnet 5.5"
},
{
"id": "claude-haiku-4.5",
"name": "Claude Haiku 4.5"
},
{
"id": "gpt-5.6-terra",
"name": "GPT-5.6 Terra"
},
{
"id": "gpt-5.6-luna",
"name": "GPT-5.6 Luna"
},
{
"id": "gpt-oss-120b",
"name": "GPT-OSS 120B"
},
{
"id": "gemini-3.7-flash",
"name": "Gemini 3.7 Flash"
},
{
"id": "glm-5.3",
"name": "GLM 5.3"
},
{
"id": "glm-4.7",
"name": "GLM 4.7"
},
{
"id": "qwen-3-8-max",
"name": "Qwen 3.8 Max"
},
{
"id": "deepseek-v4.1-flash",
"name": "DeepSeek-V4.1-Flash"
},
{
"id": "glm-5.3-flash",
"name": "GLM 5.3 Flash"
},
{
"id": "qwen-3-8-27b",
"name": "Qwen3.8 27B"
},
{
"id": "claude-fable-5",
"name": "Claude Fable 5"
},
{
"id": "claude-fable-5.1",
"name": "Claude Fable 5.1"
}
]
}
}
}
}
من سطر الأوامر أو واجهة التحكم
- بعد وجود المزوّد، اضبط النموذج الأساسي:
openclaw models set meshpool/meshpool-max - تأكد بـ
openclaw models list. - أو افتح واجهة التحكم واستخدم Settings → Model Providers لربط مفتاح MeshPool والأسماء المستعارة نفسها.
Hermes Agent
Hermes Agent وكيل البرمجة من Nous Research. يتحدث عبر OpenAI Chat Completions على نقطة وصول مخصصة. استخدم عنوان /v1 ومفتاحًا شخصيًا sk-…. بخلاف OpenCode، هو يستعلم GET /v1/models عندما يكون discover_models مفعّلًا.
ثبّته من موقع المشروع، ثم أضف MeshPool:
- الموقع: hermes-agent.nousresearch.com
- المستودع: github.com/NousResearch/hermes-agent
- مستندات المزوّد: نقاط وصول مخصصة
من سطر الأوامر (المفضّل)
- أنشئ مفتاحًا شخصيًا (انظر احصل على مفتاح) وانسخ السر
sk-…. - خارج جلسة محادثة، شغّل
hermes model. - اختر Custom endpoint (self-hosted / VLLM / etc.).
- اضبط العنوان الأساسي على
https://llm.meshpool.ai/v1. أبقِ/v1. لا تُلحق/chat/completions. الصق مفتاح MeshPool. ابدأ بالنموذجmeshpool-max(أوmeshpool-fast/meshpool-balanced).
من ملف الإعداد
يخزّن Hermes الإعداد في ~/.hermes/config.yaml. المزوّد المسمّى أدناه يُبقي المفتاح في MESHPOOL_API_KEY بدل الملف.
model:
provider: "custom:meshpool"
default: meshpool-max
providers:
meshpool:
name: MeshPool
api: https://llm.meshpool.ai/v1
key_env: MESHPOOL_API_KEY
transport: chat_completions
default_model: meshpool-max
discover_models: true
Open WebUI
Open WebUI واجهة محادثة مستضافة ذاتيًا تتحدث عبر OpenAI Chat Completions. استخدم عنوان /v1 ومفتاحًا شخصيًا sk-…. بخلاف Cursor، هي تستورد GET /v1/models — تمتلئ القائمة بما يجوز لهذا المفتاح استدعاؤه. لا تحتاج مشغّل نماذج محليًا.
ثبّته من ملف README للمشروع أو دليل البدء الرسمي:
- المستودع: github.com/open-webui/open-webui
- مستندات التثبيت: docs.openwebui.com/getting-started
Docker
واجهة متوافقة مع OpenAI فقط. بعد التشغيل، افتح http://localhost:3000. أبقِ /v1 في العنوان الأساسي.
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL="https://llm.meshpool.ai/v1" \
-e OPENAI_API_KEY="sk-…" \
-v open-webui:/app/backend/data \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:mainpip
يتطلب Python 3.11. يخدم http://localhost:8080.
pip install open-webui
OPENAI_API_BASE_URL="https://llm.meshpool.ai/v1" \
OPENAI_API_KEY="sk-…" \
open-webui serveإذا كان يعمل بالفعل
- أنشئ مفتاحًا شخصيًا (انظر احصل على مفتاح) وانسخ السر
sk-…. - سجّل الدخول بأول حساب في Open WebUI — ذلك المستخدم هو المسؤول.
- افتح Admin Panel → Settings → Connections.
- فعّل اتصال OpenAI. اضبط API Base URL على
https://llm.meshpool.ai/v1. أبقِ/v1؛ لا تُلحق/chat/completions. الصق مفتاح MeshPool في API Key. - احفظ، وحدّث قائمة النماذج، واختر اسم MeshPool مستعارًا (
meshpool-fast,meshpool-balanced,meshpool-max، أو اسمًا مسمّى).
Continue
Continue عميل متوافق مع OpenAI. الصق قائمة النماذج في ~/.continue/config.json (أو إعداد مشروعك) مع عنوان /v1 الأساسي. يتضمن المقتطف كل اسم محادثة مستعار؛ احذف الصفوف التي لا تريدها. نماذج الصور غير مضمّنة.
- أنشئ مفتاحًا شخصيًا وانسخ السر
sk-…. - افتح
~/.continue/config.json. - أضف مدخل نموذج مع
providerمضبوطًا علىopenai,apiBaseمضبوطًا علىhttps://llm.meshpool.ai/v1, وmodelمضبوطًا على اسم MeshPool مستعار — وليسopenai/….
{
"models": [
{ "title": "MeshPool Fast", "provider": "openai", "model": "meshpool-fast", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "MeshPool Balanced", "provider": "openai", "model": "meshpool-balanced", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "MeshPool Max", "provider": "openai", "model": "meshpool-max", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Kimi K3", "provider": "openai", "model": "kimi-k3", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GLM 5.2", "provider": "openai", "model": "glm-5.2", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Kimi K2.6", "provider": "openai", "model": "kimi-k2.6", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "DeepSeek-V4-Pro", "provider": "openai", "model": "deepseek-v4-pro", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "DeepSeek-V4-Flash", "provider": "openai", "model": "deepseek-v4-flash", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-5.6 Sol", "provider": "openai", "model": "gpt-5.6-sol", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-6 Astra", "provider": "openai", "model": "gpt-6-astra", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-6 Sol", "provider": "openai", "model": "gpt-6-sol", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-6.1 Sol", "provider": "openai", "model": "gpt-6.1-sol", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-5.4", "provider": "openai", "model": "gpt-5.4", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-6 Luna", "provider": "openai", "model": "gpt-6-luna", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Grok 4.6", "provider": "openai", "model": "grok-4.6", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Grok 4.7", "provider": "openai", "model": "grok-4.7", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Mistral Medium 3.5", "provider": "openai", "model": "mistral-medium-3-5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Phi-4", "provider": "openai", "model": "phi-4", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Opus 5", "provider": "openai", "model": "claude-opus-5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Opus 5.5", "provider": "openai", "model": "claude-opus-5.5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Sonnet 5", "provider": "openai", "model": "claude-sonnet-5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Sonnet 5.5", "provider": "openai", "model": "claude-sonnet-5.5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Haiku 4.5", "provider": "openai", "model": "claude-haiku-4.5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-5.6 Terra", "provider": "openai", "model": "gpt-5.6-terra", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-5.6 Luna", "provider": "openai", "model": "gpt-5.6-luna", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GPT-OSS 120B", "provider": "openai", "model": "gpt-oss-120b", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Gemini 3.7 Flash", "provider": "openai", "model": "gemini-3.7-flash", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GLM 5.3", "provider": "openai", "model": "glm-5.3", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GLM 4.7", "provider": "openai", "model": "glm-4.7", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Qwen 3.8 Max", "provider": "openai", "model": "qwen-3-8-max", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "DeepSeek-V4.1-Flash", "provider": "openai", "model": "deepseek-v4.1-flash", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "GLM 5.3 Flash", "provider": "openai", "model": "glm-5.3-flash", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Qwen3.8 27B", "provider": "openai", "model": "qwen-3-8-27b", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Fable 5", "provider": "openai", "model": "claude-fable-5", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" },
{ "title": "Claude Fable 5.1", "provider": "openai", "model": "claude-fable-5.1", "apiBase": "https://llm.meshpool.ai/v1", "apiKey": "sk-…" }
]
}
aider
يستخدم aider المسار المتوافق مع OpenAI. صدّر العنوان الأساسي والمفتاح، ثم أسبق اسم MeshPool المستعار بـ openai/ حتى يعرف aider أي بروتوكول يستخدم.
- صدّر المتغيرين أدناه في الصدفة التي تشغّل فيها aider.
- شغّل aider بـ
--model openai/meshpool-maxأو اسم مسمى مثل--model openai/claude-opus-5. البادئةopenai/اسم مشغّل aider، وليست جزءًا من اسم MeshPool المستعار.
export OPENAI_API_BASE="https://llm.meshpool.ai/v1"
export OPENAI_API_KEY="sk-…"
aider --model openai/meshpool-maxحزم OpenAI
تأخذ الحزمتان الرسميتان base_url / baseURL. لا يتغير شيء آخر. يعمل البث واستدعاء الأدوات ووضع JSON كما مع OpenAI، بحسب ما يدعمه النموذج الأساسي.
Python
from openai import OpenAI
client = OpenAI(
api_key="sk-…", # or os.environ["MESHPOOL_API_KEY"]
base_url="https://llm.meshpool.ai/v1",
)
response = client.chat.completions.create(
model="meshpool-balanced",
messages=[{"role": "user", "content": "Say hello"}],
)
print(response.choices[0].message.content)Node / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.MESHPOOL_API_KEY,
baseURL: "https://llm.meshpool.ai/v1",
});
const response = await client.chat.completions.create({
model: "meshpool-balanced",
messages: [{ role: "user", content: "Say hello" }],
});
console.log(response.choices[0].message.content);تتبع LangChain وLlamaIndex والمكتبات المشابهة النمط نفسه: اضبط عنوان OpenAI الأساسي على https://llm.meshpool.ai/v1، والصق المفتاح حيث تطلب المكتبة مفتاح OpenAI، ومرّر اسم MeshPool المستعار كـ model.
curl
استخدم هذا كأول فحص كلما أساءت أداة السلوك. 200 هنا يعني أن المفتاح والعنوان والاسم المستعار سليمة — انظر إعداد العميل بعد ذلك.
curl -sS https://llm.meshpool.ai/v1/chat/completions \
-H "Authorization: Bearer sk-…" \
-H "Content-Type: application/json" \
-d '{"model":"meshpool-fast","messages":[{"role":"user","content":"say ok"}]}'اسرد كل اسم مستعار يجوز لهذا المفتاح استدعاؤه:
curl -s https://llm.meshpool.ai/v1/models \
-H "Authorization: Bearer sk-…" | jq -r '.data[].id' | sortالأوضاع والأسماء المسماة
حقل model يجب أن يكون اسمًا مستعارًا في MeshPool، وليس معرّف نموذج المورّد الخام. لا يستطيع مفتاحك استدعاء إلا الأسماء التي فعّلها المسؤول. 403 مع key_model_access_denied يعني أن الاسم حقيقي لكنه ليس في قائمة السماح لمساحة العمل. تفعيله تحت سياسة النماذج يسري على المفاتيح الحالية — لا تحتاج إلى إصدار مفتاح جديد.
ثلاثة أسماء مستعارة توجّه حسب الغرض بدل تسمية نموذج بعينه، فتبقى تعمل عندما يحدّث MeshPool الافتراضي خلف الطبقة:
| الاسم المستعار | يُستخدم لـ |
|---|---|
meshpool-fast | عمل كثيف وحساس لزمن الاستجابة. رخيص. افتراضي جيد للمهام الخلفية. |
meshpool-balanced | البرمجة والاستدلال العام. العمل اليومي. |
meshpool-max | المسائل الصعبة حيث الجودة أهم من التكلفة. |
الأسماء المسماة للمحادثة في مقتطفات OpenCode وOpenWork وOpenClaw وContinue وCursor أعلاه. يحمّل Open WebUI وHermes Agent القائمة نفسها من /v1/models. استخدم نموذجًا مسمى عندما يهمك سلوك ذلك النموذج؛ واستخدم وضعًا عندما تريد أن يختار MeshPool الافتراضي الحالي لتلك الطبقة. أسماء الصور المستعارة مذكورة على حدة تحت نماذج الصور.
اسأل المفتاح عما يستطيع الوصول إليه — تلك القائمة هي المرجع دائمًا:
curl -s https://llm.meshpool.ai/v1/models \
-H "Authorization: Bearer sk-…" | jq -r '.data[].id' | sortنماذج الصور
أسماء مثل nano-banana وgpt-image-2 وgrok-imagine لتوليد الصور وليست للمحادثة. تتحدث POST /v1/images/generations. لن تعمل كنموذج في محادثة Cursor أو الوكيل أو Composer أو محادثة Android Studio أو وكيله أو OpenCode أو OpenWork أو OpenClaw أو Hermes Agent أو محادثة Open WebUI أو Continue أو aider أو /v1/chat/completions.
الميزانيات والحدود والإلغاء
تُعامل الطلبات بمفتاح API كطلبات المحادثة:
- تُحتسب على ميزانية مقعدك. استخدام المحادثة وAPI يشتركان في سقف شهري واحد. إنفاقه في Claude Code يعني أنك لا تستطيع إنفاقه في المحادثة.
- إصدار مفاتيح أكثر لا يرفع ميزانيتك. عشرة مفاتيح تشترك في بدل واحد.
- حدود معدلك تسري. سقوف الطلبات في الدقيقة والرموز في الدقيقة على مقعدك تسري على حركة API أيضًا.
- يُنسب الاستخدام إليك. يظهر في تقارير استخدام مساحة العمل والفواتير تحت اسمك، إلى جانب المحادثة.
- تسري سياسة نماذج مساحة العمل. لا يستطيع المفتاح استدعاء إلا النماذج التي فعّلها المسؤول.
- تسري ضوابط الحماية والإقامة بالطريقة نفسها كما في المحادثة.
عندما تستنفد ميزانيتك تعيد البوابة 429. هذا ليس عطلًا في عميلك — اشحن الرصيد، أو اطلب من مسؤول رفع سقف مقعدك.
التدوير والإلغاء
ألغِ المفتاح من حوار مفاتيح API في المحادثة أو من Account → API keys. يتوقف فورًا، في كل مكان.
دوّر بإنشاء البديل أولًا، ثم تحديث أداتك، ثم إلغاء المفتاح القديم. لا غرامة على التداخل — كلاهما صالح حتى تلغي. ألغِ فورًا إذا أُدخل المفتاح في مستودع، أو لُصق في محادثة أو تذكرة، أو بقي على جهاز لم تعد تتحكم به. إلغاء مفتاح API لا يسجّل خروجك من المحادثة؛ هما اعتمادان منفصلان بالتصميم.
استكشاف الأخطاء
ابدأ من هنا. هذا الأمر الواحد يفصل المفتاح الخاطئ عن إعداد العميل الخاطئ:
curl -sS https://llm.meshpool.ai/v1/chat/completions \
-H "Authorization: Bearer sk-…" \
-H "Content-Type: application/json" \
-d '{"model":"meshpool-fast","messages":[{"role":"user","content":"say ok"}]}'| العَرَض | السبب | الإصلاح |
|---|---|---|
401 Unauthorized | المفتاح خاطئ أو مُلغى أو فيه فراغ زائد. | انسخه من جديد. تأكد أنك لم تلصق سطرًا فارغًا في النهاية. |
400 يسمّي النموذج، أو 403 key_model_access_denied | الاسم المستعار مفقود أو ليس في قائمة المفتاح المسموحة. | شغّل استدعاء /v1/models أعلاه واستخدم اسمًا منه، أو اطلب من مسؤول تفعيل الاسم المستعار. |
429 مع رسالة ميزانية | نفدت ميزانية المقعد. | أضف رصيدًا، أو اطلب من مسؤول رفع السقف. |
429 دون رسالة ميزانية | بلغ سقف الطلبات أو الرموز في الدقيقة. | انتظر وأعد المحاولة؛ اسأل مسؤولًا إذا استمر. |
404 على مسار غير متوقع | نقطة الوصول هذه غير معروضة على البوابة العامة. | استخدم إحدى نقاط الوصول المدعومة. |
| Claude Code يعيد 404 في كل دور | ANTHROPIC_BASE_URL ينتهي بـ /v1، فتذهب الطلبات إلى /v1/v1/messages. | احذف /v1؛ Claude Code يُلحق مساره. |
| يتوقف تحقق Cursor | توافق HTTP/2 مع العنوان الأساسي المخصص. | اضبط Network → HTTP Compatibility Mode على HTTP/1.1. |
| قائمة Cursor تفتقد نموذجًا | لا يستورد Cursor /v1/models. | أضف الاسم المستعار عبر Add Custom Model. فضّل meshpool-fast / meshpool-balanced / meshpool-max أولًا. |
| تحديث Android Studio فارغ | عنوان خاطئ، أو غياب /v1، أو المفتاح لا يستطيع سرد النماذج. | استخدم https://llm.meshpool.ai/v1، وأعد لصق المفتاح، ثم حدّث مرة أخرى. تأكد أن استدعاء نماذج curl يعيد الأسماء المستعارة. |
| لا قائمة Model Providers | إصدار Android Studio هذا لا يتضمن المزوّدين البعيدين. | حدّث إلى Android Studio حديث يتضمن Tools → AI → Model Providers. |
| قائمة OpenCode تفتقد MeshPool | المزوّدون المخصصون لا يستوردون /v1/models، أو معرّف المزوّد غير مطابق. | اذكر كل اسم محادثة مستعار تحت models في opencode.json (المقتطف في هذه الصفحة). معرّف مزوّد /connect يجب أن يكون meshpool. |
| قائمة OpenWork تفتقد MeshPool | لم يُضف المزوّد المخصص، أو العنوان الأساسي يفتقد /v1، أو معرّف المزوّد غير مطابق. | استخدم Settings → AI → Connect provider → Add custom provider بمعرّف meshpool وعنوان أساسي https://llm.meshpool.ai/v1، أو الصق خريطة models من OpenCode في <workspace>/.config/opencode/opencode.json. |
| لا يرى OpenClaw MeshPool | غياب models.providers.meshpool، أو عنوان أساسي دون /v1، أو مرجع نموذج ليس meshpool/<alias>. | الصق مقتطف هذه الصفحة في ~/.openclaw/openclaw.json، ثم شغّل openclaw models set meshpool/meshpool-max. |
| لا نماذج MeshPool في Hermes Agent | /model استُخدم قبل hermes model، أو ضُبط OPENAI_BASE_URL بدل model.base_url. | اخرج من الجلسة، وشغّل hermes model، واختر Custom endpoint، واضبط العنوان الأساسي على https://llm.meshpool.ai/v1. |
| قائمة نماذج Open WebUI فارغة | غياب /v1، أو المفتاح لا يستطيع سرد النماذج، أو الاتصال ما زال يشير إلى مضيف OpenAI الافتراضي. | اضبط OPENAI_API_BASE_URL / API Base URL على https://llm.meshpool.ai/v1، وأعد لصق المفتاح، ثم حدّث النماذج. |
| رُفض الاتصال أو فشل DNS | مضيف البوابة لا يُحل من شبكتك. | تأكد أنك تصل إلى https://llm.meshpool.ai. إذا فشل من شبكة الشركة، راسل support@meshpool.ai. |
ما زلت عالقًا؟ راسل support@meshpool.ai، أو احجز عرضًا.
