المُشغِّلات: وضع webhook

وكيلك يبدأ حين
يحدث شيء فعلًا

يجيب المُشغِّل عن سؤال واحد: متى يبدأ هذا الوكيل؟ المهمة المجدولة تجيب بساعة. ومُشغِّل webhook يجيب بحدث قادم من العالم الخارجي. يُفتح طلب سحب، أو يتعطّل بناء، أو ينطلق تنبيه، ويكون الوكيل قد بدأ العمل بالفعل.

يمنح AgentsRoom كل مُشغِّل رابطًا عامًا وسرَّ توقيع. الصق الرابط في GitHub أو GitLab أو Slack أو Linear أو Sentry أو أي شيء يستطيع إرسال POST بصيغة JSON. يصل الاستدعاء، ويُتحقَّق من التوقيع، وتتحول الحمولة إلى متغيرات في نصك التوجيهي، ويبدأ وكيل حقيقي في مشروعك بطرفيته وسجل محادثته.

مُشغِّل webhookفي وضع الإنصات
POSTGitHubpull_requestإضافة تحديد لمعدّل الطلبات إلى الـ API
التوقيع مُتحقَّق منه
المرشِّح مطابق
مراجع الكود
{{event.title}} = إضافة تحديد لمعدّل الطلبات إلى الـ API
لا شيء يعمل ما دام لا شيء يحدثيبدأ عند الحدث

مُشغِّل واحد، ورابط عام واحد. يصل الحدث، ويُتحقَّق من التوقيع، وتتحول الحمولة إلى متغيرات في النص التوجيهي، ويبدأ وكيل في مشروعك.

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

حتى الآن، كانت الطريقة الوحيدة لالتقاط ذلك هي جعل وكيل يراقب: تشغيله على جدول قصير، وجعله يستطلع الـ API ويسأل «هل من جديد؟»، ودفع رموز مقابل الجواب «لا» مئات المرات في اليوم. هذا مكلف، وبطيء في رد الفعل، ويتوسع بشكل سيئ في اللحظة التي تريد فيها مراقبة ثلاثة مستودعات.

يقلب مُشغِّل webhook المعادلة. الخدمة هي التي تخبرك. يسلّمك AgentsRoom رابطًا، فتلصقه في GitHub أو GitLab أو Slack أو Linear أو Sentry أو في CI لديك، ولا يعمل شيء حتى تستدعيه تلك الخدمة. وحين تفعل، يبدأ الوكيل والحدث موجود أصلًا في نصه التوجيهي. صفر رموز ما دام اليوم هادئًا، ووكيل على القضية خلال ثوانٍ حين لا يكون كذلك.

لماذا يتفوق الحدث على حلقة الاستطلاع

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

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

الحدث يأتي ومعه بياناته. تُحلَّل الحمولة إلى متغيرات تضعها مباشرة في النص التوجيهي: العنوان، والكاتب، والرابط، والرقم، والفرع، أو الـ JSON الخام كاملًا. لا يحتاج الوكيل أن يذهب ليجلب ما شغّله.

إنها اللوحة نفسها التي تعرفها. تحتفظ المُشغِّلات بالقائمة، ومفتاح التشغيل والإيقاف، وسجل كل تشغيل، ومنتقي الوكيل، والنطاق لكل جهاز الذي تعرفه من المهام المجدولة. الـ webhook مجرد إجابة أخرى عن سؤال «متى ينطلق هذا؟».

مُشغِّل واحد، طريقتان للانطلاق

اللوحة تحوي الاثنين. اختر ما يطابق ما تنتظره.

مجدول

الوضع الأصلي، دون تغيير. كل N دقيقة، أو كل ساعة، أو يوميًا، أو أسبوعيًا، أو شهريًا، دون كتابة أي تعبير cron. للعمل الذي ينتمي إلى ساعة: المراجعة الصباحية، وفحص التبعيات يوم الاثنين، وسجل تغييرات الجمعة.

webhook

ينتظر الوكيل حدثًا بدلًا من ساعة. يمنحك AgentsRoom رابطًا عامًا وسرَّ توقيع، فتلصق الرابط في الخدمة، وينطلق المُشغِّل حين ترسل تلك الخدمة POST. للعمل الذي ينتمي إلى شيء يقع: طلب سحب، أو بناء فاشل، أو بلاغ خطأ جديد.

ماذا تُشغّل

أحداث حقيقية، والوكيل الذي تريده على الطرف الآخر.

