chore(i18n): refresh ar translations
This commit is contained in:
parent
9b1cf0d758
commit
64b9245cf1
File diff suppressed because it is too large
Load Diff
@ -1,51 +1,57 @@
|
||||
---
|
||||
read_when:
|
||||
- أنت تغيّر وقت تشغيل الوكيل المضمّن أو سجل الـ harness
|
||||
- أنت تسجّل agent harness من plugin مضمّنة أو موثوقة
|
||||
- أنت بحاجة إلى فهم كيفية ارتباط plugin Codex بموفري النماذج
|
||||
- أنت تغيّر وقت تشغيل الوكيل المضمّن أو سجل Harness الخاص به
|
||||
- أنت تسجّل Harness وكيل من مكوّن إضافي مضمّن أو موثوق به
|
||||
- تحتاج إلى فهم كيفية ارتباط مكوّن Codex الإضافي بموفري النماذج
|
||||
sidebarTitle: Agent Harness
|
||||
summary: سطح SDK تجريبي لـ plugins التي تستبدل منفّذ الوكيل المضمّن منخفض المستوى
|
||||
title: Agent Harness Plugins
|
||||
summary: سطح SDK تجريبي للمكوّنات الإضافية التي تستبدل منفّذ الوكيل المضمّن منخفض المستوى
|
||||
title: مكوّنات Harness الإضافية للوكيل
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T02:46:23Z"
|
||||
generated_at: "2026-04-12T00:18:56Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 43c1f2c087230398b0162ed98449f239c8db1e822e51c7dcd40c54fa6c3374e1
|
||||
source_hash: 62b88fd24ce8b600179db27e16e8d764a2cd7a14e5c5df76374c33121aa5e365
|
||||
source_path: plugins/sdk-agent-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Agent Harness Plugins
|
||||
# مكوّنات Agent Harness الإضافية
|
||||
|
||||
إن **agent harness** هو المنفّذ منخفض المستوى لدورة وكيل OpenClaw واحدة تم إعدادها مسبقًا. وهو ليس موفر نماذج، ولا قناة، ولا سجل أدوات.
|
||||
يُعد **agent harness** المنفّذ منخفض المستوى لدورة واحدة مُحضّرة لوكيل OpenClaw.
|
||||
وهو ليس موفر نماذج، وليس قناة، وليس سجل أدوات.
|
||||
|
||||
استخدم هذا السطح فقط مع plugins الأصلية المضمّنة أو الموثوقة. لا يزال هذا العقد تجريبيًا لأن أنواع المعاملات تعكس عمدًا المنفّذ المضمّن الحالي.
|
||||
استخدم هذا السطح فقط للمكوّنات الإضافية الأصلية المضمّنة أو الموثوق بها. لا يزال
|
||||
هذا التعاقد تجريبيًا لأن أنواع المعاملات تعكس عمدًا المنفّذ المضمّن الحالي.
|
||||
|
||||
## متى تستخدم harness
|
||||
|
||||
سجّل agent harness عندما تكون لعائلة النماذج بيئة جلسات أصلية خاصة بها ويكون نقل الموفر العادي في OpenClaw تجريدًا غير مناسب.
|
||||
سجّل agent harness عندما تكون لعائلة نماذج ما بيئة جلسات أصلية خاصة بها
|
||||
ويكون نقل موفر OpenClaw العادي تجريدًا غير مناسب.
|
||||
|
||||
أمثلة:
|
||||
|
||||
- خادم وكيل برمجة أصلي يملك سلاسل الرسائل والضغط
|
||||
- خادم coding-agent أصلي يملك سلاسل التنفيذ والضغط
|
||||
- CLI أو daemon محلي يجب أن يبث أحداث الخطة/الاستدلال/الأدوات الأصلية
|
||||
- بيئة تشغيل نموذج تحتاج إلى معرّف استئناف خاص بها بالإضافة إلى نسخة السجل النصي للجلسة في OpenClaw
|
||||
- بيئة تشغيل نموذج تحتاج إلى معرّف استئناف خاص بها بالإضافة إلى
|
||||
نص جلسة OpenClaw
|
||||
|
||||
**لا** تسجّل harness فقط لإضافة API جديدة لـ LLM. بالنسبة إلى واجهات API النماذج العادية عبر HTTP أو WebSocket، أنشئ [provider plugin](/ar/plugins/sdk-provider-plugins).
|
||||
**لا** تسجّل harness لمجرد إضافة واجهة API جديدة لـ LLM. بالنسبة لواجهات
|
||||
HTTP أو WebSocket العادية للنماذج، أنشئ [مكوّن provider إضافي](/ar/plugins/sdk-provider-plugins).
|
||||
|
||||
## ما الذي يبقى ضمن مسؤولية core
|
||||
## ما الذي لا يزال core يملكه
|
||||
|
||||
قبل اختيار harness، يكون OpenClaw قد حدّد بالفعل:
|
||||
|
||||
- الموفر والنموذج
|
||||
- حالة مصادقة وقت التشغيل
|
||||
- مستوى الاستدلال وميزانية السياق
|
||||
- ملف السجل النصي/الجلسة في OpenClaw
|
||||
- حالة المصادقة في وقت التشغيل
|
||||
- مستوى التفكير وميزانية السياق
|
||||
- ملف النص/جلسة OpenClaw
|
||||
- مساحة العمل وsandbox وسياسة الأدوات
|
||||
- استدعاءات ردود القنوات واستدعاءات البث
|
||||
- سياسة النموذج الاحتياطي والتبديل المباشر للنموذج
|
||||
- عمليات رد القناة وعمليات البث
|
||||
- سياسة الرجوع إلى نموذج بديل والتبديل بين النماذج الحية
|
||||
|
||||
هذا الفصل مقصود. تعمل harness على محاولة تم إعدادها مسبقًا؛ فهي لا تختار الموفرين، ولا تستبدل تسليم القنوات، ولا تبدّل النماذج بصمت.
|
||||
هذا التقسيم مقصود. يقوم harness بتشغيل محاولة مُحضّرة؛ ولا يختار
|
||||
الموفرين، ولا يستبدل تسليم القنوات، ولا يبدّل النماذج بصمت.
|
||||
|
||||
## تسجيل harness
|
||||
|
||||
@ -66,9 +72,9 @@ const myHarness: AgentHarness = {
|
||||
},
|
||||
|
||||
async runAttempt(params) {
|
||||
// ابدأ سلسلة الرسائل الأصلية أو استأنفها.
|
||||
// استخدم params.prompt وparams.tools وparams.images وparams.onPartialReply،
|
||||
// وparams.onAgentEvent، وغيرها من حقول المحاولة المُعدّة مسبقًا.
|
||||
// Start or resume your native thread.
|
||||
// Use params.prompt, params.tools, params.images, params.onPartialReply,
|
||||
// params.onAgentEvent, and the other prepared attempt fields.
|
||||
return await runMyNativeTurn(params);
|
||||
},
|
||||
};
|
||||
@ -76,7 +82,7 @@ const myHarness: AgentHarness = {
|
||||
export default definePluginEntry({
|
||||
id: "my-native-agent",
|
||||
name: "My Native Agent",
|
||||
description: "يشغّل النماذج المحددة عبر daemon وكيل أصلي.",
|
||||
description: "Runs selected models through a native agent daemon.",
|
||||
register(api) {
|
||||
api.registerAgentHarness(myHarness);
|
||||
},
|
||||
@ -87,42 +93,82 @@ export default definePluginEntry({
|
||||
|
||||
يختار OpenClaw harness بعد تحديد الموفر/النموذج:
|
||||
|
||||
1. يفرض `OPENCLAW_AGENT_RUNTIME=<id>` harness مسجّلة بالمعرّف نفسه.
|
||||
2. يفرض `OPENCLAW_AGENT_RUNTIME=pi` استخدام harness PI المضمّنة.
|
||||
3. يطلب `OPENCLAW_AGENT_RUNTIME=auto` من الـ harnesses المسجّلة ما إذا كانت تدعم الموفر/النموذج المحدد.
|
||||
4. إذا لم تتطابق أي harness مسجّلة، يستخدم OpenClaw PI ما لم يكن الرجوع الاحتياطي إلى PI معطّلًا.
|
||||
1. يفرض `OPENCLAW_AGENT_RUNTIME=<id>` استخدام harness مسجّل بهذا المعرّف.
|
||||
2. يفرض `OPENCLAW_AGENT_RUNTIME=pi` استخدام harness المدمج PI.
|
||||
3. يطلب `OPENCLAW_AGENT_RUNTIME=auto` من الـ harnesses المسجّلة ما إذا كانت تدعم
|
||||
الموفر/النموذج الذي تم تحديده.
|
||||
4. إذا لم يطابق أي harness مسجّل، يستخدم OpenClaw PI ما لم يكن الرجوع إلى PI
|
||||
معطّلًا.
|
||||
|
||||
تظهر إخفاقات plugin harness المفروضة كإخفاقات تشغيل. في وضع `auto`، قد يرجع OpenClaw إلى PI عندما تفشل plugin harness المحددة قبل أن تنتج الدورة أي آثار جانبية. اضبط `OPENCLAW_AGENT_HARNESS_FALLBACK=none` أو `embeddedHarness.fallback: "none"` لجعل هذا الرجوع الاحتياطي إخفاقًا صريحًا بدلًا من ذلك.
|
||||
تظهر أعطال harness الخاص بالمكوّن الإضافي المفروض كأعطال تشغيل. في وضع `auto`،
|
||||
قد يرجع OpenClaw إلى PI عندما يفشل harness المحدد من المكوّن الإضافي قبل أن
|
||||
تنتج الدورة آثارًا جانبية. عيّن `OPENCLAW_AGENT_HARNESS_FALLBACK=none` أو
|
||||
`embeddedHarness.fallback: "none"` لجعل هذا الرجوع فشلًا صارمًا بدلًا من ذلك.
|
||||
|
||||
تسجّل plugin Codex المضمّنة `codex` بوصفه معرّف harness الخاص بها. ويتعامل core مع ذلك على أنه معرّف plugin harness عادي؛ ويجب أن تبقى الأسماء المستعارة الخاصة بـ Codex داخل plugin أو إعدادات المشغّل، لا في محدد وقت التشغيل المشترك.
|
||||
يسجّل مكوّن Codex الإضافي المضمّن `codex` كمعرّف harness له. ويتعامل core مع ذلك
|
||||
باعتباره معرّف harness عاديًا لمكوّن إضافي؛ أما الأسماء المستعارة الخاصة بـ Codex
|
||||
فينبغي أن تكون ضمن المكوّن الإضافي أو إعدادات المشغّل، لا في محدد وقت التشغيل المشترك.
|
||||
|
||||
## إقران الموفر مع harness
|
||||
## إقران provider مع harness
|
||||
|
||||
ينبغي لمعظم الـ harnesses أيضًا تسجيل موفر. يجعل الموفر مراجع النماذج، وحالة المصادقة، والبيانات الوصفية للنموذج، واختيار `/model` مرئية لبقية OpenClaw. ثم تطالب harness بهذا الموفر في `supports(...)`.
|
||||
ينبغي لمعظم الـ harnesses أيضًا تسجيل provider. يجعل provider مراجع النماذج،
|
||||
وحالة المصادقة، وبيانات النموذج الوصفية، واختيار `/model` مرئية لباقي OpenClaw.
|
||||
ثم يطالب harness بهذا الموفر في `supports(...)`.
|
||||
|
||||
تتبع plugin Codex المضمّنة هذا النمط:
|
||||
يتبع مكوّن Codex الإضافي المضمّن هذا النمط:
|
||||
|
||||
- معرّف الموفر: `codex`
|
||||
- مراجع النماذج للمستخدم: `codex/gpt-5.4` و`codex/gpt-5.2` أو أي نموذج آخر يعيده خادم تطبيق Codex
|
||||
- معرّف provider: `codex`
|
||||
- مراجع النماذج للمستخدم: `codex/gpt-5.4` و`codex/gpt-5.2` أو نموذج آخر يعيده
|
||||
خادم تطبيق Codex
|
||||
- معرّف harness: `codex`
|
||||
- المصادقة: توفر موفر اصطناعي، لأن harness Codex تملك تسجيل الدخول/الجلسة الأصلية لـ Codex
|
||||
- طلب خادم التطبيق: يرسل OpenClaw معرّف النموذج المجرد إلى Codex ويجعل harness تتحدث مع بروتوكول خادم التطبيق الأصلي
|
||||
- المصادقة: إتاحة موفر تركيبية، لأن Codex harness يملك تسجيل الدخول/الجلسة الأصلية لـ Codex
|
||||
- طلب خادم التطبيق: يرسل OpenClaw معرّف النموذج المجرد إلى Codex ويترك
|
||||
لـ harness التحدث مع بروتوكول خادم التطبيق الأصلي
|
||||
|
||||
إن plugin Codex إضافة تكميلية. تظل مراجع `openai/gpt-*` العادية مراجع لموفر OpenAI وتواصل استخدام مسار موفر OpenClaw العادي. اختر `codex/gpt-*` عندما تريد مصادقة مُدارة من Codex، واكتشاف نماذج Codex، وسلاسل رسائل أصلية، وتنفيذ خادم تطبيق Codex. يمكن لـ `/model` التبديل بين نماذج Codex التي يعيدها خادم تطبيق Codex دون الحاجة إلى بيانات اعتماد موفر OpenAI.
|
||||
مكوّن Codex الإضافي ذو طبيعة إضافية. تظل مراجع `openai/gpt-*` العادية
|
||||
مراجع لموفر OpenAI وتستمر في استخدام مسار موفر OpenClaw العادي. اختر `codex/gpt-*`
|
||||
عندما تريد مصادقة مُدارة بواسطة Codex، واكتشاف نماذج Codex، وسلاسل تنفيذ أصلية،
|
||||
وتنفيذ خادم تطبيق Codex. يمكن لـ `/model` التبديل بين نماذج Codex التي يعيدها
|
||||
خادم تطبيق Codex من دون الحاجة إلى بيانات اعتماد موفر OpenAI.
|
||||
|
||||
لإعدادات المشغّل، وأمثلة بادئات النماذج، وإعدادات Codex فقط، راجع
|
||||
[Codex Harness](/ar/plugins/codex-harness).
|
||||
|
||||
يتطلب OpenClaw إصدار خادم تطبيق Codex `0.118.0` أو أحدث. تتحقق plugin Codex من مصافحة تهيئة خادم التطبيق وتمنع الخوادم الأقدم أو غير ذات الإصدار حتى لا يعمل OpenClaw إلا مع سطح البروتوكول الذي تم اختباره معه.
|
||||
يتطلب OpenClaw إصدار Codex app-server `0.118.0` أو أحدث. يتحقق مكوّن Codex
|
||||
الإضافي من مصافحة التهيئة مع app-server ويحظر الخوادم الأقدم أو غير المرقمة
|
||||
حتى لا يعمل OpenClaw إلا على سطح البروتوكول الذي جرى اختباره معه.
|
||||
|
||||
## تعطيل الرجوع الاحتياطي إلى PI
|
||||
### وضع Codex harness الأصلي
|
||||
|
||||
افتراضيًا، يشغّل OpenClaw الوكلاء المضمّنين مع `agents.defaults.embeddedHarness`
|
||||
مضبوطة على `{ runtime: "auto", fallback: "pi" }`. في وضع `auto`، يمكن لـ plugin harnesses المسجّلة المطالبة بزوج موفر/نموذج مطابق. إذا لم يتطابق أي منها، أو إذا فشلت plugin harness مختارة تلقائيًا قبل إنتاج مخرجات، يرجع OpenClaw إلى PI.
|
||||
يُعد `codex` harness المضمّن وضع Codex الأصلي لدورات وكلاء OpenClaw المضمّنة.
|
||||
فعّل مكوّن `codex` الإضافي المضمّن أولًا، وأدرج `codex` في
|
||||
`plugins.allow` إذا كان إعدادك يستخدم قائمة سماح مقيّدة. وهو يختلف عن
|
||||
`openai-codex/*`:
|
||||
|
||||
اضبط `fallback: "none"` عندما تحتاج إلى إثبات أن plugin harness هي بيئة التشغيل الوحيدة المستخدمة. يعطّل هذا الرجوع الاحتياطي التلقائي إلى PI؛ لكنه لا يمنع `runtime: "pi"` الصريح أو `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
- يستخدم `openai-codex/*` OAuth الخاص بـ ChatGPT/Codex عبر مسار موفر OpenClaw العادي.
|
||||
- يستخدم `codex/*` موفر Codex المضمّن ويوجّه الدورة عبر Codex
|
||||
app-server.
|
||||
|
||||
لتشغيلات مضمّنة خاصة بـ Codex فقط:
|
||||
عند تشغيل هذا الوضع، يملك Codex معرّف سلسلة التنفيذ الأصلية، وسلوك الاستئناف،
|
||||
والضغط، وتنفيذ app-server. ولا يزال OpenClaw يملك قناة الدردشة،
|
||||
ومرآة النص الظاهرة، وسياسة الأدوات، والموافقات، وتسليم الوسائط، واختيار
|
||||
الجلسة. استخدم `embeddedHarness.runtime: "codex"` مع
|
||||
`embeddedHarness.fallback: "none"` عندما تحتاج إلى إثبات أن مسار Codex
|
||||
app-server مستخدم وأن الرجوع إلى PI لا يخفي harness أصليًا معطّلًا.
|
||||
|
||||
## تعطيل الرجوع إلى PI
|
||||
|
||||
بشكل افتراضي، يشغّل OpenClaw الوكلاء المضمّنين مع تعيين `agents.defaults.embeddedHarness`
|
||||
إلى `{ runtime: "auto", fallback: "pi" }`. في وضع `auto`، يمكن لـ harnesses
|
||||
المسجّلة من المكوّنات الإضافية المطالبة بزوج موفر/نموذج. إذا لم يطابق أي منها،
|
||||
أو إذا فشل harness لمكوّن إضافي تم اختياره تلقائيًا قبل إنتاج أي مخرجات،
|
||||
يرجع OpenClaw إلى PI.
|
||||
|
||||
عيّن `fallback: "none"` عندما تحتاج إلى إثبات أن harness الخاص بالمكوّن الإضافي
|
||||
هو وقت التشغيل الوحيد الجاري استخدامه. يؤدي ذلك إلى تعطيل الرجوع التلقائي إلى PI؛
|
||||
لكنه لا يمنع `runtime: "pi"` الصريح أو `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
|
||||
لتشغيلات مضمّنة خاصة بـ Codex:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -138,7 +184,9 @@ export default definePluginEntry({
|
||||
}
|
||||
```
|
||||
|
||||
إذا كنت تريد أن تطالب أي plugin harness مسجّلة بالنماذج المطابقة لكنك لا تريد أبدًا أن يرجع OpenClaw بصمت إلى PI، فأبقِ `runtime: "auto"` وعطّل الرجوع الاحتياطي:
|
||||
إذا كنت تريد أن تطالب أي harness مسجّل من المكوّنات الإضافية بالنماذج المطابقة ولكنك
|
||||
لا تريد أبدًا أن يرجع OpenClaw بصمت إلى PI، فأبقِ `runtime: "auto"` وعطّل
|
||||
الرجوع:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -153,7 +201,7 @@ export default definePluginEntry({
|
||||
}
|
||||
```
|
||||
|
||||
تستخدم التجاوزات الخاصة بكل وكيل البنية نفسها:
|
||||
تستخدم عمليات التجاوز لكل وكيل الشكل نفسه:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -178,8 +226,9 @@ export default definePluginEntry({
|
||||
}
|
||||
```
|
||||
|
||||
لا يزال `OPENCLAW_AGENT_RUNTIME` يتجاوز وقت التشغيل المضبوط. استخدم
|
||||
`OPENCLAW_AGENT_HARNESS_FALLBACK=none` لتعطيل الرجوع الاحتياطي إلى PI من البيئة.
|
||||
لا يزال `OPENCLAW_AGENT_RUNTIME` يتجاوز وقت التشغيل المكوَّن. استخدم
|
||||
`OPENCLAW_AGENT_HARNESS_FALLBACK=none` لتعطيل الرجوع إلى PI من
|
||||
البيئة.
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -187,39 +236,53 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
مع تعطيل الرجوع الاحتياطي، تفشل الجلسة مبكرًا عندما لا تكون harness المطلوبة مسجّلة، أو لا تدعم الموفر/النموذج المحدد، أو تفشل قبل إنتاج آثار جانبية للدورة. وهذا مقصود في عمليات النشر الخاصة بـ Codex فقط وفي الاختبارات المباشرة التي يجب أن تثبت أن مسار خادم تطبيق Codex مستخدم فعلًا.
|
||||
مع تعطيل الرجوع، تفشل الجلسة مبكرًا عندما لا يكون harness المطلوب
|
||||
مسجّلًا، أو لا يدعم الموفر/النموذج الذي تم تحديده، أو يفشل قبل
|
||||
إنتاج آثار جانبية للدورة. وهذا مقصود لعمليات النشر الخاصة بـ Codex فقط
|
||||
ولاختبارات live التي يجب أن تثبت أن مسار Codex app-server قيد الاستخدام فعلًا.
|
||||
|
||||
يتحكم هذا الإعداد فقط في agent harness المضمّنة. وهو لا يعطّل توجيه النماذج الخاص بالموفر للصور أو الفيديو أو الموسيقى أو TTS أو PDF أو غيرها.
|
||||
يتحكم هذا الإعداد فقط في embedded agent harness. ولا يعطّل
|
||||
توجيه النماذج الخاص بالموفر للصور أو الفيديو أو الموسيقى أو TTS أو PDF أو غيرها.
|
||||
|
||||
## الجلسات الأصلية ونسخة السجل النصي
|
||||
## الجلسات الأصلية ومرآة النص
|
||||
|
||||
قد تحتفظ harness بمعرّف جلسة أصلي أو معرّف سلسلة رسائل أو رمز استئناف من جهة daemon. أبقِ هذا الربط مرتبطًا صراحةً بجلسة OpenClaw، واستمر في عكس مخرجات المساعد/الأداة المرئية للمستخدم إلى السجل النصي في OpenClaw.
|
||||
قد يحتفظ harness بمعرّف جلسة أصلي، أو معرّف سلسلة تنفيذ، أو رمز استئناف
|
||||
على جانب daemon. أبقِ هذا الارتباط مقترنًا صراحةً بجلسة OpenClaw، واستمر
|
||||
في عكس مخرجات المساعد/الأداة الظاهرة للمستخدم إلى نص OpenClaw.
|
||||
|
||||
يبقى السجل النصي في OpenClaw طبقة التوافق من أجل:
|
||||
يبقى نص OpenClaw طبقة التوافق من أجل:
|
||||
|
||||
- سجل الجلسة المرئي للقنوات
|
||||
- البحث في السجل النصي وفهرسته
|
||||
- التبديل مجددًا إلى harness PI المضمّنة في دورة لاحقة
|
||||
- سجل الجلسة الظاهر في القناة
|
||||
- البحث في النص وفهرسته
|
||||
- العودة إلى harness المدمج PI في دورة لاحقة
|
||||
- السلوك العام لـ `/new` و`/reset` وحذف الجلسة
|
||||
|
||||
إذا كانت harness تخزّن ربط sidecar، فنفّذ `reset(...)` حتى يتمكن OpenClaw من مسحه عند إعادة تعيين جلسة OpenClaw المالكة.
|
||||
إذا كان harness يخزن ارتباطًا جانبيًا، فنفّذ `reset(...)` حتى يتمكن OpenClaw من
|
||||
مسحه عند إعادة تعيين جلسة OpenClaw المالكة له.
|
||||
|
||||
## نتائج الأدوات والوسائط
|
||||
|
||||
ينشئ core قائمة أدوات OpenClaw ويمررها إلى المحاولة المُعدّة مسبقًا. عندما تنفّذ harness استدعاء أداة ديناميكيًا، فأعد نتيجة الأداة عبر بنية نتيجة harness بدلًا من إرسال وسائط القناة بنفسك.
|
||||
يبني core قائمة أدوات OpenClaw ويمررها إلى المحاولة المُحضّرة.
|
||||
عندما ينفّذ harness استدعاء أداة ديناميكيًا، أعد نتيجة الأداة عبر
|
||||
صيغة نتيجة harness بدلًا من إرسال وسائط القناة بنفسك.
|
||||
|
||||
هذا يُبقي مخرجات النص والصورة والفيديو والموسيقى وTTS والموافقات وأدوات المراسلة على مسار التسليم نفسه مثل التشغيلات المعتمدة على PI.
|
||||
يحافظ ذلك على مخرجات النص والصورة والفيديو والموسيقى وTTS والموافقة وأدوات المراسلة
|
||||
ضمن مسار التسليم نفسه كما في التشغيلات المدعومة بـ PI.
|
||||
|
||||
## القيود الحالية
|
||||
|
||||
- مسار الاستيراد العام عامّ، لكن بعض الأسماء المستعارة لأنواع المحاولة/النتيجة ما تزال تحمل أسماء `Pi` للتوافق.
|
||||
- تثبيت harness من طرف ثالث ما يزال تجريبيًا. فضّل provider plugins إلى أن تحتاج إلى بيئة جلسات أصلية.
|
||||
- التبديل بين الـ harnesses مدعوم عبر الدورات. لا تبدّل الـ harnesses في منتصف الدورة بعد بدء الأدوات الأصلية أو الموافقات أو نص المساعد أو إرسال الرسائل.
|
||||
- مسار الاستيراد العام عام، لكن بعض الأسماء المستعارة لأنواع المحاولة/النتيجة لا تزال
|
||||
تحمل أسماء `Pi` من أجل التوافق.
|
||||
- تثبيت harnesses الخارجية تجريبي. فضّل مكوّنات provider الإضافية
|
||||
إلى أن تحتاج إلى بيئة جلسات أصلية.
|
||||
- التبديل بين harnesses مدعوم عبر الدورات. لا تبدّل بين harnesses في
|
||||
منتصف الدورة بعد بدء الأدوات الأصلية أو الموافقات أو نص المساعد أو إرسال
|
||||
الرسائل.
|
||||
|
||||
## ذو صلة
|
||||
|
||||
- [نظرة عامة على SDK](/ar/plugins/sdk-overview)
|
||||
- [مساعدات وقت التشغيل](/ar/plugins/sdk-runtime)
|
||||
- [Provider Plugins](/ar/plugins/sdk-provider-plugins)
|
||||
- [مكوّنات Provider الإضافية](/ar/plugins/sdk-provider-plugins)
|
||||
- [Codex Harness](/ar/plugins/codex-harness)
|
||||
- [موفرو النماذج](/ar/concepts/model-providers)
|
||||
|
||||
@ -1,51 +1,51 @@
|
||||
---
|
||||
read_when:
|
||||
- تريد استخدام نماذج OpenAI في OpenClaw
|
||||
- تريد استخدام مصادقة اشتراك Codex بدلًا من مفاتيح API
|
||||
- تريد مصادقة اشتراك Codex بدلًا من مفاتيح API
|
||||
- تحتاج إلى سلوك تنفيذ أكثر صرامة لوكيل GPT-5
|
||||
summary: استخدم OpenAI عبر مفاتيح API أو اشتراك Codex في OpenClaw
|
||||
title: OpenAI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-07T07:22:43Z"
|
||||
generated_at: "2026-04-12T00:18:54Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6a2ce1ce5f085fe55ec50b8d20359180b9002c9730820cd5b0e011c3bf807b64
|
||||
source_hash: 7aa06fba9ac901e663685a6b26443a2f6aeb6ec3589d939522dc87cbb43497b4
|
||||
source_path: providers/openai.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# OpenAI
|
||||
|
||||
توفّر OpenAI واجهات API للمطورين لنماذج GPT. يدعم Codex **تسجيل الدخول إلى ChatGPT** للوصول
|
||||
عبر الاشتراك أو **تسجيل الدخول بمفتاح API** للوصول القائم على الاستخدام. يتطلب Codex cloud تسجيل الدخول إلى ChatGPT.
|
||||
وتدعم OpenAI صراحةً استخدام OAuth الخاص بالاشتراك في الأدوات/سير العمل الخارجية مثل OpenClaw.
|
||||
توفّر OpenAI واجهات API للمطورين لنماذج GPT. يدعم Codex **تسجيل الدخول عبر ChatGPT** للوصول عبر الاشتراك أو **تسجيل الدخول عبر مفتاح API** للوصول القائم على الاستخدام. يتطلب Codex cloud تسجيل الدخول عبر ChatGPT.
|
||||
تدعم OpenAI صراحةً استخدام OAuth للاشتراك في الأدوات/سير العمل الخارجية مثل OpenClaw.
|
||||
|
||||
## نمط التفاعل الافتراضي
|
||||
|
||||
يمكن لـ OpenClaw إضافة تراكب توجيه صغير خاص بـ OpenAI لكل من تشغيلات `openai/*` و
|
||||
`openai-codex/*`. وبشكل افتراضي، يبقي هذا التراكب المساعد ودودًا،
|
||||
وتعاونيًا، ومقتضبًا، ومباشرًا، وأكثر تعبيرًا عاطفيًا قليلًا
|
||||
من دون أن يستبدل توجيه نظام OpenClaw الأساسي. كما يسمح التراكب الودود أيضًا
|
||||
باستخدام الرموز التعبيرية أحيانًا عندما يكون ذلك مناسبًا بشكل طبيعي، مع الحفاظ
|
||||
على اقتضاب المخرجات عمومًا.
|
||||
يمكن لـ OpenClaw إضافة طبقة تراكب صغيرة خاصة بـ OpenAI إلى الموجّه لكل من تشغيلات `openai/*` و
|
||||
`openai-codex/*`. افتراضيًا، تُبقي طبقة التراكب المساعد ودودًا،
|
||||
ومتعاونًا، وموجزًا، ومباشرًا، وأكثر تعبيرًا عاطفيًا قليلًا
|
||||
من دون استبدال موجّه نظام OpenClaw الأساسي. كما تسمح طبقة التراكب الودية
|
||||
باستخدام الرمز التعبيري أحيانًا عندما يكون مناسبًا بشكل طبيعي، مع الإبقاء على
|
||||
الإخراج العام موجزًا.
|
||||
|
||||
مفتاح الإعدادات:
|
||||
مفتاح الإعداد:
|
||||
|
||||
`plugins.entries.openai.config.personality`
|
||||
|
||||
القيم المسموح بها:
|
||||
|
||||
- `"friendly"`: الافتراضي؛ يفعّل التراكب الخاص بـ OpenAI.
|
||||
- `"on"`: اسم مستعار لـ `"friendly"`.
|
||||
- `"off"`: يعطّل التراكب ويستخدم توجيه OpenClaw الأساسي فقط.
|
||||
- `"friendly"`: الافتراضي؛ يفعّل طبقة التراكب الخاصة بـ OpenAI.
|
||||
- `"on"`: اسم بديل لـ `"friendly"`.
|
||||
- `"off"`: يعطّل طبقة التراكب ويستخدم موجّه OpenClaw الأساسي فقط.
|
||||
|
||||
النطاق:
|
||||
|
||||
- ينطبق على نماذج `openai/*`.
|
||||
- ينطبق على نماذج `openai-codex/*`.
|
||||
- لا يؤثر في الموفّرين الآخرين.
|
||||
- لا يؤثر في مزوّدين آخرين.
|
||||
|
||||
هذا السلوك مفعّل افتراضيًا. احتفظ بـ `"friendly"` صراحةً إذا كنت تريد أن
|
||||
يستمر ذلك رغم تقلبات الإعدادات المحلية مستقبلًا:
|
||||
هذا السلوك مفعّل افتراضيًا. أبقِ `"friendly"` مضبوطًا صراحةً إذا كنت تريد أن
|
||||
يستمر هذا الإعداد رغم أي تغييرات محلية مستقبلية في الإعدادات:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -61,9 +61,9 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
### تعطيل تراكب توجيه OpenAI
|
||||
### تعطيل طبقة موجّه OpenAI
|
||||
|
||||
إذا أردت توجيه OpenClaw الأساسي غير المعدّل، فاضبط التراكب على `"off"`:
|
||||
إذا كنت تريد موجّه OpenClaw الأساسي غير المعدّل، فاضبط طبقة التراكب على `"off"`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -79,35 +79,35 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
يمكنك أيضًا ضبطه مباشرةً باستخدام config CLI:
|
||||
يمكنك أيضًا ضبطه مباشرةً باستخدام CLI الخاص بالإعدادات:
|
||||
|
||||
```bash
|
||||
openclaw config set plugins.entries.openai.config.personality off
|
||||
```
|
||||
|
||||
يقوم OpenClaw بتسوية هذا الإعداد دون حساسية لحالة الأحرف وقت التشغيل، لذا فإن قيمًا مثل
|
||||
`"Off"` ستعطّل التراكب الودود أيضًا.
|
||||
يُطبّع OpenClaw هذا الإعداد أثناء التشغيل بدون حساسية لحالة الأحرف، لذا فإن قيمًا مثل
|
||||
`"Off"` ستعطّل أيضًا طبقة التراكب الودية.
|
||||
|
||||
## الخيار A: مفتاح OpenAI API (OpenAI Platform)
|
||||
## الخيار A: مفتاح OpenAI API (OpenAI Platform)
|
||||
|
||||
**الأفضل لـ:** الوصول المباشر إلى API والفوترة القائمة على الاستخدام.
|
||||
احصل على مفتاح API من لوحة تحكم OpenAI.
|
||||
|
||||
ملخص المسار:
|
||||
|
||||
- `openai/gpt-5.4` = مسار OpenAI Platform API مباشر
|
||||
- يتطلب `OPENAI_API_KEY` (أو إعداد موفّر OpenAI مكافئ)
|
||||
- في OpenClaw، يتم توجيه تسجيل الدخول إلى ChatGPT/Codex عبر `openai-codex/*` وليس `openai/*`
|
||||
- `openai/gpt-5.4` = مسار API مباشر إلى OpenAI Platform
|
||||
- يتطلب `OPENAI_API_KEY` (أو إعداد مزوّد OpenAI مكافئ)
|
||||
- في OpenClaw، يُوجَّه تسجيل الدخول عبر ChatGPT/Codex من خلال `openai-codex/*` وليس `openai/*`
|
||||
|
||||
### إعداد CLI
|
||||
|
||||
```bash
|
||||
openclaw onboard --auth-choice openai-api-key
|
||||
# أو بدون تفاعل
|
||||
# أو بشكل غير تفاعلي
|
||||
openclaw onboard --openai-api-key "$OPENAI_API_KEY"
|
||||
```
|
||||
|
||||
### مقتطف إعدادات
|
||||
### مقتطف إعداد
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -116,28 +116,28 @@ openclaw onboard --openai-api-key "$OPENAI_API_KEY"
|
||||
}
|
||||
```
|
||||
|
||||
تسرد وثائق نماذج API الحالية من OpenAI النموذجين `gpt-5.4` و`gpt-5.4-pro` للاستخدام المباشر
|
||||
مع OpenAI API. ويقوم OpenClaw بتمرير كليهما عبر مسار `openai/*` الخاص بـ Responses.
|
||||
ويتعمّد OpenClaw إخفاء السطر القديم `openai/gpt-5.3-codex-spark`،
|
||||
لأن استدعاءات OpenAI API المباشرة ترفضه في حركة المرور الحية.
|
||||
تسرد مستندات نماذج API الحالية من OpenAI النموذجين `gpt-5.4` و `gpt-5.4-pro` للاستخدام المباشر عبر
|
||||
OpenAI API. يمرّر OpenClaw كليهما عبر مسار `openai/*` Responses.
|
||||
ويتعمد OpenClaw إخفاء الصف القديم `openai/gpt-5.3-codex-spark`،
|
||||
لأن استدعاءات OpenAI API المباشرة ترفضه في الحركة الحية.
|
||||
|
||||
لا يعرض OpenClaw **`openai/gpt-5.3-codex-spark`** على مسار OpenAI
|
||||
API المباشر. لا يزال `pi-ai` يوفّر سطرًا مضمّنًا لذلك النموذج، لكن طلبات OpenAI API الحية
|
||||
ترفضه حاليًا. ويُتعامل مع Spark على أنه خاص بـ Codex فقط في OpenClaw.
|
||||
لا يوفّر OpenClaw النموذج `openai/gpt-5.3-codex-spark` على مسار OpenAI
|
||||
API المباشر. لا يزال `pi-ai` يوفّر صفًا مدمجًا لهذا النموذج، لكن طلبات OpenAI API الحية
|
||||
ترفضه حاليًا. ويُعامل Spark على أنه خاص بـ Codex فقط في OpenClaw.
|
||||
|
||||
## توليد الصور
|
||||
## إنشاء الصور
|
||||
|
||||
يسجل plugin `openai` المضمن أيضًا توليد الصور عبر الأداة المشتركة
|
||||
يسجّل المكوّن الإضافي المضمّن `openai` أيضًا إنشاء الصور عبر الأداة المشتركة
|
||||
`image_generate`.
|
||||
|
||||
- نموذج الصور الافتراضي: `openai/gpt-image-1`
|
||||
- التوليد: حتى 4 صور لكل طلب
|
||||
- وضع التعديل: مفعّل، حتى 5 صور مرجعية
|
||||
- الإنشاء: حتى 4 صور لكل طلب
|
||||
- وضع التحرير: مفعّل، حتى 5 صور مرجعية
|
||||
- يدعم `size`
|
||||
- ملاحظة حالية خاصة بـ OpenAI: لا يمرّر OpenClaw حاليًا تجاوزات `aspectRatio` أو
|
||||
- الملاحظة الحالية الخاصة بـ OpenAI: لا يمرّر OpenClaw حاليًا تجاوزات `aspectRatio` أو
|
||||
`resolution` إلى OpenAI Images API
|
||||
|
||||
لاستخدام OpenAI كموفّر الصور الافتراضي:
|
||||
لاستخدام OpenAI كمزوّد الصور الافتراضي:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -151,23 +151,23 @@ API المباشر. لا يزال `pi-ai` يوفّر سطرًا مضمّنًا
|
||||
}
|
||||
```
|
||||
|
||||
راجع [توليد الصور](/ar/tools/image-generation) لمعلمات الأداة
|
||||
المشتركة، واختيار الموفّر، وسلوك التحويل الاحتياطي.
|
||||
راجع [إنشاء الصور](/ar/tools/image-generation) لمعلمات
|
||||
الأداة المشتركة، واختيار المزوّد، وسلوك التبديل الاحتياطي.
|
||||
|
||||
## توليد الفيديو
|
||||
## إنشاء الفيديو
|
||||
|
||||
يسجل plugin `openai` المضمن أيضًا توليد الفيديو عبر الأداة المشتركة
|
||||
يسجّل المكوّن الإضافي المضمّن `openai` أيضًا إنشاء الفيديو عبر الأداة المشتركة
|
||||
`video_generate`.
|
||||
|
||||
- نموذج الفيديو الافتراضي: `openai/sora-2`
|
||||
- الأوضاع: من نص إلى فيديو، ومن صورة إلى فيديو، وتدفقات مرجعية/تحرير لفيديو واحد
|
||||
- الحدود الحالية: صورة واحدة أو مرجع فيديو واحد
|
||||
- ملاحظة حالية خاصة بـ OpenAI: يمرّر OpenClaw حاليًا فقط تجاوزات `size`
|
||||
لتوليد الفيديو الأصلي في OpenAI. أما التجاوزات الاختيارية غير المدعومة
|
||||
مثل `aspectRatio` و`resolution` و`audio` و`watermark` فيتم تجاهلها
|
||||
والإبلاغ عنها كتحذير أداة.
|
||||
- الأوضاع: نص إلى فيديو، وصورة إلى فيديو، وتدفّقات مرجعية/تحرير لفيديو واحد
|
||||
- الحدود الحالية: صورة واحدة أو إدخال مرجعي لفيديو واحد
|
||||
- الملاحظة الحالية الخاصة بـ OpenAI: يمرّر OpenClaw حاليًا فقط تجاوزات `size`
|
||||
لإنشاء الفيديو الأصلي من OpenAI. أمّا التجاوزات الاختيارية غير المدعومة
|
||||
مثل `aspectRatio` و `resolution` و `audio` و `watermark` فيتم تجاهلها
|
||||
ويُبلّغ عنها كتحذير من الأداة.
|
||||
|
||||
لاستخدام OpenAI كموفّر الفيديو الافتراضي:
|
||||
لاستخدام OpenAI كمزوّد الفيديو الافتراضي:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -181,19 +181,19 @@ API المباشر. لا يزال `pi-ai` يوفّر سطرًا مضمّنًا
|
||||
}
|
||||
```
|
||||
|
||||
راجع [توليد الفيديو](/ar/tools/video-generation) لمعلمات الأداة
|
||||
المشتركة، واختيار الموفّر، وسلوك التحويل الاحتياطي.
|
||||
راجع [إنشاء الفيديو](/ar/tools/video-generation) لمعلمات
|
||||
الأداة المشتركة، واختيار المزوّد، وسلوك التبديل الاحتياطي.
|
||||
|
||||
## الخيار B: اشتراك OpenAI Code (Codex)
|
||||
## الخيار B: اشتراك OpenAI Code (Codex)
|
||||
|
||||
**الأفضل لـ:** استخدام وصول اشتراك ChatGPT/Codex بدلًا من مفتاح API.
|
||||
يتطلب Codex cloud تسجيل الدخول إلى ChatGPT، بينما تدعم Codex CLI تسجيل الدخول عبر ChatGPT أو مفتاح API.
|
||||
يتطلب Codex cloud تسجيل الدخول عبر ChatGPT، بينما يدعم Codex CLI تسجيل الدخول عبر ChatGPT أو مفتاح API.
|
||||
|
||||
ملخص المسار:
|
||||
|
||||
- `openai-codex/gpt-5.4` = مسار ChatGPT/Codex OAuth
|
||||
- يستخدم تسجيل الدخول إلى ChatGPT/Codex، وليس مفتاح OpenAI Platform API مباشرًا
|
||||
- قد تختلف الحدود من جهة الموفّر لـ `openai-codex/*` عن تجربة ChatGPT على الويب/التطبيق
|
||||
- `openai-codex/gpt-5.4` = مسار OAuth لـ ChatGPT/Codex
|
||||
- يستخدم تسجيل الدخول عبر ChatGPT/Codex، وليس مفتاح OpenAI Platform API مباشرًا
|
||||
- قد تختلف الحدود على جهة المزوّد لـ `openai-codex/*` عن تجربة ChatGPT على الويب/التطبيق
|
||||
|
||||
### إعداد CLI (Codex OAuth)
|
||||
|
||||
@ -201,11 +201,11 @@ API المباشر. لا يزال `pi-ai` يوفّر سطرًا مضمّنًا
|
||||
# شغّل Codex OAuth في المعالج
|
||||
openclaw onboard --auth-choice openai-codex
|
||||
|
||||
# أو شغّل OAuth مباشرة
|
||||
# أو شغّل OAuth مباشرةً
|
||||
openclaw models auth login --provider openai-codex
|
||||
```
|
||||
|
||||
### مقتطف إعدادات (اشتراك Codex)
|
||||
### مقتطف إعداد (اشتراك Codex)
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -213,44 +213,44 @@ openclaw models auth login --provider openai-codex
|
||||
}
|
||||
```
|
||||
|
||||
تسرد وثائق Codex الحالية من OpenAI النموذج `gpt-5.4` باعتباره نموذج Codex الحالي. ويقوم OpenClaw
|
||||
بربطه إلى `openai-codex/gpt-5.4` لاستخدام ChatGPT/Codex OAuth.
|
||||
تسرد مستندات Codex الحالية من OpenAI النموذج `gpt-5.4` على أنه نموذج Codex الحالي. ويقوم OpenClaw
|
||||
بربطه مع `openai-codex/gpt-5.4` لاستخدام OAuth عبر ChatGPT/Codex.
|
||||
|
||||
هذا المسار منفصل عمدًا عن `openai/gpt-5.4`. إذا أردت
|
||||
مسار OpenAI Platform API المباشر، فاستخدم `openai/*` مع مفتاح API. وإذا أردت
|
||||
تسجيل الدخول إلى ChatGPT/Codex، فاستخدم `openai-codex/*`.
|
||||
هذا المسار منفصل عمدًا عن `openai/gpt-5.4`. إذا كنت تريد
|
||||
المسار المباشر لـ OpenAI Platform API، فاستخدم `openai/*` مع مفتاح API. وإذا كنت تريد
|
||||
تسجيل الدخول عبر ChatGPT/Codex، فاستخدم `openai-codex/*`.
|
||||
|
||||
إذا أعاد onboarding استخدام تسجيل دخول موجود مسبقًا في Codex CLI، فستظل بيانات الاعتماد تلك
|
||||
مُدارة بواسطة Codex CLI. وعند انتهاء الصلاحية، يعيد OpenClaw قراءة مصدر Codex الخارجي
|
||||
أولًا، وعندما يتمكن الموفّر من تحديثه، يكتب بيانات الاعتماد المحدّثة
|
||||
مرة أخرى إلى تخزين Codex بدلًا من أخذ الملكية في نسخة منفصلة خاصة بـ OpenClaw فقط.
|
||||
إذا أعادت عملية الإعداد الأولى استخدام تسجيل دخول موجود إلى Codex CLI، فستظل بيانات الاعتماد
|
||||
تُدار بواسطة Codex CLI. وعند انتهاء صلاحيتها، يعيد OpenClaw قراءة مصدر Codex الخارجي
|
||||
أولًا، وعندما يستطيع المزوّد تحديثها، يكتب بيانات الاعتماد المحدّثة
|
||||
من جديد إلى تخزين Codex بدلًا من تولّي إدارتها في نسخة منفصلة خاصة بـ OpenClaw فقط.
|
||||
|
||||
إذا كان حساب Codex الخاص بك مخوّلًا لاستخدام Codex Spark، فإن OpenClaw يدعم أيضًا:
|
||||
|
||||
- `openai-codex/gpt-5.3-codex-spark`
|
||||
|
||||
يتعامل OpenClaw مع Codex Spark على أنه خاص بـ Codex فقط. وهو لا يعرض مسار
|
||||
مباشرًا بمفتاح API من نوع `openai/gpt-5.3-codex-spark`.
|
||||
يعامل OpenClaw Codex Spark على أنه خاص بـ Codex فقط. ولا يوفّر مسار
|
||||
`openai/gpt-5.3-codex-spark` مباشرًا يعتمد على مفتاح API.
|
||||
|
||||
كما يحتفظ OpenClaw أيضًا بـ `openai-codex/gpt-5.3-codex-spark` عندما
|
||||
يكتشفه `pi-ai`. ويجب التعامل معه على أنه تجريبي ومعتمد على الاستحقاق: إذ إن Codex Spark
|
||||
منفصل عن GPT-5.4 `/fast`، كما أن توفره يعتمد على حساب Codex /
|
||||
ChatGPT المسجّل دخوله.
|
||||
كما يحافظ OpenClaw على `openai-codex/gpt-5.3-codex-spark` عندما
|
||||
يكتشفه `pi-ai`. ويجب التعامل معه على أنه يعتمد على الأهلية وتجريبي: إذ إن Codex Spark
|
||||
منفصل عن GPT-5.4 `/fast`، ويعتمد توفره على حساب Codex / ChatGPT
|
||||
المسجّل الدخول به.
|
||||
|
||||
### حد نافذة سياق Codex
|
||||
### حد نافذة السياق في Codex
|
||||
|
||||
يتعامل OpenClaw مع بيانات نموذج Codex الوصفية وحد وقت تشغيل السياق على أنهما
|
||||
يعامل OpenClaw بيانات نموذج Codex الوصفية وحد وقت التشغيل للسياق على أنهما
|
||||
قيمتان منفصلتان.
|
||||
|
||||
بالنسبة إلى `openai-codex/gpt-5.4`:
|
||||
|
||||
- `contextWindow` الأصلي: `1050000`
|
||||
- الحد الافتراضي لوقت التشغيل `contextTokens`: `272000`
|
||||
- حد `contextTokens` الافتراضي في وقت التشغيل: `272000`
|
||||
|
||||
يحافظ ذلك على صحة بيانات النموذج الوصفية مع الإبقاء على نافذة
|
||||
وقت التشغيل الافتراضية الأصغر، التي تتمتع عمليًا بخصائص أفضل من حيث الكمون والجودة.
|
||||
يحافظ ذلك على صحة بيانات النموذج الوصفية مع الإبقاء على نافذة التشغيل الافتراضية الأصغر
|
||||
التي تتمتع عمليًا بخصائص أفضل من حيث زمن الاستجابة والجودة.
|
||||
|
||||
إذا أردت حدًا فعليًا مختلفًا، فاضبط `models.providers.<provider>.models[].contextTokens`:
|
||||
إذا كنت تريد حدًا فعليًا مختلفًا، فاضبط `models.providers.<provider>.models[].contextTokens`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -269,47 +269,44 @@ ChatGPT المسجّل دخوله.
|
||||
}
|
||||
```
|
||||
|
||||
استخدم `contextWindow` فقط عندما تقوم بتعريف أو تجاوز بيانات النموذج الأصلية
|
||||
الوصفية. واستخدم `contextTokens` عندما تريد تقييد ميزانية السياق وقت التشغيل.
|
||||
استخدم `contextWindow` فقط عندما تعلن أو تتجاوز بيانات النموذج
|
||||
الوصفية الأصلية. واستخدم `contextTokens` عندما تريد تقييد ميزانية السياق في وقت التشغيل.
|
||||
|
||||
### النقل الافتراضي
|
||||
|
||||
يستخدم OpenClaw `pi-ai` لبث النموذج. ولكل من `openai/*` و
|
||||
`openai-codex/*`، يكون النقل الافتراضي هو `"auto"` (WebSocket أولًا، ثم
|
||||
التحويل الاحتياطي إلى SSE).
|
||||
يستخدم OpenClaw `pi-ai` لبث النماذج. ولكل من `openai/*` و
|
||||
`openai-codex/*`، يكون النقل الافتراضي هو `"auto"` (WebSocket أولًا، ثم الرجوع إلى SSE).
|
||||
|
||||
في وضع `"auto"`، يعيد OpenClaw أيضًا محاولة واحدة عند حدوث فشل مبكر قابل لإعادة المحاولة في WebSocket
|
||||
قبل أن يتحول احتياطيًا إلى SSE. أما وضع `"websocket"` المفروض فلا يزال يُظهر أخطاء النقل
|
||||
مباشرةً بدلًا من إخفائها وراء التحويل الاحتياطي.
|
||||
في وضع `"auto"`، يعيد OpenClaw أيضًا المحاولة مرة واحدة عند حدوث فشل مبكر قابل لإعادة المحاولة في WebSocket
|
||||
قبل أن يرجع إلى SSE. أمّا الوضع الإجباري `"websocket"` فيُظهر أخطاء النقل مباشرةً بدلًا من إخفائها خلف الرجوع الاحتياطي.
|
||||
|
||||
بعد فشل WebSocket عند الاتصال أو في الدور المبكر في وضع `"auto"`، يعلّم OpenClaw
|
||||
مسار WebSocket الخاص بتلك الجلسة على أنه متدهور لمدة تقارب 60 ثانية، ويرسل
|
||||
الأدوار اللاحقة عبر SSE خلال فترة التهدئة بدلًا من التنقل العنيف بين
|
||||
وسائل النقل.
|
||||
بعد فشل WebSocket عند الاتصال أو في بداية الدور ضمن وضع `"auto"`، يضع OpenClaw
|
||||
مسار WebSocket الخاص بتلك الجلسة في حالة متدهورة لمدة تقارب 60 ثانية ويرسل
|
||||
الأدوار اللاحقة عبر SSE أثناء فترة التهدئة بدلًا من التقلّب بين
|
||||
أنماط النقل.
|
||||
|
||||
بالنسبة إلى نقاط نهاية OpenAI الأصلية (`openai/*` و`openai-codex/*` وAzure
|
||||
OpenAI Responses)، يرفق OpenClaw أيضًا حالة مستقرة لهوية الجلسة والدور
|
||||
بالطلبات حتى تظل إعادة المحاولة وإعادة الاتصال والتحويل الاحتياطي إلى SSE منسجمة مع
|
||||
هوية المحادثة نفسها. ويتضمن ذلك على مسارات عائلة OpenAI الأصلية رؤوس هوية طلب مستقرة للجلسة/الدور بالإضافة إلى بيانات نقل وصفية مطابقة.
|
||||
وبالنسبة إلى نقاط النهاية الأصلية من عائلة OpenAI (`openai/*` و `openai-codex/*` و Azure
|
||||
OpenAI Responses)، يرفق OpenClaw أيضًا حالة هوية مستقرة للجلسة والدور
|
||||
بالطلبات بحيث تظل إعادة المحاولة، وإعادة الاتصال، والرجوع إلى SSE متسقة مع
|
||||
هوية المحادثة نفسها. وعلى مسارات عائلة OpenAI الأصلية، يتضمن ذلك رؤوس هوية مستقرة لطلب الجلسة/الدور بالإضافة إلى بيانات نقل وصفية مطابقة.
|
||||
|
||||
كما يطبع OpenClaw أيضًا عدادات استخدام OpenAI عبر متغيرات النقل المختلفة قبل
|
||||
أن تصل إلى واجهات الجلسة/الحالة. فقد يبلّغ مرور Native OpenAI/Codex Responses
|
||||
عن الاستخدام بصيغة `input_tokens` / `output_tokens` أو
|
||||
`prompt_tokens` / `completion_tokens`؛ ويتعامل OpenClaw معها على أنها عدادات
|
||||
الإدخال والإخراج نفسها بالنسبة إلى `/status` و`/usage` وسجلات الجلسات. وعندما يحذف
|
||||
مرور WebSocket الأصلي `total_tokens` (أو يبلّغ عنه بقيمة `0`)، يعود OpenClaw إلى
|
||||
إجمالي الإدخال + الإخراج المُطبّع حتى تظل عروض الجلسة/الحالة مليئة بالبيانات.
|
||||
كما يطبّع OpenClaw عدّادات استخدام OpenAI عبر تنويعات النقل قبل
|
||||
أن تصل إلى واجهات الجلسة/الحالة. فقد تُبلّغ حركة OpenAI/Codex Responses الأصلية عن الاستخدام بصيغتي
|
||||
`input_tokens` / `output_tokens` أو
|
||||
`prompt_tokens` / `completion_tokens`؛ ويعامل OpenClaw هذه الصيغ على أنها عدّادات الإدخال
|
||||
والإخراج نفسها بالنسبة إلى `/status` و `/usage` وسجلات الجلسات. وعندما تُسقط حركة
|
||||
WebSocket الأصلية `total_tokens` (أو تُبلّغ عنه على أنه `0`)، يعتمد OpenClaw على إجمالي الإدخال + الإخراج المطبع حتى تبقى عروض الجلسة/الحالة مملوءة.
|
||||
|
||||
يمكنك ضبط `agents.defaults.models.<provider/model>.params.transport`:
|
||||
|
||||
- `"sse"`: فرض SSE
|
||||
- `"websocket"`: فرض WebSocket
|
||||
- `"auto"`: جرّب WebSocket، ثم تحوّل احتياطيًا إلى SSE
|
||||
- `"auto"`: جرّب WebSocket ثم ارجع إلى SSE
|
||||
|
||||
بالنسبة إلى `openai/*` (Responses API)، يفعّل OpenClaw أيضًا الإحماء عبر WebSocket
|
||||
افتراضيًا (`openaiWsWarmup: true`) عند استخدام نقل WebSocket.
|
||||
وبالنسبة إلى `openai/*` (Responses API)، يفعّل OpenClaw أيضًا الإحماء عبر WebSocket افتراضيًا
|
||||
(`openaiWsWarmup: true`) عند استخدام نقل WebSocket.
|
||||
|
||||
وثائق OpenAI ذات الصلة:
|
||||
مستندات OpenAI ذات الصلة:
|
||||
|
||||
- [Realtime API with WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
|
||||
- [Streaming API responses (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
|
||||
@ -331,10 +328,10 @@ OpenAI Responses)، يرفق OpenClaw أيضًا حالة مستقرة لهوي
|
||||
}
|
||||
```
|
||||
|
||||
### إحماء OpenAI WebSocket
|
||||
### إحماء WebSocket في OpenAI
|
||||
|
||||
تصف وثائق OpenAI الإحماء بأنه اختياري. ويقوم OpenClaw بتفعيله افتراضيًا لـ
|
||||
`openai/*` لتقليل كمون الدور الأول عند استخدام نقل WebSocket.
|
||||
تصف مستندات OpenAI الإحماء على أنه اختياري. ويقوم OpenClaw بتفعيله افتراضيًا لـ
|
||||
`openai/*` لتقليل زمن الاستجابة في أول دور عند استخدام نقل WebSocket.
|
||||
|
||||
### تعطيل الإحماء
|
||||
|
||||
@ -372,11 +369,11 @@ OpenAI Responses)، يرفق OpenClaw أيضًا حالة مستقرة لهوي
|
||||
}
|
||||
```
|
||||
|
||||
### OpenAI وCodex والمعالجة ذات الأولوية
|
||||
### المعالجة ذات الأولوية في OpenAI وCodex
|
||||
|
||||
تعرض API الخاصة بـ OpenAI المعالجة ذات الأولوية عبر `service_tier=priority`. في
|
||||
يكشف API الخاص بـ OpenAI عن المعالجة ذات الأولوية عبر `service_tier=priority`. في
|
||||
OpenClaw، اضبط `agents.defaults.models["<provider>/<model>"].params.serviceTier`
|
||||
لتمرير هذا الحقل في نقاط نهاية Native OpenAI/Codex Responses.
|
||||
لتمرير هذا الحقل في نقاط النهاية الأصلية لـ OpenAI/Codex Responses.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -399,38 +396,38 @@ OpenClaw، اضبط `agents.defaults.models["<provider>/<model>"].params.service
|
||||
}
|
||||
```
|
||||
|
||||
القيم المدعومة هي `auto` و`default` و`flex` و`priority`.
|
||||
القيم المدعومة هي `auto` و `default` و `flex` و `priority`.
|
||||
|
||||
يمرّر OpenClaw `params.serviceTier` إلى كل من طلبات Responses المباشرة `openai/*`
|
||||
وطلبات Codex Responses من نوع `openai-codex/*` عندما تشير تلك النماذج
|
||||
إلى نقاط نهاية Native OpenAI/Codex.
|
||||
يمرّر OpenClaw `params.serviceTier` إلى كل من طلبات `openai/*` المباشرة عبر Responses
|
||||
وطلبات `openai-codex/*` عبر Codex Responses عندما تشير تلك النماذج
|
||||
إلى نقاط النهاية الأصلية لـ OpenAI/Codex.
|
||||
|
||||
سلوك مهم:
|
||||
|
||||
- يجب أن يستهدف `openai/*` المباشر `api.openai.com`
|
||||
- يجب أن يستهدف `openai-codex/*` `chatgpt.com/backend-api`
|
||||
- إذا قمت بتوجيه أي من الموفّرين عبر base URL آخر أو proxy، فإن OpenClaw يترك `service_tier` من دون تعديل
|
||||
- إذا وجّهت أيًا من المزوّدين عبر عنوان URL أساسي آخر أو وكيل، يترك OpenClaw قيمة `service_tier` كما هي
|
||||
|
||||
### وضع OpenAI السريع
|
||||
### الوضع السريع في OpenAI
|
||||
|
||||
يعرض OpenClaw مفتاح تبديل مشترك للوضع السريع لكل من جلسات `openai/*` و
|
||||
يوفّر OpenClaw مفتاح تبديل مشتركًا للوضع السريع لكل من جلسات `openai/*` و
|
||||
`openai-codex/*`:
|
||||
|
||||
- Chat/UI: `/fast status|on|off`
|
||||
- Config: `agents.defaults.models["<provider>/<model>"].params.fastMode`
|
||||
- المحادثة/واجهة المستخدم: `/fast status|on|off`
|
||||
- الإعداد: `agents.defaults.models["<provider>/<model>"].params.fastMode`
|
||||
|
||||
عندما يكون الوضع السريع مفعّلًا، يربطه OpenClaw بمعالجة OpenAI ذات الأولوية:
|
||||
عند تفعيل الوضع السريع، يربطه OpenClaw بالمعالجة ذات الأولوية في OpenAI:
|
||||
|
||||
- ترسل استدعاءات Responses المباشرة من `openai/*` إلى `api.openai.com` القيمة `service_tier = "priority"`
|
||||
- وترسل استدعاءات Responses من `openai-codex/*` إلى `chatgpt.com/backend-api` أيضًا القيمة `service_tier = "priority"`
|
||||
- يتم الحفاظ على قيم `service_tier` الموجودة في الحمولة
|
||||
- ترسل استدعاءات `openai/*` المباشرة عبر Responses إلى `api.openai.com` القيمة `service_tier = "priority"`
|
||||
- كما ترسل استدعاءات `openai-codex/*` عبر Responses إلى `chatgpt.com/backend-api` القيمة `service_tier = "priority"`
|
||||
- يتم الحفاظ على قيم `service_tier` الموجودة أصلًا في الحمولة
|
||||
- لا يعيد الوضع السريع كتابة `reasoning` أو `text.verbosity`
|
||||
|
||||
وبالنسبة إلى GPT 5.4 تحديدًا، فإن الإعداد الأكثر شيوعًا هو:
|
||||
بالنسبة إلى GPT 5.4 تحديدًا، فإن الإعداد الأكثر شيوعًا هو:
|
||||
|
||||
- إرسال `/fast on` في جلسة تستخدم `openai/gpt-5.4` أو `openai-codex/gpt-5.4`
|
||||
- إرسال `/fast on` داخل جلسة تستخدم `openai/gpt-5.4` أو `openai-codex/gpt-5.4`
|
||||
- أو ضبط `agents.defaults.models["openai/gpt-5.4"].params.fastMode = true`
|
||||
- وإذا كنت تستخدم Codex OAuth أيضًا، فاضبط `agents.defaults.models["openai-codex/gpt-5.4"].params.fastMode = true` أيضًا
|
||||
- وإذا كنت تستخدم أيضًا Codex OAuth، فاضبط `agents.defaults.models["openai-codex/gpt-5.4"].params.fastMode = true` أيضًا
|
||||
|
||||
مثال:
|
||||
|
||||
@ -455,49 +452,76 @@ OpenClaw، اضبط `agents.defaults.models["<provider>/<model>"].params.service
|
||||
}
|
||||
```
|
||||
|
||||
تتغلب تجاوزات الجلسة على config. وتؤدي إزالة تجاوز الجلسة في واجهة Sessions
|
||||
إلى إعادة الجلسة إلى القيمة الافتراضية المضبوطة.
|
||||
تتغلب تجاوزات الجلسة على الإعدادات. ويؤدي مسح تجاوز الجلسة في واجهة Sessions
|
||||
إلى إعادة الجلسة إلى الإعداد الافتراضي المضبوط.
|
||||
|
||||
### مسارات Native OpenAI مقابل المسارات المتوافقة مع OpenAI
|
||||
### مسارات OpenAI الأصلية مقابل المسارات المتوافقة مع OpenAI
|
||||
|
||||
يتعامل OpenClaw مع نقاط النهاية المباشرة لـ OpenAI وCodex وAzure OpenAI بشكل مختلف
|
||||
عن الوكلاء العامين المتوافقين مع OpenAI من نوع `/v1`:
|
||||
يعامل OpenClaw نقاط النهاية المباشرة لـ OpenAI وCodex وAzure OpenAI بشكل مختلف
|
||||
عن وكلاء `/v1` العامة المتوافقة مع OpenAI:
|
||||
|
||||
- تحافظ المسارات الأصلية `openai/*` و`openai-codex/*` ومسارات Azure OpenAI على
|
||||
`reasoning: { effort: "none" }` كما هو عندما تعطل reasoning صراحةً
|
||||
- تجعل مسارات عائلة OpenAI الأصلية مخططات الأدوات في الوضع الصارم افتراضيًا
|
||||
- لا تُرفق رؤوس الإسناد المخفية الخاصة بـ OpenClaw (`originator` و`version` و
|
||||
`User-Agent`) إلا على مضيفي OpenAI الأصليين المؤكدين
|
||||
(`api.openai.com`) ومضيفي Codex الأصليين (`chatgpt.com/backend-api`)
|
||||
- تحتفظ مسارات Native OpenAI/Codex بتشكيل الطلبات الخاص بـ OpenAI فقط مثل
|
||||
`service_tier`، و`store` الخاصة بـ Responses، والحمولات المتوافقة مع OpenAI reasoning،
|
||||
وتلميحات cache الخاصة بالتوجيه
|
||||
- تحتفظ المسارات المتوافقة مع OpenAI على نمط proxy بسلوك التوافق الأكثر مرونة، ولا
|
||||
تفرض مخططات أدوات صارمة، أو تشكيل طلبات خاص بالأصل، أو رؤوس
|
||||
- تحتفظ المسارات الأصلية `openai/*` و`openai-codex/*` ومسارات Azure OpenAI بالقيمة
|
||||
`reasoning: { effort: "none" }` كما هي عندما تعطل الاستدلال صراحةً
|
||||
- تضبط مسارات عائلة OpenAI الأصلية مخططات الأدوات على الوضع الصارم افتراضيًا
|
||||
- لا تُرفق رؤوس إسناد OpenClaw المخفية (`originator` و`version` و
|
||||
`User-Agent`) إلا على مضيفات OpenAI الأصلية المتحقق منها
|
||||
(`api.openai.com`) ومضيفات Codex الأصلية (`chatgpt.com/backend-api`)
|
||||
- تحتفظ مسارات OpenAI/Codex الأصلية بتشكيل الطلبات الخاص بـ OpenAI مثل
|
||||
`service_tier` و`store` في Responses وحمولات توافق الاستدلال الخاصة بـ OpenAI و
|
||||
تلميحات cache الموجّه
|
||||
- تحتفظ المسارات المتوافقة مع OpenAI على نمط الوكيل بسلوك التوافق الأكثر مرونة ولا
|
||||
تفرض مخططات أدوات صارمة أو تشكيل طلبات خاصًا بالمسارات الأصلية أو رؤوس
|
||||
إسناد OpenAI/Codex المخفية
|
||||
|
||||
يبقى Azure OpenAI ضمن فئة التوجيه الأصلي بالنسبة إلى سلوك النقل والتوافق،
|
||||
لكنه لا يتلقى رؤوس الإسناد المخفية الخاصة بـ OpenAI/Codex.
|
||||
يبقى Azure OpenAI ضمن فئة المسارات الأصلية من حيث سلوك النقل والتوافق،
|
||||
لكنه لا يتلقى رؤوس إسناد OpenAI/Codex المخفية.
|
||||
|
||||
يحافظ هذا على السلوك الحالي لـ Native OpenAI Responses من دون فرض طبقات
|
||||
التوافق القديمة الخاصة بـ OpenAI على الواجهات الخلفية `/v1` التابعة لجهات خارجية.
|
||||
يحافظ هذا على السلوك الحالي الأصلي لـ OpenAI Responses من دون فرض
|
||||
طبقات التوافق الأقدم الخاصة بـ OpenAI-compatible على الواجهات الخلفية الخارجية `/v1`.
|
||||
|
||||
### وضع GPT الصارم الوكيلي
|
||||
|
||||
بالنسبة إلى تشغيلات GPT-5-family عبر `openai/*` و`openai-codex/*`، يمكن لـ OpenClaw استخدام
|
||||
عقد تنفيذ Pi مضمّن أكثر صرامة:
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
defaults: {
|
||||
embeddedPi: {
|
||||
executionContract: "strict-agentic",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
مع `strict-agentic`، لم يعد OpenClaw يتعامل مع دور مساعد يقتصر على الخطة
|
||||
على أنه تقدم ناجح عندما يكون هناك إجراء أداة ملموس متاح. بل يعيد محاولة
|
||||
الدور مع توجيه للتنفيذ الفوري، ويفعّل تلقائيًا أداة `update_plan` المنظمة للأعمال
|
||||
الجوهرية، ويعرض حالة تعطّل صريحة إذا واصل النموذج
|
||||
التخطيط من دون تنفيذ.
|
||||
|
||||
هذا الوضع محصور في تشغيلات GPT-5-family عبر OpenAI وOpenAI Codex. أما المزوّدون الآخرون
|
||||
وعائلات النماذج الأقدم فيحتفظون بسلوك Pi المضمّن الافتراضي ما لم تختر
|
||||
تفعيل إعدادات تشغيل أخرى لهم.
|
||||
|
||||
### الضغط من جهة الخادم في OpenAI Responses
|
||||
|
||||
بالنسبة إلى نماذج OpenAI Responses المباشرة (`openai/*` التي تستخدم `api: "openai-responses"` مع
|
||||
`baseUrl` على `api.openai.com`)، يقوم OpenClaw الآن بتفعيل تلميحات حمولة
|
||||
الضغط من جهة خادم OpenAI تلقائيًا:
|
||||
بالنسبة إلى نماذج OpenAI Responses المباشرة (`openai/*` باستخدام `api: "openai-responses"` مع
|
||||
`baseUrl` على `api.openai.com`)، يفعّل OpenClaw الآن تلقائيًا تلميحات حمولة
|
||||
الضغط من جهة خادم OpenAI:
|
||||
|
||||
- يفرض `store: true` (إلا إذا ضبط توافق النموذج `supportsStore: false`)
|
||||
- ويحقن `context_management: [{ type: "compaction", compact_threshold: ... }]`
|
||||
- يفرض `store: true` (ما لم يضبط توافق النموذج `supportsStore: false`)
|
||||
- يحقن `context_management: [{ type: "compaction", compact_threshold: ... }]`
|
||||
|
||||
افتراضيًا، تكون قيمة `compact_threshold` هي `70%` من `contextWindow` الخاص بالنموذج (أو `80000`
|
||||
افتراضيًا، تكون قيمة `compact_threshold` مساوية لـ `70%` من `contextWindow` الخاص بالنموذج (أو `80000`
|
||||
عند عدم توفره).
|
||||
|
||||
### تفعيل الضغط من جهة الخادم صراحةً
|
||||
|
||||
استخدم هذا عندما تريد فرض حقن `context_management` على
|
||||
نماذج Responses المتوافقة (مثل Azure OpenAI Responses):
|
||||
استخدم هذا عندما تريد فرض حقن `context_management` في نماذج
|
||||
Responses المتوافقة (مثل Azure OpenAI Responses):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -515,7 +539,7 @@ OpenClaw، اضبط `agents.defaults.models["<provider>/<model>"].params.service
|
||||
}
|
||||
```
|
||||
|
||||
### التفعيل مع عتبة مخصصة
|
||||
### التفعيل مع حد مخصص
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -552,7 +576,7 @@ OpenClaw، اضبط `agents.defaults.models["<provider>/<model>"].params.service
|
||||
}
|
||||
```
|
||||
|
||||
لا يتحكم `responsesServerCompaction` إلا في حقن `context_management`.
|
||||
يتحكم `responsesServerCompaction` فقط في حقن `context_management`.
|
||||
ولا تزال نماذج OpenAI Responses المباشرة تفرض `store: true` ما لم يضبط التوافق
|
||||
`supportsStore: false`.
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user