ملاحظة الكاتب: لا يملك OpenBot واجهة «لاختيار النموذج»؛ بل يُحدَّد النموذج في ملف .env وملف model.yaml الخاص بحزمة المستأجر. يشرح هذا المقال كيفية ربطه بـ APIYI عبر تعديل ثلاثة متغيرات بيئة وسطر واحد في ملف YAML، ثم السماح بثلاث أدوات حاسوب فقط في البداية، والتحقق من النتيجة عبر «فتح صفحة ويب + قراءة ملف + مراجعة سجل التدقيق».
استنسختَ مشروع OpenBot من CopilotKit، وفتحت ملف .env.example، ثم بحثت في واجهة التطبيق ذهابًا وإيابًا، لكنك لم تجد قائمة منسدلة «لاختيار مزود النموذج». وليس لديك بطاقة دفع مقبولة لدى OpenAI، وتريد فقط استخدام APIYI بنظام الدفع حسب الاستخدام لتشغيل claude-opus-5-5، لكنك لا تعرف حتى أين تضبط النموذج.
الخلاصة أولًا: لا يوجد في OpenBot مفتاح «لاختيار النموذج». يُحدَّد النموذج في ملف .env وملف model.yaml الخاص بحزمة المستأجر. ولا يتطلب الربط بـ APIYI تعديل الشفرة؛ يكفي تعديل ثلاثة متغيرات بيئة وسطر واحد في ملف YAML. بعد ذلك، اسمح بثلاث أدوات حاسوب فقط في البداية، ثم فعّل المزيد حسب الحاجة بعد نجاح الاختبار.
هذا ليس دليلًا للتشغيل بنقرة واحدة. فـ OpenBot قالب يحتاج تشغيله إلى Docker وBun 1.4 أو أحدث ومشروع CopilotKit Intelligence، بالإضافة إلى مفتاح API للنموذج. سنوضح جميع هذه المتطلبات في المقال. كذلك، يوجد على GitHub مشروعان باسم OpenBot؛ والمقصود هنا هو مشروع CopilotKit.
ما الذي ستستفيده؟ بعد قراءة المقال، ستتمكن من ضبط الإعدادات الثلاثة بنفسك، والبدء بثلاث أدوات، وإجراء اختبار للتحقق من النتيجة يشمل «فتح صفحة ويب + قراءة ملف + مراجعة سجل التدقيق». وستجد أيضًا جدولًا لاستكشاف الأخطاء الشائعة، مثل 400 و401 وعدم وجود النموذج وعدم استدعاء الأدوات ورفض بدء التشغيل.

