Skip to content

بيئة تنفيذ الوكيل

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

ليست البيئة المعزولة للإضافات

بيئة التنفيذ مختلفة جوهرياً عن البيئة المعزولة للإضافات. فهم الفرق مهم:

  • البيئة المعزولة للإضافات تحمي النظام من كود جهات خارجية غير موثوقة
  • بيئة التنفيذ تمكّن الوكيل من كتابة وتشغيل وتصحيح كوده الخاص

البيئة المعزولة دفاعية. بيئة التنفيذ إنتاجية. تخدمان أغراضاً متعاكسة ولها ملفات أمان مختلفة.

الجانبالبيئة المعزولة للإضافاتبيئة تنفيذ الوكيل
الغرضحماية النظام من كود غير موثوقتمكين الوكيل من البناء
نظام الملفاتلا شيء (معزول بالكامل)مجلد مساحة العمل فقط
الشبكةنقاط نهاية مُعلنة فقطقوائم سماح/رفض محكومة بالسياسة
تثبيت الحزمغير مسموحمسموح (npm، pip، deno add)
وقت التنفيذمهلة صارمةمهلة سخية (قابلة للتكوين)
التكرارتشغيل واحدحلقات كتابة/تشغيل/إصلاح غير محدودة
الاستمرارمؤقتمساحة العمل تستمر عبر الجلسات

حلقة التغذية الراجعة

عامل التمييز الأساسي في الجودة. هذا هو نفس النمط الذي يجعل أدوات مثل Claude Code فعّالة -- دورة كتابة/تشغيل/إصلاح محكمة حيث يرى الوكيل تماماً ما سيراه مطور بشري.

الخطوة 1: الكتابة

ينشئ الوكيل أو يعدّل ملفات في مساحة عمله باستخدام write_file. مساحة العمل هي مجلد نظام ملفات حقيقي محدد للوكيل الحالي.

الخطوة 2: التنفيذ

ينفذ الوكيل الكود عبر run_command، ويستقبل stdout وstderr وكود الخروج الكامل. لا يُخفى أو يُلخّص أي مخرج. يرى الوكيل تماماً ما ستراه في الطرفية.

الخطوة 3: المراقبة

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

الخطوة 4: الإصلاح

يعدّل الوكيل الكود بناءً على ما لاحظه، باستخدام write_file أو edit_file لتحديث ملفات محددة.

الخطوة 5: التكرار

ينفذ الوكيل مرة أخرى. تستمر هذه الحلقة حتى ينجح الكود -- يجتاز الاختبارات أو ينتج مخرجات صحيحة أو يحقق الهدف المحدد.

الخطوة 6: الحفظ

بمجرد النجاح، يمكن للوكيل حفظ عمله كـ مهارة (SKILL.md + ملفات داعمة)، وتسجيله كتكامل، وربطه بمهمة cron، أو جعله متاحاً كأداة.

خطوة الحفظ هي ما يجعل بيئة التنفيذ أكثر من مجرد

مسودة. الكود العامل لا يختفي فحسب -- يمكن للوكيل تعبئته في مهارة قابلة لإعادة الاستخدام تعمل وفق جدول أو تستجيب للمشغّلات أو تُستدعى عند الطلب. :::

الأدوات المتاحة

الأداةالوصفالمخرجات
write_fileكتابة أو استبدال ملف في مساحة العملمسار الملف، البايتات المكتوبة
read_fileقراءة محتويات ملف من مساحة العملمحتويات الملف كنص
edit_fileتطبيق تعديلات مستهدفة على ملفمحتويات الملف المحدّثة
run_commandتنفيذ أمر shell في مساحة العملstdout، stderr، كود الخروج، المدة
list_directoryعرض الملفات في مساحة العمل (تكراري اختياري)قائمة الملفات مع الأحجام
search_filesالبحث في محتويات الملفات (مثل grep)الأسطر المطابقة مع مراجع ملف:سطر

هيكل مساحة العمل

كل وكيل يحصل على مجلد مساحة عمل معزول يستمر عبر الجلسات:

~/.triggerfish/workspace/
  <agent-id>/                     # مساحة عمل لكل وكيل
    scratch/                      # ملفات عمل مؤقتة
    integrations/                 # كود تكامل قيد التطوير
      notion-sync/
        index.ts
        index_test.ts
        package.json
      salesforce-report/
        main.py
        test_main.py
    skills/                       # مهارات قيد التأليف
      morning-briefing/
        SKILL.md
        briefing.ts
    .exec_history                 # سجل التنفيذ للتدقيق
  background/
    <session-id>/                 # مساحة عمل مؤقتة لمهام الخلفية

