الدرس 09 · تعاون

يتواصل العديد من الوكلاء من خلال صناديق بريد الملفات

من وكيل فرعي إلى زميل في الفريق: مرة واحدة ← مستمر؛ غير مسمى → مسمى؛ لا يوجد اتصال → صندوق بريد الملف.

⏱ ~12 د · 📝 3 مكونات تفاعلية · 🧑‍💻 مبني على shareAI-lab · s09_agent_teams.py

ما هو الفرق بين Subagent و Teammate؟

الوكيل الفرعي لـ S04 بسيط وخام: تفرخ → تشغيل → العودة إلى الملخص → الموت. لمرة واحدة، بلا اسم، ولا اتصال ثنائي الاتجاه بين الأب والابن. زميل فريق

s09 هو وكيل مستقل له اسم، ويمكن إيقاظه بشكل متكرر، ويمكنه إرسال واستقبال الرسائل:

الوكيل الفرعي (s04): تفرخ -> تنفيذ -> العودة -> مدمرة
زميل الفريق (s09): تفرخ -> العمل -> خامل -> العمل -> ... -> إيقاف التشغيل

تخدم الآليتان أغراضًا مختلفة:

  • Subagent مناسب "للقيام باستكشاف محدد" (مثل مراجعة العلاقات العامة).
  • يعتبر زميل الفريق مناسبًا "لتولي دور ما بشكل مستمر" (مثل المراجع طويل الأمد الذي يتم إيقاظه في كل مرة يكون هناك التزام جديد).

صندوق البريد هو ملف JSONL

كيف يتواصل أعضاء الفريق مع بعضهم البعض؟ يستخدم s09 الآلية الأكثر بدائية: لإلحاق ملف JSONL فقط.

.team/
  config.json # قائمة الفريق
  البريد الوارد/
    alice.jsonl تم إلحاق # رسائل إلى أليس هنا
    bob.jsonl
    الرصاص.jsonl

الإرسال هو open("alice.jsonl", "a").write(msg); القراءة هي قراءة الملف بأكمله، وتحليل JSONL، ثم اقتطاع لمسح (استنزاف دلالات).

لماذا نستخدم الملفات بدلاً من قوائم انتظار الذاكرة؟ المستندات متينة بشكل طبيعي. يتم إعادة تشغيل الوكيل، وتعطل العمليات، وحتى إعادة تشغيل الجهاز - لا تزال رسائل البريد الإلكتروني موجودة. بالإضافة إلى أنه قابل للقراءة وقابل لـ grep، كما أن تجربة تصحيح الأخطاء جيدة جدًا.

انظر إلى العملية الكاملة للرسالة من العميل المحتمل إلى أليس

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

5 أنواع من الرسائل

يحدد s09 5 أنواع من الرسائل (VALID_MSG_TYPES)، ولكن يتم تنفيذ النوعين الأولين فقط، ويتم إضافة الثلاثة الأخيرة في فئة البروتوكول s10:

  • رسالة — رسالة نصية عادية.
  • البث — يتم إرساله إلى جميع أعضاء الفريق باستثناء نفسك.
  • shutdown_request / shutdown_response — طلب/استجابة لإيقاف التشغيل بسلاسة (s10).
  • plan_approval_response — الموافقة على الخطة (s10).

لماذا تم الإعلان عنه ولم يتم تنفيذه؟ نظرًا لأن s09 يريد جعل "امتداد البروتوكول" مفتوحًا، فإن نوع الرسالة هو تعداد. لإضافة إدخال جديد، ما عليك سوى إضافة إدخال في القاموس ومعالجته في المسار _exec.

تفاعلي

Widget 1 · تدفق البريد · رسالة من الرصاص إلى أليس

انقر فوق إرسال وتتبع كل خطوة على نظام الملفات: Lead.send → إلحاق alice.jsonl → alice القراءة التالية للبريد الوارد → اقتطاع.

تفاعلي

Widget 2 · تكوين الفريق · من المتصل بالإنترنت وما هي حالته؟

.team/config.json هو قائمة الفريق. قم بإجراء بعض العمليات (النشر/الرسالة/إيقاف التشغيل) وشاهد كيف يتغير التكوين.

操作
.team/config.json

        
تفاعلي

Widget 3 · Subagent vs Teammate · تحديد أيهما سيتم استخدامه

6 سيناريوهات للمهمة، قرر ما إذا كنت تريد استخدام الوكيل الفرعي (النشر ثم الموت) أو زميل الفريق (النشر ثم العيش). فكر فيما إذا كانت المهمة عبارة عن "صفقة تم إنجازها مرة واحدة".

答对 0 / 6