لا تُضبط نماذج OpenBot من الواجهة
OpenBot قالب، وليس منتجًا
CopilotKit/OpenBot مستودع مفتوح المصدر بترخيص MIT، أُنشئ في 2026-08-17. وحتى 2026-11-02، حصل المستودع على 9,561 نجمة، وكان أحدث إصدار رسمي له هو v0.2.0 بتاريخ 2026-10-12، فيما لا تزال علامة Beta تتصدر ملف README. وتتمثل فكرته في منح كل زميل يعمل بالذكاء الاصطناعي، ويُسمّى Bot في المستودع، جهاز كمبيوتر خاصًا به، بما يشمل متصفحًا حقيقيًا، وجلسات تسجيل دخوله، وملفاته، والأدوات الممنوحة له.
يوضح ملف README الأمر بصراحة: إنه «قالب، وليس منتجًا». لا توجد نسخة مستضافة يمكنك التسجيل فيها، ولا يُنشر على هيئة حزمة تبعية. الطريقة الصحيحة لاستخدامه هي استنساخ المستودع، واستبدال حزم المستأجرين النموذجية داخل examples/ بزملائك وقنواتك ومهاراتك، ثم تشغيله بنفسك. لذا، فإن إجابة سؤال «أين أختار النموذج؟» موجودة في ملفات الإعداد، لا في الواجهة.
أربعة متطلبات أساسية لتشغيل OpenBot
يسرد الجدول التالي ما يجب تجهيزه قبل توصيل النموذج. إذا غاب أي منها، فلن تتمكن من التحقق من الإعدادات اللاحقة.
| المتطلب | التفاصيل | ملاحظات |
|---|---|---|
| Docker | لتشغيل PostgreSQL، بما في ذلك pgvector، والبوت المرفق | يشغّل scripts/start.sh خدمات Docker وينفّذ عمليات ترحيل قاعدة البيانات |
| Bun | الإصدار 1.4 أو أحدث | ثبّت الاعتماديات باستخدام bun install |
| CopilotKit Intelligence | مشروع وترخيص، مع توفر خطة مجانية | بيئة التقييم المحلية هي macOS مع Docker Desktop. الترخيص المحلي صالح لمدة 30 يومًا، ويمكن تجديده باستخدام npx copilotkit@latest local renew |
| مفتاح النموذج | مفتاح لنقطة اتصال متوافقة مع OpenAI | يستخدم هذا المقال رمز APIYI، وعنوان base_url هو https://api.apiyi.com/v1 |
من السهل التقليل من أهمية Intelligence. توضح التعليقات في .env.example أن الخادم سيرفض بدء التشغيل إذا غاب عنوان URL الخاص بـ Intelligence، أو عنوان URL الخاص بالبوابة، أو المفتاح. والنص الأصلي يقول: «لا يوجد وضع تشغيل بقدرات محدودة». والسبب أن Intelligence هو المسؤول عن حفظ سلاسل المحادثات الدائمة والذاكرة؛ ومن دونه سيُفقد السياق في كل محادثة. لذلك لا يمكن وصف OpenBot بأنه حل يعمل «دون اتصال بالكامل».
يغيّر OPENAI_BASE_URL إعدادات النشر بالكامل
يوضح ملف README أن «الحزمة لا تتضمن نموذجًا»: فالنموذج لا يأتي مع الحزمة، بل يوفّر المسؤول بيانات الاعتماد، التي تُشفّر وتُحفظ في قاعدة البيانات دون تسجيلها في السجلات. وتحدد متغيرات البيئة على مستوى النشر النموذج المستخدم. وأهمها OPENAI_BASE_URL، الذي يمكن أن يشير، وفق التعريف الرسمي، إلى أي نقطة نهاية تدعم واجهة API نفسها، بما في ذلك بوابات الموردين المتعددين، والخوادم الوكيلة، أو نموذج يعمل على أجهزتك. ويضيف التعليق في .env.example توضيحًا أدق: يمكن استخدام أي نقطة نهاية تدعم /v1/chat/completions.
يسري هذا المتغير على النشر بالكامل، وليس على بوت واحد. وتقرأه ثلاثة مكونات: العميل الذي يستخدمه API server للوكلاء المدمجين، وagent-bot الذي ينشئ عميله بنفسه، وagent-langgraph عند ضبط BOT_PROVIDER=openai. وبحسب المشروع، تكمن فائدة ذلك في تجنب توجيه نصف الطلبات إلى العنوان الجديد وبقاء النصف الآخر على العنوان القديم ضمن النشر نفسه.