راجع كل طلب سحب لحظة فتحه

وجّه webhook من GitHub أو GitLab إلى المُشغِّل، ورشِّح على فتح طلب السحب، فيبدأ وكيل مراجعة على الـ diff خلال ثوانٍ. يحصل صاحب الطلب على ملاحظات والتغيير ما يزال طازجًا في ذهنه.

حقّق في بناء أحمر تلقائيًا

يستطيع الـ CI لديك إرسال POST حين يفشل خط الإنتاج. يبدأ المُشغِّل وكيلًا ومعه الفرع ورابط التشغيل في نصه التوجيهي، فيقرأ المهمة الفاشلة ويعود بسبب بدلًا من شارة حمراء.

افرز عطلًا لحظة الإبلاغ عنه

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

ابدأ وكيلًا من Slack

يستطيع أمر slash في Slack أو webhook صادر أن يصيب رابط المُشغِّل. يكتب أحدهم الطلب في قناة، وتصل الحمولة إلى النص التوجيهي، ويلتقطها الوكيل في المشروع الصحيح.

حدّد نطاق تذكرة جديدة فور فتحها

تذكرة تُنشأ على GitHub أو GitLab أو Linear تبدأ وكيل منتج يقرأ البلاغ، ويسأل الأسئلة الناقصة، ويحوّله إلى شيء يستطيع مطوّر التقاطه.

نفّذ جولة ضمان جودة بعد كل نشر

يرسل خط النشر لديك POST حين يخرج إصدار. يبدأ المُشغِّل وكيل ضمان جودة يجرّب التطبيق على النسخة التي شُحنت للتو، بدلًا من جدول لا علاقة له بالإصدارات.

اكتب ملاحظات الإصدار عند الوسم

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

أي شيء يستطيع إرسال POST بصيغة JSON

لا توجد قائمة تكاملات تنتظرها. مهمة cron على خادم، أو خطوة في Zapier، أو أداة مراقبة، أو خادمك الخلفي أنت: إن كان بإمكانه إرسال POST موقَّع إلى رابط، فبإمكانه بدء وكيل في مشروعك.

كيف يعمل مُشغِّل webhook، خطوة بخطوة

من نموذج فارغ إلى وكيل يتفاعل مع الإنتاج، في دقيقتين.

01

أنشئ مُشغِّلًا

افتح لوحة المُشغِّلات على مشروعك وأنشئ واحدًا جديدًا. القائمة نفسها، ومفتاح التشغيل والإيقاف نفسه، والسجل نفسه كما في المهمة المجدولة، لأنها اللوحة نفسها.

02

حوّله إلى webhook

اختر «webhook» بدلًا من «مجدول». يولّد AgentsRoom رابطًا عامًا لهذا المُشغِّل وسرَّ توقيع بجواره. يمكن توليد السرّ من جديد متى شئت لتقطع الطريق على من كان يملك القديم.

03

الصق الرابط في الخدمة

ضعه في webhook على GitHub أو GitLab، أو في تطبيق Slack، أو في تكامل Linear أو Sentry، أو في الـ CI لديك. وامنح الخدمة سرّ التوقيع أيضًا، حتى يمكن التحقق من الاستدعاءات التي ترسلها.

04

رشِّح ما ينبغي أن ينطلق فعلًا

المستودع يرسل أحداثًا كثيرة. أضف شرطًا اختياريًا على الحمولة، مثلًا action يساوي opened، فيُتجاهل كل ما عداه. واضبط حدًّا للرشقات حتى لا تستطيع خدمة ثرثارة بدء عشرين وكيلًا في دقيقة.

05

ضع الحدث في نصك التوجيهي

اكتب النص التوجيهي بمتغيرات الحدث: العنوان، والكاتب، والرابط، والرقم، والفرع، أو الحمولة كاملة. تُستبدَل بقيمها حين ينطلق المُشغِّل، تمامًا كمتغيرات التاريخ والوقت التي تدعمها المهام المجدولة أصلًا.

06

أعد إرسال آخر استدعاء ثم شغّله

يعرض المحرر آخر استدعاء تلقّاه المُشغِّل، بما فيه الـ JSON الخام، ويعيد إرساله بنقرة واحدة. توصّل الـ webhook وأنت تنظر إليه، لا وأنت تخمّن، وحين يصبح صحيحًا تشغّل المُشغِّل.

