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.📖 ملخص
- نظام Cron مدمج، لا يحتاج مجدولًا خارجيًا
- تعبير Cron قياسي + إعداد المنطقة الزمنية
- ثلاث طرق للإنشاء: ملف إعداد، سطر أوامر، محادثة
- تركيب مهارة + Cron لأتمتة سير العمل
- مراقبة وسجلات وإعادة محاولة وآليات تدهور كاملة
📝 تمارين
- أساسي (⭐): أنشئ مهمة مجدولة كل يوم 9 صباحًا ترسل "صباح الخير" عبر Telegram.
- متوسط (⭐⭐): أنشئ مهمة تجمع بين مهارة وأدوات، تلخص سجلات Git يوميًا وترسل بالبريد.
- متقدم (⭐⭐⭐): صمّم نظام جدول آلي كامل (ملخص صباحي + تذكير ظهيرة + ملخص مسائي + تقرير أسبوعي)، مع معالجة أخطاء واستراتيجية تدهور.