ثلاثة تعديلات للاتصال بـ APIYI: ضبط متغيرات بيئة OpenBot خطوة بخطوة
نقاط التكامل بين OpenBot وAPIYI
توفر APIYI واجهة متوافقة مع OpenAI. اضبط base_url على https://api.apiyi.com/v1، وستُرسل الطلبات إلى /v1/chat/completions، بما يتوافق مع متطلبات OPENAI_BASE_URL في OpenBot. وانتبه إلى أن OpenBot يرسل اسم النموذج كما هو؛ وتُرجع نقطة /v1/models في APIYI الاسم المجرد claude-opus-5-5. لذلك، لا تضف البادئة openai/ كما في مثال البوابة الرسمية. فالاسم openai/gpt-5.6-terra في المثال الرسمي مناسب فقط لنقاط النهاية التي تستخدم نطاقًا في أسماء النماذج.
لنبدأ بجدول شامل، ثم ننتقل إلى الخطوات.
| موضع التعديل | القيمة المطلوبة | السبب |
|---|---|---|
OPENAI_API_KEY في .env |
رمز sk-... الذي أنشأته في لوحة تحكم APIYI |
يستخدم الوكيل المدمج والبوتان المرفقان هذا المفتاح افتراضيًا |
OPENAI_BASE_URL في .env |
https://api.apiyi.com/v1 |
توجيه طلبات النموذج في النشر بالكامل إلى نقطة النهاية المتوافقة في APIYI |
BOT_MODEL في .env |
claude-opus-5-5 |
تحديد النموذج الذي سيستخدمه البوت عند تشغيله؛ وإذا تُرك فارغًا، تُستخدم القيمة الموجودة في ملف مواصفات المزود |
default_model في examples/<你的包>/model.yaml |
claude-opus-5-5 |
القيمة الحالية في حزمة المثال هي gpt-5.6-terra، وعدم تغييرها سيؤدي إلى خطأ يفيد بأن النموذج غير موجود |
BOT_RESPONSES_API في .env |
اتركه على false |
يُرجع Claude الخطأ 400 عند استخدام نقطة نهاية Responses في APIYI |
الخطوة الأولى: تجهيز رمز مخصص
- أنشئ مفتاحًا جديدًا في صفحة الرموز لدى APIYI على
api.apiyi.com/token، وحدد له سقفًا للرصيد ومدة صلاحية، واكتب في الغرض منه «تقييم OpenBot على الجهاز المحلي». - أرسل طلبًا من جهازك باستخدام curl إلى
GET https://api.apiyi.com/v1/models، مع ترويسةAuthorization: Bearer sk-....
معيار التحقق: يعود الطلب برمز HTTP 200، ويظهر claude-opus-5-5 في القائمة. اختبرنا هذه الخطوة في 2026-11-02 وحصلنا على 259 نموذجًا، من بينها claude-opus-5-5 وclaude-opus-5-5-thinking.
الهدف من إنشاء رمز منفصل هو فصل استخدام هذا الجهاز عن استخدام بيئة الإنتاج. سيكرر البوت المحاولات والتجارب أثناء إعداد القالب، لذا يمنحك سقف الرصيد حماية إضافية وراحة بال.
الخطوة الثانية: تعديل ثلاثة أسطر في .env
وفقًا لدليل البدء السريع الرسمي، نفّذ أولًا cp .env.example .env وbun install. ثم شغّل الأوامر npx --yes copilotkit@latest login وnpx --yes copilotkit@latest project select وbun scripts/setup-learning.ts بالترتيب، لإضافة مفتاح التشغيل وحاوية Learning إلى .env. بعد ذلك، عدّل الأسطر الثلاثة التالية:
OPENAI_API_KEY=sk-رمز_APIYI_الخاص_بكOPENAI_BASE_URL=https://api.apiyi.com/v1BOT_MODEL=claude-opus-5-5
تحقق أيضًا من أربعة أمور: اترك BOT_PROVIDER على القيمة الافتراضية openai؛ واترك BOT_RESPONSES_API على false؛ وأنشئ KEY_ENCRYPTION_KEY باستخدام openssl rand -base64 32؛ وتذكّر أن AGENT_BOT_MODEL مخصص فقط لـ agent-bot المستخدم لإثبات الفكرة، وقيمته الافتراضية gpt-5.5، وهو مستقل عن BOT_MODEL. إذا كنت تريد تشغيل agent-bot أيضًا، فتحقق من وجود هذا الاسم في /v1/models، أو غيّره إلى النموذج الذي تريد استخدامه.
معيار التحقق: يعرض grep OPENAI_ .env المفتاح والعنوان الصحيحين، وينتهي العنوان بـ /v1 دون شرطة مائلة إضافية أو مسافات. إذا كان الوصول إلى نقطة الاتصال نفسها من داخل الحاوية يتطلب مسارًا مختلفًا، فاستخدم OPENAI_CONTAINER_BASE_URL لتغييره. لكن عنوان APIYI متاح على الإنترنت العام، لذا لن تحتاج عادةً إلى هذا المتغير.
الخطوة الثالثة: تعديل سطر في ملف model.yaml الخاص بحزمة المستأجر
افتح examples/fintech/model.yaml أو حزمة المستأجر التي نسختها. تتضمن الإعدادات الحالية model.provider: openai وmodel.credential_secret_ref: openai-api-key وmodel.default_model: gpt-5.6-terra.
- غيّر
default_modelإلىclaude-opus-5-5. - أبقِ
providerبقيمةopenai. وفقًا للتوثيق الرسمي، لا يقبل هذا الحقل سوىopenaiأوanthropic، لذا اخترopenaiعند استخدام نقطة نهاية APIYI المتوافقة مع OpenAI. - لا تستبدل
credential_secret_refبمفتاح API بنص صريح، فهو يشير إلى بيانات اعتماد مخزّنة بالفعل.
معيار التحقق: بعد تنفيذ bash scripts/start.sh، تنجح فحوصات السلامة واحدًا تلو الآخر، وعند فتح http://localhost:3010 يظهر الزميلان الافتراضيان General Assistant وKnowledge.
هناك نقطة مهمة يجب الانتباه إليها مسبقًا. عند بدء تشغيل الخادم، يتحقق عادةً من OpenAI أو Anthropic مما إذا كان مفتاح API يستطيع استدعاء default_model. وإذا تعذّر ذلك، يعرض model-unavailable أو model-credential-rejected. لكن بمجرد ضبط OPENAI_BASE_URL، يتم تخطي هذا التحقق. لذلك، عند استخدام APIYI، لن يظهر خطأ اسم النموذج أثناء بدء التشغيل، بل عند إرسال الرسالة الأولى. نجاح التشغيل يعني أن الخدمة بدأت فقط، ولا يضمن صحة إعداد النموذج.