محرر Triggers في AgentsRoom بوضع Webhook: رابط المُشغِّل المولَّد لتلصقه في الخدمة مع زر Copy، وحقل سرّ التوقيع، ومنتقي المصدر يعرض Any service (JSON) وGitHub وGitLab وSlack وLinear وSentry، ومرشِّح Only fire if مضبوط على action == "opened"، وإعداد للحماية من الرشقات بتشغيل واحد على الأكثر كل دقيقتين، ومتغيرات الحدث المتاحة في النص التوجيهي.
محرر المُشغِّل بوضع Webhook: رابط واحد تلصقه في الخدمة، وسرّ توقيع، ومرشِّح اختياري، ونافذة للحماية من الرشقات، وحقول الحمولة مربوطة أصلًا بمتغيرات النص التوجيهي.

صف الخدمات مجموعة اختصارات، لا قائمة سماح. يقول المحرر ذلك تحت المنتقي، ولهذا يكون المدخل الأول هو Any service (JSON): أي شيء يستطيع إرسال جسم JSON عبر POST يعمل. واختيار GitHub أو GitLab أو Slack أو Linear أو Sentry يضيف شيئين بالضبط: ترويسة التوقيع الخاصة به للتحقق منها، وحقول حمولته مربوطة أصلًا بمتغيرات الحدث. ولا يُرفض أي شيء لأنه ليس في القائمة.

رقاقات المتغيرات ليست توثيقًا، بل أزرار: انقر واحدة لإدراجها في النص التوجيهي، وتُبرَز تلك التي ملأها آخر استدعاء فعلًا. وتحتها يقع آخر استدعاء تلقّاه المُشغِّل، فتكتب المرشِّح والنص التوجيهي مقابل حمولة حقيقية تراها بعينك، وتعيد إرسالها، ولا تشغّل المُشغِّل إلا حين يخرج التشغيل صحيحًا.

من الحدث إلى الوكيلالخطوة 1 من 4
  1. يصل الحدث إلى رابط مُشغِّلك

    ترسل الخدمة JSON عبر POST. يتحقق AgentsRoom من التوقيع مقابل سرّك ويرفض أي استدعاء غير موقَّع، ثم يطبّق مرشِّحك إن كنت قد ضبطت واحدًا.

  2. ينتظر إن لم يكن أحد موجودًا

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

  3. جهاز واحد يأخذه، ولا أحد غيره
    Mac المكتب
    Mac المنزل
    جهاز البناء

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

  4. يعمل الوكيل، مرة واحدة

    يُفتح وكيل حقيقي في المشروع، بالدور والمزوّد والنموذج التي اخترتها، وبطرفيته الخاصة، وعرض محادثته، وسجل محادثة مؤرشف يمكنك قراءته لاحقًا.

رابط عام، لا باب مفتوح

الرابط متاح من الإنترنت، لذا يقرر المُشغِّل ما الذي يقبله قبل أن يبدأ أي شيء.

كل استدعاء موقَّع

يتحقق AgentsRoom من كل استدعاء مقابل سرّك قبل أن يبدأ أي شيء: X-Hub-Signature-256 لـ GitHub، وX-Slack-Signature لـ Slack، وتوكن X-Gitlab-Token المشترك لـ GitLab، وتوقيع HMAC بسيط للجسم الخام مع Linear وSentry والمصادر العامة. والاستدعاء الذي لا يحمل توقيعًا يُرفض، فمعرفة الرابط وحدها لا تكفي لبدء وكيل على جهازك.

بدّل السرّ متى شئت

يُعرض سرّ التوقيع في المحرر ويمكن توليده من جديد في مكانه. تتوقف الاستدعاءات القديمة عن اجتياز التحقق فورًا، وهو ما تريده بالضبط يوم إيقاف خدمة أو تسرّب سرّ إلى سجل.

رشِّح على الحمولة

شرط اختياري يقرر ما إذا كان الحدث يستحق وكيلًا. انطلق فقط حين يساوي action القيمة opened، أو على فرع واحد فقط، أو لوسم واحد فقط. وكل ما لا يطابق يُسقَط دون إنشاء أي شيء.

الحماية من الرشقات

تشغيل واحد على الأكثر في كل نافذة زمنية. الخدمة التي ترسل ثلاثين حدثًا في عشر ثوانٍ لا تبدأ ثلاثين وكيلًا: تُجمَّع الاستدعاءات داخل النافذة ويغطيها تشغيل واحد.

الحمولة تصبح نصك التوجيهي

