openclaw acp هو جسر ACP مدعوم بـ Gateway، وليس runtime محرر أصليًا كاملًا
لـ ACP. يركّز على توجيه الجلسات، وتسليم المطالبات، وتحديثات البث الأساسية.
إذا كنت تريد أن يتحدث عميل MCP خارجي مباشرةً إلى محادثات قنوات OpenClaw
بدلًا من استضافة جلسة harness لـ ACP، فاستخدم
openclaw mcp serve بدلًا من ذلك.
ما ليس عليه هذا
غالبًا ما يتم الخلط بين هذه الصفحة وبين جلسات ACP harness. يعنيopenclaw acp:
- يعمل OpenClaw كخادم ACP
- يتصل IDE أو عميل ACP بـ OpenClaw
- يمرّر OpenClaw ذلك العمل إلى جلسة Gateway
acpx.
قاعدة سريعة:
- يريد المحرر/العميل التحدث بـ ACP إلى OpenClaw: استخدم
openclaw acp - يجب أن يشغّل OpenClaw Codex/Claude/Gemini كـ ACP harness: استخدم
/acp spawnوACP Agents
مصفوفة التوافق
| منطقة ACP | الحالة | ملاحظات |
|---|---|---|
initialize, newSession, prompt, cancel | منفّذ | تدفق الجسر الأساسي عبر stdio إلى دردشة/إرسال Gateway + الإجهاض. |
listSessions, أوامر slash | منفّذ | تعمل قائمة الجلسات مقابل حالة جلسات Gateway مع ترقيم صفحات محدود بالمؤشر وتصفية cwd عندما تحمل صفوف جلسات Gateway بيانات وصفية لمساحة العمل؛ ويتم الإعلان عن الأوامر عبر available_commands_update. |
| بيانات وصفية لسلالة الجلسة | منفّذ | تتضمن قوائم الجلسات ولقطات معلومات الجلسات سلالة الأصل والفرع في OpenClaw ضمن _meta حتى يتمكن عملاء ACP من عرض مخططات الوكلاء الفرعيين دون قنوات جانبية خاصة بـ Gateway. |
resumeSession, closeSession | منفّذ | يعيد الاستئناف ربط جلسة ACP بجلسة Gateway موجودة دون إعادة تشغيل السجل. ويُلغي الإغلاق عمل الجسر النشط، ويحسم المطالبات المعلّقة كملغاة، ويحرر حالة جلسة الجسر. |
loadSession | جزئي | يعيد ربط جلسة ACP بمفتاح جلسة Gateway ويعيد تشغيل سجل أحداث ACP للجلسات المنشأة عبر الجسر. تعود الجلسات الأقدم/التي لا تحتوي على سجل إلى نص المستخدم/المساعد المخزّن. |
محتوى المطالبة (text، وresource مضمّن، والصور) | جزئي | يتم تسطيح النصوص/الموارد إلى إدخال الدردشة؛ وتصبح الصور مرفقات Gateway. |
| أوضاع الجلسة | جزئي | يتم دعم session/set_mode ويعرض الجسر عناصر تحكم أولية مدعومة بـ Gateway للجلسة لمستوى التفكير، وإسهاب الأدوات، والاستدلال، وتفاصيل الاستخدام، والإجراءات المرتفعة. لا تزال أسطح الأوضاع/الإعدادات الأوسع الأصلية لـ ACP خارج النطاق. |
| معلومات الجلسة وتحديثات الاستخدام | جزئي | يصدر الجسر إشعارات session_info_update وusage_update بأفضل جهد من لقطات جلسات Gateway المخزنة مؤقتًا. الاستخدام تقريبي ولا يُرسل إلا عندما تُوسم إجماليات رموز Gateway بأنها حديثة. |
| بث الأدوات | جزئي | تتضمن أحداث tool_call / tool_call_update إدخال/إخراجًا خامًا، ومحتوى نصيًا، ومواقع ملفات بأفضل جهد عندما تعرض وسيطات/نتائج أدوات Gateway ذلك. لا تزال الطرفيات المضمّنة والمخرجات الأصلية للفرق الأكثر ثراءً غير مكشوفة. |
| موافقات exec | جزئي | يتم ترحيل مطالبات موافقة exec من Gateway أثناء أدوار مطالبة ACP النشطة إلى عميل ACP باستخدام session/request_permission. |
خوادم MCP لكل جلسة (mcpServers) | غير مدعوم | يرفض وضع الجسر طلبات خادم MCP لكل جلسة. اضبط MCP على OpenClaw gateway أو الوكيل بدلًا من ذلك. |
طرق نظام ملفات العميل (fs/read_text_file, fs/write_text_file) | غير مدعوم | لا يستدعي الجسر طرق نظام ملفات عميل ACP. |
طرق طرفية العميل (terminal/*) | غير مدعوم | لا ينشئ الجسر طرفيات عميل ACP ولا يبث معرّفات الطرفيات عبر استدعاءات الأدوات. |
| خطط الجلسة / بث التفكير | غير مدعوم | يصدر الجسر حاليًا نص المخرجات وحالة الأدوات، وليس تحديثات خطة ACP أو التفكير. |
القيود المعروفة
- يمكن لـ
loadSessionإعادة تشغيل سجل أحداث ACP الكامل فقط للجلسات المنشأة عبر الجسر. لا تزال الجلسات الأقدم/التي لا تحتوي على سجل تستخدم بديل النص ولا تعيد بناء استدعاءات الأدوات التاريخية أو إشعارات النظام. - إذا شارك عدة عملاء ACP مفتاح جلسة Gateway نفسه، يكون توجيه الأحداث والإلغاء
بأفضل جهد بدلًا من أن يكون معزولًا بدقة لكل عميل. فضّل الجلسات المعزولة
الافتراضية
acp-bridge:<uuid>عندما تحتاج إلى أدوار محلية نظيفة للمحرر. - تُترجم حالات إيقاف Gateway إلى أسباب إيقاف ACP، لكن هذا الربط أقل تعبيرًا من runtime أصلي كامل لـ ACP.
- تعرض عناصر التحكم الأولية للجلسة حاليًا مجموعة مركزة من مقابض Gateway: مستوى التفكير، وإسهاب الأدوات، والاستدلال، وتفاصيل الاستخدام، والإجراءات المرتفعة. لم تُعرض بعد عناصر اختيار النموذج والتحكم بمضيف exec كخيارات إعداد ACP.
- يتم اشتقاق
session_info_updateوusage_updateمن لقطات جلسات Gateway، وليس من محاسبة runtime أصلية مباشرة لـ ACP. الاستخدام تقريبي، ولا يحمل بيانات تكلفة، ولا يصدر إلا عندما يوسم Gateway بيانات إجمالي الرموز بأنها حديثة. - بيانات متابعة الأدوات بأفضل جهد. يمكن للجسر عرض مسارات الملفات التي تظهر في وسيطات/نتائج الأدوات المعروفة، لكنه لا يصدر بعد طرفيات ACP أو فروق ملفات منظمة.
- يقتصر ترحيل موافقة exec على دور مطالبة ACP النشط؛ ويتم تجاهل الموافقات من جلسات Gateway الأخرى.
الاستخدام
عميل ACP (تصحيح الأخطاء)
استخدم عميل ACP المضمّن للتحقق السريع من سلامة الجسر دون IDE. يشغّل جسر ACP ويتيح لك كتابة المطالبات تفاعليًا.- الموافقة التلقائية قائمة على قائمة سماح ولا تنطبق إلا على معرّفات أدوات النواة الموثوقة.
- تقتصر الموافقة التلقائية على
readعلى دليل العمل الحالي (--cwdعند تعيينه). - لا يوافق ACP تلقائيًا إلا على فئات ضيقة للقراءة فقط: استدعاءات
readالمحددة النطاق ضمن cwd النشط، إضافةً إلى أدوات البحث للقراءة فقط (search,web_search,memory_search). تتطلب الأدوات غير المعروفة/غير الأساسية، وعمليات القراءة خارج النطاق، والأدوات القادرة على exec، وأدوات مستوى التحكم، والأدوات المعدِّلة، والتدفقات التفاعلية دائمًا موافقة صريحة على المطالبة. - تُعامل
toolCall.kindالمقدمة من الخادم كبيانات وصفية غير موثوقة (وليست مصدر تفويض). - سياسة جسر ACP هذه منفصلة عن أذونات ACPX harness. إذا شغّلت OpenClaw عبر خلفية
acpx، فإنplugins.entries.acpx.config.permissionMode=approve-allهو مفتاح “yolo” الطارئ لتلك الجلسة من harness.
اختبار smoke للبروتوكول
لتصحيح الأخطاء على مستوى البروتوكول، ابدأ Gateway بحالة معزولة وقُدopenclaw acp عبر stdio باستخدام عميل ACP JSON-RPC. غطِّ initialize،
وsession/new، وsession/list مع cwd مطلق، وsession/resume،
وsession/close، والإغلاق المكرر، والاستئناف المفقود.
يجب أن يتضمن الإثبات قدرات دورة الحياة المعلنة، وصف جلسة مدعومًا بـ Gateway،
وإشعارات التحديث، وسجل Gateway sessions.list:
openclaw gateway call sessions.list كإثبات ACP الوحيد. قد
يطلب مسار CLI هذا ترقية نطاق مشغّل لرمز حديث؛ يتم إثبات صحة جسر ACP عبر
إطارات ACP stdio بالإضافة إلى سجل Gateway sessions.list.
كيفية استخدام هذا
استخدم ACP عندما يتحدث IDE (أو عميل آخر) ببروتوكول Agent Client Protocol وتريد منه قيادة جلسة OpenClaw Gateway.- تأكد من أن Gateway يعمل (محليًا أو عن بُعد).
- اضبط هدف Gateway (الإعدادات أو الأعلام).
- وجّه IDE لتشغيل
openclaw acpعبر stdio.
اختيار الوكلاء
لا يختار ACP الوكلاء مباشرةً. إنه يوجّه حسب مفتاح جلسة Gateway. استخدم مفاتيح جلسات محددة بنطاق الوكيل لاستهداف وكيل معيّن:acp-bridge:<uuid> معزولة ما لم تتجاوز
المفتاح أو التسمية.
لا تُدعم mcpServers الخاصة بكل جلسة في وضع الجسر. إذا أرسلها عميل ACP
أثناء newSession أو loadSession، فسيعيد الجسر خطأ واضحا بدلا من تجاهلها
بصمت.
إذا أردت أن ترى الجلسات المدعومة بـ ACPX أدوات Plugin الخاصة بـ 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 (أو استخدم واجهة إعدادات Zed):
ربط الجلسات
افتراضيا، تحصل جلسات جسر ACP على مفتاح جلسة Gateway معزول ببادئةacp-bridge:. جلسات الجسر ذات النموذج العادي هذه اصطناعية وتخضع لتنظيف
الإدخالات القديمة وحدود عدد الإدخالات. لإعادة استخدام جلسة معروفة، مرر مفتاح
جلسة أو تسمية:
--session <key>: استخدم مفتاح جلسة Gateway محددا.--session-label <label>: حل جلسة موجودة بواسطة التسمية.--reset-session: أنشئ معرّف جلسة جديدا لذلك المفتاح (المفتاح نفسه، وسجل محادثة جديد).
الخيارات
--url <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 الآخرون:
- الوضع المحلي: env (
OPENCLAW_GATEWAY_*) ->gateway.auth.*-> الرجوع إلىgateway.remote.*فقط عندما لا يكونgateway.auth.*معيّنا (تفشل SecretRefs المحلية المضبوطة لكن غير المحلولة بإغلاق آمن) - الوضع البعيد:
gateway.remote.*مع رجوع env/config حسب قواعد أسبقية البعيد --urlآمن للتجاوز ولا يعيد استخدام بيانات اعتماد config/env الضمنية؛ مرر--token/--passwordصريحين (أو بدائل الملفات)
- الوضع المحلي: env (
- تتلقى العمليات الفرعية لخلفية تشغيل ACP
OPENCLAW_SHELL=acp، ويمكن استخدام ذلك لقواعد shell/profile الخاصة بالسياق. - يعيّن
openclaw acp clientالقيمةOPENCLAW_SHELL=acp-clientعلى عملية الجسر التي يتم إنشاؤها.
خيارات acp client
--cwd <dir>: دليل العمل لجلسة ACP.--server <command>: أمر خادم ACP (الافتراضي:openclaw).--server-args <args...>: وسائط إضافية تُمرر إلى خادم ACP.--server-verbose: تمكين التسجيل المفصل على خادم ACP.--verbose, -v: تسجيل مفصل للعميل.