حول الإصدارات: الفرق بين v0.2.0 وفرع main
من المهم توضيح هذه النقطة. يتضمن قسم Unreleased في ملف CHANGELOG على فرع main تغييرًا يخص نماذج openai/... في الـBot المدمج: إذا كانت تستخدم قيمة OPENAI_BASE_URL لا تشير إلى OpenAI أو Azure، فستستدعي المسار /chat/completions لنقطة النهاية تلك بدلًا من استخدام Responses API. وبحسب التفسير الرسمي، فإن معظم نقاط النهاية المتوافقة مع OpenAI لا توفر سوى Chat Completions. ويضيف التغيير نفسه المتغير COPILOTKIT_OPENAI_API=responses|chat لفرض اختيار أحد الخيارين.
لم يدخل هذا التغيير بعد في الإصدار الرسمي v0.2.0. إذا كنت تستخدم هذا الإصدار، فقد يظل الـBot المدمج يستدعي Responses عند استخدام عنوان URL أساسي تابع لجهة خارجية. وبالنظر إلى الاختبار العملي أدناه، فمن المرجح أن يكون هذا مصدر خطأ 400. لديك خياران: إما تقييم فرع main مع إدراك أنه لا يزال قيد التطوير، أو انتظار إدراج التغيير في إصدار رسمي قبل البدء بالتكامل.
🚀 بدء سريع: قبل العمل على OpenBot، ننصحك أولًا باختبار
/v1/chat/completionsبشكل مستقل باستخدام رمز APIYI من apiyi.com، مع تضمين تعريف دالة، والتأكد من أنfinish_reasonيعيد القيمةtool_calls. بعد التأكد من سلامة واجهة API، يمكنك حصر استكشاف الأخطاء لاحقًا في إعدادات OpenBot.
ابدأ بالسماح بثلاث أدوات فقط: تقييد صلاحيات OpenBot عند الإعداد
لماذا لا ينبغي تفعيل جميع أدوات OpenBot منذ البداية؟
يقول التوثيق الرسمي عن عدد الأدوات: “A model picks the right tool reliably out of about ten, and unreliably out of thirty.” أي إن النموذج يستطيع اختيار الأداة المناسبة بموثوقية من بين نحو عشر أدوات، لكن اختياره يصبح أقل موثوقية عند بلوغ العدد ثلاثين. ويسجّل الكود المصدري لـ OpenBot ثلاث عشرة أداة للتعامل مع الحاسوب، ومع إضافة أدوات دليل MCP، يسهل تجاوز هذا الحد منذ اليوم الأول.
إذا كان لدى Bot أكثر من اثنتي عشرة أداة، فلن يحصل في كل تشغيل إلا على الأدوات التي تحتاجها المهارة المطابقة للرسالة الحالية. لكن التوثيق الرسمي يوضح أن هذا يقتصر على تضييق نطاق الأدوات المرئية، وأنه «ليس حدًا أمنيًا، ولا يغني عنه أبدًا». أما الحدود الفعلية فتتمثل في ثلاثة عناصر: الصلاحيات الممنوحة (grants) لكل Bot في Admin، وسياسة الإجراءات AGENT_COMPUTER_POLICY، وسجلات التدقيق. انتبه أيضًا إلى أن إعداد بدء التشغيل الافتراضي هو deny: [] مع allow: ["true"]، ما يعني السماح بكل شيء.
قائمة الأدوات الثلاث للبدء
| اسم الأداة | الوظيفة | مرحلة البدء |
|---|---|---|
computer_navigate |
فتح عنوان URL في المتصفح | ✅ السماح |
computer_snapshot |
الحصول على لقطة للصفحة | ✅ السماح |
computer_read_file |
قراءة ملفات مساحة العمل | ✅ السماح |
computer_click / computer_type / computer_key |
النقر والإدخال والضغط على المفاتيح | ⏸ السماح عند الحاجة بعد التحقق |
computer_write_file |
كتابة الملفات | ⏸ السماح عند الحاجة بعد التحقق |
computer_run_command |
تنفيذ أوامر shell | ⛔ الرفض الصريح |
يجب حظر computer_run_command بشكل مستقل. عند تفعيل COMPUTER_SEPARATE_WORKSPACES في Compose، يشغّل كل Bot جلسة shell داخل مجلده الخاص، لكن الوثائق الرسمية تقر بأن «الأوامر لا تزال قادرة على قراءة المجلدات الأخرى». لتحقيق عزل حقيقي، تحتاج إلى computers.mode: sandbox. لا داعي لتحمّل هذه المخاطرة في مرحلة البدء.
كتابة AGENT_COMPUTER_POLICY
السياسة عبارة عن JSON، وتُكتب قواعدها بتعبيرات CEL التي تستطيع قراءة حقول مثل tool.name وpage.host وfile.path. يمكنك البدء بهذه الصيغة:
- أضف السطر التالي إلى ملف
.env:AGENT_COMPUTER_POLICY={"mode":"enforce","deny":["tool.name == 'computer_run_command'"],"allow":["tool.name in ['computer_navigate','computer_snapshot','computer_read_file']"]} - في Admin، امنح General Assistant صلاحية استخدام هذه الأدوات الثلاث فقط.
- أعد تشغيل الخدمة. إذا كانت صيغة JSON غير صحيحة، فسيفشل الخادم في البدء مباشرةً، مما يساعدك على اكتشاف المشكلة.
هناك قاعدتان للتقييم يجدر معرفتهما. أولًا، تُطبّق قواعد deny قبل allow، لذا تظل shell محظورة حتى لو أصبحت قواعد allow أكثر تساهلًا لاحقًا. ثانيًا، يعمل المحرك بمبدأ الإخفاق الآمن (fail closed): إذا كانت السياسة مفقودة أو فارغة، فلن يُسمح بشيء؛ وإذا كُتبت قاعدة deny بشكل خاطئ، يُطبّق الرفض؛ وإذا كُتبت قاعدة allow بشكل خاطئ، فلا يُعدّ ذلك سماحًا. والمبدأ ببساطة هو: ابدأ بأقل قدر من الصلاحيات، ثم وسّعها حسب الحاجة. بعد اجتياز التحقق، أضف النقر أو الإدخال أو كتابة الملفات واحدةً تلو الأخرى، وراجع سجل التدقيق بعد كل إضافة.

