الانتقال إلى المحتوى الرئيسي

مساحة عمل الوكيل

مساحة العمل هي موطن الوكيل. وهي دليل العمل الوحيد المستخدم لأدوات الملفات ولسياق مساحة العمل. حافظ على خصوصيتها وتعامل معها على أنها ذاكرة. وهذا منفصل عن ~/.openclaw/، الذي يخزّن التكوين وبيانات الاعتماد والجلسات. مهم: مساحة العمل هي الدليل الحالي الافتراضي، وليست sandbox صارمة. تقوم الأدوات بحل المسارات النسبية اعتمادًا على مساحة العمل، لكن لا تزال المسارات المطلقة قادرة على الوصول إلى أماكن أخرى على المضيف ما لم يتم تمكين sandboxing. إذا كنت تحتاج إلى العزل، فاستخدم agents.defaults.sandbox (و/أو تكوين sandbox لكل وكيل). عند تمكين sandboxing وعندما لا تكون workspaceAccess مساوية لـ "rw"، تعمل الأدوات داخل مساحة عمل sandbox ضمن ~/.openclaw/sandboxes، وليس داخل مساحة عمل المضيف.

الموقع الافتراضي

  • الافتراضي: ~/.openclaw/workspace
  • إذا تم ضبط OPENCLAW_PROFILE ولم تكن قيمته "default"، يصبح الافتراضي ~/.openclaw/workspace-<profile>.
  • يمكنك التجاوز في ~/.openclaw/openclaw.json:
{
  agent: {
    workspace: "~/.openclaw/workspace",
  },
}
سيقوم openclaw onboard أو openclaw configure أو openclaw setup بإنشاء مساحة العمل وتهيئة ملفات bootstrap إذا كانت مفقودة. لا تقبل نسخ seed الخاصة بـ sandbox إلا الملفات العادية داخل مساحة العمل؛ ويتم تجاهل الأسماء البديلة من symlink/hardlink التي تُحل خارج مساحة العمل المصدر. إذا كنت تدير ملفات مساحة العمل بنفسك بالفعل، فيمكنك تعطيل إنشاء ملفات bootstrap:
{ agent: { skipBootstrap: true } }

مجلدات مساحة العمل الإضافية

قد تكون عمليات التثبيت الأقدم قد أنشأت ~/openclaw. وقد يؤدي الاحتفاظ بعدة أدلة لمساحة العمل إلى حدوث انحرافات مربكة في المصادقة أو الحالة، لأن مساحة عمل واحدة فقط تكون نشطة في كل مرة. التوصية: احتفظ بمساحة عمل نشطة واحدة. وإذا لم تعد تستخدم المجلدات الإضافية، فأرشفها أو انقلها إلى سلة المهملات (مثل trash ~/openclaw). إذا كنت تحتفظ عمدًا بعدة مساحات عمل، فتأكد من أن agents.defaults.workspace يشير إلى النشطة منها. يعرض openclaw doctor تحذيرًا عندما يكتشف أدلة إضافية لمساحة العمل.

خريطة ملفات مساحة العمل (ما الذي يعنيه كل ملف)

هذه هي الملفات القياسية التي يتوقعها OpenClaw داخل مساحة العمل:
  • AGENTS.md
    • تعليمات تشغيلية للوكيل وكيفية استخدامه للذاكرة.
    • يُحمَّل في بداية كل جلسة.
    • مكان مناسب للقواعد والأولويات وتفاصيل “كيفية التصرف”.
  • SOUL.md
  • USER.md
    • من هو المستخدم وكيفية مخاطبته.
    • يُحمَّل في كل جلسة.
  • IDENTITY.md
    • اسم الوكيل وطابعه وemoji الخاص به.
    • يُنشأ/يُحدَّث أثناء طقس bootstrap.
  • TOOLS.md
    • ملاحظات حول أدواتك المحلية والاصطلاحات الخاصة بك.
    • لا يتحكم في توفر الأدوات؛ فهو مجرد إرشاد.
  • HEARTBEAT.md
    • قائمة تحقق صغيرة اختيارية لتشغيلات heartbeat.
    • اجعله قصيرًا لتجنب استهلاك token.
  • BOOT.md
    • قائمة تحقق اختيارية عند بدء التشغيل تُنفذ عند إعادة تشغيل البوابة عندما تكون hooks الداخلية مفعلة.
    • اجعلها قصيرة؛ واستخدم أداة الرسائل للإرسال الصادر.
  • BOOTSTRAP.md
    • طقس تشغيل أولي لمرة واحدة.
    • لا يُنشأ إلا لمساحة عمل جديدة تمامًا.
    • احذفه بعد اكتمال الطقس.
  • memory/YYYY-MM-DD.md
    • سجل ذاكرة يومي (ملف واحد لكل يوم).
    • يُنصح بقراءة ملف اليوم + الأمس عند بدء الجلسة.
  • MEMORY.md (اختياري)
    • ذاكرة طويلة المدى منسقة.
    • لا تُحمَّل إلا في الجلسة الرئيسية الخاصة (وليس في السياقات المشتركة/الجماعية).