مساحات العمل معزولة بين الوكلاء. لا يمكن لوكيل الوصول إلى مساحة عمل وكيل آخر. مهام الخلفية (مهام cron، المشغّلات) تحصل على مساحة عمل مؤقتة خاصة بها محددة بالجلسة.

تدفق تطوير التكامل

عندما تطلب من الوكيل بناء تكامل جديد (مثلاً، "اتصل بـ Notion وزامن المهام")، يتبع الوكيل سير عمل تطوير طبيعي:

  1. الاستكشاف -- يستخدم run_command لاختبار نقاط نهاية API، والتحقق من المصادقة، وفهم أشكال الاستجابة
  2. البناء -- يكتب كود التكامل باستخدام write_file، وينشئ ملف اختبار بجانبه
  3. الاختبار -- يشغّل الاختبارات بـ run_command، يرى الفشل، يكرر
  4. تثبيت التبعيات -- يستخدم run_command لإضافة الحزم المطلوبة (npm، pip، deno add)
  5. التكرار -- حلقة كتابة، تشغيل، إصلاح حتى تنجح الاختبارات ويعمل التكامل من طرف إلى طرف
  6. الحفظ -- يحفظ كمهارة (يكتب SKILL.md مع البيانات الوصفية) أو يربطه بمهمة cron
  7. الموافقة -- المهارة المؤلفة ذاتياً تدخل حالة PENDING_APPROVAL؛ تراجع وتوافق

دعم اللغات وبيئات التشغيل

تعمل بيئة التنفيذ على نظام المضيف (ليس في WASM)، مع وصول إلى بيئات تشغيل متعددة:

بيئة التشغيلمتاحة عبرحالة الاستخدام
Denoتنفيذ مباشرTypeScript/JavaScript (من الدرجة الأولى)
Node.jsrun_command nodeوصول نظام npm البيئي
Pythonrun_command pythonعلوم البيانات، التعلم الآلي، البرمجة
Shellrun_command sh / run_command bashأتمتة النظام، سكربتات ربط

يمكن للوكيل اكتشاف بيئات التشغيل المتاحة واختيار الأفضل للمهمة. تثبيت الحزم يعمل عبر سلسلة الأدوات القياسية لكل بيئة تشغيل.

حدود الأمان

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

تكامل السياسة

  • كل استدعاء run_command يُطلق خطاف PRE_TOOL_CALL مع الأمر كسياق
  • قائمة السماح/الرفض للأوامر تُفحص قبل التنفيذ
  • المخرجات تُلتقط وتمر عبر خطاف POST_TOOL_RESPONSE
  • نقاط نهاية الشبكة المُستخدمة أثناء التنفيذ تُتتبع عبر النسب
  • إذا وصل الكود إلى بيانات مصنّفة (مثلاً، قراءة من CRM API)، يتصاعد تلوث الجلسة
  • سجل التنفيذ يُسجّل في .exec_history للتدقيق

حدود صارمة

هذه الحدود لا تُخترق أبداً، بغض النظر عن التكوين:

  • لا يمكن الكتابة خارج مجلد مساحة العمل
  • لا يمكن تنفيذ أوامر في قائمة الرفض (rm -rf /، sudo، إلخ)
  • لا يمكن الوصول إلى مساحات عمل وكلاء آخرين
  • جميع استدعاءات الشبكة محكومة بخطافات السياسة
  • جميع المخرجات مصنّفة وتساهم في تلوث الجلسة
  • حدود الموارد مفروضة: مساحة القرص، وقت CPU لكل تنفيذ، الذاكرة

أمان كل أمر يشغّله الوكيل يمر عبر

خطاف PRE_TOOL_CALL. يفحصه محرك السياسات مقابل قائمة سماح/رفض الأوامر قبل بدء التنفيذ. الأوامر الخطيرة تُحظر حتمياً -- لا يمكن لـ LLM التأثير على هذا القرار. :::

ضوابط المؤسسات

مسؤولو المؤسسات لديهم ضوابط إضافية على بيئة التنفيذ:

  • تعطيل التنفيذ بالكامل لوكلاء أو أدوار محددة
  • تقييد بيئات التشغيل المتاحة (مثلاً، السماح بـ Deno فقط، حظر Python وshell)
  • تعيين حدود الموارد لكل وكيل (حصة القرص، وقت CPU، سقف الذاكرة)
  • طلب الموافقة لجميع عمليات التنفيذ فوق عتبة تصنيف
  • قائمة رفض أوامر مخصصة بعد قائمة الأوامر الخطيرة الافتراضية