اختبار قبول ربط OpenBot بـ APIYI واستكشاف الأخطاء
سيناريو اختبار القبول: فتح صفحة وقراءة ملف ومراجعة التدقيق
وفقًا للبنية الرسمية، تمر كل استدعاءات الأدوات بالترتيب التالي: تحديد الهدف، وتقييمه وفق السياسة الحالية، وكتابة سجل تدقيق، ثم تنفيذ الاستدعاء على الجهاز. وإذا فشل الإجراء بعد إرساله، يُكتب سجل تدقيق ثانٍ. لا يتخذ الجهاز نفسه قرارات السياسة؛ إذ تقع هذه المسؤولية على بوابة الخادم. لذلك يجب أن يتحقق اختبار القبول من أمرين معًا: «إمكانية التنفيذ» و«تسجيل العملية»:
- ضع ملفًا باسم
notes.mdفي/workspace، واكتب فيه أي سطرين. - اطلب من General Assistant فتح صفحة ويب عامة وإخبارك بعنوانها، ثم قراءة محتوى
/workspace/notes.md. - اطلب منه بعد ذلك تشغيل
ls /. من المفترض رفض هذا الطلب، مع توضيح القاعدة التي حظرته في الرد. - افتح صفحة Audit وتحقق من وجود سجلات تسمح بعمليات navigate وsnapshot وread_file، وسجل يرفض عملية run_command. إذا أردت التصدير، يمكنك استدعاء
GET /api/admin/audit-events?format=csv، بحد أقصى 5,000 سجل في كل مرة.
أما قابلية استخدام النموذج، فقد اختبرناها عمليًا على جانب APIYI فقط. في 2026-11-02، استدعينا /v1/chat/completions باستخدام claude-opus-5-5 مع تعريف دالة read_file. أعاد الطلب استجابة HTTP 200 خلال 4.06 ثانية، وكانت قيمة finish_reason هي tool_calls، والمعاملات هي {"path":"/workspace/notes.md"}، وبلغ الاستخدام 393 رمزًا للموجه و55 رمزًا للاستجابة. بعد إضافة stream: true، أعاد الطلب أيضًا استجابة 200، وظهر اسم الدالة ومعاملاتها تدريجيًا في أجزاء SSE، وانتهى البث بـ data: [DONE]. وهذا يوضح أن نقطة نهاية chat في APIYI تستطيع إرجاع استدعاءات أدوات Claude بصيغة OpenAI، وهو ما يحتاجه الوكيل الذي يقرر فيه النموذج الدالة التي سيستدعيها فقط، دون أن يتولى تنفيذها.
جدول استكشاف الأخطاء: خمسة أنواع شائعة من المشكلات
| المشكلة | السبب الأكثر احتمالًا | الحل |
|---|---|---|
400 field messages is required |
وصل الطلب إلى نقطة النهاية Responses. في اختبارنا، أعاد استدعاء claude-opus-5-5 عبر /v1/responses لدى APIYI هذا الخطأ |
تأكد من ضبط BOT_RESPONSES_API=false؛ إذا كنت تستخدم الإصدار v0.2.0، فقد يظل البوت المدمج يستدعي Responses. يمكنك استخدام فرع main وضبط COPILOTKIT_OPENAI_API=chat (لا يزال غير مُصدر) |
| 401 | مفتاح API غير صحيح أو منتهي الصلاحية، أو استُنفد الحد الأقصى لرصيد الرمز | ارجع إلى صفحة الرموز في APIYI وتحقق من الصلاحية والرصيد، ثم أعد اختبار /v1/models باستخدام curl |
| النموذج غير موجود | لا يزال default_model مضبوطًا على gpt-5.6-terra، أو أُضيفت openai/ قبل الاسم |
اكتب الاسم المجرد claude-opus-5-5 في الموضعين؛ وبما أن فحص بدء التشغيل قد تم تجاوزه، عليك إرسال رسالة للتحقق |
| لم تُستدعَ الأداة | النموذج لا يدعم استدعاء الأدوات، أو لم يُمنح الإذن، أو حجبت السياسة الأداة | وفقًا للتوثيق الرسمي، لا يستطيع البوت التحكم في الكمبيوتر دون استدعاء الأدوات؛ تحقق أولًا من وجود سجلات رفض في سجل التدقيق |
| رُفض بدء التشغيل | إعدادات Intelligence ناقصة، أو توجد أخطاء في ملف JSON للسياسة، أو أُضيف مزوّد إلى مواصفات المزوّد دون تحديث PROVIDER_IDS |
استكمل إعدادات Intelligence الثلاثة؛ وتحقق من JSON؛ لا يتطلب الاتصال بـ APIYI إضافة مزوّد جديد، لذا أبقِ openai كما هو |
💡 نصيحة لاستكشاف الأخطاء: عند ظهور خطأ، أرسل الطلب نفسه أولًا مباشرةً إلى
/v1/chat/completionsلدى APIYI على apiyi.com. إذا نجح الطلب المباشر وفشل في OpenBot، فالمشكلة في إعدادات OpenBot أو إصداره؛ وإذا فشل الطلب المباشر أيضًا، فتحقق من الرمز واسم النموذج. بهذه الطريقة يمكنك تضييق نطاق المشكلة إلى النصف أولًا.
مرجع تكلفة تشغيل Claude مع OpenBot
تستخدم APIYI نظام الدفع حسب الاستخدام، دون رسوم شهرية ثابتة. فيما يلي أسعار claude-opus-5-5 كما ظهرت في 2026-11-02، وينطبق السعر نفسه على claude-opus-5-5-thinking:
| بند الفوترة | سعر الوحدة (لكل مليون رمز) |
|---|---|
| الإدخال | $4 |
| الإخراج | $20 |
| قراءة ذاكرة التخزين المؤقت | $0.2 |
تُعتمد قائمة النماذج على المنصة مرجعًا للنماذج وأسعارها. في طلب الاختبار الذي أجريناه باستخدام الأدوات، بلغ عدد رموز الإدخال 393 ورموز الإخراج 55، لذا كانت تكلفة الطلب الواحد ضئيلة. لكن عندما يبدأ البوت في التصفح وقراءة الملفات على مدار عدة جولات، ينمو السياق بسرعة؛ لذلك يُنصح بتحديد سقف لرصيد الرمز أيضًا.
الأسئلة الشائعة
س1: هل يتطلب ربط OpenBot بـ APIYI تعديل الشفرة المصدرية؟
لا. يكفي تعديل الأسطر الثلاثة `OPENAI_API_KEY` و`OPENAI_BASE_URL` و`BOT_MODEL` في ملف `.env`، ثم تغيير `default_model` في ملف `model.yaml` الخاص بحزمة المستأجر. لا يلزم تعديل مواصفات المزوّد و`PROVIDER_IDS` إلا عند إضافة نوع جديد تمامًا من المزوّدين، وهذا لا ينطبق على APIYI لأنها تستخدم واجهة متوافقة مع OpenAI.
س2: لماذا لا نستخدم صيغة ببادئة مثل openai/claude-opus-5-5؟
يرسل OpenBot اسم النموذج كما هو، لذا يجب استخدام الصيغة التي تنشرها نقطة النهاية نفسها. تسرد `/v1/models` لدى APIYI على apiyi.com الاسم المجرد `claude-opus-5-5`، وإضافة بادئة تمنع العثور على النموذج.
س3: هل يمكن تفعيل BOT_RESPONSES_API لاستخدام Responses API؟
لا تفعّله عند استخدام Claude. في اختبارنا، أعاد استدعاء `/v1/responses` لدى APIYI باستخدام `claude-opus-5-5` الخطأ 400 `field messages is required`، بينما أعاد استخدام `gpt-5.4-mini` الرمز 200. وتوصي الوثائق الرسمية أيضًا بعدم تفعيل هذا الخيار إلا إذا كانت نقطة النهاية تدعم Responses API فعليًا.
س4: هل شغّلتم منظومة OpenBot كاملة بنجاح؟
لا. تحققنا فقط من جانب APIYI: قائمة النماذج، واستدعاء المحادثة باستخدام الأدوات، والإخراج المتدفق، والخطأ الذي أعادته نقطة نهاية Responses. لم نشغّل منظومة OpenBot كاملةً، بما فيها Docker ومشروع Intelligence، على الجهاز المستخدم لكتابة المقال. وتستند الأجزاء المتعلقة بسلوك OpenBot الداخلي إلى المستودع والوثائق الرسمية.
س5: كيف أمنع البوت من الإفراط في استخدام مفتاح يعمل بنظام الدفع حسب الاستخدام؟
حدّد سقفًا للرصيد ومدة صلاحية لهذا المفتاح في صفحة الرموز لدى APIYI على apiyi.com، وأدره بشكل منفصل عن مفتاح الإنتاج. وباستخدام استراتيجية الأدوات الثلاث المذكورة في هذا المقال، يمكنك وضع حدود لما يستطيع البوت فعله وإنفاقه.
الخلاصة
أهم النقاط لربط OpenBot بـ APIYI
- إعداد النموذج ليس في الواجهة: بل في ثلاثة أسطر بملف
.envوسطر واحد بملفmodel.yamlضمن حزمة المستأجر. - يؤثر base_url في النشر بالكامل: تغيير
OPENAI_BASE_URLيحوّل أنواع الـ Bot الثلاثة معًا. - نجاح التشغيل لا يعني أن النموذج صحيح: يُتخطّى التحقق بعد الاتصال بالبوابة، ولا يمكن التأكد إلا بإرسال الرسالة الأولى.
- تحقّق من الإصدار: التغيير إلى
/chat/completionsما زال ضمن قسم Unreleased في فرع main، ولم يصل بعد إلى v0.2.0. - ابدأ بثلاث أدوات فقط: تأتي قواعد deny قبل allow، ويُرفض shell بشكل منفصل. ابدأ بصلاحيات محدودة ثم وسّعها تدريجيًا.
- ابدأ مع APIYI بالدفع حسب الاستخدام: استخدم رمزًا مخصصًا وحدًا أقصى للرصيد، واكتب
claude-opus-5-5باسمه المجرد.
يصعب العثور على إعداد النموذج في OpenBot لأنه غير موجود أصلًا في الواجهة. اضبط هذه الأمور الثلاثة: الأسطر الثلاثة في .env، والسطر الواحد في model.yaml، وأبقِ Responses مغلقًا. ثم ابدأ بسياسة تسمح بثلاث أدوات فقط، وستتضح لك سلسلة الإعداد كاملة. وعند التحقق من النتيجة، تأكد من ثلاثة أمور فقط: إمكانية فتح صفحة الويب، وقراءة الملفات، وتسجيل الإجراءات المرفوضة في سجل التدقيق.
ننصحك أولًا باستخدام رمز مخصص من APIYI عبر apiyi.com لاختبار المحادثة واستدعاء الأدوات بشكل مستقل، ثم ربطهما بـ OpenBot. بهذه الطريقة، إذا ظهرت مشكلة، يمكنك تحديد مصدرها بسرعة.
📚 المراجع
- مستودع CopilotKit/OpenBot: ملف README والمتطلبات ودليل البدء السريع
- الرابط:
github.com/CopilotKit/OpenBot -
التفاصيل: الغرض من القالب، والمتطلبات المسبقة، ومعلومات الإصدار v0.2.0
-
وثائق إعداد OpenBot: متغيرات بيئة النموذج، وملف
model.yaml، والتحقق عند بدء التشغيل - الرابط:
github.com/CopilotKit/OpenBot/blob/main/docs/configuration.md -
التفاصيل: التعريفات الأصلية لـ
OPENAI_BASE_URLوBOT_MODELوBOT_RESPONSES_API -
وثائق بنية OpenBot: البوابة والسياسات والتدقيق
- الرابط:
github.com/CopilotKit/OpenBot/blob/main/docs/architecture.md -
التفاصيل: ترتيب استدعاء الأدوات وواجهة API لتصدير سجلات التدقيق
-
مركز وثائق APIYI: وضع التوافق مع OpenAI، واستدعاء الدوال، وقائمة النماذج
- الرابط:
docs.apiyi.com - التفاصيل: صيغة
base_url، وتنسيقtools، وسعرclaude-opus-5-5
الكاتب: فريق APIYI التقني
للتواصل التقني: يمكنكم التواصل معنا عبر موقع APIYI الرسمي apiyi.com، والاطلاع على المزيد من أدلة التكامل في مركز الوثائق docs.apiyi.com
