Hermes Agent: المهام المجدولة

آخر تحديث: 2026-08-31

المهام المجدولة تحوّل Hermes Agent إلى مساعدك الآلي المناوب — ملخص أخبار كل صباح، تقرير أسبوعي كل جمعة، بدون أن تُفعّل يدويًا.

💡 نصيحة: نظام Cron في Hermes مدمج، لا يحتاج مجدولًا خارجيًا (مثل crontab). تعريفات المهام تُكتب مباشرة في الإعداد، متكاملة بعمق مع المهارات والذاكرة.

📋 المتطلبات المسبقة: الدرس 7 — نظام المهارات

1. ما ستتعلمه

# المحتوى
بنية جدولة Cron
إنشاء المهارات وإعدادها
المهارات المُفعّلة بالتوقيت
مراقبة المهام والسجلات
معالجة الأخطاء وإعادة المحاولة

2. القصة

(1) المشكلة: عمليات يومية متكررة

Bob يقضي 15 دقيقة كل صباح: فحص البريد، مراجعة حالة Git، تصفح الأخبار التقنية. كل جمعة يكتب تقريرًا يدويًا.

(2) الحل: الوكيل في مناوبة آلية

Alice أعدّت مهام مجدولة، الوكيل يُنجز تلقائيًا:

BASH
# كل صباح 9:00
⏰ 09:00 Agent: صباح الخير! ملخص اليوم:
   - 3 رسائل غير مقروءة (1 عاجلة)
   - 2 طلبات سحب بانتظار المراجعة
   - أبرز الأخبار: إطلاق React 19 رسميًا

# كل جمعة 17:00
⏰ الجمعة 17:00 Agent: تم إنشاء التقرير الأسبوعي:
   - 12 commit مُنجز
   - 5 أخطاء مُصلحة
   - 2 طلبات سحب مدمجة
   [تم إرسال التقرير لبريدك]

3. بنية جدولة Cron

(1) البنية الأساسية

┌───────────── دقيقة (0-59)
│ ┌───────────── ساعة (0-23)
│ │ ┌───────────── يوم (1-31)
│ │ │ ┌───────────── شهر (1-12)
│ │ │ │ ┌───────────── يوم الأسبوع (0-6, 0=الأحد)
│ │ │ │ │
* * * * *

(2) تعبيرات شائعة

التعبير المعنى
0 9 * * * كل يوم 9:00
0 9 * * 1-5 أيام العمل 9:00
0 17 * * 5 كل جمعة 17:00
*/30 * * * * كل 30 دقيقة
0 9,12,18 * * * كل يوم 9:00، 12:00، 18:00
0 0 1 * * أول كل شهر منتصف الليل

4. إنشاء المهام وإعدادها

(1) عبر ملف الإعداد

YAML
cron:
  enabled: true
  timezone: "Asia/Riyadh"
  tasks:
    - name: "daily-briefing"
      schedule: "0 9 * * 1-5"
      description: "ملخص صباحي لأيام العمل"
      skill: "daily-briefing"
      notify:
        platform: "telegram"
        chat_id: 123456789
    - name: "weekly-report"
      schedule: "0 17 * * 5"
      actions:
        - type: "tool"
          name: "code_shell"
          command: "git log --since='1 week ago' --oneline"
        - type: "skill"
          name: "report-generator"
        - type: "tool"
          name: "email_send"
          to: "alice@company.com"
          subject: "التقرير الأسبوعي"

(2) عبر سطر الأوامر

BASH
hermes cron add --name "morning-briefing" --schedule "0 9 * * 1-5" --skill "daily-briefing" --notify telegram
hermes cron list
hermes cron run morning-briefing
hermes cron pause morning-briefing
hermes cron resume morning-briefing

(3) عبر المحادثة

BASH
me: كل يوم 9 صباحًا أرسل لي ملخص الأخبار التقنية
Agent: سأنشئ المهمة المجدولة:
  الاسم: tech-news-digest
  الجدولة: 0 9 * * *
  الإجراءات: web_search → summarize → notify
  تأكيد الإنشاء؟ (y/n)
me: y
Agent: ✅ تم إنشاء المهمة المجدولة "tech-news-digest"!

5. المهارات المُفعّلة بالتوقيت

(1) تركيب مهارة + Cron

YAML
name: "daily-briefing"
type: "cron-triggered"
actions:
  - type: "tool"
    name: "email_check"
    params:
      folder: "inbox"
      unread_only: true
  - type: "tool"
    name: "code_shell"
    command: "git -C ~/projects log --since='1 day ago' --oneline"
  - type: "tool"
    name: "web_search"
    query: "أخبار تقنية ذكاء اصطناعي تطوير"

(2) التنفيذ المشروط

YAML
cron:
  tasks:
    - name: "pr-review-reminder"
      schedule: "0 10 * * 1-5"
      condition: "pending_prs > 0"
      actions:
        - type: "tool"
          name: "github_api"
          endpoint: "/repos/{owner}/{repo}/pulls"
          params:
            state: "open"

6. مراقبة المهام والسجلات

BASH
hermes cron history

# ┌──────────────────┬──────────┬─────────┬────────┐
# │ Task             │ Schedule │ Status  │ Duration│
# ├──────────────────┼──────────┼─────────┼────────┤
# │ daily-briefing   │ 0 9 * *  │ ✅ OK   │ 12s    │
# │ weekly-report    │ 0 17 * 5 │ ✅ OK   │ 45s    │
# │ code-quality     │ 0 2 * *  │ ❌ FAIL │ 3s     │
# └──────────────────┴──────────┴─────────┴────────┘

7. معالجة الأخطاء وإعادة المحاولة

YAML
cron:
  tasks:
    - name: "api-health-check"
      schedule: "*/5 * * * *"
      actions:
        - type: "tool"
          name: "web_api"
          url: "https://api.example.com/health"
      retry:
        max_attempts: 3
        backoff: "exponential"
        initial_delay: 5
        max_delay: 60
      on_failure:
        notify: "telegram"
        message: "⚠️ فشل فحص صحة API بعد 3 محاولات"

❓ أسئلة شائعة

س هل المهام المجدولة دقيقة؟
ج دقيقة على مستوى الدقيقة. قد يكون هناك بضع ثوانٍ تباين بسبب حمل النظام.
س ماذا يحدث للمهام عند إيقاف التشغيل؟
ج المهام في فترة الإيقاف تُفوَّت. اختياري: run_on_startup: true لتنفيذ المهام الفائتة عند التشغيل.
س هل يمكن جدولة المهارات والأدوات؟
ج نعم. Cron يمكنه تفعيل أي مهارة أو سلسلة أدوات أو أمر Shell أو استدعاء API.
س كيف أضبط المنطقة الزمنية؟
ج cron.timezone في الإعداد، الافتراضي يتبع منطقة النظام. يدعم جميع أسماء IANA.

📖 ملخص


📝 تمارين

  1. أساسي (⭐): أنشئ مهمة مجدولة كل يوم 9 صباحًا ترسل "صباح الخير" عبر Telegram.
  2. متوسط (⭐⭐): أنشئ مهمة تجمع بين مهارة وأدوات، تلخص سجلات Git يوميًا وترسل بالبريد.
  3. متقدم (⭐⭐⭐): صمّم نظام جدول آلي كامل (ملخص صباحي + تذكير ظهيرة + ملخص مسائي + تقرير أسبوعي)، مع معالجة أخطاء واستراتيجية تدهور.
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%