الـ JSON الذي ترسله الخدمة يُحلَّل إلى متغيرات تكتبها مباشرة في النص التوجيهي. تُستبدَل بقيمها عند الانطلاق، مثل متغيرات التاريخ والوقت التي تستخدمها المهام المجدولة أصلًا.

اكتب النص التوجيهي مرة واحدة، ويحصل كل تشغيل على بيانات الحدث الذي شغّله.

  • {{event.title}}عنوان الحدث: عنوان طلب السحب، أو عنوان التذكرة، أو اسم التنبيه.
  • {{event.author}}من تسبّب فيه: كاتب طلب السحب، أو الشخص الذي فتح التذكرة.
  • {{event.url}}الرابط العائد إلى الحدث، ليتمكن الوكيل من فتح طلب السحب أو التنبيه.
  • {{event.number}}رقم طلب السحب أو التذكرة، حين ترسله الخدمة.
  • {{event.branch}}الفرع الذي يخصّه الحدث، لعملية دفع، أو طلب سحب، أو بناء فاشل.
  • {{payload}}الـ JSON الخام كاملًا، لكل ما لا تغطيه المتغيرات المسمّاة.
مثال على نص توجيهي
Review pull request #{{event.number}} "{{event.title}}" opened by {{event.author}} on branch {{event.branch}}. Read the diff at {{event.url}} and reply with the risky parts first.

تُكتب أسماء المتغيرات بين قوسين معقوفين مزدوجين في حقل النص التوجيهي، تمامًا كمتغيرات التاريخ والوقت في المهمة المجدولة.

GitHub
event.actionevent.numberevent.titleevent.bodyevent.authorevent.branchevent.baseevent.urlevent.repositoryevent.state
GitLab
event.actionevent.numberevent.titleevent.bodyevent.authorevent.branchevent.baseevent.urlevent.repositoryevent.state
Slack
event.actionevent.titleevent.bodyevent.authorevent.channelevent.urlevent.team
Linear
event.actionevent.numberevent.titleevent.bodyevent.authorevent.assigneeevent.stateevent.priorityevent.urlevent.team
Sentry
event.actionevent.titleevent.bodyevent.levelevent.projectevent.urlevent.count
Generic JSON
event.actionevent.titleevent.bodyevent.authorevent.urlevent.id

ما الذي يعمل فعلًا، وأين

نموذج التنفيذ الصادق نفسه الخاص بالمهام المجدولة، ممتدًّا إلى الأحداث.

لا شيء يضيع حين يكون التطبيق مغلقًا
الحدث الذي يصل بينما AgentsRoom لا يعمل يُوضع في طابور على الخادم ويُعاد إرساله عند إقلاعك التالي، لمدة تصل إلى أسبوع. يبدأ الوكيل متأخرًا قليلًا بدلًا من ألا يبدأ أبدًا.
حدث واحد، وكيل واحد
مع فتح المشروع على عدة أجهزة، أول جهاز يأخذ الحدث يقفله. ويتخطاه الباقون. لا يجيب جهازان على الـ webhook نفسه مرتين أبدًا.
وكيل حقيقي، لا سكربت
يفتح التشغيل وكيلًا فعليًا في المشروع، بدوره ومزوّده ونموذجه وجهده ومهاراته وموجّه نظامه، وبطرفيته الخاصة وعرض محادثته. ويمكنك أن تتولى الأمر في منتصف التشغيل.
سجل لكل تشغيل
كل انطلاقة تصل إلى سجل المُشغِّل بما كتبه وكيلها، قابلة للقراءة لاحقًا حتى بعد إغلاق الجلسة، ومن جهاز آخر مسجَّل الدخول بالحساب نفسه.

من أين تأتي الأحداث

أي شيء يستطيع إرسال POST موقَّع بجسم JSON يستطيع بدء وكيل. وهذه هي الخدمات التي يوصّلها الناس أولًا.

الـ CI لديك، وخادمك الخلفي، وأي شيء

خطوة في خط إنتاج، أو أداة مراقبة، أو خدمة داخلية، أو سكربت shell فيه curl. لا تكامل تطلبه: POST بجسم JSON مع توقيع هو العقد كله.

GitHub وGitLab

طلبات السحب وطلبات الدمج تُفتح أو تُراجَع أو تُدمَج، وتذاكر تُنشأ، وعمليات دفع، وإصدارات، وسير عمل فاشل. المصدر الكلاسيكي، وصاحب الحمولة الأكثر فائدة.

