openclaw acp ببروتوكول ACP عبر stdio لبيئات التطوير المتكاملة، ويمرّر المطالبات إلى Gateway عبر WebSocket، مع إبقاء جلسات ACP مرتبطة بمفاتيح جلسات Gateway. وهو جسر ACP مدعوم بـ Gateway، وليس بيئة تشغيل محرر أصلية متكاملة لـ ACP: إذ يركز على توجيه الجلسات، وتسليم المطالبات، وبث التحديثات.
إذا أردت أن يتواصل عميل MCP خارجي مباشرةً مع محادثات قنوات OpenClaw بدلًا من استضافة جلسة بيئة ACP، فاستخدم openclaw mcp serve بدلًا منه.
ما ليس عليه هذا الأمر
يعنيopenclaw acp أن OpenClaw يعمل خادم ACP: تتصل بيئة تطوير متكاملة أو عميل ACP بـ OpenClaw، ويمرّر OpenClaw ذلك العمل إلى جلسة Gateway.
يختلف هذا عن وكلاء ACP، حيث يشغّل OpenClaw بيئة خارجية مثل Codex أو Claude Code من خلال acpx.
قاعدة سريعة:
- إذا كان المحرر/العميل يريد التواصل مع OpenClaw عبر ACP: فاستخدم
openclaw acp - إذا كان ينبغي لـ OpenClaw تشغيل Codex/Claude/Gemini كبيئة ACP: فاستخدم
/acp spawnووكلاء ACP
مصفوفة التوافق
القيود المعروفة
- يعيد
loadSessionتشغيل سجل أحداث ACP الكامل فقط للجلسات التي أنشأها الجسر. تستخدم الجلسات الأقدم أو التي لا تحتوي على سجل نسخة احتياطية من النص ولا تعيد بناء استدعاءات الأدوات التاريخية أو إشعارات النظام. - إذا شاركت عدة عملاء ACP مفتاح جلسة Gateway نفسه، فإن توجيه الأحداث والإلغاء يكون بأفضل جهد بدلًا من العزل الصارم لكل عميل. فضّل جلسات
acp-bridge:<uuid>المعزولة الافتراضية عندما تحتاج إلى أدوار محلية نظيفة للمحرر. - تُترجم حالات توقف Gateway إلى أسباب توقف ACP، لكن هذا الربط أقل تعبيرًا من بيئة تشغيل أصلية بالكامل لـ ACP.
- تعرض عناصر التحكم في الجلسة مجموعة مركزة من مقابض Gateway: مستوى التفكير، وإسهاب الأدوات، والاستدلال، وتفاصيل الاستخدام، والإجراءات ذات الصلاحيات المرتفعة. لا يُعرض اختيار النموذج وعناصر التحكم في مضيف التنفيذ كخيارات إعداد ACP.
- يُشتق
session_info_updateوusage_updateمن لقطات جلسات Gateway، وليس من محاسبة بيئة تشغيل أصلية وحية لـ ACP. ويكون الاستخدام تقريبيًا، ولا يتضمن بيانات التكلفة، ولا يُصدر إلا عندما يعلّم Gateway إجمالي بيانات الرموز بأنها حديثة. - بيانات متابعة الأدوات بأفضل جهد: يعرض الجسر مسارات الملفات التي تظهر في وسائط/نتائج الأدوات المعروفة، لكنه لا يصدر طرفيات ACP أو فروقات ملفات منظّمة.
- يقتصر تمرير موافقة التنفيذ على دور مطالبة ACP النشط؛ وتُتجاهل الموافقات من جلسات Gateway الأخرى.
الاستخدام
عميل ACP (تصحيح الأخطاء)
استخدم عميل ACP المضمّن لإجراء فحص سلامة للجسر دون بيئة تطوير متكاملة. فهو يشغّل جسر ACP ويتيح لك كتابة المطالبات تفاعليًا.- تعتمد الموافقة التلقائية على قائمة سماح، ولا تنطبق إلا على معرّفات أدوات النواة الموثوقة.
- تقتصر الموافقة التلقائية على
readعلى دليل العمل الحالي (--cwdعند تعيينه). - لا يوافق ACP تلقائيًا إلا على فئات ضيقة للقراءة فقط: استدعاءات
readالمحددة النطاق ضمن دليل العمل الحالي النشط، بالإضافة إلى أدوات البحث للقراءة فقط (search، وweb_search، وmemory_search). وتتطلب الأدوات غير المعروفة/غير الأساسية، وعمليات القراءة خارج النطاق، والأدوات القادرة على التنفيذ، وأدوات مستوى التحكم، والأدوات المعدِّلة، والتدفقات التفاعلية دائمًا موافقة صريحة على المطالبة. - تُعامل
toolCall.kindالتي يوفرها الخادم كبيانات تعريف غير موثوقة، وليس كمصدر للتفويض. - سياسة جسر ACP هذه منفصلة عن أذونات بيئة ACPX. إذا شغّلت OpenClaw من خلال الواجهة الخلفية
acpx، فإنplugins.entries.acpx.config.permissionMode=approve-allهو مفتاح الطوارئ “yolo” لجلسة البيئة تلك.
اختبار الدخان للبروتوكول
لتصحيح الأخطاء على مستوى البروتوكول، شغّل Gateway بحالة معزولة وتحكّم فيopenclaw acp عبر stdio باستخدام عميل ACP JSON-RPC. غطِّ initialize، وsession/new، وsession/list مع cwd مطلق، وsession/resume، وsession/close، والإغلاق المكرر، والاستئناف المفقود.
يجب أن يتضمن الإثبات إمكانات دورة الحياة المُعلَن عنها، وصف جلسة مدعومًا بـ Gateway، وإشعارات التحديث، وسجل sessions.list الخاص بـ Gateway:
openclaw gateway call sessions.list بوصفه إثبات ACP الوحيد. فقد يطلب مسار CLI هذا ترقية نطاق المشغّل لرمز حديث؛ وتُثبت صحة جسر ACP بواسطة إطارات ACP عبر stdio إضافةً إلى سجل sessions.list الخاص بـ Gateway.
كيفية استخدام هذا
استخدم ACP عندما تتحدث بيئة تطوير متكاملة (أو عميل آخر) ببروتوكول عميل الوكيل وتريدها أن تقود جلسة Gateway خاصة بـ OpenClaw.- تأكد من تشغيل Gateway (محليًا أو عن بُعد).
- اضبط هدف Gateway (عبر الإعداد أو العلامات).
- وجّه بيئة التطوير المتكاملة لتشغيل
openclaw acpعبر stdio.
اختيار الوكلاء
لا يختار ACP الوكلاء مباشرةً. بل يوجّه حسب مفتاح جلسة Gateway. استخدم مفاتيح جلسات محددة النطاق بالوكيل لاستهداف وكيل معين:acp-bridge:<uuid> معزولة ما لم تتجاوز المفتاح أو التسمية.
لا تُدعم إعدادات mcpServers الخاصة بكل جلسة في وضع الجسر. إذا أرسلها عميل ACP أثناء newSession أو loadSession، فسيُرجع الجسر خطأً واضحًا بدلًا من تجاهلها بصمت.
إذا أردت أن تتمكن الجلسات المدعومة بـ ACPX من رؤية أدوات Plugins في OpenClaw أو أدوات مضمّنة محددة مثل cron، ففعّل جسور ACPX MCP على جانب Gateway بدلًا من محاولة تمرير mcpServers لكل جلسة. راجع وكلاء ACP وجسر MCP لأدوات OpenClaw.
الاستخدام من acpx (Codex وClaude وعملاء ACP الآخرون)
إذا أردت أن يتواصل وكيل برمجة مثل Codex أو Claude Code مع روبوت OpenClaw لديك عبر ACP، فاستخدم acpx مع هدفه المضمّن openclaw.
المسار المعتاد:
- شغّل Gateway وتأكد من إمكانية وصول جسر ACP إليه.
- وجّه
acpx openclawإلىopenclaw acp. - حدّد مفتاح جلسة OpenClaw الذي تريد أن يستخدمه وكيل البرمجة.
acpx openclaw في كل مرة Gateway ومفتاح جلسة محددين، فتجاوز أمر وكيل openclaw في ~/.acpx/config.json:
إعداد محرر Zed
أضف وكيل ACP مخصصًا في~/.config/zed/settings.json (أو استخدم واجهة Settings في Zed):
ربط الجلسات
افتراضيًا، تحصل جلسات جسر ACP على مفتاح جلسة Gateway معزول ذي بادئةacp-bridge:. جلسات الجسر هذه التي تستخدم النموذج العادي اصطناعية وقابلة للتخلص منها: فهي تخضع لتنقية الإدخالات القديمة، ولا تُعامل كأسطح محادثات بشرية محمية. لإعادة استخدام جلسة معروفة، مرّر مفتاح جلسة أو تسمية:
--session <key>: استخدام مفتاح جلسة Gateway محدد.--session-label <label>: العثور على جلسة موجودة حسب التسمية.--reset-session: إنشاء معرّف جلسة جديد لذلك المفتاح (المفتاح نفسه، وسجل محادثة جديد).
الخيارات
--url <url>: عنوان WebSocket الخاص بـ Gateway (الإعداد الافتراضي هوgateway.remote.urlعند ضبطه).--token <token>: رمز مصادقة Gateway.--token-file <path>: قراءة رمز مصادقة Gateway من ملف.--password <password>: كلمة مرور مصادقة Gateway.--password-file <path>: قراءة كلمة مرور مصادقة Gateway من ملف.--session <key>: مفتاح الجلسة الافتراضي.--session-label <label>: تسمية الجلسة الافتراضية المطلوب العثور عليها.--require-existing: الإخفاق إذا لم يكن مفتاح الجلسة أو تسميتها موجودًا.--reset-session: إعادة تعيين مفتاح الجلسة قبل الاستخدام الأول.--no-prefix-cwd: عدم إضافة دليل العمل كبادئة للمطالبات.--provenance <off|meta|meta+receipt>: تضمين بيانات منشأ ACP الوصفية أو الإيصالات.--verbose, -v: تسجيل تفصيلي في stderr.
- قد يظهر
--tokenو--passwordفي قوائم العمليات المحلية على بعض الأنظمة. يُفضّل استخدام--token-file/--password-fileأو متغيرات البيئة (OPENCLAW_GATEWAY_TOKENوOPENCLAW_GATEWAY_PASSWORD). - يتبع تحديد مصادقة Gateway العقد المشترك الذي يستخدمه عملاء Gateway الآخرون:
- الوضع المحلي: متغيرات البيئة (
OPENCLAW_GATEWAY_*) ثمgateway.auth.*، مع الرجوع إلىgateway.remote.*فقط عندما لا تكونgateway.auth.*مضبوطة (يفشل SecretRef محلي مضبوط لكن يتعذر حله على نحو مغلق بدلًا من الرجوع بصمت) - الوضع البعيد:
gateway.remote.*مع الرجوع إلى متغيرات البيئة/الإعدادات وفق قواعد أولوية الوضع البعيد - يمكن تجاوز
--urlبأمان، وهو لا يعيد استخدام بيانات اعتماد ضمنية من الإعدادات/متغيرات البيئة؛ مرّر--token/--passwordصراحةً (أو الصيغ التي تستخدم ملفات)
- الوضع المحلي: متغيرات البيئة (
خيارات acp client
--cwd <dir>: دليل العمل لجلسة ACP.--server <command>: أمر خادم ACP (الافتراضي:openclaw).--server-args <args...>: وسيطات إضافية تُمرّر إلى خادم ACP.--server-verbose: تمكين التسجيل التفصيلي على خادم ACP.--verbose, -v: تسجيل تفصيلي للعميل.- يضبط
openclaw acp clientالمتغيرOPENCLAW_SHELL=acp-clientعلى عملية الجسر المُنشأة، ويمكن استخدامه لقواعد الصدفة/الملف الشخصي الخاصة بالسياق.