🤖HermesBlog
Hermes Official Tutorials · جزء 108/9/2026

الدرس 10: نقاط الحفظ — زر التراجع الخاص بالذكاء الاصطناعي

Tutorial 10: Checkpoints — AI's Undo Button — easy-to-understand guide based on official docs

Hermes tutorial

الدرس 10: نقاط الحفظ — زر التراجع الخاص بالذكاء الاصطناعي

تذكر ذلك الشعور المزعج عندما تدرك أنك حذفت شيئًا مهمًا؟ ربما كان ملفًا قضيت ساعات في العمل عليه، أو تعديلًا في الإعدادات كسّر كل شيء. في العالم الحقيقي، لا يوجد Ctrl+Z لنظام الملفات. لكن في Hermes Agent، يوجد — ويُسمى نقاط الحفظ (Checkpoints).

تخيّل نقاط الحفظ مثل نقاط الحفظ في ألعاب الفيديو. قبل أن يقوم وكيل الذكاء الاصطناعي بشيء محفوف بالمخاطر — مثل الكتابة فوق ملف أو تنفيذ أمر مدمر — يمكنه أخذ لقطة سريعة لمشروعك. إذا حدث خطأ ما، يمكنك العودة إلى تلك اللقطة بأمر واحد. إنه مثل امتلاك زر تراجع لمشروعك بالكامل.

تفعيل شبكة الأمان

لنكن صريحين: نقاط الحفظ اختيارية في Hermes v2. معظم المستخدمين لا يحتاجونها أبدًا، والتخزين قد ينمو مع الوقت. لكن إذا كنت تعمل على شيء مهم، فهي منقذة للحياة.

لديك طريقتان لتفعيلها:

لكل جلسة (لمحادثة واحدة فقط):

hermes chat --checkpoints

بشكل عام (في ~/.hermes/config.yaml):

checkpoints:
  enabled: true

هذا كل شيء. بمجرد التفعيل، يقوم Hermes تلقائيًا بالتقاط لقطات لمشروعك قبل أي شيء مدمر.

ما الذي يُطلق نقطة حفظ؟

Hermes ذكي في تحديد متى يلتقط اللقطات. يراقب:

  • عمليات الملفات — مثل write_file و patch
  • أوامر الطرفية المدمرة — مثل rm، mv، sed -i، truncate، وحتى git reset أو git clean

أفضل جزء؟ يقوم بإنشاء نقطة حفظ واحدة على الأكثر لكل مجلد في كل دورة، لذا لن تمتلئ جلساتك الطويلة بمئات اللقطات.

العودة للخلف: أوامر الشرطة المائلة

عندما تكون في جلسة محادثة، /rollback هو صديقك المفضل:

الأمر وظيفته
/rollback يعرض جميع نقاط الحفظ مع إحصائيات التغييرات
/rollback <N> يستعيد نقطة الحفظ N، مع الحفاظ على تعديلاتك اليدوية
/rollback <N> --all استعادة كاملة — يتجاوز تعديلاتك اليدوية أيضًا
/rollback diff <N> يعرض معاينة التغييرات بين نقطة الحفظ N والآن
/rollback <N> <file> يستعيد ملفًا واحدًا فقط من نقطة الحفظ N

الافتراضي /rollback <N> ذكي — يحافظ على أي تغييرات قمت بها يدويًا، ولا يتراجع إلا عن ما فعله الوكيل. إذا أردت مسحًا كاملاً، استخدم --all.

إدارة المخزن من الطرفية

خارج المحادثة، لديك أوامر CLI لفحص وإدارة نقاط الحفظ:

hermes checkpoints              # عرض الحجم، المشاريع، التفاصيل
hermes checkpoints status       # نفس ما سبق
hermes checkpoints list         # اسم مستعار للحالة
hermes checkpoints prune        # تنظيف البيانات اليتيمة والقديمة
hermes checkpoints clear        # حذف كل شيء (يسأل أولاً)
hermes checkpoints clear-legacy # إزالة أرشيفات الترحيل القديمة v1

كيف يعمل تحت الغطاء؟

قد تتساءل: “هل يتعارض هذا مع مستودع git الحقيقي الخاص بي؟” لا. يحتفظ Hermes بـ“مخزن ظل” منفصل في ~/.hermes/checkpoints/store/. لا يتم لمس .git الفعلي لمشروعك أبدًا.

جميع مشاريعك تشارك هذا المخزن الواحد، ولأن git يعتمد على عنونة المحتوى، فإن الملفات التي تظهر في مشاريع متعددة تُخزن مرة واحدة فقط. إنه فعال بشكل مدهش.

ضبط الإعدادات

يمكنك التحكم في مقدار التخزين الذي تستخدمه نقاط الحفظ:

checkpoints:
  enabled: true
  max_snapshots: 20           # الحد الأقصى لنقاط الحفظ لكل مشروع
  max_total_size_mb: 500      # سقف صارم لحجم المخزن الإجمالي
  max_file_size_mb: 10        # تخطي الملفات الأكبر من هذا الحجم
  auto_prune: true            # تنظيف تلقائي للعناصر القديمة
  retention_days: 7           # الاحتفاظ بالعناصر لمدة 7 أيام
  min_interval_hours: 24      # التنظيف مرة واحدة يوميًا على الأكثر

ميزة التنظيف التلقائي ذكية — تنظف العناصر القديمة عند بدء التشغيل لكنها لا تحذف أبدًا العناصر “اليتيمة” (المشاريع التي لا يتم العثور على مجلداتها). وذلك لأن المجلد المفقود قد يعني فقط أن قرصًا خارجيًا غير موصول بعد. لتنظيف العناصر اليتيمة، ستحتاج إلى تشغيل hermes checkpoints prune يدويًا.

زر التراجع لمشروعك

تمنحك نقاط الحفظ الثقة للسماح لوكيل الذكاء الاصطناعي بالعمل بحرية، مع العلم أنه يمكنك دائمًا العودة بالزمن إلى الوراء. سواء كنت تعيد هيكلة الكود، أو تجرب إعدادات، أو تريد فقط راحة البال، فإن تفعيلها يستحق العناء.

جرّبها في جلستك القادمة مع hermes chat --checkpoints. قد لا تحتاج أبدًا إلى التراجع — لكن إذا احتجت، ستكون سعيدًا بوجودها.

📖 التوثيق الرسمي

この記事は Hermes Agent のالتوثيق الرسميに基づいています:التوثيق الرسمي › user-guide/checkpoints-and-rollback