Slack

أمر slash أو webhook صادر يحوّل رسالة في قناة إلى تشغيل وكيل في المشروع الصحيح. ويُتحقَّق من توقيعات Slack عبر X-Slack-Signature.

Linear وSentry

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

النصف الآخر من اللوحة نفسها

المُشغِّلات والمهام المجدولة ميزة واحدة بإجابتين عن السؤال نفسه. المهمة المجدولة مُشغِّل حدثه ساعة. ومُشغِّل webhook مهمة مجدولة جدولها هو العالم الخارجي. يعيشان في القائمة نفسها، ويتقاسمان إعداد الوكيل نفسه، ومفتاح التفعيل نفسه، وسجل التشغيلات نفسه، والنطاق لكل جهاز نفسه.

فتختار حسب المهمة لا حسب الأداة. يبقى تدقيق التبعيات صباح الاثنين، لأن لا شيء في الخارج يعلن أن حزمة صارت قديمة. وتنتقل مراجعة طلبات السحب إلى webhook، لأن GitHub يعرف أصلًا الثانية التي ينبغي أن تحدث فيها. اقرأ صفحة المهام المجدولة لتعرف جانب الساعة من العائلة.

شاهد المهام المجدولة، جانب الساعة من اللوحة نفسها

FAQ

ما مُشغِّل webhook في AgentsRoom؟

هو مُشغِّل يبدأ وكيل ذكاء اصطناعي حين ترسل إليه خدمة خارجية حدثًا، بدلًا من وقت محدد. يمنح AgentsRoom المُشغِّل رابطًا عامًا وسرَّ توقيع؛ وتلصق أنت الرابط في GitHub أو GitLab أو Slack أو Linear أو Sentry أو أي أداة تستطيع إرسال POST بصيغة JSON. وحين تستدعي تلك الخدمة، يُتحقَّق من التوقيع، ويُطبَّق مرشِّحك الاختياري، ويبدأ وكيل في مشروعك والحمولة متاحة أصلًا كمتغيرات في النص التوجيهي.

بماذا يختلف هذا عن مهمة مجدولة؟

يتغير سؤال «متى ينطلق هذا» فقط. المهمة المجدولة تنطلق على ساعة: كل N دقيقة، أو كل ساعة، أو يوميًا، أو أسبوعيًا، أو شهريًا. ومُشغِّل webhook ينطلق على حدث من الخارج. وكل ما عدا ذلك مشترك: القائمة نفسها، ومفتاح التشغيل والإيقاف نفسه، وإعداد الوكيل نفسه، وسجل كل تشغيل نفسه، والنطاق لكل جهاز نفسه.

لماذا لا نجعل وكيلًا يستطلع الـ API فحسب؟

لأن الاستطلاع يكلّف رموزًا في كل دورة، وتكاد كل دورة لا تجد شيئًا. الوكيل الذي يفحص مستودعًا كل خمس دقائق ينفّذ دورة كاملة كل خمس دقائق ليجيب «لا». أما مُشغِّل webhook فلا يستهلك شيئًا ما دام لا شيء يحدث، ويتفاعل خلال ثوانٍ حين يحدث شيء. هذه هي الحجة الاقتصادية كاملة وراء الميزة.

هل من الآمن كشف رابط المُشغِّل؟

الرابط وحده لا يكفي لبدء أي شيء. على كل استدعاء أن يثبت أنه قادم من الخدمة التي تحمل سرّك: X-Hub-Signature-256 لـ GitHub، وX-Slack-Signature لـ Slack، وتوكن X-Gitlab-Token المشترك لـ GitLab، وتوقيع HMAC بسيط للجسم الخام مع Linear وSentry والمصادر العامة. والاستدعاء الذي لا يحمل ترويسة توقيع يُرفض، ولا يُمرَّر أبدًا. ويُعرض السرّ في المحرر ويمكن توليده من جديد في أي وقت، وهو ما يبطل فورًا كل ما كان يستخدم السرّ القديم.

هل يمكنني الانطلاق على بعض الأحداث فقط؟

نعم. المستودع يرسل أحداثًا أكثر بكثير مما تريد وكلاء له، لذا يقبل المُشغِّل شرطًا اختياريًا على الحمولة، مثلًا action يساوي opened. والأحداث التي لا تطابق تُتجاهَل ولا يُنشأ شيء. وهناك أيضًا حدّ للرشقات: تشغيل واحد على الأكثر في كل نافذة زمنية، مع تجميع الاستدعاءات التي تصل داخل تلك النافذة.