راجع الذاكرة لمعرفة سير العمل والتفريغ التلقائي للذاكرة.
  • skills/ (اختياري)
    • Skills خاصة بمساحة العمل.
    • موقع Skills الأعلى أولوية لتلك المساحة.
    • يتجاوز Skills وكيل المشروع، وSkills الوكيل الشخصية، وSkills المُدارة، وSkills المضمنة، وskills.load.extraDirs عند تعارض الأسماء.
  • canvas/ (اختياري)
    • ملفات واجهة Canvas لعرض العُقد (مثل canvas/index.html).
إذا كان أي ملف bootstrap مفقودًا، فسيحقن OpenClaw علامة “ملف مفقود” داخل الجلسة ويتابع العمل. وتُقتطع ملفات bootstrap الكبيرة عند حقنها؛ ويمكنك تعديل الحدود باستخدام agents.defaults.bootstrapMaxChars (الافتراضي: 20000) و agents.defaults.bootstrapTotalMaxChars (الافتراضي: 150000). يمكن لـ openclaw setup إعادة إنشاء الإعدادات الافتراضية المفقودة من دون الكتابة فوق الملفات الموجودة.

ما الذي لا يوجد في مساحة العمل

توجد هذه العناصر ضمن ~/.openclaw/ ويجب عدم الالتزام بها في مستودع مساحة العمل:
  • ~/.openclaw/openclaw.json (التكوين)
  • ~/.openclaw/agents/<agentId>/agent/auth-profiles.json (ملفات تعريف مصادقة النماذج: OAuth + مفاتيح API)
  • ~/.openclaw/credentials/ (حالة القنوات/المزوّدين بالإضافة إلى بيانات استيراد OAuth القديمة)
  • ~/.openclaw/agents/<agentId>/sessions/ (نصوص الجلسات + البيانات الوصفية)
  • ~/.openclaw/skills/ (Skills مُدارة)
إذا كنت تحتاج إلى ترحيل الجلسات أو التكوين، فانسخها بشكل منفصل وأبقها خارج version control.

النسخ الاحتياطي باستخدام Git (موصى به، خاص)

تعامل مع مساحة العمل على أنها ذاكرة خاصة. ضعها في مستودع git خاص حتى تكون منسوخة احتياطيًا وقابلة للاستعادة. نفّذ هذه الخطوات على الجهاز الذي تعمل عليه البوابة (فهناك توجد مساحة العمل).

1) تهيئة المستودع

إذا كان git مثبتًا، فستتم تهيئة مساحات العمل الجديدة تمامًا تلقائيًا. وإذا لم تكن مساحة العمل هذه مستودعًا بالفعل، فشغّل:
cd ~/.openclaw/workspace
git init
git add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/
git commit -m "Add agent workspace"

2) أضف remote خاصًا (خيارات مناسبة للمبتدئين)

الخيار A: واجهة GitHub على الويب
  1. أنشئ مستودعًا جديدًا خاصًا على GitHub.
  2. لا تهيّئه بملف README (لتجنب تعارضات الدمج).
  3. انسخ عنوان remote بنمط HTTPS.
  4. أضف remote وادفع التغييرات:
git branch -M main
git remote add origin <https-url>
git push -u origin main
الخيار B: GitHub CLI (gh)
gh auth login
gh repo create openclaw-workspace --private --source . --remote origin --push
الخيار C: واجهة GitLab على الويب
  1. أنشئ مستودعًا جديدًا خاصًا على GitLab.
  2. لا تهيّئه بملف README (لتجنب تعارضات الدمج).
  3. انسخ عنوان remote بنمط HTTPS.
  4. أضف remote وادفع التغييرات:
git branch -M main
git remote add origin <https-url>
git push -u origin main

3) التحديثات المستمرة

git status
git add .
git commit -m "Update memory"
git push

لا تلتزم بالأسرار

حتى في المستودع الخاص، تجنب تخزين الأسرار في مساحة العمل:
  • مفاتيح API أو OAuth tokens أو كلمات المرور أو بيانات الاعتماد الخاصة.
  • أي شيء ضمن ~/.openclaw/.
  • عمليات تفريغ خام للدردشات أو المرفقات الحساسة.
إذا اضطررت إلى تخزين مراجع حساسة، فاستخدم عناصر نائبة واحتفظ بالسر الحقيقي في مكان آخر (مدير كلمات المرور، أو متغيرات البيئة، أو ~/.openclaw/). بداية مقترحة لملف .gitignore:
.DS_Store
.env
**/*.key
**/*.pem
**/secrets*

نقل مساحة العمل إلى جهاز جديد

  1. انسخ المستودع إلى المسار المطلوب (الافتراضي ~/.openclaw/workspace).
  2. اضبط agents.defaults.workspace على ذلك المسار في ~/.openclaw/openclaw.json.
  3. شغّل openclaw setup --workspace <path> لتهيئة أي ملفات مفقودة.
  4. إذا كنت تحتاج إلى الجلسات، فانقل ~/.openclaw/agents/<agentId>/sessions/ من الجهاز القديم بشكل منفصل.

ملاحظات متقدمة

  • يمكن أن يستخدم التوجيه متعدد الوكلاء مساحات عمل مختلفة لكل وكيل. راجع توجيه القنوات لمعرفة تكوين التوجيه.
  • إذا كان agents.defaults.sandbox مفعّلًا، فيمكن للجلسات غير الرئيسية استخدام مساحات عمل sandbox لكل جلسة ضمن agents.defaults.sandbox.workspaceRoot.

ذو صلة