الدرس 04 · تخطيط

تعامل مع المشكلات الكبيرة للوكيل الذي تم افتتاحه حديثًا

"يمنح عزل العملية عزل السياق مجانًا." يقوم الوكيل الفرعي بالأعمال القذرة، ويقوم الوكيل الأصلي بتجميع الملخص النظيف فقط.

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

معضلة الوكيل الأم

تخيل أنك طلبت من كلود كود "معرفة كيفية تعامل مستودع Rust المكون من 100000 سطر مع التزامن." نهج بديهي: يقوم بالبحث عن ls وcat وgrep والبحث في السياق الرئيسي.

المشكلة: ستؤدي جولة الاستكشاف هذه إلى تجميع 30 نتيجة أداة في الرسائل[]، تحتوي كل منها على عدة آلاف من الرموز المميزة. بحلول الوقت الذي يبدأ فيه كتابة الإجابة فعليًا، يكون السياق قد امتلأ من خلال عملية الاستكشاف - سيتم تشغيل الحد الأعلى بعد بضع خطوات أخرى، وستظل الإجابة مربكة.

حل s04: إرسال مهمة الاستكشاف إلى وكيل جديد. يبدأ الوكيل الجديد من messages=[]، ويستكشف وكيله الخاص، وأخيرًا يُرجع الملخص فقط إلى الوكيل الأصلي. يحتوي السياق الأصلي على جملة واحدة فقط: "تم تعديل أداة المهمة مرة واحدة، وكانت النتيجة XXX"، وهو أمر منعش.

def run_subagent(prompt: str) -> str:
    sub_messages = [{"role":"user", "content": موجه}] # سياق جديد
    لـ _ في النطاق(30): # الحد الأعلى للسلامة لمنع فقدان السيطرة
        الاستجابة = client.messages.create(..., messages=sub_messages, Tools=CHILD_TOOLS, ...)
        ...
    # يتم إرجاع النص الأخير فقط، ويتم تجاهل جميع الأسباب الوسيطة
    return "".join(b.text for b في Response.content if hasattr(b, "text"))

مقارنة سياق الأب والابن

تحاكي هذه الأداة مهمة حقيقية: "أدرج جميع الأماكن في هذا المستودع التي تستدعي واجهة برمجة التطبيقات المهملة". يمكنك تشغيله باستراتيجيتين: (أ) يقوم الوكيل الأصلي بذلك بنفسه؛ (ب) تفرخ وكيل فرعي. قارن بين أحجام السياقين الأخيرين من اليسار واليمين.

CHILD_TOOLS: ما الأدوات التي يمكن للوكيل الفرعي الحصول عليها؟

هناك تفاصيل في تنفيذ s04 يسهل تفويتها: لا يستطيع الوكيل الفرعي الحصول على أداة المهمة.

# الوكيل الفرعي يمكنه استخدام الأدوات الأساسية فقط ولا يمكنه إنشاء حفيد
CHILD_TOOLS = [باش، قراءة_ملف، كتابة_ملف، تحرير_ملف]

# لدى الوكيل الرئيسي أداة مهمة أخرى
PARENT_TOOLS = CHILD_TOOLS + [مهمة]

لماذا؟ تجنب الإرسال العودي ليصبح انفجار شجرة. يولد وكيل فرعي أربعة عملاء فرعيين، وهناك العشرات من المكالمات المتزامنة في بضع جولات فقط. لا يمكن للرمز المميز ولا حد سرعة API التعامل معه. اتفاقية s04: التكاثر مسطح، وطبقة واحدة من الأصل → الطفل هي طبقة واحدة. وهذا هو الحال أيضًا في التنفيذ الحقيقي لـ Claude Code - يُمنع استدعاء أداة المهام مرة أخرى في أداة المهام.

مرئية وغير مرئية

دعونا نحدد الحقوق والمسؤوليات: أي من الأسئلة التالية تعتقد أنه T وأي الأسئلة F تعتقد أنها؟

تفاعلي

Widget 1 · الوالدين مقابل الطفل · مقارنة حجم السياق

استراتيجيتين لنفس المهمة. انقر فوق "تشغيل" وانظر إلى الطول النهائي للرسائل[] على كلا الجانبين وتقدير الرمز المميز الإجمالي.

🧠 父 agent 亲自做
messages: 0 · ~0 tokens
🎯 spawn subagent
messages: 0 · ~0 tokens
تفاعلي

Widget 2 · صح أم خطأ · حقوق ومسؤوليات وكلاء الأب والابن

6 T/Fs لاختبار فهمك لحدود العزلة.

答对 0 / 6
تفاعلي

Widget 3 · متى يتم النشر · ما هي المهام المناسبة لتعيينها للوكيل الفرعي؟

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

答对 0 / 6