ماذا يحدث إذا كان AgentsRoom مغلقًا حين يصل الحدث؟

يوضع الحدث في طابور على الخادم ويُعاد إرساله في المرة التالية التي تشغّل فيها التطبيق، فيعمل متأخرًا بدلًا من ألا يعمل أبدًا. وتبقى الأحداث في الطابور لمدة أسبوع، وهو ما يغطي حاسوبًا محمولًا ظل مغلقًا طوال عطلة نهاية أسبوع طويلة، دون أن يُعاد إرسال شهر من العمل القديم حين تعود. إنه نموذج «داخل التطبيق مع تعويض» نفسه الذي تستخدمه المهام المجدولة. ومُشغِّلات webhook لا تشغّل وكيلك في السحابة: يعمل الوكيل دائمًا على جهازك، في مشروعك.

المشروع مفتوح لديّ على جهازين. هل سيعمل الوكيل مرتين؟

لا. الحدث يُستهلك مرة واحدة. أول جهاز يلتقطه يقفله، ويرى الباقون أنه محجوز فيتخطّونه. ويمكنك أيضًا تثبيت مُشغِّل على أجهزة بعينها، تمامًا كالمهمة المجدولة، إذا أردت جهازًا معيّنًا أن يتولّاه.

ما الذي يمكنني وضعه في النص التوجيهي من الحدث؟

تُحلَّل الحمولة إلى متغيرات تكتبها مباشرة في حقل النص التوجيهي، بين قوسين معقوفين مزدوجين: event.title، وevent.author، وevent.url، وevent.number، وevent.branch، وpayload للـ JSON الخام كاملًا. وتُستبدَل بقيمها حين ينطلق المُشغِّل، بالطريقة نفسها التي تُستبدَل بها متغيرات التاريخ والوقت في المهمة المجدولة.

كيف أعرف أن الـ webhook لديّ موصول بشكل صحيح؟

يعرض المحرر آخر استدعاء تلقّاه المُشغِّل، بما في ذلك جسم الـ JSON الخام، ويتيح لك إعادة إرساله بنقرة واحدة. فتضبط المرشِّح والنص التوجيهي مقابل حمولة حقيقية تراها بعينك، ثم تعيد الإرسال حتى يصبح التشغيل صحيحًا، بدلًا من دفع التزامات اختبارية لتكتشف النتيجة.

ما الخدمات المدعومة؟

أي خدمة تستطيع إرسال POST موقَّع بجسم JSON. وGitHub وGitLab وSlack وLinear وSentry هي ما يوصّله الناس أولًا لأن حمولاتها غنية، لكن لا توجد قائمة مسموح بها: مهمة CI، أو أداة مراقبة، أو خادمك الخلفي، أو curl في سكربت shell، كلها تعمل بالطريقة نفسها تمامًا.

هل هذا مُنشئ أتمتة مرئي بسيناريوهات متعددة الخطوات؟

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

هل يستطيع AgentsRoom إرسال webhooks إلى خدمات أخرى؟

المُشغِّلات واردة فقط: يستقبل AgentsRoom الأحداث ولا يصدرها. وإن أردت أن يستدعي وكيل خدمة خارجية في نهاية تشغيل، فتلك مهمته هو، بالأدوات وخوادم MCP التي منحتها له.

يتناسب جيدًا مع

أوقف الاستطلاع. ابدأ التفاعل.

نزّل AgentsRoom، والصق رابطًا واحدًا في GitHub أو GitLab أو Slack أو Linear أو Sentry، ودع الحدث يبدأ الوكيل. لا شيء يعمل ما دام لا شيء يحدث.

مجانيتحميل AgentsRoom

التطبيق المرافق: تابع وكلاءك أينما كنت

استخدم Claude أو Codex أو Antigravity CLI أو أي مزود AI آخر.

تثبيت الملحق
Chrome Web Store

أرسل الأخطاء والطلبات مباشرة إلى قائمة المهام العامة.

لمحة عن AgentsRoom أثناء العمل.

مشاريع متعددة
متعدد المزوّدين
وكلاء متعددون
حالة مباشرة
فرق الملفات والإيداع
تطبيق الهاتف
معاينة مباشرة
فرق الوكلاء
أتمتة المتصفح
تطوير موجّه بالـ backlog
مكتبة البرومبت
مكتبة المهارات
عرض جميع الميزات