أبحاث Nous · معهد ماساتشوستس للتكنولوجيا مفتوحة المصدر · 2026
كيفية نشر وكيل Hermes على Oracle VM مجانًا
OCI Free Tier ARM في الممارسة · Always Free: 2 vCPU / 12GB RAM (منذ 2026-06-15) · PAYG: 4 OCPU / 24GB دون تأثر (انظر §15) · نظام 24/7 وكيل الذكاء الاصطناعي السحابي بدون تكلفة، تم التخلص من جميع المخاطر بالنسبة لك
⚡ يُحدَّث هذا الدليل باستمرار (آخر قياس 2026-09). يجب إبقاء جميع الموارد ضمن حصة "Always Free" وإلا فستُفرض رسوم؛ حسابات PAYG غير متأثرة بتنصيف 2026-06-15 (انظر §15).
جدول المحتويات
0%
أبحاث Nous · MIT مفتوح المصدر
نشر Hermes Agent على Oracle VM مجانًا
Always Free ARM · وكيل ذكاء اصطناعي 24/7 بتكلفة صفر
Hermes Agent هو إطار عمل مفتوح المصدر للذكاء الاصطناعي (بروتوكول MIT) تم تطويره بواسطة Nous Research - فهو يقرأ الملفات ويكتب التعليمات البرمجية وينفذ الأوامر ويتحكم في المتصفحات على الجهاز. إنه غير مرتبط بأي مصنع للنماذج ويحتوي على بوابة Telegram مدمجة. ضعه على جهاز VM المجاني الدائم من Oracle وسيصبح وكيل سحابي يعمل بالذكاء الاصطناعي على مدار 24 ساعة طوال أيام الأسبوع دون انقطاع.
إدارة خدمة systemd: التشغيل التلقائي عند التمهيد، وإعادة التشغيل تلقائيًا بعد التعطل، وفصل SSH، كل ذلك يعمل كالمعتاد.
💰
مجانا إلى الأبد
ARM 2 vCPU + ذاكرة 12 جيجابايت + قرص 200 جيجابايت (Always Free، منذ 2026-06-15)؛ حساب PAYG يحتفظ بـ 4 OCPU / 24GB (انظر §15)
🔄
حرية النموذج
يمكنك الاختيار من بين DeepSeek / OpenAI / Anthropic / Google، ما عليك سوى تغيير المورد وتغيير التكوين.
💬
برقية الأصلي
بوابة مدمجة، وهي خدمة نظام تقوم بالرد تلقائيًا على مدار الساعة طوال أيام الأسبوع
🖥️
صفر القلق التشغيلي
إعادة التشغيل التلقائي بعد التعطل + سجل Journald + النسخ الاحتياطي عن بعد، لا يمكنك حتى النوم.
1. سجل
1قم بالتسجيل للحصول على حساب Oracle Cloud Free Tier
انتقل إلى صفحة التسجيل
https://signup.cloud.oracle.com/
املأ اسمك وبريدك الإلكتروني والبلد/المنطقة.
اختر المنطقة الرئيسيةمفتاح
تأكد من الاختياريدعم مثيلات Ampere ARMالمنطقة (لا يمكن تغييرها بعد المنطقة الرئيسية): أوساكا / طوكيو / باريس / فرانكفورت / أشبورن / فينيكس كلها مدعومة.
إذا اخترت المنطقة الرئيسية الخاطئة، فلن تكون هناك مثيلات ARM - وسيحدد هذا ما إذا كان سيكون لديك 4 أجهزة خالية من vCPU لاحقًا.
التحقق من بطاقة الائتمان
مطلوب بطاقة ائتمان أو خصم صالحة. ستقوم Oracle بخصم العقد مؤقتًا1 دولار أمريكيالتحقق والعودة بعد بضعة أيام.لا يتم قبول البطاقات الافتراضية أو المدفوعة مسبقًا.
في انتظار التنشيط
عادة بضع دقائق إلى بضع ساعات. قم بتسجيل الدخول بعد تلقي رسالة التنشيط الإلكترونيةcloud.oracle.com.
⚠️ مجاني لا يعني غير محدود:الموارد التي تتجاوز الحد "المجاني دائمًا" ستتحمل رسومًا. يوصى بالترقية إلى Pay-As-You-Go (لا يزال 0 دولارًا، ولكن يمكن حلها عندما تكون السعة غير كافية، وهو أيضًا ترياق لنقص السعة باستخدام ARM المجاني).
2. إنشاء جهاز افتراضي
2إنشاء مثيل حوسبة OCI (VM)
افتح صفحة الإنشاء
وحدة تحكم OCI →حساب → المثيلات → إنشاء مثيل. يجب أن تعرض المنطقة التسمية "المؤهلة مجانًا دائمًا".
اختيار ملف الصورة
تغيير الصورة → اختيارأوبونتو 22.04 LTS أو 24.04 LTS.
اختر مواصفات المثيليوصى باستخدام ARM Ampere
يخطط
مواصفة
اقتراح
الذراع أمبير A1
VM.Standard.A1.Flex- 2 وحدات معالجة مركزية + 12 جيجا بايت رام (كان 4/24 قبل 2026-06-15)
✅ القوة الرئيسية (الأكبر ضمن الحصة المجانية)
x86مايكرو
VM.Standard.E2.1.Micro— 1/8 وحدة المعالجة المركزية + 1 جيجابايت
❌ رفيع جدًا، ولا يصلح إلا للاختبار
مفتاح الشبكة + SSH
استخدم شبكة VCN/الشبكة الفرعية الافتراضية وحدد "تعيين عنوان IPv4 عام". حدد SSH "لصق المفاتيح العامة" والصق مفتاحك العام (قم بإنشائه إذا لم يكن متاحًا محليًا):
⚠️ تذكر:أوراكل لديها طبقتين من جدار الحماية— بالإضافة إلى UFW/iptables داخل الجهاز الظاهري، توجد أيضًا قائمة الأمان الخاصة بـ OCI VCN (تمت مناقشتها في القسم 10). يجب فتح كلا الطابقين أولاً.
الإكمال التلقائي: تثبيت uv → إنشاء Python 3.11 venv → تثبيت أكثر من 100 تبعية → تثبيت Node.js → تثبيت cua-driver.
إعادة تحميل + التحقق
source ~/.bashrc
hermes --version
إلى رقم الإصدار (على سبيل المثالhermes 0.14.0) يعني النجاح. مسار التثبيت هو~/.local/bin/hermes، المنصوص عليها~/.hermes/.
⚠️ حفرة الاختبار الفعلي لـ ARM: فشل تنزيل HTTP/2.قد يتم الإبلاغ عن البرنامج النصي للتثبيت عند تنزيل Node.jscurl: (92) HTTP/2 stream error. حل:Ctrl+Cالإنهاء → تنزيل Node.js يدويًا لـ ARM باستخدام HTTP/1.1:
⚠️ المأزق: هناك نوعان من مفتاح DeepSeek!قد يكون الأشخاص الذين استخدموا Claude Code + DeepSeek مخطئين - أحدهما يستخدم بواسطة Claude CodeANTHROPIC_AUTH_TOKEN، أحدهما هو المفتاح الأصلي لمنصة DeepSeek،كلاهما لهما نفس التنسيق ولكن بقيم مختلفة. استخدم المفتاح الأصلي للمنصة؛ الإبلاغ 401 يعني خطأ رئيسي. اختبار سريع:
على خادم Linux، يجب على البوابة تشغيل systemd من أجل: البدء التلقائي عند التمهيد، وإعادة التشغيل التلقائي عند التعطل، والبقاء على اتصال على مدار الساعة طوال أيام الأسبوع، ومواصلة التشغيل بعد قطع اتصال SSH.
تثبيت البوابة
hermes gateway install
إنشاء ملف خدمة systemd يدويًاالخطوات الأساسية
⚠️المأزق الأكبر هو أن systemd لا يستطيع قراءة ملفات .env!يجب كتابة متغيرات البيئة مباشرة في ملف الخدمة، وإلا ستكون جلسة الروبوت "لم يتم تمكين منصات المراسلة".
الدروس المستفادة من الاختبار الفعلي (جهازنا):لتعديل ملف الخدمة يمكنك كتابته محليا وتحميله أولا -sudo cpيدخل/etc/systemd/system/مرة أخرىdaemon-reloadفقط يجب أن. فضلاً عن ذلكقبل استخدام systemd على الروبوت، يجب عليك إنهاء عملية الاقتراع القديمة.وإلا فسوف يقوم Telegram بالإبلاغ عن تعارض 409 (يتنافس تحديثان على نفس الروبوت في نفس الوقت). أخيراhermes git pull --rebaseتذكر إعادة تشغيل الخدمة بعد التحديث.
8. برقية
8الوصول إلى بوت تيليجرام
قم ببناء روبوت مع @BotFather
بحث برقية@BotFather→/newbot→ تعيين الاسم/اسم المستخدم →رمز بوت(شكل123456:ABC-DEF1234ghiJKL). قم بتخزينه بشكل صحيح وتجنب التسرب.
احصل على معرف Telegram الرقمي الخاص بك
يبحث@userinfobot→/start→ معرف رقمي (على سبيل المثال123456789).
سجل انظر✓ telegram connected، ثم تحدث إلى الروبوت الخاص بك على Telegram واحصل على رد.
نصائح لاستكشاف الأخطاء وإصلاحها:ليس لدى الروبوت أي استجابة → ①sudo systemctl status hermes-gatewayتشغيل النظام → ② السجلjournalctl -u hermes-gateway -f→ ③ انظرNo messaging platforms enabled= لم تتم قراءة الرمز المميز → ④ تحقق من بيئة ملف الخدمة → ⑤daemon-reload+restart→ ⑥ تحقق مرة أخرى.
قاعدة اللغة الحرجة: يجب عليك الرد باللغة الصينية (繁体中文) في جميع الأوقات.
The user speaks Chinese. Never use English unless the user explicitly asks.
(اختياري) أدخل المعرفة بالمشروع
يمكن لـ SOUL.md كتابة الهوية والمهارات وبنية المشروع ومواصفات الترميز والأوامر شائعة الاستخدام - وتصبح "الذاكرة طويلة المدى" لشركة Hermes ويتم الرجوع إليها في كل محادثة.
إعادة التشغيل تصبح نافذة المفعول
sudo systemctl restart hermes-gateway
بعد تغيير SOUL.md، يجب عليك إعادة تشغيل البوابة حتى تدخل حيز التنفيذ.
10. جدار الحماية
10جدار الحماية وقواعد الأمان (يجب تشغيل كلتا الطبقتين)
أوراكل VM لديهاجدار الحماية ذو طبقتين: قائمة الأمان الخاصة بـ OCI VCN (الطبقة السحابية) + UFW (طبقة النظام) داخل المثيل. لن يُسمح بمرور كلا الطابقين حتى يتم إخلاءهما أولاً.
▎10.1 قائمة أمان OCI (الطبقة السحابية)
فتح القواعد الواردة
وحدة تحكم OCI ← الشبكات ← شبكات السحابة الافتراضية ← حدد VCN ← الشبكات الفرعية ← قوائم الأمان ← قائمة الأمان الافتراضية ← إضافة قواعد الدخول:
نوع المصدر
المصدر CIDR
ميناء
يستخدم
CIDR
0.0.0.0/0
إثنان وعشرون
سش
CIDR
0.0.0.0/0
80
HTTP
CIDR
0.0.0.0/0
443
HTTPS
إذا قمت بتثبيت WebUI، فستحتاج إلى فتح المنفذ المقابل (مثل 8787).
▎10.2 جدار الحماية المثيل (طبقة النظام)
sudo ufw status verbose
يجب أن نرى22 / 80 / 443 ALLOW IN. قد يحتاج مستخدمو Oracle Linux إلى تغيير iptables مباشرةً إذا لم يستجب UFW.
⚠️ دروس من الاختبار الفعلي: "NSG ≠ iptables" من OCI.إذا قمت بفتح قائمة الأمان في وحدة التحكم ولكنك لا تزال غير قادر على الاتصال، فمن الأفضل التحقق من iptables في VM - تأكد أولاً مما إذا كانت طبقة OCI (قائمة الأمان / NSG) مسموحة أم لا. الطابقين مستقلين.أي طبقة تمنعها سوف تفشل.. Zhong You: في كثير من الأحيان تم احتلال 443 بواسطة خدمات أخرى (مثل وكيل صندوق الغناء). قبل فتح المنفذss -tlnpنلقي نظرة على الموقع أدناه.
سبب:لا تزال عملية الاقتراع القديمة تتنافس مع البوابة للحصول على رمز الروبوت. يحل:قبل البدء بالخدمةpkill -f "hermes"أو مباشرةpkill -f polling،مرة أخرىsystemctl start hermes-gateway.
س: تم تشغيل البوابة ولكن الروبوت لا يستجيب تمامًا؟
سبب:9 Systemd لا يقرأ متغيرات البيئة. يظهر السجلNo messaging platforms enabledأي أنه لم يتم تحميل الرمز المميز. يحل:قم بتأكيد ملف الخدمةEnvironment=يتم ملء كافة المتغيرات الخمسة في →daemon-reload+restart→ اقرأ السجل مرة أخرى.
س: تُبلغ DeepSeek API عن فشل المصادقة 401؟
سبب:يتم استخدام المفتاح الخاطئ (رمز كلود الأول) أو تنتهي صلاحية المفتاح. يحل:استخدم الضفيرة لاختبار المفتاح (انظر الفقرة 6) ← إعادة بناء النظام الأساسي ← تحديث ملف الخدمةDEEPSEEK_API_KEY→daemon-reload+restart.
س: فشل/انتهت مهلة اتصال SSH؟
التحقق من الطلب:① هل قائمة أمان OCI مفتوحة؟ 22 → ② IP العام نعم → ③ أذونات المفاتيحchmod 400 ~/.ssh/id_rsa→ ④ اسم المستخدم (لـ Ubuntuubuntu).
س: هل نفدت الذاكرة (OOM)؟
في الأساس، لن تواجه هذا مع مثيلات ARM 2 vCPU / 12 جيجابايت. يحتاج x86 micro إلى إضافة Swap أولاً: sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile انضم مرة أخرى/etc/fstabفعالة بشكل دائم.
س: هل ستقوم شركة Oracle بإعادة تدوير جهازي؟
ستقوم Oracle بإعادة تدوير المثيلات المجانية ذات فترات طويلة من النشاط المنخفض. تعد عملية تشغيل البوابة على مدار الساعة طوال أيام الأسبوع بحد ذاتها نشاطًا مستمرًا؛ إذا كنت تريد أن تكون أكثر استقرارًا، يمكنك إضافة keepalive: crontab -e→ انضم*/30 * * * * echo "keepalive $(date)" >> ~/keepalive.log
tar -czvf hermes-backup-$(date +%Y%m%d).tar.gz \
~/.hermes/config.yaml ~/.hermes/.env ~/.hermes/SOUL.md \
~/.hermes/logs/ /etc/systemd/system/hermes-gateway.service
# التراجع إلى المحلية
scp ubuntu@<your public IP>:~/hermes-backup-*.tar.gz ./
config.yaml(يثبت)،.env(مفتاح)،SOUL.md(الذاكرة طويلة المدى)، ملفات خدمة systemd - هذه الإضافات الأربعة هي "روح" الجهاز، بدونها تكون مثل البدء من الصفر.
تدوير مفتاح API، والتحقق من سلامة محرك الأقراص/النسخ الاحتياطي عن بعد
⚠️ لا تفترض أن تحديث apt "آمن": ترقية docker-ce / containerd تعيد تشغيل خدمة Docker، فتُعاد جميع الحاويات. قياس فعلي (2026-09-16): أثناء إعادة التشغيل لم تستطع Pi-hole ربط منفذها فتوقفت بصمت، وسقطت معها كل مصافحات الوكيل — وأظهر العملاء "المنفذ غير مفتوح" مع أن 443 و853 كانتا تستمعان. بعد أي ترقية تحقّق من ثلاثة أمور: docker ps لكل الحاويات، وsystemctl status sing-box، واتصال حقيقي بالوكيل (انظر §16).
▎14.3 توصيات السلامة
تحديث حزمة النظام بانتظام؛ بعد تحديث النواةsudo reboot
ليس من السهل استخدام الجذر لتشغيل Hermes (استخدم مستخدم ubuntu)
حدTELEGRAM_ALLOWED_USERS، لمنع الاستخدام غير المصرح به
تحقق بانتظام من استخدام واجهة برمجة التطبيقات (API) لتجنب الإنفاق الزائد غير المتوقع
زائدة
15 ⚠️ 2026-06-15: Oracle خفّض الطبقة المجانية بصمت
في 2026-06-15 غيّرت Oracle بصمت وثائق Always Free بدون أي إعلان أو بريد إلكتروني: انخفض حد ARM من 4 OCPU / 24GB → 2 OCPU / 12GB (السقف الشهري 3,000 OCPU-hrs + 18,000 GB-hrs → 1,500 + 9,000). حركة المرور الصادرة تبقى 10TB/شهر (دون تغيير).
PAYG: ✅ تأكيد رسمي كتابي من دعم Oracle (2026-08-03) — غير متأثر؛ أبقِ مثيل 4 OCPU/24GB الحالي، لا تصغير ولا فوترة ولا موعد نهائي
⚠️ التحذير الوحيد (أقرّت به Oracle): المثيل المتوقف يمكن إعادة تشغيله طبيعيًا؛ أما إذا أُنهي، فإعادة إنشاء نفس التكوين تعتمد على سعة ARM في أوساكا حينها. التأمين جاهز: نسخة احتياطية لقرص التمهيد OCI + نسخة خارجية على Drive.
"All tenancies get the first 1,500 OCPU hours and 9,000 GB hours per month for free for VM instances using the VM." "you can create one or two OCI Ampere A1 Compute instances, 2 OCPUs total."
▎15.3 رد الدعم الرسمي حرفيًا (2026-08-03، استفسار PAYG)
"Thank you for providing the details. Since your tenancy is a Pay As You Go (PAYG) account, you do not need to worry about the recent Always Free Ampere A1 resource limit update. Your existing 4 OCPU / 24 GB A1 instance does not need to be resized as a result of this policy change. You will not be billed for your existing 4 OCPU / 24 GB A1 instance solely because of the Always Free limit update. The reduction to 2 OCPUs / 12 GB RAM applies only to Always Free tenancies, not to PAYG accounts. There is no deadline requiring PAYG customers to resize existing A1 instances because of this change. If your instance is stopped, you can start it again normally. However, if it is terminated, the ability to recreate an instance with the same configuration depends on current capacity availability in your selected region. The reduction in the Always Free Ampere A1 allocation applies only to Always Free tenancies. PAYG and other paid tenancy types are not affected by this specific policy change. Based on the information available, your existing 4 OCPU / 24 GB A1 instance on your PAYG tenancy will continue to operate under the terms applicable to your paid account and will not incur charges solely because of this Always Free policy update."
▎15.4 إجماع المجتمع (2026-07)
Reddit r/selfhosted PSA (1.5K صوت): "قلّص قبل 15 يونيو لتجنب الرسوم"
التنفيذ غير متسق: حسابات كثيرة ما زالت تشغّل 4/24 دون مشاكل؛ قائمة الأسعار الرسمية ما زالت تعرض 3K/18K
⚠️ الخطر الأكبر: نقص سعة ARM (تقارير كثيرة عن "سعة غير كافية") — إذا توقف مثيلك، قد لا تستطيع حتى إعادة إنشاء 2/12
نسخة احتياطية خارجية على Drive: tar.gz للإعدادات (~/.hermes, nginx, systemd, crontab) يوميًا → Google Drive (انظر §14)
لا توقف المثيل عشوائيًا: خلال فترة grandfather قد لا تستعيده أبدًا
▎15.6 بدائل (إذا انهارت Oracle)
الحاجة
الخيار
التكلفة
IP ياباني + الأرخص
الاحتفاظ بـ Oracle 2/12
$0
IP ياباني (مدفوع)
Contabo أوساكا 4vCPU/8GB | Vultr طوكيو 1-2GB
~€7/شهر | $5-6/شهر
بدون حاجة لـ IP ياباني
RackNerd 1GB | GCP e2-micro
~$1/شهر | $0
لأغراض GFW
VLESS/REALITY (يعمل على أي VPS) + CF Worker احتياطي
من $0
💡 ملاحظة GFW: عناوين IP لمراكز بيانات Oracle/Contabo تميل للحظر مع الوقت؛ REALITY يقاوم الفحص النشط؛ CF Worker (edgetunnel) قناة احتياطية مجانية.
16 مراقبة الطبقة المجانية + تقرير الفاتورة اليومي (OCI Usage API)
لن تُخبرك Oracle بمقدار ما استهلكته من الحد المجاني — عادةً تكتشف ذلك عند ظهور رسوم. في هذا القسم نسحب الاستهلاك الحقيقي من Usage API الرسمي كل يوم، ونتوقّع نهاية الشهر، وننبّه عند تجاوز 90%، ثم يرسله Hermes إلى Telegram. كل الأرقام مباشرة من الـ API وليست مكتوبة يدويًا.
▎16.1 تثبيت OCI CLI ومفتاح API
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
~/bin/oci setup config # تفاعلي: Tenancy OCID / User OCID / Region / توليد المفاتيح
ثم من الـ Console: الصورة الرمزية (أعلى اليمين) → My profile → API keys → Add API key → الصق محتوى ~/.oci/oci_api_key_public.pem. وسجّل Tenancy OCID — فهو قيمة --tenant-id أدناه. بعد ذلك تقرأ كل الاستعلامات ~/.oci/config مباشرة دون تسجيل دخول.
الوثائق مقابل الواقع: في هذه النسخة من الـ CLI لا وجود لـ oci limits / oci iam limit*، لذا لا يمكن قراءة الحد المجاني من quota API — استخرجها من Usage API أدناه.
▎16.2 الأمران الأساسيان (مُختبران؛ الوثائق ناقصة)
TENANCY=ocid1.tenancy.oc1..xxxx # معرّف Tenancy الخاص بك
S=$(date -d "$(date +%Y-%m-01)" +%Y-%m-%d) # أول يوم من الشهر
E=$(date -d tomorrow +%Y-%m-%d)
# (1) التكلفة (منذ بداية الشهر / الأمس)
~/bin/oci usage-api usage-summary request-summarized-usages \
--tenant-id $TENANCY \
--time-usage-started ${S}T00:00:00Z --time-usage-ended ${E}T00:00:00Z \
--granularity MONTHLY --query-type COST --output json
# (2) استهلاك الطبقة المجانية (مجمّع حسب service + skuName)
~/bin/oci usage-api usage-summary request-summarized-usages \
--tenant-id $TENANCY \
--time-usage-started ${S}T00:00:00Z --time-usage-ended ${E}T00:00:00Z \
--granularity MONTHLY --query-type USAGE \
--group-by '["service","skuName"]' --output json
صف الـ API (service · skuName)
مقياس الطبقة المجانية
الوحدة
Compute · Standard - A1
معالج ARM
OCPU·ساعة
Compute · Standard - A1 - Memory
ذاكرة ARM
GB·ساعة
Block Storage · Block Volume - Free
إجمالي التخزين
GB
Virtual Cloud Network · Outbound Data Transfer*
الحركة الصادرة
GB
⚠️ ثلاث مصائد مُختبرة:
المسار الصحيح هو usage-api usage-summary request-summarized-usages. أما usage-api request-summarized-usages وusage-api query ... (للاستعلامات المحفوظة فقط) فيعطيان Error: No such command.
عندما لا يجد oci ... list شيئًا فإنه يعيد rc=0 مع stdout فارغ تمامًا (وليس {"data": []}) → يفشل json.loads. تعامل معه بـ if not out: return {"data": []}.
الكلمة المفتاحية Standard - A1 تطابق أيضًا صف الذاكرة → ساعات OCPU = qty("A1") − qty("A1 - Memory")، وإلا تضاعف الرقم.
▎16.3 الربط مع Hermes: إرسال يومي إلى Telegram عند 08:00
# 1) سكربت التقرير (ما يطبعه stdout هو نص رسالة Telegram)
nano /home/ubuntu/oci-billing/oci_billing_report.py
# 2) يقبل Hermes cron ملفات ~/.hermes/scripts/ فقط، لذا أضف غلافًا رقيقًا
echo '#!/bin/bash' > ~/.hermes/scripts/oci_billing_report.sh
echo 'exec python3 /home/ubuntu/oci-billing/oci_billing_report.py' >> ~/.hermes/scripts/oci_billing_report.sh
chmod +x ~/.hermes/scripts/oci_billing_report.sh
# 3) أنشئ مهمة no_agent (بدون أي توكنات LLM؛ يُرسل stdout كما هو)
hermes cron create "0 8 * * *" --name "OCI daily billing report" \
--script oci_billing_report.sh --no-agent --deliver origin
# 4) شغّلها مرة الآن
hermes cron run <job_id>
--no-agent يعني عدم استدعاء أي LLM — يُرسل stdout كما هو، وstdout الفارغ لا يرسل شيئًا (نمط watchdog). غيّر الموعد بتعديل تعبير cron، مثل "30 7 * * 1" = كل اثنين 07:30. crontab النظام يكفي أيضًا، لكن hermes cron يضيف سجل تنفيذ وإشعارات فشل.