From 940fd24e14dd9b48f388efbf219f4d50bfff6926 Mon Sep 17 00:00:00 2001 From: Bojie Li Date: Thu, 13 Aug 2026 10:53:23 +0800 Subject: [PATCH 01/13] fix(figures): close Chinese numbering gaps and rebuild fig8-1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Chinese source had reader-visible figure numbering gaps left behind by earlier content removals, and the caption number no longer matched the filename in two chapters. - ch5: restore the 图5-4 embed dropped by d39b1d74 while its prose reference survived, closing the 5-3 -> 5-5 gap. - ch7: retire the two figures the chapter dropped to descriptive names and shift fig7-18/19/20 down so caption number == filename again. - ch10: renumber 10-3..10-13 to 10-2..10-11 across all 13 editions, closing the gaps at 10-2 and 10-10; retire the two removed figures to descriptive names. Drop the dangling "Figure 10-10" reference in the English edition. - Rebuild fig8-1 for the 11 editions still shipping the pre-04c0ed70 artwork. The Chinese source now has gapless, filename-aligned numbering in every chapter with no dangling cross-references. Co-Authored-By: Claude Opus 5 (1M context) --- book-ar/chapter10.ar.md | 22 +- book-ar/images/fig10-10.svg | 105 +-- book-ar/images/fig10-11.svg | 141 ++- book-ar/images/fig10-12.svg | 56 -- book-ar/images/fig10-13.svg | 68 -- book-ar/images/fig10-2.svg | 129 +-- book-ar/images/fig10-3.svg | 130 ++- book-ar/images/fig10-4.svg | 93 +- book-ar/images/fig10-5.svg | 95 +- book-ar/images/fig10-6.svg | 91 +- book-ar/images/fig10-7.svg | 95 +- book-ar/images/fig10-8.svg | 119 +-- book-ar/images/fig10-9.svg | 141 +-- book-ar/images/fig10-sequential-handoff.svg | 55 ++ book-ar/images/fig10-stage-switching.svg | 54 ++ book-ar/images/fig8-1.svg | 80 +- book-en/chapter10.md | 24 +- book-en/images/fig10-10.svg | 105 +-- book-en/images/fig10-11.svg | 141 ++- book-en/images/fig10-12.svg | 56 -- book-en/images/fig10-13.svg | 68 -- book-en/images/fig10-2.svg | 131 +-- book-en/images/fig10-3.svg | 132 ++- book-en/images/fig10-4.svg | 93 +- book-en/images/fig10-5.svg | 95 +- book-en/images/fig10-6.svg | 91 +- book-en/images/fig10-7.svg | 95 +- book-en/images/fig10-8.svg | 119 +-- book-en/images/fig10-9.svg | 141 +-- book-en/images/fig10-sequential-handoff.svg | 55 ++ book-en/images/fig10-stage-switching.svg | 54 ++ book-en/images/fig8-1.svg | 80 +- book-es/chapter10.es.md | 22 +- book-es/images/fig10-10.svg | 105 +-- book-es/images/fig10-11.svg | 141 ++- book-es/images/fig10-12.svg | 56 -- book-es/images/fig10-13.svg | 68 -- book-es/images/fig10-2.svg | 131 +-- book-es/images/fig10-3.svg | 132 ++- book-es/images/fig10-4.svg | 93 +- book-es/images/fig10-5.svg | 95 +- book-es/images/fig10-6.svg | 91 +- book-es/images/fig10-7.svg | 95 +- book-es/images/fig10-8.svg | 119 +-- book-es/images/fig10-9.svg | 141 +-- book-es/images/fig10-sequential-handoff.svg | 55 ++ book-es/images/fig10-stage-switching.svg | 54 ++ book-es/images/fig8-1.svg | 81 +- book-hu/chapter10.md | 22 +- book-hu/images/fig10-10.svg | 105 +-- book-hu/images/fig10-11.svg | 141 ++- book-hu/images/fig10-12.svg | 56 -- book-hu/images/fig10-13.svg | 68 -- book-hu/images/fig10-2.svg | 131 +-- book-hu/images/fig10-3.svg | 132 ++- book-hu/images/fig10-4.svg | 93 +- book-hu/images/fig10-5.svg | 95 +- book-hu/images/fig10-6.svg | 91 +- book-hu/images/fig10-7.svg | 95 +- book-hu/images/fig10-8.svg | 119 +-- book-hu/images/fig10-9.svg | 141 +-- book-hu/images/fig10-sequential-handoff.svg | 55 ++ book-hu/images/fig10-stage-switching.svg | 54 ++ book-hu/images/fig8-1.svg | 80 +- book-id/chapter10.md | 22 +- book-id/images/fig10-10.svg | 105 +-- book-id/images/fig10-11.svg | 141 ++- book-id/images/fig10-12.svg | 57 -- book-id/images/fig10-13.svg | 69 -- book-id/images/fig10-2.svg | 129 +-- book-id/images/fig10-3.svg | 135 ++- book-id/images/fig10-4.svg | 93 +- book-id/images/fig10-5.svg | 95 +- book-id/images/fig10-6.svg | 94 +- book-id/images/fig10-7.svg | 95 +- book-id/images/fig10-8.svg | 119 +-- book-id/images/fig10-9.svg | 141 +-- book-id/images/fig10-sequential-handoff.svg | 56 ++ book-id/images/fig10-stage-switching.svg | 55 ++ book-id/images/fig8-1.svg | 81 +- book-ja/chapter10.ja.md | 22 +- book-ja/images/fig10-10.svg | 105 +-- book-ja/images/fig10-11.svg | 141 ++- book-ja/images/fig10-12.svg | 56 -- book-ja/images/fig10-13.svg | 68 -- book-ja/images/fig10-2.svg | 131 +-- book-ja/images/fig10-3.svg | 132 ++- book-ja/images/fig10-4.svg | 93 +- book-ja/images/fig10-5.svg | 95 +- book-ja/images/fig10-6.svg | 91 +- book-ja/images/fig10-7.svg | 95 +- book-ja/images/fig10-8.svg | 119 +-- book-ja/images/fig10-9.svg | 141 +-- book-ja/images/fig10-sequential-handoff.svg | 55 ++ book-ja/images/fig10-stage-switching.svg | 54 ++ book-ja/images/fig8-1.svg | 78 +- book-ko/chapter10.ko.md | 22 +- book-ko/images/fig10-10.svg | 105 +-- book-ko/images/fig10-11.svg | 141 ++- book-ko/images/fig10-12.svg | 56 -- book-ko/images/fig10-13.svg | 68 -- book-ko/images/fig10-2.svg | 129 +-- book-ko/images/fig10-3.svg | 130 ++- book-ko/images/fig10-4.svg | 93 +- book-ko/images/fig10-5.svg | 95 +- book-ko/images/fig10-6.svg | 91 +- book-ko/images/fig10-7.svg | 95 +- book-ko/images/fig10-8.svg | 119 +-- book-ko/images/fig10-9.svg | 141 +-- book-ko/images/fig10-sequential-handoff.svg | 55 ++ book-ko/images/fig10-stage-switching.svg | 54 ++ book-ru/chapter10.md | 20 +- book-ru/images/fig10-10.svg | 105 +-- book-ru/images/fig10-11.svg | 141 ++- book-ru/images/fig10-12.svg | 56 -- book-ru/images/fig10-13.svg | 68 -- book-ru/images/fig10-2.svg | 131 +-- book-ru/images/fig10-3.svg | 132 ++- book-ru/images/fig10-4.svg | 93 +- book-ru/images/fig10-5.svg | 95 +- book-ru/images/fig10-6.svg | 91 +- book-ru/images/fig10-7.svg | 95 +- book-ru/images/fig10-8.svg | 119 +-- book-ru/images/fig10-9.svg | 141 +-- book-ru/images/fig10-sequential-handoff.svg | 55 ++ book-ru/images/fig10-stage-switching.svg | 54 ++ book-ru/images/fig8-1.svg | 80 +- book-ta/chapter10.ta.md | 22 +- book-ta/images/fig10-10.svg | 105 +-- book-ta/images/fig10-11.svg | 141 ++- book-ta/images/fig10-12.svg | 56 -- book-ta/images/fig10-13.svg | 68 -- book-ta/images/fig10-2.svg | 131 +-- book-ta/images/fig10-3.svg | 132 ++- book-ta/images/fig10-4.svg | 93 +- book-ta/images/fig10-5.svg | 95 +- book-ta/images/fig10-6.svg | 91 +- book-ta/images/fig10-7.svg | 95 +- book-ta/images/fig10-8.svg | 119 +-- book-ta/images/fig10-9.svg | 141 +-- book-ta/images/fig10-sequential-handoff.svg | 55 ++ book-ta/images/fig10-stage-switching.svg | 54 ++ book-ta/images/fig8-1.svg | 80 +- book-tr/chapter10.tr.md | 22 +- book-tr/images/fig10-10.svg | 105 +-- book-tr/images/fig10-11.svg | 141 ++- book-tr/images/fig10-12.svg | 56 -- book-tr/images/fig10-13.svg | 68 -- book-tr/images/fig10-2.svg | 131 +-- book-tr/images/fig10-3.svg | 132 ++- book-tr/images/fig10-4.svg | 93 +- book-tr/images/fig10-5.svg | 95 +- book-tr/images/fig10-6.svg | 91 +- book-tr/images/fig10-7.svg | 95 +- book-tr/images/fig10-8.svg | 119 +-- book-tr/images/fig10-9.svg | 141 +-- book-tr/images/fig10-sequential-handoff.svg | 55 ++ book-tr/images/fig10-stage-switching.svg | 54 ++ book-tr/images/fig8-1.svg | 79 +- book-vi/chapter10.vi.md | 22 +- book-vi/images/fig10-10.svg | 105 +-- book-vi/images/fig10-11.svg | 141 ++- book-vi/images/fig10-12.svg | 56 -- book-vi/images/fig10-13.svg | 68 -- book-vi/images/fig10-2.svg | 129 +-- book-vi/images/fig10-3.svg | 130 ++- book-vi/images/fig10-4.svg | 93 +- book-vi/images/fig10-5.svg | 95 +- book-vi/images/fig10-6.svg | 91 +- book-vi/images/fig10-7.svg | 95 +- book-vi/images/fig10-8.svg | 119 +-- book-vi/images/fig10-9.svg | 141 +-- book-vi/images/fig10-sequential-handoff.svg | 55 ++ book-vi/images/fig10-stage-switching.svg | 54 ++ book-vi/images/fig8-1.svg | 76 +- book-zhtw/chapter10.zhtw.md | 22 +- book-zhtw/images/fig10-10.svg | 105 +-- book-zhtw/images/fig10-11.svg | 141 ++- book-zhtw/images/fig10-12.svg | 56 -- book-zhtw/images/fig10-13.svg | 68 -- book-zhtw/images/fig10-2.svg | 131 +-- book-zhtw/images/fig10-3.svg | 132 ++- book-zhtw/images/fig10-4.svg | 93 +- book-zhtw/images/fig10-5.svg | 95 +- book-zhtw/images/fig10-6.svg | 91 +- book-zhtw/images/fig10-7.svg | 95 +- book-zhtw/images/fig10-8.svg | 119 +-- book-zhtw/images/fig10-9.svg | 141 +-- book-zhtw/images/fig10-sequential-handoff.svg | 55 ++ book-zhtw/images/fig10-stage-switching.svg | 54 ++ book-zhtw/images/fig8-1.svg | 76 +- book/chapter10.md | 22 +- book/chapter5.md | 2 + book/chapter7.md | 6 +- book/images/fig10-10.svg | 105 +-- book/images/fig10-11.svg | 141 ++- book/images/fig10-12.svg | 56 -- book/images/fig10-13.svg | 68 -- book/images/fig10-2.svg | 131 +-- book/images/fig10-3.svg | 132 ++- book/images/fig10-4.svg | 93 +- book/images/fig10-5.svg | 95 +- book/images/fig10-6.svg | 91 +- book/images/fig10-7.svg | 95 +- book/images/fig10-8.svg | 119 +-- book/images/fig10-9.svg | 141 +-- book/images/fig10-sequential-handoff.svg | 55 ++ book/images/fig10-stage-switching.svg | 54 ++ book/images/fig7-16.svg | 835 +----------------- book/images/fig7-17.svg | 105 ++- book/images/fig7-18.svg | 99 ++- book/images/fig7-19.svg | 54 -- book/images/fig7-20.svg | 73 -- book/images/fig7-reward-density.svg | 809 +++++++++++++++++ book/images/fig7-reward-paradigms.svg | 57 ++ 215 files changed, 10700 insertions(+), 10381 deletions(-) delete mode 100644 book-ar/images/fig10-12.svg delete mode 100644 book-ar/images/fig10-13.svg create mode 100644 book-ar/images/fig10-sequential-handoff.svg create mode 100644 book-ar/images/fig10-stage-switching.svg delete mode 100644 book-en/images/fig10-12.svg delete mode 100644 book-en/images/fig10-13.svg create mode 100644 book-en/images/fig10-sequential-handoff.svg create mode 100644 book-en/images/fig10-stage-switching.svg delete mode 100644 book-es/images/fig10-12.svg delete mode 100644 book-es/images/fig10-13.svg create mode 100644 book-es/images/fig10-sequential-handoff.svg create mode 100644 book-es/images/fig10-stage-switching.svg delete mode 100644 book-hu/images/fig10-12.svg delete mode 100644 book-hu/images/fig10-13.svg create mode 100644 book-hu/images/fig10-sequential-handoff.svg create mode 100644 book-hu/images/fig10-stage-switching.svg delete mode 100644 book-id/images/fig10-12.svg delete mode 100644 book-id/images/fig10-13.svg create mode 100644 book-id/images/fig10-sequential-handoff.svg create mode 100644 book-id/images/fig10-stage-switching.svg delete mode 100644 book-ja/images/fig10-12.svg delete mode 100644 book-ja/images/fig10-13.svg create mode 100644 book-ja/images/fig10-sequential-handoff.svg create mode 100644 book-ja/images/fig10-stage-switching.svg delete mode 100644 book-ko/images/fig10-12.svg delete mode 100644 book-ko/images/fig10-13.svg create mode 100644 book-ko/images/fig10-sequential-handoff.svg create mode 100644 book-ko/images/fig10-stage-switching.svg delete mode 100644 book-ru/images/fig10-12.svg delete mode 100644 book-ru/images/fig10-13.svg create mode 100644 book-ru/images/fig10-sequential-handoff.svg create mode 100644 book-ru/images/fig10-stage-switching.svg delete mode 100644 book-ta/images/fig10-12.svg delete mode 100644 book-ta/images/fig10-13.svg create mode 100644 book-ta/images/fig10-sequential-handoff.svg create mode 100644 book-ta/images/fig10-stage-switching.svg delete mode 100644 book-tr/images/fig10-12.svg delete mode 100644 book-tr/images/fig10-13.svg create mode 100644 book-tr/images/fig10-sequential-handoff.svg create mode 100644 book-tr/images/fig10-stage-switching.svg delete mode 100644 book-vi/images/fig10-12.svg delete mode 100644 book-vi/images/fig10-13.svg create mode 100644 book-vi/images/fig10-sequential-handoff.svg create mode 100644 book-vi/images/fig10-stage-switching.svg delete mode 100644 book-zhtw/images/fig10-12.svg delete mode 100644 book-zhtw/images/fig10-13.svg create mode 100644 book-zhtw/images/fig10-sequential-handoff.svg create mode 100644 book-zhtw/images/fig10-stage-switching.svg delete mode 100644 book/images/fig10-12.svg delete mode 100644 book/images/fig10-13.svg create mode 100644 book/images/fig10-sequential-handoff.svg create mode 100644 book/images/fig10-stage-switching.svg delete mode 100644 book/images/fig7-19.svg delete mode 100644 book/images/fig7-20.svg create mode 100644 book/images/fig7-reward-density.svg create mode 100644 book/images/fig7-reward-paradigms.svg diff --git a/book-ar/chapter10.ar.md b/book-ar/chapter10.ar.md index 6d30334ee..735f191f5 100644 --- a/book-ar/chapter10.ar.md +++ b/book-ar/chapter10.ar.md @@ -163,9 +163,9 @@ **رابعا. موارد النظام المضمنة.** حزمة موارد تم تثبيتها مسبقًا بواسطة النظام ومشاركتها للقراءة فقط مع جميع الوكلاء. ومن الأمثلة النموذجية **المهارات** التي تم تقديمها في الفصلين الثاني والرابع، وهي وثائق ونصوص معرفية منظمة كملفات، مثبتة في مسارات مثل `/skills`، ويمكن الوصول إليها عن طريق الكشف التدريجي (الفهرسة أولاً، ثم التوسع عند الطلب). تتضمن الأمثلة الأخرى الأدلة المرجعية ومكتبات النماذج وتعريفات الأدوات المشتركة. هذه الطبقة مشتركة عالميًا، للقراءة فقط، ومستقرة عبر الجلسات، ويمكن لجميع الوكلاء قراءتها بشكل متزامن دون التحكم في التزامن. -يوضح الشكل 10-3 كيفية تركيب أنواع المناطق الأربعة هذه بشكل موحد تحت شجرة دليل واحدة: يصل الوكيل إلى الشجرة بأكملها من خلال واجهة موحدة، ويقوم المستخدمون بتحميل الملفات وتنزيلها من المساحة المشتركة، ويتم تركيب مصادر البيانات الخارجية عبر المحولات، ويتم توفير موارد النظام المضمنة للقراءة فقط. +يوضح الشكل 10-2 كيفية تركيب أنواع المناطق الأربعة هذه بشكل موحد تحت شجرة دليل واحدة: يصل الوكيل إلى الشجرة بأكملها من خلال واجهة موحدة، ويقوم المستخدمون بتحميل الملفات وتنزيلها من المساحة المشتركة، ويتم تركيب مصادر البيانات الخارجية عبر المحولات، ويتم توفير موارد النظام المضمنة للقراءة فقط. -![الشكل 10-3: هيكل التركيب لأنواع المناطق الأربعة في نظام الملفات الظاهري للوكيل](images/fig10-3.svg) +![الشكل 10-2: هيكل التركيب لأنواع المناطق الأربعة في نظام الملفات الظاهري للوكيل](images/fig10-2.svg) يقارن الجدول 10-4 أنواع المناطق الأربعة هذه عبر أربعة أبعاد — الرؤية، ودورة الحياة، وأذونات القراءة/الكتابة، والتحكم في التزامن — لتكون بمثابة قائمة مرجعية لتصميم تخطيط نظام الملفات. @@ -249,7 +249,7 @@ LoopX يقرر → الوكيل ينفذ → مدقق مستقل يثبت → Lo **نموذج المقترح والمراجع.** -![الشكل 10-4: حلقة المقترح والمراجع](images/fig10-4.svg) +![الشكل 10-3: حلقة المقترح والمراجع](images/fig10-3.svg) المقترح والمراجع هو النموذج الأساسي للتعاون بين الأقران. لقد تناول الفصل الخامس بالفعل مبادئ التصميم والتطبيقات العملية في ثلاث تجارب: إنشاء PPT، وتحرير الفيديو، وتصور السجل. يقوم وكيل المقترح بإنشاء التعليمات البرمجية، بينما يقدم وكيل المراجع نتائج التنفيذ، ويقيم جودتها باستخدام نموذج لغة الرؤية، ويقدم اقتراحات منظمة للتحسين. يتكرر الاثنان حتى تفي النتيجة بالمعيار المطلوب. @@ -329,7 +329,7 @@ return summarize_failures(workers) **نمط التنسيق المتسلسل.** -![الشكل 10-5: التنسيق التسلسلي للمدير](images/fig10-5.svg) +![الشكل 10-4: التنسيق التسلسلي للمدير](images/fig10-4.svg) يقوم المدير باستدعاء الوكلاء المتخصصين بالتسلسل. يقوم كل وكيل بإرجاع النتائج عند الانتهاء، ويقرر المدير الخطوة التالية. يكون تدفق التحكم خطيًا وبسيطًا وواضحًا، مما يجعله مناسبًا للسيناريوهات التي يكون فيها للمهام الفرعية تبعيات تسلسلية واضحة. @@ -358,14 +358,14 @@ return summarize_failures(workers) > 4. قارن وكيلًا واحدًا بنمط المدير من حيث جودة الترجمة وكفاءة التنفيذ واستهلاك الموارد > > -> ![الشكل 10-6: بنية وكيل ترجمة الكتب](images/fig10-6.svg) +> ![الشكل 10-5: بنية وكيل ترجمة الكتب](images/fig10-5.svg) > > **نمط التنسيق الموازي.** -![الشكل 10-7: مدير التنسيق الموازي](images/fig10-7.svg) +![الشكل 10-6: مدير التنسيق الموازي](images/fig10-6.svg) عندما يمكن تنفيذ مهام فرعية متعددة بالتوازي، يصبح النمط التسلسلي غير فعال. يتيح التنسيق الموازي للعديد من الوكلاء العمل في وقت واحد، مما يزيد الإنتاجية بشكل كبير. يجب على الوكيل الإداري تخطيط المهام الموازية، ومراقبة جميع الوكلاء العاملين في الوقت الفعلي، وتنسيق اتصالاتهم، واتخاذ قرارات على مستوى النظام عندما ينجح الوكلاء أو يفشلون. يتطلب هذا عادةً **ناقل الرسائل** كبنية أساسية — فكر في الأمر على أنه "لوحة إعلانات عامة" حيث يمكن للوكلاء نشر الرسائل والاشتراك في أنواع الرسائل التي تهمهم، مما يتيح الاتصال غير المتزامن وغير المحظور. هناك تطبيقان شائعان، من الأبسط إلى الأكثر تعقيدًا، هما **Redis Pub/Sub** وقوائم انتظار الرسائل مثل **RabbitMQ**. يعد Redis Pub/Sub خفيف الوزن ويقوم بتسليم الرسائل على الفور، لكنه لا يحفظها، لذلك سيفقدها جهاز الاستقبال غير المتصل بالإنترنت. يقوم RabbitMQ والأنظمة المشابهة بحفظ الرسائل على القرص، مع الاحتفاظ بها عندما يكون جهاز الاستقبال غير متصل بالإنترنت مؤقتًا. تستخدم الرسائل عادةً مظروف JSON يحتوي على معرف المرسل والوكيل المستهدف (أو علامة البث) ونوع الرسالة والحمولة. @@ -425,7 +425,7 @@ return summarize_failures(workers) > 4. تسجيل الطوابع الزمنية للرسائل المتبادلة وتسجيل القرارات الرئيسية للوكلاء > > -> ![الشكل 10-8: بنية الوكيل المزدوج للهاتف والكمبيوتر](images/fig10-8.svg) +> ![الشكل 10-7: بنية الوكيل المزدوج للهاتف والكمبيوتر](images/fig10-7.svg) > > > **التجربة 10-4 ★★★: وكيل يجمع المعلومات من مواقع ويب متعددة في وقت واحد** @@ -457,7 +457,7 @@ return summarize_failures(workers) > 6. قياس ومقارنة أوقات التنفيذ التسلسلية والمتوازية لتحديد مدى سرعة الموازاة > > -> ![الشكل 10-9: بنية تجريف الويب المتوازية](images/fig10-9.svg) +> ![الشكل 10-8: بنية تجريف الويب المتوازية](images/fig10-8.svg) > > @@ -487,7 +487,7 @@ else: **MetaGPT: محاكاة شركة برمجيات تقودها إجراءات SOP.** -![الشكل 10-11 شبكة تعاون MetaGPT متعددة الوكلاء](images/fig10-11.svg) +![الشكل 10-9 شبكة تعاون MetaGPT متعددة الوكلاء](images/fig10-9.svg) ترمز MetaGPT إجراءات العمل القياسية لشركة البرمجيات. تعمل الأدوار بترتيب Product Manager → Architect → Project Manager → Engineer → QA، وينتج كل دور حزمة تسليم منظمة: وصف المهمة ومعايير القبول، الحقائق والقيود المؤكدة، ومراجع المنتجات المنظمة مثل مسارات الملفات. تنشر الأدوار رسائلها في مخزن مشترك وتستهلك فقط الأنواع التي اشتركت فيها. هذا يفك اقتران المرسل عن المستقبل، لكن تدفق التحكم نفسه يظل خطاً ثابتاً تحدده SOP، لذلك ليست MetaGPT لامركزية كاملة. @@ -593,7 +593,7 @@ else: ### مدينة ستانفورد للذكاء الاصطناعي: المحاكاة الاجتماعية للوكلاء المولدين -![الشكل 10-12: هندسة المدن المدعمة بالذكاء الاصطناعي](images/fig10-12.svg) +![الشكل 10-10: هندسة المدن المدعمة بالذكاء الاصطناعي](images/fig10-10.svg) في عام 2023، نشر باحثون من جامعة ستانفورد وجوجل ورقة بحثية تاريخية بعنوان "الوكلاء المولدون: محاكاة تفاعلية للسلوك البشري"، حيث قدموا مفهوم "الوكلاء المولدون". كان الابتكار الأساسي هو التوقف عن حصر الوكلاء في مهام محددة مسبقًا ومنحهم بدلاً من ذلك ذاكرة وتفكيرًا وتخطيطًا شبه بشري، حتى يتمكنوا من العيش والتواصل الاجتماعي والتطور بشكل مستقل في بيئة اجتماعية مفتوحة. @@ -705,7 +705,7 @@ Moltbook عبارة عن شبكة اجتماعية مصممة خصيصًا لو > > > -> ![الشكل 10-13: نظام وكيل المستذئب الصوتي](images/fig10-13.svg) +> ![الشكل 10-11: نظام وكيل المستذئب الصوتي](images/fig10-11.svg) > > diff --git a/book-ar/images/fig10-10.svg b/book-ar/images/fig10-10.svg index 95cc9a233..eafa58892 100644 --- a/book-ar/images/fig10-10.svg +++ b/book-ar/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -الوكيل أ -تحليل المتطلبات - -الإخراج: وثيقة المتطلبات المنظمة -المواصفات.json -تسليم → - - -الوكيل ب -التصميم المعماري - -الإخراج: وثيقة التصميم الفني -تصميم.md -تسليم → - - -الوكيل ج -تنفيذ الكود - -الإخراج: كود المصدر -src/*.py -تسليم → - - -الوكيل د -الاختبار والتحقق من الصحة - -الإخراج: تقرير الاختبار -test_report.md -تسليم → - -محتوى التسليم (الوكيل أ → مثال الوكيل ب) -حالة الزناد: -مستند المتطلبات المكتملة → is_Complete=True -الوكيل المستهدف: -الهدف = "المهندس المعماري" (الوكيل ب) -محتوى التسليم: -files=["spec.json"] + Summary="نظام التجارة الإلكترونية: 3 خدمات صغيرة، REST API" -حالة ما بعد التسليم: -الحالة = "الخروج" (حرر الموارد، لا تبقى في وضع الاستعداد) - -مزايا اللامركزية -✓ لا حاجة إلى مدير مركزي لفهم جميع الأدوار -✓ حدود واضحة للمسؤولية، وفصل الواجهة -✓ الخروج عند الانتهاء، وإطلاق سراح الموارد المستمرة - -قيود اللامركزية -✗ عدم وجود منظور التحسين العالمي -✗ صعوبة التعامل مع الاستثناءات (لا يوجد تنسيق مركزي) -✗ عملية ثابتة، يصعب ضبطها ديناميكيًا + +إيزابيلا رودريجيز +صاحب مقهى هوبز +مضياف ومؤنس + +تيار الذاكرة +[08:30] افتتاح مقهى هوبز للعمل +الأهمية: 4 الحداثة: 0.9 +[09:15] يأتي العميل كلاوس لشراء القهوة +الأهمية: 5 الحداثة: 0.85 +[10:00] قرروا إقامة حفلة عيد الحب +الأهمية: 9 الحداثة: 0.8 +[11:30] قم بدعوة العميلة ماريا إلى الحفلة +الأهمية: 8 الحداثة: 0.7 +[14:00] اطلب من ماريا المساعدة في تزيين المكان +الأهمية: 7 الحداثة: 0.6 + +انعكاس +"من هم عملاء هوبز الدائمين؟" +→ ماريا، كلاوس، توم (زوار متكررون) +"من يجب أن أدعوه إلى الحفلة؟" +→ دعوة كل من النظاميين والأصدقاء +"إلى أي مدى يتم إعداد الحفلة؟" +→ العديد من المدعوين، المكان لا يزال بحاجة إلى الديكور +"من يستطيع مساعدتي في تزيين المقهى؟" +→ ماريا (صديقة، على استعداد للمساعدة) + +التخطيط والعمل +08:00 الاستيقاظ + تناول وجبة الإفطار +09:00 هوبز يفتح أبوابه للعمل +12:00 دعوة العملاء أثناء إدارة المحل +14:00 تزيين المكان بماريا +16:00 تحضير المرطبات والجلوس +← التعديل الديناميكي +18:00 إقامة حفلة عيد الحب في هوبز + + +استرجاع + + +قيادة + +السلوك الناشئ (25 وكيلًا · يومين من الوقت الافتراضي) +▸ التنشئة الاجتماعية العفوية +لقاءات → صداقة → لقاءات +▸ نشر المعلومات +تنتشر دعوة الحفلة إلى العديد من الوكلاء +▸ الترويج للانتخابات +تنتشر حملة العمدة بين الوكلاء +▸ ذاكرة العلاقة +يتذكر الدردشات الماضية، ويواصل المواضيع +جميع السلوكيات ليست مبرمجة مسبقًا - نتائج ناشئة للذاكرة + التفكير + المنطق الاجتماعي السليم \ No newline at end of file diff --git a/book-ar/images/fig10-11.svg b/book-ar/images/fig10-11.svg index ad12e01c1..debaf8150 100644 --- a/book-ar/images/fig10-11.svg +++ b/book-ar/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -مدير المنتج -الإدخال: وصف متطلبات المستخدم - -الإخراج: -قائمة الميزات + الأولوية -قصص المستخدم (5 العناصر) -معايير القبول - -docs/PRD.md - - - -مهندس معماري -الإدخال: PRD.md - -الإخراج: -المكدس الفني: FastAPI + React -مواصفات API (OpenAPI) -مخطط قاعدة البيانات - -مستندات/design.md - - - -مدير المشروع -الإدخال : design.md - -الإخراج: -قائمة المهام + المهمة -التخصيص على مستوى الملف -ترتيب تبعية الوحدة النمطية - -مستندات/tasks.md - - - -مهندس ×3 -الإدخال: المهام.md + التصميم.md - -الإخراج: -الوحدة أ: خدمة المستخدم -الوحدة ب: خدمة الطلب -الوحدة ج: خدمة الدفع - -src/*.py - - - -مهندس ضمان الجودة -الإدخال: src/ + PRD.md - -الإخراج: -اختبارات الوحدة (pytest) -اختبارات التكامل (API) -تقرير الشوائب → مهندس - -docs/test_report.md - -إصلاح الخلل - - -دليل المشروع المشترك -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -تصميم MetaGPT الأساسي -▸ وثائق موحدة -يصدر كل دور تنسيقًا ثابتًا؛ المصب يحتاج إلى الشكل، وليس المنطق -▸ فصل الواجهة -قم بالتبديل بمدير منتج أقوى؛ إذا احتفظ الإخراج بتنسيق PRD، فلن يتغير المصب -▸ لا يوجد مدير -يتدفق التحكم على طول DAG: مدير المنتج → المهندس المعماري → مدير المشروع → المهندس → ضمان الجودة -▸ قناة الاستثناء -فشل ضمان الجودة → تم توجيه تقرير الخطأ مرة أخرى إلى المهندس بواسطة الوحدة → الإصلاح التكراري + +القاضي (يعتمد على الكود) +حالة اللعبة · التحكم بالمرحلة · توزيع المعلومات +الليل → النهار → التصويت → التسوية + +🐺 بالذئب 1 +مرئي: هويات زميل الفريق +الإستراتيجية: التنكر كقروي +الليل: اختر الهدف + + +المعرفة المتبادلة + +🐺 بالذئب 2 +مرئي: هويات زميل الفريق +الإستراتيجية: المتابعة والحماية +ليلاً: تفاوض على الهدف + + +المعرفة المتبادلة + +🔮 بصير +مرئي: نتائج التحقيق +الإستراتيجية: اختر متى تكشف +ليلاً: التحقيق مع شخص واحد + + +نتائج التحقيق + +🧪 ساحرة +مرئي: الموت/الشفاء +الإستراتيجية: الحفاظ على الجرعة/الترياق +الليل: حفظ/سمم شخص واحد + + +👤 قروي ×2 +مرئي: المعلومات العامة فقط +الإستراتيجية: التفكير المنطقي +اليوم: تحليل الكلام + + +التحكم في الوصول إلى المعلومات: يقوم القاضي بتصفية السياق حسب الدور +بالذئب: +معرفات الحلفاء + الحديث الليلي + الخطاب العام +الرائي: +نتائج الفحص الخاصة + الخطاب العام +ساحرة: +الوفيات + حالة الجرعة + الخطاب العام +القروي: +خطاب عام + تصويتات فقط + +التفاعل الصوتي في الوقت الحقيقي (ASR + LLM + TTS) +مناقشة اليوم +القاضي يحدد أمر الكلام +التحدث بدوره عن طريق المقعد +مرحلة التصويت +جمع أصوات اللاعبين +عد + إعلان الأصوات +المرحلة الليلية +ويستيقظ الأدوار بدوره +قناة صوتية خاصة +لاعب بشري +توزيع الأدوار بشكل عشوائي +التصويت الصوتي / الكلام \ No newline at end of file diff --git a/book-ar/images/fig10-12.svg b/book-ar/images/fig10-12.svg deleted file mode 100644 index eafa58892..000000000 --- a/book-ar/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -إيزابيلا رودريجيز -صاحب مقهى هوبز -مضياف ومؤنس - -تيار الذاكرة -[08:30] افتتاح مقهى هوبز للعمل -الأهمية: 4 الحداثة: 0.9 -[09:15] يأتي العميل كلاوس لشراء القهوة -الأهمية: 5 الحداثة: 0.85 -[10:00] قرروا إقامة حفلة عيد الحب -الأهمية: 9 الحداثة: 0.8 -[11:30] قم بدعوة العميلة ماريا إلى الحفلة -الأهمية: 8 الحداثة: 0.7 -[14:00] اطلب من ماريا المساعدة في تزيين المكان -الأهمية: 7 الحداثة: 0.6 - -انعكاس -"من هم عملاء هوبز الدائمين؟" -→ ماريا، كلاوس، توم (زوار متكررون) -"من يجب أن أدعوه إلى الحفلة؟" -→ دعوة كل من النظاميين والأصدقاء -"إلى أي مدى يتم إعداد الحفلة؟" -→ العديد من المدعوين، المكان لا يزال بحاجة إلى الديكور -"من يستطيع مساعدتي في تزيين المقهى؟" -→ ماريا (صديقة، على استعداد للمساعدة) - -التخطيط والعمل -08:00 الاستيقاظ + تناول وجبة الإفطار -09:00 هوبز يفتح أبوابه للعمل -12:00 دعوة العملاء أثناء إدارة المحل -14:00 تزيين المكان بماريا -16:00 تحضير المرطبات والجلوس -← التعديل الديناميكي -18:00 إقامة حفلة عيد الحب في هوبز - - -استرجاع - - -قيادة - -السلوك الناشئ (25 وكيلًا · يومين من الوقت الافتراضي) -▸ التنشئة الاجتماعية العفوية -لقاءات → صداقة → لقاءات -▸ نشر المعلومات -تنتشر دعوة الحفلة إلى العديد من الوكلاء -▸ الترويج للانتخابات -تنتشر حملة العمدة بين الوكلاء -▸ ذاكرة العلاقة -يتذكر الدردشات الماضية، ويواصل المواضيع -جميع السلوكيات ليست مبرمجة مسبقًا - نتائج ناشئة للذاكرة + التفكير + المنطق الاجتماعي السليم - \ No newline at end of file diff --git a/book-ar/images/fig10-13.svg b/book-ar/images/fig10-13.svg deleted file mode 100644 index debaf8150..000000000 --- a/book-ar/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -القاضي (يعتمد على الكود) -حالة اللعبة · التحكم بالمرحلة · توزيع المعلومات -الليل → النهار → التصويت → التسوية - -🐺 بالذئب 1 -مرئي: هويات زميل الفريق -الإستراتيجية: التنكر كقروي -الليل: اختر الهدف - - -المعرفة المتبادلة - -🐺 بالذئب 2 -مرئي: هويات زميل الفريق -الإستراتيجية: المتابعة والحماية -ليلاً: تفاوض على الهدف - - -المعرفة المتبادلة - -🔮 بصير -مرئي: نتائج التحقيق -الإستراتيجية: اختر متى تكشف -ليلاً: التحقيق مع شخص واحد - - -نتائج التحقيق - -🧪 ساحرة -مرئي: الموت/الشفاء -الإستراتيجية: الحفاظ على الجرعة/الترياق -الليل: حفظ/سمم شخص واحد - - -👤 قروي ×2 -مرئي: المعلومات العامة فقط -الإستراتيجية: التفكير المنطقي -اليوم: تحليل الكلام - - -التحكم في الوصول إلى المعلومات: يقوم القاضي بتصفية السياق حسب الدور -بالذئب: -معرفات الحلفاء + الحديث الليلي + الخطاب العام -الرائي: -نتائج الفحص الخاصة + الخطاب العام -ساحرة: -الوفيات + حالة الجرعة + الخطاب العام -القروي: -خطاب عام + تصويتات فقط - -التفاعل الصوتي في الوقت الحقيقي (ASR + LLM + TTS) -مناقشة اليوم -القاضي يحدد أمر الكلام -التحدث بدوره عن طريق المقعد -مرحلة التصويت -جمع أصوات اللاعبين -عد + إعلان الأصوات -المرحلة الليلية -ويستيقظ الأدوار بدوره -قناة صوتية خاصة -لاعب بشري -توزيع الأدوار بشكل عشوائي -التصويت الصوتي / الكلام - \ No newline at end of file diff --git a/book-ar/images/fig10-2.svg b/book-ar/images/fig10-2.svg index 86c26668e..7dfcf32de 100644 --- a/book-ar/images/fig10-2.svg +++ b/book-ar/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ التدفق المستمر ضمن نفس السياق — يتم الاحتفاظ بسجل المحادثة بالكامل عبر المراحل ▼ - -المرحلة 1 -محلل المتطلبات - -موجّه النظام -"مسؤوليتك هي أن تفهم المتطلبات بشكل كامل. -لا تتعجل في التنفيذ في هذه المرحلة -مهمتك هي طرح الأسئلة والتأكيد." - -مجموعة الأدوات -Ask_clarifying_question(س) -save_requirement(ك، الخامس) -Complete_req_analogy() - -تحويل الزناد -Complete_req_analogy() - - -المرحلة 2 -مهندس البرمجيات - -موجّه النظام -"اكتب بناءً على المتطلبات المؤكدة -كود Python عالي الجودة. اتبع -النمذجة، وأفضل الممارسات في التعامل مع الأخطاء." - -مجموعة الأدوات -write_file (المسار والمحتوى) -ملف القراءة (المسار) -تنفيذ_كود(كود) - -تحويل الزناد -Submit_for_review() - - -المرحلة 3 -مراجع الكود - -موجّه النظام -"تقييم جودة التعليمات البرمجية من أبعاد متعددة: -الصحة الوظيفية، ومعايير التعليمات البرمجية، -الأمن. اعتماد التفكير النقدي." - -مجموعة الأدوات -run_linter (ملف) -اختبارات التشغيل (ملف) -تحليل_التعقيد (ملف) -تبديل الدور: تحديث موجّه النظام + مجموعة الأدوات، وحفظ سجل المحادثة والحالة بشكل مستمر + + +الوكيل أ + +الوكيل ب + + + +نظام الملفات الظاهري / +الواجهة الموحدة: read_file · write_file · list_dir + + + +المستخدم +تحميل / تنزيل + + + + + + + +تحميل / تنزيل + + + + + +جبل + + + + +مساحة عمل الوكيل الخاصة +/خدش/<id> +المسودة + +خاص · الوكيل فقط +دمرت مع المثال +القراءة/الكتابة · لا حاجة للتحكم في التزامن +واحد لكل وكيل + + + +مساحة مشتركة متعددة الوكلاء +/مساحة العمل/مشتركة +مساحة العمل المشتركة + +مرئي للمستخدم · مستمر +القراءة/الكتابة · التحكم في التزامن مطلوب +قفل متفائل · شجرة العمل + + + +الموارد المركبة الخارجية +/mnt/gdrive · /mnt/notion +عبر محول + +خاضعة للترخيص الخارجي +في الغالب للقراءة فقط · اكتب بحذر +الكمون العالي · الاتساق الضعيف + + + +موارد النظام المضمنة +/ المهارات +المهارات · النماذج · الأدلة + +مشترك عالميًا · للقراءة فقط +مستقرة عبر الجلسات +الكشف التدريجي + + + +مصادر البيانات الخارجية +جوجل درايف · الفكرة + \ No newline at end of file diff --git a/book-ar/images/fig10-3.svg b/book-ar/images/fig10-3.svg index 7dfcf32de..682a52998 100644 --- a/book-ar/images/fig10-3.svg +++ b/book-ar/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -الوكيل أ - -الوكيل ب - - - -نظام الملفات الظاهري / -الواجهة الموحدة: read_file · write_file · list_dir - - - -المستخدم -تحميل / تنزيل - - - - - - - -تحميل / تنزيل - - - - - -جبل - - - - -مساحة عمل الوكيل الخاصة -/خدش/<id> -المسودة - -خاص · الوكيل فقط -دمرت مع المثال -القراءة/الكتابة · لا حاجة للتحكم في التزامن -واحد لكل وكيل - - - -مساحة مشتركة متعددة الوكلاء -/مساحة العمل/مشتركة -مساحة العمل المشتركة - -مرئي للمستخدم · مستمر -القراءة/الكتابة · التحكم في التزامن مطلوب -قفل متفائل · شجرة العمل - - - -الموارد المركبة الخارجية -/mnt/gdrive · /mnt/notion -عبر محول - -خاضعة للترخيص الخارجي -في الغالب للقراءة فقط · اكتب بحذر -الكمون العالي · الاتساق الضعيف - - - -موارد النظام المضمنة -/ المهارات -المهارات · النماذج · الأدلة - -مشترك عالميًا · للقراءة فقط -مستقرة عبر الجلسات -الكشف التدريجي - - - -مصادر البيانات الخارجية -جوجل درايف · الفكرة - + +وكيل المقترح +الإدخال: ملخص ورقي موسع (2000 كلمة) + +--- +الموضوع: أكاديمي +--- +# آلية الانتباه المحولة + +## الفكرة الأساسية +- الاهتمام الذاتي يحسب Q·K^T/√d +- المعالجة المتوازية للانتباه متعدد الرؤوس +فهم بنية المحتوى ← تقسيمه إلى صفحات شرائح + +وكيل المراجع + +① عرض Slidev → PDF/PNG +② تقييم رؤية LLM متعدد الأبعاد + +ردود الفعل المنظمة: +مدى خطورة نوع مشكلة الصفحة +محتوى P3 كثيف مرتفع +الخط P7 صغير جدًا ومتوسط +P11 عدم تطابق اللون منخفض +العرض + التحليل البصري → اقتراحات التحسين القابلة للتنفيذ + +كود الشريحة + +ردود فعل منظمة + +عملية التحسين التكرارية + +الجولة 1 +مسودة من 12 صفحة +5 قضايا + + +الجولة 2 +14 صفحة (تقسيم الصفحات الكثيفة) +2 قضايا + + +الجولة 3 +14 صفحة (تم تصحيح الخط) +0 قضايا ✓ + +لماذا لا نستخدم وكيل واحد؟ +وكيل واحد: تقديم الصور × جولات N → انفجار السياق +(لقطة شاشة بدقة 1080 بكسل = آلاف الرموز المميزة × 14 صفحة × 5 جولات) +الوكيل المزدوج: يرى المراجع الإصدار الحالي فقط +يقوم المقترح بتجميع التعليقات النصية فقط ← سياق نظيف \ No newline at end of file diff --git a/book-ar/images/fig10-4.svg b/book-ar/images/fig10-4.svg index 682a52998..4bdf3eae9 100644 --- a/book-ar/images/fig10-4.svg +++ b/book-ar/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -وكيل المقترح -الإدخال: ملخص ورقي موسع (2000 كلمة) - ---- -الموضوع: أكاديمي ---- -# آلية الانتباه المحولة - -## الفكرة الأساسية -- الاهتمام الذاتي يحسب Q·K^T/√d -- المعالجة المتوازية للانتباه متعدد الرؤوس -فهم بنية المحتوى ← تقسيمه إلى صفحات شرائح - -وكيل المراجع - -① عرض Slidev → PDF/PNG -② تقييم رؤية LLM متعدد الأبعاد - -ردود الفعل المنظمة: -مدى خطورة نوع مشكلة الصفحة -محتوى P3 كثيف مرتفع -الخط P7 صغير جدًا ومتوسط -P11 عدم تطابق اللون منخفض -العرض + التحليل البصري → اقتراحات التحسين القابلة للتنفيذ - -كود الشريحة - -ردود فعل منظمة - -عملية التحسين التكرارية - -الجولة 1 -مسودة من 12 صفحة -5 قضايا - - -الجولة 2 -14 صفحة (تقسيم الصفحات الكثيفة) -2 قضايا - - -الجولة 3 -14 صفحة (تم تصحيح الخط) -0 قضايا ✓ - -لماذا لا نستخدم وكيل واحد؟ -وكيل واحد: تقديم الصور × جولات N → انفجار السياق -(لقطة شاشة بدقة 1080 بكسل = آلاف الرموز المميزة × 14 صفحة × 5 جولات) -الوكيل المزدوج: يرى المراجع الإصدار الحالي فقط -يقوم المقترح بتجميع التعليقات النصية فقط ← سياق نظيف + +وكيل المدير +فهم المهام ← التحلل ← الجدولة ← التركيب +مجموعة الأدوات: [call_agent_A، call_agent_B، +call_agent_C، بحث، write_file] + +الوكيل الفرعي أ +الدور: جمع البيانات +ابحث في الوثائق الفنية +استخراج المعلومات الأساسية + +الخطوة 1 + + + +الوكيل الفرعي ب +الدور: التحليل والمعالجة +مقارنة وتحليل البيانات +إنشاء تقرير إحصائي + +الخطوة 2 + + + +الوكيل الفرعي ج +الدور: إنشاء التقارير +كتابة التقرير النهائي +تنسيق الإخراج + +الخطوة 3 + + +تدفق التنفيذ المتسلسل +المدير يدعو أ +→ إرجاع البيانات +→ يمرر المدير إلى B +→ تحليل عوائد B +→ يمرر المدير إلى C +→ C إرجاع التقرير +منظور المدير: وكيل الاتصال = استدعاء أداة (إرسال طلب → تلقي الرد) \ No newline at end of file diff --git a/book-ar/images/fig10-5.svg b/book-ar/images/fig10-5.svg index 4bdf3eae9..18cd4d09e 100644 --- a/book-ar/images/fig10-5.svg +++ b/book-ar/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -وكيل المدير -فهم المهام ← التحلل ← الجدولة ← التركيب -مجموعة الأدوات: [call_agent_A، call_agent_B، -call_agent_C، بحث، write_file] - -الوكيل الفرعي أ -الدور: جمع البيانات -ابحث في الوثائق الفنية -استخراج المعلومات الأساسية - -الخطوة 1 - - - -الوكيل الفرعي ب -الدور: التحليل والمعالجة -مقارنة وتحليل البيانات -إنشاء تقرير إحصائي - -الخطوة 2 - - - -الوكيل الفرعي ج -الدور: إنشاء التقارير -كتابة التقرير النهائي -تنسيق الإخراج - -الخطوة 3 - - -تدفق التنفيذ المتسلسل -المدير يدعو أ -→ إرجاع البيانات -→ يمرر المدير إلى B -→ تحليل عوائد B -→ يمرر المدير إلى C -→ C إرجاع التقرير -منظور المدير: وكيل الاتصال = استدعاء أداة (إرسال طلب → تلقي الرد) + +وكيل المدير +تخطيط المهام · مراقبة التقدم · معالجة الاستثناءات · تجميع النتائج + +وكيل المعجم +مسرد +احصل على كتاب كامل → حدد المصطلحات الفنية +ابحث في القواميس المتخصصة + اصطلاحات الترجمة +الإخراج: المسرد.json + +{"انتباه": "التفاصيل"، + "محول": "محول", + "backprop": "反向传播"} + + +وكيل الترجمة × ن +ترجمة الفصل +الإدخال: الفصل + المسرد + الدليل +ترجمة المصطلحات بدقة وفقا للمسرد +الإخراج: الفصل {ن}_zh.md + +"... آلية الانتباه تحسب التشابه + الاستعلام·المفتاح^T..." + + +وكيل التدقيق +مراجعة النص الكامل +مسح والتحقق من اتساق المصطلح +التحقق من الطلاقة وسهولة القراءة +الإخراج: review_report.md + +P3: عدم تناسق "注意力"→"关注". +ج8: جملة طويلة مقترحة للتقسيم + + +مسرد + +الترجمة + +نظام الملفات المشترك +مسرد.json +مسرد +الفصل{1..10}_zh.md +ترجمة الفصل +review_report.md +تقرير المراجعة +Translation_guide.md +دليل الترجمة + +مزايا عزل السياق +المسرد: عرض المصطلحات فقط | الترجمة: عرض الفصل الحالي فقط + المسرد | المدير: احتفظ فقط بفهرس الملف \ No newline at end of file diff --git a/book-ar/images/fig10-6.svg b/book-ar/images/fig10-6.svg index 18cd4d09e..626883ecb 100644 --- a/book-ar/images/fig10-6.svg +++ b/book-ar/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + وكيل المدير -تخطيط المهام · مراقبة التقدم · معالجة الاستثناءات · تجميع النتائج - -وكيل المعجم -مسرد -احصل على كتاب كامل → حدد المصطلحات الفنية -ابحث في القواميس المتخصصة + اصطلاحات الترجمة -الإخراج: المسرد.json - -{"انتباه": "التفاصيل"، - "محول": "محول", - "backprop": "反向传播"} - - -وكيل الترجمة × ن -ترجمة الفصل -الإدخال: الفصل + المسرد + الدليل -ترجمة المصطلحات بدقة وفقا للمسرد -الإخراج: الفصل {ن}_zh.md - -"... آلية الانتباه تحسب التشابه - الاستعلام·المفتاح^T..." - - -وكيل التدقيق -مراجعة النص الكامل -مسح والتحقق من اتساق المصطلح -التحقق من الطلاقة وسهولة القراءة -الإخراج: review_report.md - -P3: عدم تناسق "注意力"→"关注". -ج8: جملة طويلة مقترحة للتقسيم - - -مسرد - -الترجمة - -نظام الملفات المشترك -مسرد.json -مسرد -الفصل{1..10}_zh.md -ترجمة الفصل -review_report.md -تقرير المراجعة -Translation_guide.md -دليل الترجمة - -مزايا عزل السياق -المسرد: عرض المصطلحات فقط | الترجمة: عرض الفصل الحالي فقط + المسرد | المدير: احتفظ فقط بفهرس الملف +الجدولة الموازية · المراقبة في الوقت الحقيقي · تجميع النتائج + +حافلة الرسائل + + +الوكيل 1 +جمع البيانات +تشغيل ◎ +السياق المستقل + + +الوكيل 2 +تحليل المحتوى +تشغيل ◎ +السياق المستقل + + +الوكيل 3 +إنشاء الرسم البياني +اكتمل ✓ +السياق المستقل + + +الوكيل 4 +التحقق من صحة التنسيق +في انتظار ○ +السياق المستقل + + +مثال على اتصالات ناقل الرسائل +المدير → الوكيل 1 +{"type": "start"، "task": "اجمع أوراق arxiv"، "params": {"query": "LLM agent"}} +الوكيل 3 → المدير +{"type ": "مكتملة"، "agent_id": "3"، "result": "charts/fig1.svg ولدت"} +الوكيل 1 → الوكيل 2 +{"type": "data_ready"، "source": "agent_1"، "file": "raw_data.json"} +المدير → الوكيل 4 +{"type": "start"، "depends_on": ["agent_2"، "agent_3"]} \ No newline at end of file diff --git a/book-ar/images/fig10-7.svg b/book-ar/images/fig10-7.svg index 626883ecb..1f973eaac 100644 --- a/book-ar/images/fig10-7.svg +++ b/book-ar/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -وكيل المدير -الجدولة الموازية · المراقبة في الوقت الحقيقي · تجميع النتائج - -حافلة الرسائل - - -الوكيل 1 -جمع البيانات -تشغيل ◎ -السياق المستقل - - -الوكيل 2 -تحليل المحتوى -تشغيل ◎ -السياق المستقل - - -الوكيل 3 -إنشاء الرسم البياني -اكتمل ✓ -السياق المستقل - - -الوكيل 4 -التحقق من صحة التنسيق -في انتظار ○ -السياق المستقل - - -مثال على اتصالات ناقل الرسائل -المدير → الوكيل 1 -{"type": "start"، "task": "اجمع أوراق arxiv"، "params": {"query": "LLM agent"}} -الوكيل 3 → المدير -{"type ": "مكتملة"، "agent_id": "3"، "result": "charts/fig1.svg ولدت"} -الوكيل 1 → الوكيل 2 -{"type": "data_ready"، "source": "agent_1"، "file": "raw_data.json"} -المدير → الوكيل 4 -{"type": "start"، "depends_on": ["agent_2"، "agent_3"]} + +وكيل الهاتف +Node.js · المكالمات الصوتية في الوقت الحقيقي + +صوت المستخدم +إدخال الميكروفون + + +في أي دي + إيه إس آر +Silero VAD → النسخ STT + + +LLM الاستدلال +فهم النية + استخراج المعلومات + + +تحويل النص إلى كلام التوليف +إنشاء رد صوتي → تشغيل + +وكيل الكمبيوتر +Python · أتمتة المتصفح + +لقطة الشاشة +الصفحة الحالية للمتصفح + + +رؤية LLM +فهم بنية الصفحة + حقول النموذج + + +تخطيط العمل +حدد موقع الحقول → خطة تسلسل الإدخال + + +تنفيذ الإجراءات +انقر فوق / إدخال / إرسال + +اتصال WebSocket ثنائي الاتجاه (ws://localhost:8849) + + + +دفق الرسائل ثنائي الاتجاه في الوقت الفعلي (استخدم الكمبيوتر أثناء الاتصال) +الهاتف → الكمبيوتر +[FROM_PHONE_AGENT] يقول المستخدم أن الاسم هو Zhang San +الكمبيوتر → الهاتف +[FROM_COMPUTER_AGENT] تم ملء الاسم، ويحتاج إلى رقم الهوية +الهاتف → الكمبيوتر +[FROM_PHONE_AGENT] رقم الهوية 310101199001011234 +الكمبيوتر → الهاتف +[FROM_COMPUTER_AGENT] تم إرسال النموذج، وتم التسجيل بنجاح +المفتاح: يشغّل وكيلان حلقات ReAct مستقلة بالتوازي، دون حظر \ No newline at end of file diff --git a/book-ar/images/fig10-8.svg b/book-ar/images/fig10-8.svg index 1f973eaac..5c893db8f 100644 --- a/book-ar/images/fig10-8.svg +++ b/book-ar/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -وكيل الهاتف -Node.js · المكالمات الصوتية في الوقت الحقيقي - -صوت المستخدم -إدخال الميكروفون - - -في أي دي + إيه إس آر -Silero VAD → النسخ STT - - -LLM الاستدلال -فهم النية + استخراج المعلومات - - -تحويل النص إلى كلام التوليف -إنشاء رد صوتي → تشغيل - -وكيل الكمبيوتر -Python · أتمتة المتصفح - -لقطة الشاشة -الصفحة الحالية للمتصفح - - -رؤية LLM -فهم بنية الصفحة + حقول النموذج - - -تخطيط العمل -حدد موقع الحقول → خطة تسلسل الإدخال - - -تنفيذ الإجراءات -انقر فوق / إدخال / إرسال - -اتصال WebSocket ثنائي الاتجاه (ws://localhost:8849) - - - -دفق الرسائل ثنائي الاتجاه في الوقت الفعلي (استخدم الكمبيوتر أثناء الاتصال) -الهاتف → الكمبيوتر -[FROM_PHONE_AGENT] يقول المستخدم أن الاسم هو Zhang San -الكمبيوتر → الهاتف -[FROM_COMPUTER_AGENT] تم ملء الاسم، ويحتاج إلى رقم الهوية -الهاتف → الكمبيوتر -[FROM_PHONE_AGENT] رقم الهوية 310101199001011234 -الكمبيوتر → الهاتف -[FROM_COMPUTER_AGENT] تم إرسال النموذج، وتم التسجيل بنجاح -المفتاح: يشغّل وكيلان حلقات ReAct مستقلة بالتوازي، دون حظر + +وكيل المدير +الخلق الديناميكي · المراقبة في الوقت الحقيقي · الإنهاء المتتالي + +الوكيل 1 +cs.edu.cn +بحث في دليل المعلم +البحث... ◎ + + +الوكيل 2 +math.edu.cn +بحث في دليل المعلم +لم يتم العثور عليه ✗ + + +الوكيل 3 +phys.edu.cn +بحث في دليل المعلم +وجدت! ✓ + + +الوكيل 4 +chem.edu.cn +بحث في دليل المعلم +انتهى ⊘ + + +الوكيل 5…10 +… (المجموع 10) +بحث في دليل المعلم +انتهى ⊘ + + +تسلسل الإنهاء المتتالي +ر = 0 ث +ابدأ 10 وكلاء +البحث الموازي عن "تشانغ وي" + +ر = 12 ثانية +الوكيل 2 يكتمل +لم يتم العثور على → الخروج + +ر = 18 ثانية +عثر الوكيل 3 على الهدف! +أرسل target_found + +ر = 18.1 ثانية +إنهاء عمليات البث للمدير +إلى الوكلاء العاملين المتبقين + +ر = 19 ثانية +كل تأكيد الإنهاء +النتائج الإجمالية والعودة + +تم العثور على النتيجة +الاسم: مدرسة تشانغ وي: مدرسة الفيزياء +المنصب: أستاذ المجال: الحوسبة الكمومية +البريد الإلكتروني: zhangwei@phys.edu.cn + +مقارنة الأداء +المسلسل: 10 مواقع × 30 ثانية = ~5 دقائق +الموازي: 18 ثانية للعثور على + 1 ثانية للإنهاء = 19 ثانية +التسريع: ~15× (مع تحسين الإنهاء المتتالي) \ No newline at end of file diff --git a/book-ar/images/fig10-9.svg b/book-ar/images/fig10-9.svg index 5c893db8f..ad12e01c1 100644 --- a/book-ar/images/fig10-9.svg +++ b/book-ar/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -وكيل المدير -الخلق الديناميكي · المراقبة في الوقت الحقيقي · الإنهاء المتتالي - -الوكيل 1 -cs.edu.cn -بحث في دليل المعلم -البحث... ◎ - - -الوكيل 2 -math.edu.cn -بحث في دليل المعلم -لم يتم العثور عليه ✗ - - -الوكيل 3 -phys.edu.cn -بحث في دليل المعلم -وجدت! ✓ - - -الوكيل 4 -chem.edu.cn -بحث في دليل المعلم -انتهى ⊘ - - -الوكيل 5…10 -… (المجموع 10) -بحث في دليل المعلم -انتهى ⊘ - - -تسلسل الإنهاء المتتالي -ر = 0 ث -ابدأ 10 وكلاء -البحث الموازي عن "تشانغ وي" - -ر = 12 ثانية -الوكيل 2 يكتمل -لم يتم العثور على → الخروج - -ر = 18 ثانية -عثر الوكيل 3 على الهدف! -أرسل target_found - -ر = 18.1 ثانية -إنهاء عمليات البث للمدير -إلى الوكلاء العاملين المتبقين - -ر = 19 ثانية -كل تأكيد الإنهاء -النتائج الإجمالية والعودة - -تم العثور على النتيجة -الاسم: مدرسة تشانغ وي: مدرسة الفيزياء -المنصب: أستاذ المجال: الحوسبة الكمومية -البريد الإلكتروني: zhangwei@phys.edu.cn - -مقارنة الأداء -المسلسل: 10 مواقع × 30 ثانية = ~5 دقائق -الموازي: 18 ثانية للعثور على + 1 ثانية للإنهاء = 19 ثانية -التسريع: ~15× (مع تحسين الإنهاء المتتالي) + +مدير المنتج +الإدخال: وصف متطلبات المستخدم + +الإخراج: +قائمة الميزات + الأولوية +قصص المستخدم (5 العناصر) +معايير القبول + +docs/PRD.md + + + +مهندس معماري +الإدخال: PRD.md + +الإخراج: +المكدس الفني: FastAPI + React +مواصفات API (OpenAPI) +مخطط قاعدة البيانات + +مستندات/design.md + + + +مدير المشروع +الإدخال : design.md + +الإخراج: +قائمة المهام + المهمة +التخصيص على مستوى الملف +ترتيب تبعية الوحدة النمطية + +مستندات/tasks.md + + + +مهندس ×3 +الإدخال: المهام.md + التصميم.md + +الإخراج: +الوحدة أ: خدمة المستخدم +الوحدة ب: خدمة الطلب +الوحدة ج: خدمة الدفع + +src/*.py + + + +مهندس ضمان الجودة +الإدخال: src/ + PRD.md + +الإخراج: +اختبارات الوحدة (pytest) +اختبارات التكامل (API) +تقرير الشوائب → مهندس + +docs/test_report.md + +إصلاح الخلل + + +دليل المشروع المشترك +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +تصميم MetaGPT الأساسي +▸ وثائق موحدة +يصدر كل دور تنسيقًا ثابتًا؛ المصب يحتاج إلى الشكل، وليس المنطق +▸ فصل الواجهة +قم بالتبديل بمدير منتج أقوى؛ إذا احتفظ الإخراج بتنسيق PRD، فلن يتغير المصب +▸ لا يوجد مدير +يتدفق التحكم على طول DAG: مدير المنتج → المهندس المعماري → مدير المشروع → المهندس → ضمان الجودة +▸ قناة الاستثناء +فشل ضمان الجودة → تم توجيه تقرير الخطأ مرة أخرى إلى المهندس بواسطة الوحدة → الإصلاح التكراري \ No newline at end of file diff --git a/book-ar/images/fig10-sequential-handoff.svg b/book-ar/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..95cc9a233 --- /dev/null +++ b/book-ar/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +الوكيل أ +تحليل المتطلبات + +الإخراج: وثيقة المتطلبات المنظمة +المواصفات.json +تسليم → + + +الوكيل ب +التصميم المعماري + +الإخراج: وثيقة التصميم الفني +تصميم.md +تسليم → + + +الوكيل ج +تنفيذ الكود + +الإخراج: كود المصدر +src/*.py +تسليم → + + +الوكيل د +الاختبار والتحقق من الصحة + +الإخراج: تقرير الاختبار +test_report.md +تسليم → + +محتوى التسليم (الوكيل أ → مثال الوكيل ب) +حالة الزناد: +مستند المتطلبات المكتملة → is_Complete=True +الوكيل المستهدف: +الهدف = "المهندس المعماري" (الوكيل ب) +محتوى التسليم: +files=["spec.json"] + Summary="نظام التجارة الإلكترونية: 3 خدمات صغيرة، REST API" +حالة ما بعد التسليم: +الحالة = "الخروج" (حرر الموارد، لا تبقى في وضع الاستعداد) + +مزايا اللامركزية +✓ لا حاجة إلى مدير مركزي لفهم جميع الأدوار +✓ حدود واضحة للمسؤولية، وفصل الواجهة +✓ الخروج عند الانتهاء، وإطلاق سراح الموارد المستمرة + +قيود اللامركزية +✗ عدم وجود منظور التحسين العالمي +✗ صعوبة التعامل مع الاستثناءات (لا يوجد تنسيق مركزي) +✗ عملية ثابتة، يصعب ضبطها ديناميكيًا + \ No newline at end of file diff --git a/book-ar/images/fig10-stage-switching.svg b/book-ar/images/fig10-stage-switching.svg new file mode 100644 index 000000000..86c26668e --- /dev/null +++ b/book-ar/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ التدفق المستمر ضمن نفس السياق — يتم الاحتفاظ بسجل المحادثة بالكامل عبر المراحل ▼ + +المرحلة 1 +محلل المتطلبات + +موجّه النظام +"مسؤوليتك هي أن تفهم المتطلبات بشكل كامل. +لا تتعجل في التنفيذ في هذه المرحلة +مهمتك هي طرح الأسئلة والتأكيد." + +مجموعة الأدوات +Ask_clarifying_question(س) +save_requirement(ك، الخامس) +Complete_req_analogy() + +تحويل الزناد +Complete_req_analogy() + + +المرحلة 2 +مهندس البرمجيات + +موجّه النظام +"اكتب بناءً على المتطلبات المؤكدة +كود Python عالي الجودة. اتبع +النمذجة، وأفضل الممارسات في التعامل مع الأخطاء." + +مجموعة الأدوات +write_file (المسار والمحتوى) +ملف القراءة (المسار) +تنفيذ_كود(كود) + +تحويل الزناد +Submit_for_review() + + +المرحلة 3 +مراجع الكود + +موجّه النظام +"تقييم جودة التعليمات البرمجية من أبعاد متعددة: +الصحة الوظيفية، ومعايير التعليمات البرمجية، +الأمن. اعتماد التفكير النقدي." + +مجموعة الأدوات +run_linter (ملف) +اختبارات التشغيل (ملف) +تحليل_التعقيد (ملف) +تبديل الدور: تحديث موجّه النظام + مجموعة الأدوات، وحفظ سجل المحادثة والحالة بشكل مستمر + \ No newline at end of file diff --git a/book-ar/images/fig8-1.svg b/book-ar/images/fig8-1.svg index 2d703829b..3a8a4b527 100644 --- a/book-ar/images/fig8-1.svg +++ b/book-ar/images/fig8-1.svg @@ -1,26 +1,54 @@ - - - -مهمة كاملة -توليد الخام -تجربة - -صقل الخبرة -تلخيص، -ضغط، هيكل - - -مخزن في النظام الخارجي -قاعدة المعرفة / الأدوات، -يمكن استرجاعه - - -استرجاع و -إعادة الاستخدام -استدعاء في المهمة التالية - - - - -تتراكم الخبرة باستمرار، ويُعاد استخدامها عبر الجلسات - \ No newline at end of file + + + + + + + + + التطور المستمر: من خبرة التشغيل إلى إصدار جديد من الوكيل + + + تنفيذ المهمة + التفاعل مع المستخدموالبيئة والأدوات + + + تسجيل المسار + الإجراءات والنتائجوالتغذية الراجعة + + + تكوين الإشارات + النتيجة · العملية · الجودة + + + توليد تحديثات مرشحة + + + + + المعرفة + التعليمات + البرامج + المعاملات + + + التحقق والإصدار + الانحدار والإطلاقالتدريجي والتراجع + + + + + + + + الوكيل الجديد يدخل الجولة التالية + التحديثات التي تغيّر السلوك اللاحق وتجتاز التحقق هي وحدها التي تشكّل تطورًا مستمرًا + + diff --git a/book-en/chapter10.md b/book-en/chapter10.md index ddabdff6a..ab9165291 100644 --- a/book-en/chapter10.md +++ b/book-en/chapter10.md @@ -162,9 +162,9 @@ At the beginning of this chapter, the "shared file system" was listed as one of **IV. Built-in System Resources.** A resource package pre-installed by the system and shared read-only with all Agents. Typical examples are the **Skills** introduced in Chapters 2 and 4—knowledge documents and scripts organized as files, mounted at paths like `/skills`, accessed via progressive disclosure (index first, then expand on demand). Other examples include reference manuals, template libraries, and shared tool definitions. This layer is globally shared, read-only, stable across sessions, and can be read concurrently by all Agents without concurrency control. -Figure 10-3 illustrates how these four area types are uniformly mounted under a single directory tree: the Agent accesses the entire tree through a unified interface, users upload and download files from the shared space, external data sources are mounted via adapters, and built-in system resources are provided read-only. +Figure 10-2 illustrates how these four area types are uniformly mounted under a single directory tree: the Agent accesses the entire tree through a unified interface, users upload and download files from the shared space, external data sources are mounted via adapters, and built-in system resources are provided read-only. -![Figure 10-3: Mounting structure of the four area types in the Agent Virtual File System](images/fig10-3.svg) +![Figure 10-2: Mounting structure of the four area types in the Agent Virtual File System](images/fig10-2.svg) Table 10-4 compares these four area types across four dimensions—visibility, lifecycle, read/write permissions, and concurrency control—serving as a checklist for file system layout design. @@ -252,7 +252,7 @@ The Agent still reasons, uses tools, and produces candidate artifacts. LoopX doe **Proposer-Reviewer Paradigm.** -![Figure 10-4: Proposer-Reviewer Loop](images/fig10-4.svg) +![Figure 10-3: Proposer-Reviewer Loop](images/fig10-3.svg) Proposer-Reviewer is the canonical peer-collaboration paradigm. Chapter 5 already covered its design principles and practical applications in three experiments: PPT generation, video editing, and log visualization. The Proposer Agent generates code, while the Reviewer Agent renders the execution results, evaluates their quality using a vision-language model, and provides structured suggestions for improvement. The two iterate until the result meets the required standard. @@ -335,7 +335,7 @@ return summarize_failures(workers) **Sequential Coordination Pattern.** -![Figure 10-5: Manager Sequential Coordination](images/fig10-5.svg) +![Figure 10-4: Manager Sequential Coordination](images/fig10-4.svg) The Manager calls specialized Agents sequentially. Each Agent returns results upon completion, and the Manager decides the next step. The control flow is linear, simple, and clear, making it suitable for scenarios where subtasks have clear sequential dependencies. @@ -364,14 +364,14 @@ The Manager calls specialized Agents sequentially. Each Agent returns results up > 4. Compare a single Agent with the manager pattern in terms of translation quality, execution efficiency, and resource consumption > > -> ![Figure 10-6: Book Translation Agent Architecture](images/fig10-6.svg) +> ![Figure 10-5: Book Translation Agent Architecture](images/fig10-5.svg) > > **Parallel Coordination Pattern.** -![Figure 10-7: Manager Parallel Coordination](images/fig10-7.svg) +![Figure 10-6: Manager Parallel Coordination](images/fig10-6.svg) When multiple subtasks can run in parallel, the sequential pattern becomes inefficient. Parallel coordination allows multiple Agents to work simultaneously, significantly increasing throughput. The Manager Agent must plan the parallel tasks, monitor all running Agents in real time, coordinate their communication, and make system-wide decisions when Agents succeed or fail. This typically requires a **message bus** as infrastructure—think of it as a "public bulletin board" where Agents can publish messages and subscribe to the message types that interest them, enabling asynchronous, non-blocking communication. Two common implementations, from simpler to more complex, are **Redis Pub/Sub** and message queues such as **RabbitMQ**. Redis Pub/Sub is lightweight and delivers messages immediately, but it does not persist them, so a receiver that is offline will miss them. RabbitMQ and similar systems persist messages to disk, preserving them while a receiver is temporarily offline. Messages typically use a JSON envelope containing the sender ID, target Agent (or a broadcast marker), message type, and payload. @@ -394,7 +394,7 @@ The rest of Lingtai's design also echoes earlier sections. Knowledge lives in ea > > **Requirements and evidence**: Demonstrate autonomous launch, independent ReAct loops, bidirectional messaging, true overlap, field validation and re-asking, page-error feedback, timeouts, cancellation and cleanup of browser/audio resources. Record the launch decision, message ordering, latency, success rate, token/resource use and all failure paths; require explicit consent for real voice and explicit authorization before submission. > -> ![Figure 10-8: Phone and Computer Dual Agent Architecture](images/fig10-8.svg) +> ![Figure 10-7: Phone and Computer Dual Agent Architecture](images/fig10-7.svg) > **Experiment 10-4 ★★★: Agent Collecting Information from Multiple Websites Simultaneously** > > **Prerequisites**: It is recommended that readers first review the event-driven and interrupt mechanisms from Chapter 4. @@ -424,7 +424,7 @@ The rest of Lingtai's design also echoes earlier sections. Knowledge lives in ea > 6. Measure and compare serial and parallel execution times to quantify the speedup from parallelization > > -> ![Figure 10-9: Parallel Web Scraping Architecture](images/fig10-9.svg) +> ![Figure 10-8: Parallel Web Scraping Architecture](images/fig10-8.svg) > > @@ -459,7 +459,7 @@ An effective handoff package contains a task description and acceptance criteria **MetaGPT: SOP-Driven Software Company Simulation.** -![Figure 10-11: MetaGPT Multi-Agent Collaboration Network](images/fig10-11.svg) +![Figure 10-9: MetaGPT Multi-Agent Collaboration Network](images/fig10-9.svg) MetaGPT's core insight is that the **Standard Operating Procedures** (SOPs) developed and refined by software companies can serve as collaboration protocols for multi-agent systems. Encoding these SOPs allows each role, like a specialized worker on an assembly line, to produce standardized deliverables, and those deliverables naturally become the communication interfaces between roles. @@ -484,7 +484,7 @@ This is not fully decentralized in terms of control flow: a `GroupChatManager` s This model suits tasks that require discussion from several perspectives and whose speaking order cannot be determined in advance, such as plan review or cross-domain analysis. However, the conversation can drift: every Agent may keep speaking without the group making progress, a form of livelock. Clear termination conditions are therefore essential. On the dimensions used in this chapter, AutoGen is a hybrid: scheduling is centralized, while context is partially shared. This illustrates that topology and context sharing are independent design dimensions. -**OpenAI Swarm and Agents SDK: Handoff Network.** In contrast, OpenAI's Swarm and its successor, the Agents SDK, represent peer-to-peer decentralization in control flow. Each Agent has several handoff options and can transfer control to another Agent in the network at any time. A customer-service triage Agent that determines an issue involves a refund hands the task to the Refund Agent; if that Agent discovers a technical fault, it can hand the task to the Technical Support Agent. There is no central scheduler. Control passes like a baton between peer Agents, and each Agent makes its own routing decisions. This is the engineering implementation of the handoff-chain pattern in Figure 10-10. The risk is cycles: A hands off to B, and B hands back to A, leaving the task spinning in a loop. A guard such as a maximum handoff count is needed to break it. +**OpenAI Swarm and Agents SDK: Handoff Network.** In contrast, OpenAI's Swarm and its successor, the Agents SDK, represent peer-to-peer decentralization in control flow. Each Agent has several handoff options and can transfer control to another Agent in the network at any time. A customer-service triage Agent that determines an issue involves a refund hands the task to the Refund Agent; if that Agent discovers a technical fault, it can hand the task to the Technical Support Agent. There is no central scheduler. Control passes like a baton between peer Agents, and each Agent makes its own routing decisions. The risk is cycles: A hands off to B, and B hands back to A, leaving the task spinning in a loop. A guard such as a maximum handoff count is needed to break it. > **Terminology: Agent Swarm.** Since 2025, "Agent Swarm" has become a buzzword across vendors, but it does not correspond to a single architecture. Industry usage falls roughly into two camps. The first is the OpenAI Swarm-style handoff network (LangGraph's swarm library and Microsoft Agent Framework's handoff orchestration follow the same idea)—the decentralized pattern discussed in this section. The second, found in some mainstream commercial products, is the Manager Pattern at scale: the Agent Swarm debuted with Kimi K2.5 has the main Agent dynamically create hundreds of sub-agents to execute in parallel, with the orchestration decisions of "when to split, and into how many" trained directly into the model through parallel-Agent reinforcement learning; K3 continues this as a dedicated model tier, and the accompanying parallel-Agent training sandbox, AgentEnv, has been open-sourced.[^ch10-kimi-swarm] Anthropic's multi-agent research system and Manus's Wide Research both belong to the same orchestrator-worker star topology. Our hope is that after reading this book, you can see through the concepts to their essence and analyze multi-agent systems from first principles. @@ -580,7 +580,7 @@ The cases in this section can be understood from three dimensions: ### Stanford AI Town: Social Simulation of Generative Agents -![Figure 10-12: AI Town Architecture](images/fig10-12.svg) +![Figure 10-10: AI Town Architecture](images/fig10-10.svg) In 2023, researchers from Stanford University and Google published the landmark paper "Generative Agents: Interactive Simulacra of Human Behavior," introducing the concept of "generative agents." The core innovation was to stop confining Agents to predefined tasks and instead endow them with near-human memory, reflection, and planning, so that they could live, socialize, and develop autonomously in an open social environment. @@ -694,7 +694,7 @@ Werewolf anchors the third dimension of this section, **strategic gameplay**: un > - Villager Agents' reasoning is based on logical analysis of statements and behaviors, not random guessing > - The game can correctly determine the winner at the end > -> ![Figure 10-13: Voice Werewolf Agent System](images/fig10-13.svg) +> ![Figure 10-11: Voice Werewolf Agent System](images/fig10-11.svg) > > diff --git a/book-en/images/fig10-10.svg b/book-en/images/fig10-10.svg index c27bb4482..65131d1e1 100644 --- a/book-en/images/fig10-10.svg +++ b/book-en/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -Requirements Analysis - -Output: Structured Requirements Document -spec.json -Handoff → - - -Agent B -Architecture Design - -Output: Technical Design Document -design.md -Handoff → - - -Agent C -Code Implementation - -Output: Source Code -src/*.py -Handoff → - - -Agent D -Testing and Validation - -Output: Test Report -test_report.md -Handoff → - -Handoff Content (Agent A → Agent B Example) -Trigger Condition: -A completes requirements document → is_complete=True -Target Agent: -target="architect" (Agent B) -Handoff Content: -files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" -Post-Handoff Status: -status="exit" (release resources, do not remain on standby) - -Decentralization Advantages -✓ No central Manager needed to understand all roles -✓ Clear responsibility boundaries, interface decoupling -✓ Exit upon completion, release persistent resources - -Decentralization Limitations -✗ Lack of global optimization perspective -✗ Difficult exception handling (no central coordination) -✗ Fixed process, hard to dynamically adjust + +Isabella Rodriguez +Hobbs Cafe Owner +Hospitable and sociable + +Memory Stream +[08:30] Hobbs Cafe opens for business +importance: 4 recency: 0.9 +[09:15] Customer Klaus comes to buy coffee +importance: 5 recency: 0.85 +[10:00] Decide to hold a Valentine's Day party +importance: 9 recency: 0.8 +[11:30] Invite customer Maria to the party +importance: 8 recency: 0.7 +[14:00] Ask Maria to help decorate the venue +importance: 7 recency: 0.6 + +Reflection +"Who are Hobbs' regular customers?" +→ Maria, Klaus, Tom (frequent visitors) +"Who should I invite to the party?" +→ Invite both regulars and friends +"How far along is the party preparation?" +→ Several invited, venue still needs decoration +"Who can help me decorate the cafe?" +→ Maria (friend, willing to help) + +Planning and Action +08:00 Wake up + Breakfast +09:00 Hobbs opens for business +12:00 Invite customers while running the shop +14:00 Decorate the venue with Maria +16:00 Prepare refreshments and seating +← Dynamic adjustment +18:00 Hold Valentine's Day party at Hobbs + + +Retrieval + + +Drive + +Emergent behavior (25 Agents · 2 days virtual time) +▸ Spontaneous socializing +Encounters → friendship → meetups +▸ Information Propagation +Party invite spreads to many Agents +▸ Election Propagation +Mayor campaign spreads among Agents +▸ Relationship Memory +Remembers past chats, continues topics +All behaviors are not pre-programmed — emergent results of memory + reflection + social common sense reasoning \ No newline at end of file diff --git a/book-en/images/fig10-11.svg b/book-en/images/fig10-11.svg index e54d59cc5..1aa584391 100644 --- a/book-en/images/fig10-11.svg +++ b/book-en/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Product Manager -Input: User requirement description - -Output: -Feature list + priority -User stories (5 items) -Acceptance criteria - -docs/PRD.md - - - -Architect -Input: PRD.md - -Output: -Tech stack: FastAPI+React -API specification (OpenAPI) -Database schema - -docs/design.md - - - -Project Manager -Input: design.md - -Output: -Task list + assignment -File-level allocation -Module dependency order - -docs/tasks.md - - - -Engineer ×3 -Input: tasks.md + design.md - -Output: -Module A: User service -Module B: Order service -Module C: Payment service - -src/*.py - - - -QA Engineer -Input: src/ + PRD.md - -Output: -Unit tests (pytest) -Integration tests (API) -Bug report → Engineer - -docs/test_report.md - -Bug fix - - -Shared project directory -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT core design -▸ Standardized documents -Each role emits a fixed format; downstream needs the format, not the reasoning -▸ Interface decoupling -Swap in a stronger Product Mgr; if output keeps PRD format, downstream is unchanged -▸ No Manager -Control flows along the DAG: Product Mgr→Architect→Project Mgr→Engineer→QA -▸ Exception channel -QA failure → bug report routed back to Engineer by module → iterative fix + +Judge (Code-Driven) +Game State · Phase Control · Information Distribution +Night → Day → Vote → Settle + +🐺 Werewolf 1 +Visible: Teammate Identities +Strategy: Disguise as Villager +Night: Choose Target + + +Mutual Knowledge + +🐺 Werewolf 2 +Visible: Teammate Identities +Strategy: Follow and Protect +Night: Negotiate Target + + +Mutual Knowledge + +🔮 Seer +Visible: Investigation Results +Strategy: Choose When to Reveal +Night: Investigate 1 Person + + +Investigation Results + +🧪 Witch +Visible: Death/Healing +Strategy: Preserve Potion/Antidote +Night: Save/Poison 1 Person + + +👤 Villager ×2 +Visible: Public Information Only +Strategy: Logical Reasoning +Day: Analyze Speech + + +Information Access Control: Judge Filters Context by Role +Werewolf: +Ally IDs + night talk + public speech +Seer: +Own check results + public speech +Witch: +Deaths + potion status + public speech +Villager: +Public speech + votes only + +Real-time voice interaction (ASR + LLM + TTS) +Day discussion +Judge sets speak order +Speak in turn by seat +Voting phase +Collect player votes +Count + announce votes +Night phase +Wake roles in turn +Private voice channel +Human player +Randomly assign roles +Voice voting/speech \ No newline at end of file diff --git a/book-en/images/fig10-12.svg b/book-en/images/fig10-12.svg deleted file mode 100644 index 65131d1e1..000000000 --- a/book-en/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs Cafe Owner -Hospitable and sociable - -Memory Stream -[08:30] Hobbs Cafe opens for business -importance: 4 recency: 0.9 -[09:15] Customer Klaus comes to buy coffee -importance: 5 recency: 0.85 -[10:00] Decide to hold a Valentine's Day party -importance: 9 recency: 0.8 -[11:30] Invite customer Maria to the party -importance: 8 recency: 0.7 -[14:00] Ask Maria to help decorate the venue -importance: 7 recency: 0.6 - -Reflection -"Who are Hobbs' regular customers?" -→ Maria, Klaus, Tom (frequent visitors) -"Who should I invite to the party?" -→ Invite both regulars and friends -"How far along is the party preparation?" -→ Several invited, venue still needs decoration -"Who can help me decorate the cafe?" -→ Maria (friend, willing to help) - -Planning and Action -08:00 Wake up + Breakfast -09:00 Hobbs opens for business -12:00 Invite customers while running the shop -14:00 Decorate the venue with Maria -16:00 Prepare refreshments and seating -← Dynamic adjustment -18:00 Hold Valentine's Day party at Hobbs - - -Retrieval - - -Drive - -Emergent behavior (25 Agents · 2 days virtual time) -▸ Spontaneous socializing -Encounters → friendship → meetups -▸ Information Propagation -Party invite spreads to many Agents -▸ Election Propagation -Mayor campaign spreads among Agents -▸ Relationship Memory -Remembers past chats, continues topics -All behaviors are not pre-programmed — emergent results of memory + reflection + social common sense reasoning - \ No newline at end of file diff --git a/book-en/images/fig10-13.svg b/book-en/images/fig10-13.svg deleted file mode 100644 index 1aa584391..000000000 --- a/book-en/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Judge (Code-Driven) -Game State · Phase Control · Information Distribution -Night → Day → Vote → Settle - -🐺 Werewolf 1 -Visible: Teammate Identities -Strategy: Disguise as Villager -Night: Choose Target - - -Mutual Knowledge - -🐺 Werewolf 2 -Visible: Teammate Identities -Strategy: Follow and Protect -Night: Negotiate Target - - -Mutual Knowledge - -🔮 Seer -Visible: Investigation Results -Strategy: Choose When to Reveal -Night: Investigate 1 Person - - -Investigation Results - -🧪 Witch -Visible: Death/Healing -Strategy: Preserve Potion/Antidote -Night: Save/Poison 1 Person - - -👤 Villager ×2 -Visible: Public Information Only -Strategy: Logical Reasoning -Day: Analyze Speech - - -Information Access Control: Judge Filters Context by Role -Werewolf: -Ally IDs + night talk + public speech -Seer: -Own check results + public speech -Witch: -Deaths + potion status + public speech -Villager: -Public speech + votes only - -Real-time voice interaction (ASR + LLM + TTS) -Day discussion -Judge sets speak order -Speak in turn by seat -Voting phase -Collect player votes -Count + announce votes -Night phase -Wake roles in turn -Private voice channel -Human player -Randomly assign roles -Voice voting/speech - \ No newline at end of file diff --git a/book-en/images/fig10-2.svg b/book-en/images/fig10-2.svg index 6560f228f..67e6b2f93 100644 --- a/book-en/images/fig10-2.svg +++ b/book-en/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ - -Phase 1 -Requirements Analyst - -System prompt -"Your responsibility is to fully understand the requirements. -Don't rush to implement at this stage -Your task is to ask questions and confirm." - -Tool set -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -Trigger conversion -complete_req_analysis() - - -Phase 2 -Software engineer - -System prompt -"Write based on confirmed requirements -High-quality Python code. Follow -Modularization, error handling best practices." - -Tool set -write_file(path, content) -read_file(path) -execute_code(code) - -Trigger conversion -submit_for_review() - - -Phase 3 -Code reviewer - -System prompt -"Evaluate code quality from multiple dimensions: -Functional correctness, code standards, -Security. Adopt critical thinking." - -Tool set -run_linter(file) -run_tests(file) -analyze_complexity(file) -Role switch: update system prompt + tool set, conversation history and state continuously preserved - \ No newline at end of file + + +Agent A + +Agent B + + + +Virtual File System / +Unified interface: read_file · write_file · list_dir + + + +User +Upload / Download + + + + + + + +Upload / Download + + + + + +Mount + + + + +Agent Private Workspace +/scratch/<id> +Scratchpad + +Private · Agent-only +Destroyed with instance +Read/Write · No concurrency control needed +One per Agent + + + +Multi-Agent Shared Space +/workspace/shared +Shared Workspace + +User-visible · Persistent +Read/Write · Concurrency control required +Optimistic lock · worktree + + + +External Mounted Resources +/mnt/gdrive · /mnt/notion +Via adapter + +Subject to external authorization +Mostly read-only · Write with caution +High latency · Weak consistency + + + +System Built-in Resources +/skills +Skills · Templates · Manuals + +Globally shared · Read-only +Stable across sessions +Progressive disclosure + + + +External Data Sources +Google Drive · Notion + + diff --git a/book-en/images/fig10-3.svg b/book-en/images/fig10-3.svg index 67e6b2f93..ec068f75b 100644 --- a/book-en/images/fig10-3.svg +++ b/book-en/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -Virtual File System / -Unified interface: read_file · write_file · list_dir - - - -User -Upload / Download - - - - - - - -Upload / Download - - - - - -Mount - - - - -Agent Private Workspace -/scratch/<id> -Scratchpad - -Private · Agent-only -Destroyed with instance -Read/Write · No concurrency control needed -One per Agent - - - -Multi-Agent Shared Space -/workspace/shared -Shared Workspace - -User-visible · Persistent -Read/Write · Concurrency control required -Optimistic lock · worktree - - - -External Mounted Resources -/mnt/gdrive · /mnt/notion -Via adapter - -Subject to external authorization -Mostly read-only · Write with caution -High latency · Weak consistency - - - -System Built-in Resources -/skills -Skills · Templates · Manuals - -Globally shared · Read-only -Stable across sessions -Progressive disclosure - - - -External Data Sources -Google Drive · Notion - - + +Proposer Agent +Input: Extended paper abstract (2000 words) + +--- +theme: academic +--- +# Transformer Attention Mechanism + +## Core Idea +- Self-attention computes Q·K^T/√d +- Multi-head attention parallel processing +Understand content structure → decompose into slide pages + +Reviewer Agent + +① Slidev rendering → PDF/PNG +② Vision LLM multi-dimensional evaluation + +Structured feedback: +Page Issue Type Severity +P3 Content dense High +P7 Font too small Medium +P11 Color mismatch Low +Rendering + visual analysis → actionable improvement suggestions + +Slidev code + +Structured feedback + +Iterative improvement process + +Round 1 +12-page draft +5 issues + + +Round 2 +14 pages (split dense pages) +2 issues + + +Round 3 +14 pages (font corrected) +0 issues ✓ + +Why not use a single agent? +Single agent: rendering images ×N rounds → context explosion +(1080p screenshot = thousands of tokens × 14 pages × 5 rounds) +Dual agent: Reviewer only sees current version +Proposer only accumulates text feedback → clean context + \ No newline at end of file diff --git a/book-en/images/fig10-4.svg b/book-en/images/fig10-4.svg index ec068f75b..bd60d4d7a 100644 --- a/book-en/images/fig10-4.svg +++ b/book-en/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -Input: Extended paper abstract (2000 words) - ---- -theme: academic ---- -# Transformer Attention Mechanism - -## Core Idea -- Self-attention computes Q·K^T/√d -- Multi-head attention parallel processing -Understand content structure → decompose into slide pages - -Reviewer Agent - -① Slidev rendering → PDF/PNG -② Vision LLM multi-dimensional evaluation - -Structured feedback: -Page Issue Type Severity -P3 Content dense High -P7 Font too small Medium -P11 Color mismatch Low -Rendering + visual analysis → actionable improvement suggestions - -Slidev code - -Structured feedback - -Iterative improvement process - -Round 1 -12-page draft -5 issues - - -Round 2 -14 pages (split dense pages) -2 issues - - -Round 3 -14 pages (font corrected) -0 issues ✓ - -Why not use a single agent? -Single agent: rendering images ×N rounds → context explosion -(1080p screenshot = thousands of tokens × 14 pages × 5 rounds) -Dual agent: Reviewer only sees current version -Proposer only accumulates text feedback → clean context + +Manager Agent +Task understanding → Decomposition → Scheduling → Synthesis +Tool set: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +Role: Data Collection +Search technical documentation +Extract key information + +Step 1 + + + +Sub-Agent B +Role: Analysis & Processing +Compare and analyze data +Generate statistical report + +Step 2 + + + +Sub-Agent C +Role: Report Generation +Write final report +Format output + +Step 3 + + +Sequential execution flow +Manager calls A +→ A returns data +→ Manager passes to B +→ B returns analysis +→ Manager passes to C +→ C returns report +Manager perspective: Calling Agent = Calling a tool (send request → receive response) \ No newline at end of file diff --git a/book-en/images/fig10-5.svg b/book-en/images/fig10-5.svg index bd60d4d7a..3c9636bdb 100644 --- a/book-en/images/fig10-5.svg +++ b/book-en/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Task understanding → Decomposition → Scheduling → Synthesis -Tool set: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -Role: Data Collection -Search technical documentation -Extract key information - -Step 1 - - - -Sub-Agent B -Role: Analysis & Processing -Compare and analyze data -Generate statistical report - -Step 2 - - - -Sub-Agent C -Role: Report Generation -Write final report -Format output - -Step 3 - - -Sequential execution flow -Manager calls A -→ A returns data -→ Manager passes to B -→ B returns analysis -→ Manager passes to C -→ C returns report -Manager perspective: Calling Agent = Calling a tool (send request → receive response) + +Manager Agent +Task Planning · Progress Monitoring · Exception Handling · Result Synthesis + +Glossary Agent +Glossary +Receive Full Book → Identify Technical Terms +Search Specialized Dictionaries + Translation Conventions +Output: glossary.json + +{"attention": "注意力", + "transformer": "Transformer", + "backprop": "反向传播"} + + +Translation Agent ×N +Chapter Translation +Input: Chapter + Glossary + Guide +Translate terms strictly according to glossary +Output: chapter{n}_zh.md + +"...attention mechanism computes the similarity of + Query·Key^T ..." + + +Proofreading Agent +Full Text Review +Scan and verify term consistency +Check fluency and readability +Output: review_report.md + +P3: "注意力"→"关注" inconsistency +P8: Long sentence suggested to split + + +Glossary + +Translation + +Shared File System +glossary.json +Glossary +chapter{1..10}_zh.md +Chapter Translation +review_report.md +Review Report +translation_guide.md +Translation Guide + +Context Isolation Advantages +Glossary: Only view terms | Translation: Only view current chapter + glossary | Manager: Only maintain file index \ No newline at end of file diff --git a/book-en/images/fig10-6.svg b/book-en/images/fig10-6.svg index 3c9636bdb..635fdde35 100644 --- a/book-en/images/fig10-6.svg +++ b/book-en/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Manager Agent -Task Planning · Progress Monitoring · Exception Handling · Result Synthesis - -Glossary Agent -Glossary -Receive Full Book → Identify Technical Terms -Search Specialized Dictionaries + Translation Conventions -Output: glossary.json - -{"attention": "注意力", - "transformer": "Transformer", - "backprop": "反向传播"} - - -Translation Agent ×N -Chapter Translation -Input: Chapter + Glossary + Guide -Translate terms strictly according to glossary -Output: chapter{n}_zh.md - -"...attention mechanism computes the similarity of - Query·Key^T ..." - - -Proofreading Agent -Full Text Review -Scan and verify term consistency -Check fluency and readability -Output: review_report.md - -P3: "注意力"→"关注" inconsistency -P8: Long sentence suggested to split - - -Glossary - -Translation - -Shared File System -glossary.json -Glossary -chapter{1..10}_zh.md -Chapter Translation -review_report.md -Review Report -translation_guide.md -Translation Guide - -Context Isolation Advantages -Glossary: Only view terms | Translation: Only view current chapter + glossary | Manager: Only maintain file index +Parallel Scheduling · Real-time Monitoring · Result Aggregation + +Message Bus + + +Agent 1 +Data Collection +Running ◎ +Independent Context + + +Agent 2 +Content Analysis +Running ◎ +Independent Context + + +Agent 3 +Chart Generation +Completed ✓ +Independent Context + + +Agent 4 +Format Validation +Waiting ○ +Independent Context + + +Message Bus Communication Example +Manager → Agent 1 +{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-en/images/fig10-7.svg b/book-en/images/fig10-7.svg index 635fdde35..39d474ffa 100644 --- a/book-en/images/fig10-7.svg +++ b/book-en/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Parallel Scheduling · Real-time Monitoring · Result Aggregation - -Message Bus - - -Agent 1 -Data Collection -Running ◎ -Independent Context - - -Agent 2 -Content Analysis -Running ◎ -Independent Context - - -Agent 3 -Chart Generation -Completed ✓ -Independent Context - - -Agent 4 -Format Validation -Waiting ○ -Independent Context - - -Message Bus Communication Example -Manager → Agent 1 -{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · Real-time Voice Call + +User Voice +Microphone Input + + +VAD + ASR +Silero VAD → STT Transcription + + +LLM Inference +Understand Intent + Extract Information + + +TTS Synthesis +Generate Voice Reply → Play + +Computer Agent +Python · Browser Automation + +Screenshot +Browser Current Page + + +Vision LLM +Understand Page Structure + Form Fields + + +Action Planning +Locate Fields → Plan Input Sequence + + +Execute Actions +Click / Input / Submit + +WebSocket Bidirectional Communication (ws://localhost:8849) + + + +Real-time Bidirectional Message Stream (Use Computer While on Call) +Phone → Computer +[FROM_PHONE_AGENT] User says name is Zhang San +Computer → Phone +[FROM_COMPUTER_AGENT] Name filled, need ID number +Phone → Computer +[FROM_PHONE_AGENT] ID number 310101199001011234 +Computer → Phone +[FROM_COMPUTER_AGENT] Form submitted, registration successful +Key: Two Agents Run Independent ReAct Loops in Parallel, Non-blocking \ No newline at end of file diff --git a/book-en/images/fig10-8.svg b/book-en/images/fig10-8.svg index 39d474ffa..1452c85e3 100644 --- a/book-en/images/fig10-8.svg +++ b/book-en/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · Real-time Voice Call - -User Voice -Microphone Input - - -VAD + ASR -Silero VAD → STT Transcription - - -LLM Inference -Understand Intent + Extract Information - - -TTS Synthesis -Generate Voice Reply → Play - -Computer Agent -Python · Browser Automation - -Screenshot -Browser Current Page - - -Vision LLM -Understand Page Structure + Form Fields - - -Action Planning -Locate Fields → Plan Input Sequence - - -Execute Actions -Click / Input / Submit - -WebSocket Bidirectional Communication (ws://localhost:8849) - - - -Real-time Bidirectional Message Stream (Use Computer While on Call) -Phone → Computer -[FROM_PHONE_AGENT] User says name is Zhang San -Computer → Phone -[FROM_COMPUTER_AGENT] Name filled, need ID number -Phone → Computer -[FROM_PHONE_AGENT] ID number 310101199001011234 -Computer → Phone -[FROM_COMPUTER_AGENT] Form submitted, registration successful -Key: Two Agents Run Independent ReAct Loops in Parallel, Non-blocking + +Manager Agent +Dynamic Creation · Real-time Monitoring · Cascading Termination + +Agent 1 +cs.edu.cn +Teacher Directory Search +Searching... ◎ + + +Agent 2 +math.edu.cn +Teacher Directory Search +Not Found ✗ + + +Agent 3 +phys.edu.cn +Teacher Directory Search +Found! ✓ + + +Agent 4 +chem.edu.cn +Teacher Directory Search +Terminated ⊘ + + +Agent 5 … 10 +… (10 total) +Teacher Directory Search +Terminated ⊘ + + +Cascading Termination Sequence +t=0s +Start 10 Agents +Parallel search for "Zhang Wei" + +t=12s +Agent 2 completes +Not found → exit + +t=18s +Agent 3 found! +Send target_found + +t=18.1s +Manager broadcasts terminate +To remaining running Agents + +t=19s +All confirm termination +Aggregate results and return + +Result found +Name: Zhang Wei School: School of Physics +Position: Professor Field: Quantum Computing +Email: zhangwei@phys.edu.cn + +Performance Comparison +Serial: 10 websites × 30s = ~5 minutes +Parallel: 18s to find + 1s to terminate = 19s +Speedup: ~15× (with cascading termination optimization) \ No newline at end of file diff --git a/book-en/images/fig10-9.svg b/book-en/images/fig10-9.svg index 1452c85e3..e54d59cc5 100644 --- a/book-en/images/fig10-9.svg +++ b/book-en/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Manager Agent -Dynamic Creation · Real-time Monitoring · Cascading Termination - -Agent 1 -cs.edu.cn -Teacher Directory Search -Searching... ◎ - - -Agent 2 -math.edu.cn -Teacher Directory Search -Not Found ✗ - - -Agent 3 -phys.edu.cn -Teacher Directory Search -Found! ✓ - - -Agent 4 -chem.edu.cn -Teacher Directory Search -Terminated ⊘ - - -Agent 5 … 10 -… (10 total) -Teacher Directory Search -Terminated ⊘ - - -Cascading Termination Sequence -t=0s -Start 10 Agents -Parallel search for "Zhang Wei" - -t=12s -Agent 2 completes -Not found → exit - -t=18s -Agent 3 found! -Send target_found - -t=18.1s -Manager broadcasts terminate -To remaining running Agents - -t=19s -All confirm termination -Aggregate results and return - -Result found -Name: Zhang Wei School: School of Physics -Position: Professor Field: Quantum Computing -Email: zhangwei@phys.edu.cn - -Performance Comparison -Serial: 10 websites × 30s = ~5 minutes -Parallel: 18s to find + 1s to terminate = 19s -Speedup: ~15× (with cascading termination optimization) + +Product Manager +Input: User requirement description + +Output: +Feature list + priority +User stories (5 items) +Acceptance criteria + +docs/PRD.md + + + +Architect +Input: PRD.md + +Output: +Tech stack: FastAPI+React +API specification (OpenAPI) +Database schema + +docs/design.md + + + +Project Manager +Input: design.md + +Output: +Task list + assignment +File-level allocation +Module dependency order + +docs/tasks.md + + + +Engineer ×3 +Input: tasks.md + design.md + +Output: +Module A: User service +Module B: Order service +Module C: Payment service + +src/*.py + + + +QA Engineer +Input: src/ + PRD.md + +Output: +Unit tests (pytest) +Integration tests (API) +Bug report → Engineer + +docs/test_report.md + +Bug fix + + +Shared project directory +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT core design +▸ Standardized documents +Each role emits a fixed format; downstream needs the format, not the reasoning +▸ Interface decoupling +Swap in a stronger Product Mgr; if output keeps PRD format, downstream is unchanged +▸ No Manager +Control flows along the DAG: Product Mgr→Architect→Project Mgr→Engineer→QA +▸ Exception channel +QA failure → bug report routed back to Engineer by module → iterative fix \ No newline at end of file diff --git a/book-en/images/fig10-sequential-handoff.svg b/book-en/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..c27bb4482 --- /dev/null +++ b/book-en/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +Requirements Analysis + +Output: Structured Requirements Document +spec.json +Handoff → + + +Agent B +Architecture Design + +Output: Technical Design Document +design.md +Handoff → + + +Agent C +Code Implementation + +Output: Source Code +src/*.py +Handoff → + + +Agent D +Testing and Validation + +Output: Test Report +test_report.md +Handoff → + +Handoff Content (Agent A → Agent B Example) +Trigger Condition: +A completes requirements document → is_complete=True +Target Agent: +target="architect" (Agent B) +Handoff Content: +files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" +Post-Handoff Status: +status="exit" (release resources, do not remain on standby) + +Decentralization Advantages +✓ No central Manager needed to understand all roles +✓ Clear responsibility boundaries, interface decoupling +✓ Exit upon completion, release persistent resources + +Decentralization Limitations +✗ Lack of global optimization perspective +✗ Difficult exception handling (no central coordination) +✗ Fixed process, hard to dynamically adjust + \ No newline at end of file diff --git a/book-en/images/fig10-stage-switching.svg b/book-en/images/fig10-stage-switching.svg new file mode 100644 index 000000000..6560f228f --- /dev/null +++ b/book-en/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ + +Phase 1 +Requirements Analyst + +System prompt +"Your responsibility is to fully understand the requirements. +Don't rush to implement at this stage +Your task is to ask questions and confirm." + +Tool set +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +Trigger conversion +complete_req_analysis() + + +Phase 2 +Software engineer + +System prompt +"Write based on confirmed requirements +High-quality Python code. Follow +Modularization, error handling best practices." + +Tool set +write_file(path, content) +read_file(path) +execute_code(code) + +Trigger conversion +submit_for_review() + + +Phase 3 +Code reviewer + +System prompt +"Evaluate code quality from multiple dimensions: +Functional correctness, code standards, +Security. Adopt critical thinking." + +Tool set +run_linter(file) +run_tests(file) +analyze_complexity(file) +Role switch: update system prompt + tool set, conversation history and state continuously preserved + \ No newline at end of file diff --git a/book-en/images/fig8-1.svg b/book-en/images/fig8-1.svg index 300b65ed8..49c2449c8 100644 --- a/book-en/images/fig8-1.svg +++ b/book-en/images/fig8-1.svg @@ -1,26 +1,54 @@ - - - -Complete task -Generate raw -experience - -Refine experience -Summarize, -compress, structure - - -Store in external system -Knowledge base/tools, -retrievable - - -Retrieve and -reuse -Invoke in next task - - - - -Experience accumulates persistently, reused across sessions - \ No newline at end of file + + + + + + + + + Continual evolution: from runtime experience to a new Agent version + + + Execute task + Interaction with users,environment, tools + + + Record trajectory + Actions, outcomes, feedback + + + Form signals + Outcome · Process · Quality + + + Generate candidate updates + + + + + Knowledge + Instructions + Programs + Parameters + + + Verify and release + Regression, canary, rollback + + + + + + + + The new Agent enters the next round + Only updates that change later behavior and pass verification count as continual evolution + + diff --git a/book-es/chapter10.es.md b/book-es/chapter10.es.md index bd7fe7764..2db156191 100644 --- a/book-es/chapter10.es.md +++ b/book-es/chapter10.es.md @@ -161,9 +161,9 @@ Al principio de este capítulo se incluyó el "sistema de archivos compartido" c **4. Recursos de Sistema Integrados (Built-in System Resources)**. Paquetes de recursos preestablecidos y compartidos en modo solo lectura para todos los Agentes. El representante típico son los **Skills** presentados en los Capítulos 2 y 4: documentos de conocimiento y scripts organizados en forma de archivos, montados en rutas como `/skills`, a los que se accede mediante revelación progresiva (primero índice, luego despliegue bajo demanda). También incluyen manuales de referencia, bibliotecas de plantillas y definiciones de herramientas compartidas. Esta capa es globalmente compartida, de solo lectura, estable entre sesiones y puede ser leída de forma concurrente por todos los Agentes sin necesidad de control de concurrencia. -La Figura 10-3 ilustra la estructura en la que estas cuatro categorías de áreas se montan de forma unificada en el mismo árbol de directorios: el Agente accede a todo el árbol mediante una interfaz unificada, el usuario sube y descarga archivos desde el espacio compartido, las fuentes de datos externas se montan a través de adaptadores y los recursos del sistema se proporcionan en modo solo lectura. +La Figura 10-2 ilustra la estructura en la que estas cuatro categorías de áreas se montan de forma unificada en el mismo árbol de directorios: el Agente accede a todo el árbol mediante una interfaz unificada, el usuario sube y descarga archivos desde el espacio compartido, las fuentes de datos externas se montan a través de adaptadores y los recursos del sistema se proporcionan en modo solo lectura. -![Figura 10-3 Estructura de montaje del sistema de archivos virtual del Agente](images/fig10-3.svg) +![Figura 10-2 Estructura de montaje del sistema de archivos virtual del Agente](images/fig10-2.svg) La Tabla 10-4 compara estas cuatro áreas en función de cuatro dimensiones: visibilidad, ciclo de vida, permisos de lectura/escritura y control de concurrencia, sirviendo como lista de verificación para el diseño de la estructura del sistema de archivos. @@ -244,7 +244,7 @@ El Agente sigue razonando, utilizando herramientas y produciendo artefactos cand **Paradigma proponente-revisor.** -![Figura 10-4 Bucle proponente-revisor](images/fig10-4.svg) +![Figura 10-3 Bucle proponente-revisor](images/fig10-3.svg) El paradigma proponente-revisor es el paradigma clásico de colaboración entre pares. El capítulo 5 ya presentó en detalle sus principios de diseño y su aplicación práctica en tres experimentos: generación de PPT, edición de vídeo y visualización de registros. El Proposer Agent genera el código, mientras que el Reviewer Agent renderiza el resultado de la ejecución, evalúa su calidad mediante un Vision LLM y ofrece sugerencias estructuradas de mejora; ambos iteran repetidamente hasta alcanzar el resultado deseado. @@ -325,7 +325,7 @@ return summarize_failures(workers) **Forma de coordinación secuencial.** -![Figura 10-5 Coordinación secuencial del Manager](images/fig10-5.svg) +![Figura 10-4 Coordinación secuencial del Manager](images/fig10-4.svg) El Manager invoca secuencialmente a los Agentes especializados. Cada Agente devuelve su resultado al terminar, y entonces el Manager decide el siguiente paso. El flujo de control es lineal, sencillo y claro, por lo que resulta apropiado para escenarios en los que existe una dependencia temporal bien definida entre las subtareas. @@ -354,14 +354,14 @@ El Manager invoca secuencialmente a los Agentes especializados. Cada Agente devu > 4. Comparar un solo Agente con el modelo de gestor en términos de calidad de traducción, eficiencia de ejecución y consumo de recursos > > -> ![Figura 10-6 Arquitectura del Agente de traducción de libros](images/fig10-6.svg) +> ![Figura 10-5 Arquitectura del Agente de traducción de libros](images/fig10-5.svg) > > **Forma de coordinación paralela.** -![Figura 10-7 Coordinación paralela del Manager](images/fig10-7.svg) +![Figura 10-6 Coordinación paralela del Manager](images/fig10-6.svg) Cuando varias subtareas pueden ejecutarse en paralelo, el modelo secuencial resulta ineficiente. La coordinación paralela permite que varios Agentes trabajen al mismo tiempo, lo que aumenta considerablemente el rendimiento. El Manager Agent no solo debe planificar las tareas paralelas, sino también monitorizar en tiempo real todos los Agentes en ejecución, gestionar la coordinación de sus comunicaciones y tomar decisiones globales cuando un Agente tiene éxito o falla. Esto suele requerir un **bus de mensajes** (Message Bus) como infraestructura—puede entenderse como un «tablón público de anuncios» en el que los Agentes pueden colocar mensajes —publicar— y seguir los tipos de mensajes que les interesan —suscribirse—, lo que permite una comunicación asíncrona y sin bloqueos mutuos. Existen dos tipos habituales de implementación, en orden creciente de complejidad: **Redis Pub/Sub** es ligero, envía y recibe los mensajes de inmediato y resulta sencillo de usar, pero presenta la desventaja de que no ofrece persistencia—si el receptor no está conectado en ese momento, el mensaje se pierde; las colas de mensajes como **RabbitMQ**, en cambio, almacenan los mensajes en disco, por lo que no se pierden aunque el receptor esté temporalmente desconectado. El formato de los mensajes suele incluir el ID del emisor, el Agente de destino —o una difusión a todos—, el tipo de mensaje y el contenido de datos en formato JSON. @@ -419,7 +419,7 @@ Cuando varias subtareas pueden ejecutarse en paralelo, el modelo secuencial resu > 4. Registrar la secuencia temporal de los mensajes del proceso de colaboración y los puntos clave de decisión del Agente > > -> ![Figura 10-8 Arquitectura de dos Agentes Phone y Computer](images/fig10-8.svg) +> ![Figura 10-7 Arquitectura de dos Agentes Phone y Computer](images/fig10-7.svg) > > > **Experimento 10-4 ★★★: Agente que recopila información simultáneamente de varios sitios web** @@ -451,7 +451,7 @@ Cuando varias subtareas pueden ejecutarse en paralelo, el modelo secuencial resu > 6. Registrar y comparar las diferencias temporales entre la ejecución paralela y la secuencial para verificar la mejora de rendimiento aportada por la paralelización > > -> ![Figura 10-9 Arquitectura paralela de Web Scraping](images/fig10-9.svg) +> ![Figura 10-8 Arquitectura paralela de Web Scraping](images/fig10-8.svg) > > ### Patrón descentralizado @@ -480,7 +480,7 @@ else: **MetaGPT: simulación de una empresa de software dirigida por SOP.** -![Figura 10-11 Red de colaboración multiagente de MetaGPT](images/fig10-11.svg) +![Figura 10-9 Red de colaboración multiagente de MetaGPT](images/fig10-9.svg) MetaGPT codifica los procedimientos operativos estándar de una empresa de software. Los roles trabajan en el orden Product Manager → Architect → Project Manager → Engineer → QA, y cada uno entrega un paquete estructurado: descripción y criterios de aceptación, hechos y restricciones confirmados y referencias a artefactos, como rutas de archivo. Los roles publican mensajes en un fondo común y consumen solo los tipos a los que están suscritos. Esto desacopla emisor y receptor, pero el flujo de control sigue fijado por el SOP; MetaGPT no está totalmente descentralizado. @@ -586,7 +586,7 @@ Los casos de esta sección se pueden comprender desde tres dimensiones: ### La ciudad de IA de Stanford: simulación social con Agentes generativos -![Figura 10-12 Arquitectura de la ciudad de IA](images/fig10-12.svg) +![Figura 10-10 Arquitectura de la ciudad de IA](images/fig10-10.svg) En 2023, un equipo de investigación de Stanford University y Google publicó el artículo pionero «Generative Agents: Interactive Simulacra of Human Behavior», en el que propuso el concepto de «Agente generativo». La innovación central consistía en dejar de limitar los Agentes a la ejecución de tareas predefinidas y dotarlos de capacidades de memoria, reflexión y planificación similares a las humanas, de modo que pudieran vivir, socializar y desarrollarse de forma autónoma en un entorno social abierto. @@ -700,7 +700,7 @@ El juego del Hombre Lobo sustenta la dimensión de **juegos estratégicos** de e > - Al finalizar la partida se debe determinar correctamente la victoria o derrota. > -![Figura 10-13 Sistema de Agente de Hombre Lobo por Voz](images/fig10-13.svg) +![Figura 10-11 Sistema de Agente de Hombre Lobo por Voz](images/fig10-11.svg) ## Resumen del Capítulo diff --git a/book-es/images/fig10-10.svg b/book-es/images/fig10-10.svg index a38faa899..14f2a32c4 100644 --- a/book-es/images/fig10-10.svg +++ b/book-es/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agente A -Análisis de requisitos - -Salida: Documento de requisitos estructurado -spec.json -Transferencia → - - -Agente B -Diseño de arquitectura - -Salida: Documento de diseño técnico -design.md -Transferencia → - - -Agente C -Implementación de código - -Salida: Código fuente -src/*.py -Transferencia → - - -Agente D -Pruebas y validación - -Salida: Informe de pruebas -test_report.md -Transferencia → - -Contenido de transferencia (Ejemplo Agente A → Agente B) -Condición de activación: -A completa el documento de requisitos → is_complete=True -Agente objetivo: -target="architect" (Agente B) -Contenido de transferencia: -files=["spec.json"] + summary="Sistema de comercio electrónico: 3 microservicios, API REST" -Estado tras la transferencia: -status="exit" (liberar recursos, no permanecer en espera) - -Ventajas de la descentralización -✓ Sin necesidad de un gestor central para entender todos los roles -✓ Límites claros de responsabilidad, desacoplamiento de interfaces -✓ Salir al completar, liberar recursos persistentes - -Limitaciones de la descentralización -✗ Falta de perspectiva de optimización global -✗ Manejo difícil de excepciones (sin coordinación central) -✗ Proceso fijo, difícil de ajustar dinámicamente + +Isabella Rodriguez +Propietario de Hobbs Cafe +Hospitalario y sociable + +Flujo de memoria +[08:30] Hobbs Cafe abre sus puertas +importancia: 4 recencia: 0.9 +[09:15] El cliente Klaus viene a comprar café +importancia: 5 recencia: 0.85 +[10:00] Se decide celebrar una fiesta de San Valentín +importancia: 9 recencia: 0.8 +[11:30] Se invita a la cliente María a la fiesta +importancia: 8 recencia: 0.7 +[14:00] Pedir a María ayuda para decorar el lugar +importancia: 7 recencia: 0.6 + +Reflexión +"¿Quiénes son los clientes habituales de Hobbs?" +→ Maria, Klaus, Tom (visitantes frecuentes) +"¿A quién debería invitar a la fiesta?" +→ Invitar tanto a habituales como a amigos +"¿Qué tan avanzada está la preparación de la fiesta?" +→ Varios invitados, el lugar aún necesita decoración +"¿Quién puede ayudarme a decorar la cafetería?" +→ Maria (amiga, dispuesta a ayudar) + +Planificación y acción +08:00 Despertar + Desayuno +09:00 Hobbs abre al público +12:00 Invitar a clientes mientras se opera la tienda +14:00 Decorar el lugar con María +16:00 Preparar refrigerios y asientos +← Ajuste dinámico +18:00 Celebrar la fiesta de San Valentín en Hobbs + + +Recuperación + + +Conducir + +Comportamiento emergente (25 agentes · 2 días de tiempo virtual) +▸ Socialización espontánea +Encuentros → amistad → reuniones +▸ Propagación de información +La invitación a la fiesta se difunde a muchos agentes +▸ Propagación de elección +La campaña para la alcaldía se propaga entre los agentes +▸ Memoria de relaciones +Recuerda chats anteriores, continúa temas +Los comportamientos no están preprogramados: son resultados emergentes de memoria + reflexión + razonamiento social de sentido común \ No newline at end of file diff --git a/book-es/images/fig10-11.svg b/book-es/images/fig10-11.svg index 2b318671d..1be2204c5 100644 --- a/book-es/images/fig10-11.svg +++ b/book-es/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Gestor de producto -Entrada: Descripción de requisitos del usuario - -Salida: -Lista de características + prioridad -Historias de usuario (5 elementos) -Criterios de aceptación - -docs/PRD.md - - - -Arquitecto -Entrada: PRD.md - -Salida: -Stack tecnológico: FastAPI+React -Especificación de API (OpenAPI) -Esquema de la base de datos - -docs/design.md - - - -Gestor de proyectos -Entrada: design.md - -Salida: -Lista de tareas + asignación -Asignación a nivel de archivo -Orden de dependencia de módulos - -docs/tasks.md - - - -Ingeniero ×3 -Entrada: tasks.md + design.md - -Salida: -Módulo A: Servicio de usuario -Módulo B: Servicio de pedidos -Módulo C: Servicio de pagos - -src/*.py - - - -Ingeniero de QA -Entrada: src/ + PRD.md - -Salida: -Pruebas unitarias (pytest) -Pruebas de integración (API) -Informe de error → Ingeniero - -docs/test_report.md - -Corrección de errores - - -Directorio de proyecto compartido -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -Diseño principal de MetaGPT -▸ Documentos estandarizados -Cada rol emite un formato fijo; el proceso posterior necesita el formato, no el razonamiento -▸ Desacoplamiento de interfaz -Sustituir por un gestor de producto más capacitado; si la salida mantiene el formato PRD, el flujo posterior no cambia -▸ Sin gestor -El flujo de control sigue el DAG: Gestor de producto→Arquitecto→Gestor de proyecto→Ingeniero→QA -▸ Canal de excepciones -Fallo de QA → informe de error enrutado de nuevo al ingeniero por módulo → corrección iterativa + +Juez (basado en código) +Estado del juego · Control de fase · Distribución de información +Noche → Día → Votación → Resolución + +🐺 Hombre lobo 1 +Visible: Identidades de compañeros +Estrategia: Disfrazarse de aldeano +Noche: Elegir objetivo + + +Conocimiento mutuo + +🐺 Hombre lobo 2 +Visible: Identidades de compañeros +Estrategia: Seguir y proteger +Noche: Negociar objetivo + + +Conocimiento mutuo + +🔮 Vidente +Visible: Resultados de investigación +Estrategia: Elegir cuándo revelar +Noche: Investigar a 1 persona + + +Resultados de la investigación + +🧪 Bruja +Visible: Muerte/Curación +Estrategia: Conservar poción/antídoto +Noche: Salvar/Envenenar a 1 persona + + +👤 Aldeano ×2 +Visible: Solo información pública +Estrategia: Razonamiento lógico +Día: Analizar discurso + + +Control de acceso a la información: El juez filtra el contexto por rol +Hombre lobo: +ID de aliados + conversación nocturna + discurso público +Vidente: +Resultados de verificación propia + discurso público +Bruja: +Muertes + estado de pociones + discurso público +Aldeano: +Solo discurso público + votos + +Interacción de voz en tiempo real (ASR + LLM + TTS) +Discusión diurna +El juez establece el orden de habla +Hablar en turno por asiento +Fase de votación +Recopilar votos de los jugadores +Contar + anunciar votos +Fase nocturna +Despertar roles por turno +Canal de voz privado +Jugador humano +Asignar roles aleatoriamente +Votación por voz/habla \ No newline at end of file diff --git a/book-es/images/fig10-12.svg b/book-es/images/fig10-12.svg deleted file mode 100644 index 14f2a32c4..000000000 --- a/book-es/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Propietario de Hobbs Cafe -Hospitalario y sociable - -Flujo de memoria -[08:30] Hobbs Cafe abre sus puertas -importancia: 4 recencia: 0.9 -[09:15] El cliente Klaus viene a comprar café -importancia: 5 recencia: 0.85 -[10:00] Se decide celebrar una fiesta de San Valentín -importancia: 9 recencia: 0.8 -[11:30] Se invita a la cliente María a la fiesta -importancia: 8 recencia: 0.7 -[14:00] Pedir a María ayuda para decorar el lugar -importancia: 7 recencia: 0.6 - -Reflexión -"¿Quiénes son los clientes habituales de Hobbs?" -→ Maria, Klaus, Tom (visitantes frecuentes) -"¿A quién debería invitar a la fiesta?" -→ Invitar tanto a habituales como a amigos -"¿Qué tan avanzada está la preparación de la fiesta?" -→ Varios invitados, el lugar aún necesita decoración -"¿Quién puede ayudarme a decorar la cafetería?" -→ Maria (amiga, dispuesta a ayudar) - -Planificación y acción -08:00 Despertar + Desayuno -09:00 Hobbs abre al público -12:00 Invitar a clientes mientras se opera la tienda -14:00 Decorar el lugar con María -16:00 Preparar refrigerios y asientos -← Ajuste dinámico -18:00 Celebrar la fiesta de San Valentín en Hobbs - - -Recuperación - - -Conducir - -Comportamiento emergente (25 agentes · 2 días de tiempo virtual) -▸ Socialización espontánea -Encuentros → amistad → reuniones -▸ Propagación de información -La invitación a la fiesta se difunde a muchos agentes -▸ Propagación de elección -La campaña para la alcaldía se propaga entre los agentes -▸ Memoria de relaciones -Recuerda chats anteriores, continúa temas -Los comportamientos no están preprogramados: son resultados emergentes de memoria + reflexión + razonamiento social de sentido común - \ No newline at end of file diff --git a/book-es/images/fig10-13.svg b/book-es/images/fig10-13.svg deleted file mode 100644 index 1be2204c5..000000000 --- a/book-es/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Juez (basado en código) -Estado del juego · Control de fase · Distribución de información -Noche → Día → Votación → Resolución - -🐺 Hombre lobo 1 -Visible: Identidades de compañeros -Estrategia: Disfrazarse de aldeano -Noche: Elegir objetivo - - -Conocimiento mutuo - -🐺 Hombre lobo 2 -Visible: Identidades de compañeros -Estrategia: Seguir y proteger -Noche: Negociar objetivo - - -Conocimiento mutuo - -🔮 Vidente -Visible: Resultados de investigación -Estrategia: Elegir cuándo revelar -Noche: Investigar a 1 persona - - -Resultados de la investigación - -🧪 Bruja -Visible: Muerte/Curación -Estrategia: Conservar poción/antídoto -Noche: Salvar/Envenenar a 1 persona - - -👤 Aldeano ×2 -Visible: Solo información pública -Estrategia: Razonamiento lógico -Día: Analizar discurso - - -Control de acceso a la información: El juez filtra el contexto por rol -Hombre lobo: -ID de aliados + conversación nocturna + discurso público -Vidente: -Resultados de verificación propia + discurso público -Bruja: -Muertes + estado de pociones + discurso público -Aldeano: -Solo discurso público + votos - -Interacción de voz en tiempo real (ASR + LLM + TTS) -Discusión diurna -El juez establece el orden de habla -Hablar en turno por asiento -Fase de votación -Recopilar votos de los jugadores -Contar + anunciar votos -Fase nocturna -Despertar roles por turno -Canal de voz privado -Jugador humano -Asignar roles aleatoriamente -Votación por voz/habla - \ No newline at end of file diff --git a/book-es/images/fig10-2.svg b/book-es/images/fig10-2.svg index a3bf78744..5eec9b8f6 100644 --- a/book-es/images/fig10-2.svg +++ b/book-es/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Flujo continuo dentro del mismo contexto: el historial de conversación se conserva por completo entre etapas ▼ - -Fase 1 -Analista de requisitos - -Prompt de sistema -"Tu responsabilidad es comprender plenamente los requisitos. -No apresurarse a implementar en esta etapa -Tu tarea es preguntar y confirmar." - -Conjunto de herramientas -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -Desencadenar conversión -complete_req_analysis() - - -Fase 2 -Ingeniero de software - -Prompt de sistema -"Escribir según los requisitos confirmados -Código Python de alta calidad. Sigue -Modularización, mejores prácticas de manejo de errores." - -Conjunto de herramientas -write_file(path, content) -read_file(path) -execute_code(code) - -Desencadenar conversión -submit_for_review() - - -Fase 3 -Revisor de código - -Prompt de sistema -"Evaluar la calidad del código desde múltiples dimensiones: -Corrección funcional, estándares de código, -Seguridad. Adopta un pensamiento crítico." - -Conjunto de herramientas -run_linter(file) -run_tests(file) -analyze_complexity(file) -Cambio de rol: actualización del prompt del sistema + conjunto de herramientas, historial de conversación y estado preservados continuamente - \ No newline at end of file + + +Agente A + +Agente B + + + +Sistema de archivos virtual / +Interfaz unificada: read_file · write_file · list_dir + + + +Usuario +Subida / Descarga + + + + + + + +Subida / Descarga + + + + + +Montar + + + + +Espacio de trabajo privado del agente +/scratch/<id> +Scratchpad + +Privado · Solo agente +Destruido con la instancia +Lectura/Escritura · No requiere control de concurrencia +Uno por agente + + + +Espacio compartido multiagente +/workspace/shared +Espacio de trabajo compartido + +Visible para el usuario · Persistente +Lectura/Escritura · Control de concurrencia requerido +Bloqueo optimista · worktree + + + +Recursos externos montados +/mnt/gdrive · /mnt/notion +Vía adaptador + +Sujeto a autorización externa +Principalmente de solo lectura · Escribir con precaución +Alta latencia · Consistencia débil + + + +Recursos integrados del sistema +/skills +Habilidades · Plantillas · Manuales + +Compartido globalmente · Solo lectura +Estable entre sesiones +Divulgación progresiva + + + +Fuentes de datos externas +Google Drive · Notion + + diff --git a/book-es/images/fig10-3.svg b/book-es/images/fig10-3.svg index 5eec9b8f6..61f2e4b96 100644 --- a/book-es/images/fig10-3.svg +++ b/book-es/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agente A - -Agente B - - - -Sistema de archivos virtual / -Interfaz unificada: read_file · write_file · list_dir - - - -Usuario -Subida / Descarga - - - - - - - -Subida / Descarga - - - - - -Montar - - - - -Espacio de trabajo privado del agente -/scratch/<id> -Scratchpad - -Privado · Solo agente -Destruido con la instancia -Lectura/Escritura · No requiere control de concurrencia -Uno por agente - - - -Espacio compartido multiagente -/workspace/shared -Espacio de trabajo compartido - -Visible para el usuario · Persistente -Lectura/Escritura · Control de concurrencia requerido -Bloqueo optimista · worktree - - - -Recursos externos montados -/mnt/gdrive · /mnt/notion -Vía adaptador - -Sujeto a autorización externa -Principalmente de solo lectura · Escribir con precaución -Alta latencia · Consistencia débil - - - -Recursos integrados del sistema -/skills -Habilidades · Plantillas · Manuales - -Compartido globalmente · Solo lectura -Estable entre sesiones -Divulgación progresiva - - - -Fuentes de datos externas -Google Drive · Notion - - + +Agente proponente +Entrada: Resumen extendido del artículo (2000 palabras) + +--- +tema: académico +--- +# Mecanismo de atención de Transformer + +## Idea central +- Autoatención calcula Q·K^T/√d +- Procesamiento en paralelo de atención multicabezal +Comprender estructura del contenido → descomponer en diapositivas + +Agente revisor + +① Renderizado con Slidev → PDF/PNG +② Evaluación multidimensional del LLM de visión + +Retroalimentación estructurada: +Página Tipo de problema Gravedad +P3 Contenido denso Alto +P7 Fuente demasiado pequeña Medio +P11 Desajuste de color Bajo +Renderizado + análisis visual → sugerencias de mejora accionables + +Código Slidev + +Retroalimentación estructurada + +Proceso de mejora iterativo + +Ronda 1 +Borrador de 12 páginas +5 problemas + + +Ronda 2 +14 páginas (páginas densas divididas) +2 problemas + + +Ronda 3 +14 páginas (fuente corregida) +0 problemas ✓ + +¿Por qué no usar un solo agente? +Agente único: renderizado de imágenes ×N rondas → explosión de contexto +(captura de pantalla 1080p = miles de tokens × 14 páginas × 5 rondas) +Agente dual: El revisor solo ve la versión actual +El proponente solo acumula retroalimentación de texto → contexto limpio + \ No newline at end of file diff --git a/book-es/images/fig10-4.svg b/book-es/images/fig10-4.svg index 61f2e4b96..0f41f06b4 100644 --- a/book-es/images/fig10-4.svg +++ b/book-es/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Agente proponente -Entrada: Resumen extendido del artículo (2000 palabras) - ---- -tema: académico ---- -# Mecanismo de atención de Transformer - -## Idea central -- Autoatención calcula Q·K^T/√d -- Procesamiento en paralelo de atención multicabezal -Comprender estructura del contenido → descomponer en diapositivas - -Agente revisor - -① Renderizado con Slidev → PDF/PNG -② Evaluación multidimensional del LLM de visión - -Retroalimentación estructurada: -Página Tipo de problema Gravedad -P3 Contenido denso Alto -P7 Fuente demasiado pequeña Medio -P11 Desajuste de color Bajo -Renderizado + análisis visual → sugerencias de mejora accionables - -Código Slidev - -Retroalimentación estructurada - -Proceso de mejora iterativo - -Ronda 1 -Borrador de 12 páginas -5 problemas - - -Ronda 2 -14 páginas (páginas densas divididas) -2 problemas - - -Ronda 3 -14 páginas (fuente corregida) -0 problemas ✓ - -¿Por qué no usar un solo agente? -Agente único: renderizado de imágenes ×N rondas → explosión de contexto -(captura de pantalla 1080p = miles de tokens × 14 páginas × 5 rondas) -Agente dual: El revisor solo ve la versión actual -El proponente solo acumula retroalimentación de texto → contexto limpio + +Agente gestor +Comprensión de la tarea → Descomposición → Programación → Síntesis +Conjunto de herramientas: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Subagente A +Rol: Recopilación de datos +Buscar documentación técnica +Extraer información clave + +Paso 1 + + + +Subagente B +Rol: Análisis y procesamiento +Comparar y analizar datos +Generar informe estadístico + +Paso 2 + + + +Subagente C +Rol: Generación de informes +Escribir informe final +Formatear salida + +Paso 3 + + +Flujo de ejecución secuencial +El gestor llama a A +→ A devuelve datos +→ El gestor pasa a B +→ B devuelve análisis +→ El gestor pasa a C +→ C devuelve informe +Perspectiva del gestor: Llamar a un agente = Llamar a una herramienta (enviar solicitud → recibir respuesta) \ No newline at end of file diff --git a/book-es/images/fig10-5.svg b/book-es/images/fig10-5.svg index 0f41f06b4..79e586c49 100644 --- a/book-es/images/fig10-5.svg +++ b/book-es/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Agente gestor -Comprensión de la tarea → Descomposición → Programación → Síntesis -Conjunto de herramientas: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Subagente A -Rol: Recopilación de datos -Buscar documentación técnica -Extraer información clave - -Paso 1 - - - -Subagente B -Rol: Análisis y procesamiento -Comparar y analizar datos -Generar informe estadístico - -Paso 2 - - - -Subagente C -Rol: Generación de informes -Escribir informe final -Formatear salida - -Paso 3 - - -Flujo de ejecución secuencial -El gestor llama a A -→ A devuelve datos -→ El gestor pasa a B -→ B devuelve análisis -→ El gestor pasa a C -→ C devuelve informe -Perspectiva del gestor: Llamar a un agente = Llamar a una herramienta (enviar solicitud → recibir respuesta) + +Agente gestor +Planificación de tareas · Monitoreo de progreso · Manejo de excepciones · Síntesis de resultados + +Agente de glosario +Glosario +Recibir libro completo → Identificar términos técnicos +Buscar en diccionarios especializados + convenciones de traducción +Salida: glossary.json + +{"attention": "Atención", + "transformer": "Transformer", + "backprop": "retropropagación"} + + +Agente de traducción ×N +Traducción del capítulo +Entrada: Capítulo + Glosario + Guía +Traducir términos estrictamente según el glosario +Salida: chapter{n}_zh.md + +"...el mecanismo de atención calcula la similitud de + Query·Key^T ..." + + +Agente corrector +Revisión del texto completo +Escanear y verificar la consistencia de términos +Verificar fluidez y legibilidad +Salida: review_report.md + +P3: inconsistencia "Atención"→"Enfoque" +P8: Se sugiere dividir la oración larga + + +Glosario + +Traducción + +Sistema de archivos compartido +glossary.json +Glosario +chapter{1..10}_zh.md +Traducción del capítulo +review_report.md +Informe de revisión +translation_guide.md +Guía de traducción + +Ventajas del aislamiento de contexto +Glosario: Solo ver términos | Traducción: Solo ver capítulo actual + glosario | Gestor: Solo mantener índice de archivos \ No newline at end of file diff --git a/book-es/images/fig10-6.svg b/book-es/images/fig10-6.svg index 79e586c49..a42a9af6c 100644 --- a/book-es/images/fig10-6.svg +++ b/book-es/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Agente gestor -Planificación de tareas · Monitoreo de progreso · Manejo de excepciones · Síntesis de resultados - -Agente de glosario -Glosario -Recibir libro completo → Identificar términos técnicos -Buscar en diccionarios especializados + convenciones de traducción -Salida: glossary.json - -{"attention": "Atención", - "transformer": "Transformer", - "backprop": "retropropagación"} - - -Agente de traducción ×N -Traducción del capítulo -Entrada: Capítulo + Glosario + Guía -Traducir términos estrictamente según el glosario -Salida: chapter{n}_zh.md - -"...el mecanismo de atención calcula la similitud de - Query·Key^T ..." - - -Agente corrector -Revisión del texto completo -Escanear y verificar la consistencia de términos -Verificar fluidez y legibilidad -Salida: review_report.md - -P3: inconsistencia "Atención"→"Enfoque" -P8: Se sugiere dividir la oración larga - - -Glosario - -Traducción - -Sistema de archivos compartido -glossary.json -Glosario -chapter{1..10}_zh.md -Traducción del capítulo -review_report.md -Informe de revisión -translation_guide.md -Guía de traducción - -Ventajas del aislamiento de contexto -Glosario: Solo ver términos | Traducción: Solo ver capítulo actual + glosario | Gestor: Solo mantener índice de archivos +Planificación paralela · Monitoreo en tiempo real · Agregación de resultados + +Bus de mensajes + + +Agente 1 +Recopilación de datos +Ejecutando ◎ +Contexto independiente + + +Agente 2 +Análisis de contenido +Ejecutando ◎ +Contexto independiente + + +Agente 3 +Generación de gráficos +Completado ✓ +Contexto independiente + + +Agente 4 +Validación de formato +Esperando ○ +Contexto independiente + + +Ejemplo de comunicación por bus de mensajes +Gestor → Agente 1 +{"type":"start","task":"Recolectar artículos de arXiv","params":{"query":"agente LLM"}} +Agente 3 → Gestor +{"type":"completed","agent_id":"3","result":"charts/fig1.svg generado"} +Agente 1 → Agente 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Gestor → Agente 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-es/images/fig10-7.svg b/book-es/images/fig10-7.svg index a42a9af6c..3f177f017 100644 --- a/book-es/images/fig10-7.svg +++ b/book-es/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Agente gestor -Planificación paralela · Monitoreo en tiempo real · Agregación de resultados - -Bus de mensajes - - -Agente 1 -Recopilación de datos -Ejecutando ◎ -Contexto independiente - - -Agente 2 -Análisis de contenido -Ejecutando ◎ -Contexto independiente - - -Agente 3 -Generación de gráficos -Completado ✓ -Contexto independiente - - -Agente 4 -Validación de formato -Esperando ○ -Contexto independiente - - -Ejemplo de comunicación por bus de mensajes -Gestor → Agente 1 -{"type":"start","task":"Recolectar artículos de arXiv","params":{"query":"agente LLM"}} -Agente 3 → Gestor -{"type":"completed","agent_id":"3","result":"charts/fig1.svg generado"} -Agente 1 → Agente 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Gestor → Agente 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Agente telefónico +Node.js · Llamada de voz en tiempo real + +Voz del usuario +Entrada del micrófono + + +VAD + ASR +Silero VAD → Transcripción STT + + +Inferencia del LLM +Comprender intención + Extraer información + + +Síntesis TTS +Generar respuesta de voz → Reproducir + +Agente de computadora +Python · Automatización del navegador + +Captura de pantalla +Página actual del navegador + + +LLM de visión +Comprender estructura de página + Campos de formulario + + +Planificación de acciones +Localizar campos → Planificar secuencia de entrada + + +Ejecutar acciones +Clic / Entrada / Enviar + +Comunicación bidireccional WebSocket (ws://localhost:8849) + + + +Flujo de mensajes bidireccional en tiempo real (usar la computadora durante la llamada) +Teléfono → Computadora +[FROM_PHONE_AGENT] El usuario dice que su nombre es Zhang San +Computadora → Teléfono +[FROM_COMPUTER_AGENT] Nombre completado, se requiere número de identificación +Teléfono → Computadora +[FROM_PHONE_AGENT] Número de identificación 310101199001011234 +Computadora → Teléfono +[FROM_COMPUTER_AGENT] Formulario enviado, registro exitoso +Clave: dos agentes ejecutan bucles ReAct independientes en paralelo, de forma no bloqueante \ No newline at end of file diff --git a/book-es/images/fig10-8.svg b/book-es/images/fig10-8.svg index 3f177f017..c5ad436a9 100644 --- a/book-es/images/fig10-8.svg +++ b/book-es/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Agente telefónico -Node.js · Llamada de voz en tiempo real - -Voz del usuario -Entrada del micrófono - - -VAD + ASR -Silero VAD → Transcripción STT - - -Inferencia del LLM -Comprender intención + Extraer información - - -Síntesis TTS -Generar respuesta de voz → Reproducir - -Agente de computadora -Python · Automatización del navegador - -Captura de pantalla -Página actual del navegador - - -LLM de visión -Comprender estructura de página + Campos de formulario - - -Planificación de acciones -Localizar campos → Planificar secuencia de entrada - - -Ejecutar acciones -Clic / Entrada / Enviar - -Comunicación bidireccional WebSocket (ws://localhost:8849) - - - -Flujo de mensajes bidireccional en tiempo real (usar la computadora durante la llamada) -Teléfono → Computadora -[FROM_PHONE_AGENT] El usuario dice que su nombre es Zhang San -Computadora → Teléfono -[FROM_COMPUTER_AGENT] Nombre completado, se requiere número de identificación -Teléfono → Computadora -[FROM_PHONE_AGENT] Número de identificación 310101199001011234 -Computadora → Teléfono -[FROM_COMPUTER_AGENT] Formulario enviado, registro exitoso -Clave: dos agentes ejecutan bucles ReAct independientes en paralelo, de forma no bloqueante + +Agente gestor +Creación dinámica · Monitoreo en tiempo real · Terminación en cascada + +Agente 1 +cs.edu.cn +Búsqueda en el directorio de profesores +Buscando... ◎ + + +Agente 2 +math.edu.cn +Búsqueda en el directorio de profesores +No encontrado ✗ + + +Agente 3 +phys.edu.cn +Búsqueda en el directorio de profesores +¡Encontrado! ✓ + + +Agente 4 +chem.edu.cn +Búsqueda en el directorio de profesores +Finalizado ⊘ + + +Agente 5 … 10 +… (10 en total) +Búsqueda en el directorio de profesores +Finalizado ⊘ + + +Secuencia de terminación en cascada +t=0s +Iniciar 10 agentes +Búsqueda paralela de "Zhang Wei" + +t=12s +Agente 2 completa +No encontrado → salir + +t=18s +¡Agente 3 encontrado! +Enviar target_found + +t=18.1s +El gestor emite la finalización +A los agentes en ejecución restantes + +t=19s +Todos confirman la finalización +Agregar resultados y devolver + +Resultado encontrado +Nombre: Zhang Wei Escuela: Escuela de Física +Cargo: Profesor Campo: Computación cuántica +Correo electrónico: zhangwei@phys.edu.cn + +Comparación de rendimiento +En serie: 10 sitios web × 30s = ~5 minutos +Paralelo: 18 s para encontrar + 1 s para finalizar = 19 s +Aceleración: ~15× (con optimización de terminación en cascada) \ No newline at end of file diff --git a/book-es/images/fig10-9.svg b/book-es/images/fig10-9.svg index c5ad436a9..2b318671d 100644 --- a/book-es/images/fig10-9.svg +++ b/book-es/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Agente gestor -Creación dinámica · Monitoreo en tiempo real · Terminación en cascada - -Agente 1 -cs.edu.cn -Búsqueda en el directorio de profesores -Buscando... ◎ - - -Agente 2 -math.edu.cn -Búsqueda en el directorio de profesores -No encontrado ✗ - - -Agente 3 -phys.edu.cn -Búsqueda en el directorio de profesores -¡Encontrado! ✓ - - -Agente 4 -chem.edu.cn -Búsqueda en el directorio de profesores -Finalizado ⊘ - - -Agente 5 … 10 -… (10 en total) -Búsqueda en el directorio de profesores -Finalizado ⊘ - - -Secuencia de terminación en cascada -t=0s -Iniciar 10 agentes -Búsqueda paralela de "Zhang Wei" - -t=12s -Agente 2 completa -No encontrado → salir - -t=18s -¡Agente 3 encontrado! -Enviar target_found - -t=18.1s -El gestor emite la finalización -A los agentes en ejecución restantes - -t=19s -Todos confirman la finalización -Agregar resultados y devolver - -Resultado encontrado -Nombre: Zhang Wei Escuela: Escuela de Física -Cargo: Profesor Campo: Computación cuántica -Correo electrónico: zhangwei@phys.edu.cn - -Comparación de rendimiento -En serie: 10 sitios web × 30s = ~5 minutos -Paralelo: 18 s para encontrar + 1 s para finalizar = 19 s -Aceleración: ~15× (con optimización de terminación en cascada) + +Gestor de producto +Entrada: Descripción de requisitos del usuario + +Salida: +Lista de características + prioridad +Historias de usuario (5 elementos) +Criterios de aceptación + +docs/PRD.md + + + +Arquitecto +Entrada: PRD.md + +Salida: +Stack tecnológico: FastAPI+React +Especificación de API (OpenAPI) +Esquema de la base de datos + +docs/design.md + + + +Gestor de proyectos +Entrada: design.md + +Salida: +Lista de tareas + asignación +Asignación a nivel de archivo +Orden de dependencia de módulos + +docs/tasks.md + + + +Ingeniero ×3 +Entrada: tasks.md + design.md + +Salida: +Módulo A: Servicio de usuario +Módulo B: Servicio de pedidos +Módulo C: Servicio de pagos + +src/*.py + + + +Ingeniero de QA +Entrada: src/ + PRD.md + +Salida: +Pruebas unitarias (pytest) +Pruebas de integración (API) +Informe de error → Ingeniero + +docs/test_report.md + +Corrección de errores + + +Directorio de proyecto compartido +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +Diseño principal de MetaGPT +▸ Documentos estandarizados +Cada rol emite un formato fijo; el proceso posterior necesita el formato, no el razonamiento +▸ Desacoplamiento de interfaz +Sustituir por un gestor de producto más capacitado; si la salida mantiene el formato PRD, el flujo posterior no cambia +▸ Sin gestor +El flujo de control sigue el DAG: Gestor de producto→Arquitecto→Gestor de proyecto→Ingeniero→QA +▸ Canal de excepciones +Fallo de QA → informe de error enrutado de nuevo al ingeniero por módulo → corrección iterativa \ No newline at end of file diff --git a/book-es/images/fig10-sequential-handoff.svg b/book-es/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..a38faa899 --- /dev/null +++ b/book-es/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agente A +Análisis de requisitos + +Salida: Documento de requisitos estructurado +spec.json +Transferencia → + + +Agente B +Diseño de arquitectura + +Salida: Documento de diseño técnico +design.md +Transferencia → + + +Agente C +Implementación de código + +Salida: Código fuente +src/*.py +Transferencia → + + +Agente D +Pruebas y validación + +Salida: Informe de pruebas +test_report.md +Transferencia → + +Contenido de transferencia (Ejemplo Agente A → Agente B) +Condición de activación: +A completa el documento de requisitos → is_complete=True +Agente objetivo: +target="architect" (Agente B) +Contenido de transferencia: +files=["spec.json"] + summary="Sistema de comercio electrónico: 3 microservicios, API REST" +Estado tras la transferencia: +status="exit" (liberar recursos, no permanecer en espera) + +Ventajas de la descentralización +✓ Sin necesidad de un gestor central para entender todos los roles +✓ Límites claros de responsabilidad, desacoplamiento de interfaces +✓ Salir al completar, liberar recursos persistentes + +Limitaciones de la descentralización +✗ Falta de perspectiva de optimización global +✗ Manejo difícil de excepciones (sin coordinación central) +✗ Proceso fijo, difícil de ajustar dinámicamente + \ No newline at end of file diff --git a/book-es/images/fig10-stage-switching.svg b/book-es/images/fig10-stage-switching.svg new file mode 100644 index 000000000..a3bf78744 --- /dev/null +++ b/book-es/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Flujo continuo dentro del mismo contexto: el historial de conversación se conserva por completo entre etapas ▼ + +Fase 1 +Analista de requisitos + +Prompt de sistema +"Tu responsabilidad es comprender plenamente los requisitos. +No apresurarse a implementar en esta etapa +Tu tarea es preguntar y confirmar." + +Conjunto de herramientas +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +Desencadenar conversión +complete_req_analysis() + + +Fase 2 +Ingeniero de software + +Prompt de sistema +"Escribir según los requisitos confirmados +Código Python de alta calidad. Sigue +Modularización, mejores prácticas de manejo de errores." + +Conjunto de herramientas +write_file(path, content) +read_file(path) +execute_code(code) + +Desencadenar conversión +submit_for_review() + + +Fase 3 +Revisor de código + +Prompt de sistema +"Evaluar la calidad del código desde múltiples dimensiones: +Corrección funcional, estándares de código, +Seguridad. Adopta un pensamiento crítico." + +Conjunto de herramientas +run_linter(file) +run_tests(file) +analyze_complexity(file) +Cambio de rol: actualización del prompt del sistema + conjunto de herramientas, historial de conversación y estado preservados continuamente + \ No newline at end of file diff --git a/book-es/images/fig8-1.svg b/book-es/images/fig8-1.svg index 67c46578a..af6ba3496 100644 --- a/book-es/images/fig8-1.svg +++ b/book-es/images/fig8-1.svg @@ -1,27 +1,54 @@ - - - -Completar tarea -Generar experiencia -bruta - -Refinar experiencia -Resumir, comprimir, -estructurar - - -Almacenar en sist. -externo -Base de conoc./herram. -recuperables - - -Recuperar y reutilizar -Llamar en la siguiente -tarea - - - - -La experiencia se acumula de forma permanente y se reutiliza entre sesiones - \ No newline at end of file + + + + + + + + + Evolución continua: de la experiencia de ejecución a una nueva versión del Agent + + + Ejecutar tarea + Interacción con usuarios,entorno y herramientas + + + Registrar trayectoria + Acciones, resultadosy retroalimentación + + + Formar señales + Resultado · Proceso · Calidad + + + Generar actualizaciones candidatas + + + + + Conocimiento + Instrucciones + Programas + Parámetros + + + Validar y publicar + Regresión, desplieguegradual y reversión + + + + + + + + El nuevo Agent entra en la siguiente ronda + Solo las actualizaciones que cambian el comportamiento posterior y superan la validación constituyen evolución continua + + diff --git a/book-hu/chapter10.md b/book-hu/chapter10.md index d5290f18a..21985386b 100644 --- a/book-hu/chapter10.md +++ b/book-hu/chapter10.md @@ -163,9 +163,9 @@ A fejezet elején a "megosztott fájlrendszer" a három kommunikációs mechaniz "IV. Beépített Rendszer Erőforrások." A rendszer által előre telepített és minden Ügynökkel írásvédett módon megosztott erőforráscsomag. Tipikus példák a 2. és 4. fejezetben bemutatott "Készségek (Skills)" – fájlként szervezett tudásdokumentumok és szkriptek, amelyek olyan elérési utakra vannak csatolva, mint a `/skills`, progresszív felfedéssel (először index, majd igény szerinti kibontás). További példák közé tartoznak a referencia kézikönyvek, sablonkönyvtárak és megosztott eszközdefiníciók. Ez a réteg globálisan megosztott, írásvédett, munkameneteken át stabil, és minden Ügynök által egyidejűleg olvasható konkurencia-vezérlés nélkül. -A 10-3. ábra szemlélteti, hogyan van ez a négy területtípus egységesen csatolva egyetlen könyvtárfa alá: az Ügynök egységes interfészen keresztül éri el a teljes fát, a felhasználók a megosztott térből töltenek fel és le fájlokat, a külső adatforrások adaptereken keresztül vannak csatolva, és a beépített rendszer erőforrások írásvédettként állnak rendelkezésre. +A 10-2. ábra szemlélteti, hogyan van ez a négy területtípus egységesen csatolva egyetlen könyvtárfa alá: az Ügynök egységes interfészen keresztül éri el a teljes fát, a felhasználók a megosztott térből töltenek fel és le fájlokat, a külső adatforrások adaptereken keresztül vannak csatolva, és a beépített rendszer erőforrások írásvédettként állnak rendelkezésre. -![10-3. ábra: A négy területtípus csatolási struktúrája az Ügynök Virtuális Fájlrendszerében](images/fig10-3.svg) +![10-2. ábra: A négy területtípus csatolási struktúrája az Ügynök Virtuális Fájlrendszerében](images/fig10-2.svg) A 10-4. táblázat összehasonlítja ezt a négy területtípust négy dimenzió mentén – láthatóság, életciklus, olvasási/írási jogosultságok és konkurencia-vezérlés –, amely a fájlrendszer-elrendezés tervezésének ellenőrző listájaként szolgál. @@ -249,7 +249,7 @@ Az Ügynök továbbra is következtet, eszközöket használ és jelölt eredmé "Javasló-Ellenőrző Paradigma." -![10-4. ábra: Javasló-Ellenőrző Hurok](images/fig10-4.svg) +![10-3. ábra: Javasló-Ellenőrző Hurok](images/fig10-3.svg) A Javasló-Ellenőrző a kanonikus társi együttműködési paradigma. Az 5. fejezet már tárgyalta a tervezési elveit és gyakorlati alkalmazásait három kísérletben: PPT generálás, videó szerkesztés és napló vizualizáció. A Javasló Ügynök kódot generál, míg az Ellenőrző Ügynök rendereli a végrehajtási eredményeket, kiértékeli azok minőségét egy látás-nyelvi modell segítségével, és strukturált javaslatokat ad a fejlesztésre. A kettő addig iterál, amíg az eredmény meg nem felel a kívánt szabványnak. @@ -317,7 +317,7 @@ A menedzser minta négy mechanizmustól függ: "Eredmény Integráció": Miután az al-ügynökök befejezték, a Menedzser összegyűjti és integrálja az eredményeket. Ez magában foglalhatja a konfliktusok feloldását és az ellentmondások egyeztetését. Végül a Menedzser ellenőrzi az integrált eredményt. -![10-5. ábra: A Menedzser szekvenciális koordinációja](images/fig10-5.svg) +![10-4. ábra: A Menedzser szekvenciális koordinációja](images/fig10-4.svg) > **10-2. kísérlet ★★★: Többügynökös Vezénylési Rendszer: Többnyelvű Dokumentáció Készítő** @@ -382,7 +382,7 @@ A menedzser minta négy mechanizmustól függ: > Ha a Fordító hirtelen letiltja a kérést, töröld ki a felesleges al-ügynököket. A Menedzser küldjön egy `cancel_subagent(task_de)` kérést a német fordító leállítására. Ekkor a japán fordítónak tovább kell dolgoznia, mert nincs függőség. A Menedzser megkeresheti a következő elérhető modellt, vagy felhasználói beavatkozást kérhet. > -> ![10-6. ábra: Könyvfordító Ügynök architektúrája](images/fig10-6.svg) +> ![10-5. ábra: Könyvfordító Ügynök architektúrája](images/fig10-5.svg) > > "Hibakezelési Stratégiák a Menedzser Mintában." @@ -424,7 +424,7 @@ return summarize_failures(workers) "Párhuzamos Koordinációs Minta." -![10-7. ábra: A Menedzser párhuzamos koordinációja](images/fig10-7.svg) +![10-6. ábra: A Menedzser párhuzamos koordinációja](images/fig10-6.svg) Az alapvető menedzser minta egy központi Menedzser általi szekvenciális feladatbontáson és elosztáson alapul. A gyakorlatban azonban a részfeladatok gyakran nem függetlenek egymástól. Az egyik al-ügynök kimenete egy másik al-ügynök bemenete lehet, vagy több al-ügynöknek kell együttműködnie, hogy egy közös eredményt hozzanak létre. Ilyenkor a párhuzamos koordináció lép életbe, amely a megosztott kontextus nélküli architektúrákban egy "üzenetsoron" alapul. @@ -457,7 +457,7 @@ A Lingtai többi tervezési eleme is visszautal a korábbi szakaszokra. A tudás > 3. Csak a szükséges információ átadása az együttműködés során (nem a teljes kontextus) > -> ![10-8. ábra: Telefonos és számítógépes kettős Ügynök-architektúra](images/fig10-8.svg) +> ![10-7. ábra: Telefonos és számítógépes kettős Ügynök-architektúra](images/fig10-7.svg) > > A menedzser minta természetesen támogatja a párhuzamos koordinációt, amelyben a Menedzser dinamikusan hozza létre és koordinálja az al-ügynököket. A Menedzser monitorozza az előrehaladást, és szükség esetén beavatkozik. Ez a mintázat alkalmas összetett feladatokhoz, ahol a számos részfeladat áttekintéséhez és koordinálásához központi vezérlésre van szükség. A fő korlátja, hogy a Menedzser potenciális szűk keresztmetszetté és egyetlen meghibásodási ponttá válik. @@ -488,7 +488,7 @@ else: **MetaGPT: SOP-vezérelt szoftvervállalat-szimuláció.** -![10-11. ábra A MetaGPT többügynökös együttműködési hálózata](images/fig10-11.svg) +![10-9. ábra A MetaGPT többügynökös együttműködési hálózata](images/fig10-9.svg) A MetaGPT egy szoftvercég szabványos eljárásait kódolja. A szerepek Product Manager → Architect → Project Manager → Engineer → QA sorrendben dolgoznak, és mindegyik strukturált átadási csomagot készít: feladatleírást és elfogadási feltételeket, megerősített tényeket és korlátokat, valamint termékhivatkozásokat, például fájlútvonalakat. A szerepek közös üzenetkészletbe publikálnak, és csak a feliratkozott típusokat olvassák. Ez szétcsatolja a küldőt és fogadót, de a vezérlési folyamatot az SOP rögzíti; a MetaGPT ezért nem teljesen decentralizált. @@ -554,7 +554,7 @@ Az A2A fejlődésének figyelemmel kísérése ajánlott, ahogy a szabvány és > 5. Naplózd az egyes al-ügynökök végrehajtási idejét és a kaszkád megszakítás hatékonyságát > -> ![10-9. ábra: Párhuzamos webes adatgyűjtési architektúra](images/fig10-9.svg) +> ![10-8. ábra: Párhuzamos webes adatgyűjtési architektúra](images/fig10-8.svg) > ## Többügynökös Hibamódok @@ -636,7 +636,7 @@ Az ebben a szakaszban szereplő esetek három dimenzióból érthetők meg: ### Stanford AI Town: Generatív Ügynökök Társas Szimulációja -![10-12. ábra: AI Town Architektúra](images/fig10-12.svg) +![10-10. ábra: AI Town Architektúra](images/fig10-10.svg) 2023-ban a Stanford Egyetem és a Google kutatói publikálták az úttörő tanulmányt "Generative Agents: Interactive Simulacra of Human Behavior" címmel, bevezetve a "generatív ügynökök" fogalmát. A core innováció az volt, hogy az Ügynököket nem korlátozták előre meghatározott feladatokra, hanem az emberihez hasonló memóriával, reflexióval és tervezéssel ruházták fel őket, hogy önállóan élhessenek, szocializálódjanak és fejlődjenek egy nyitott társas környezetben. @@ -751,7 +751,7 @@ A Farkasos (Werewolf) rögzíti e szakasz harmadik dimenzióját, a "stratégiai > > -> ![10-13. ábra: Hangalapú Farkasos Ügynök Rendszer](images/fig10-13.svg) +> ![10-11. ábra: Hangalapú Farkasos Ügynök Rendszer](images/fig10-11.svg) > diff --git a/book-hu/images/fig10-10.svg b/book-hu/images/fig10-10.svg index 406d5959f..913045627 100644 --- a/book-hu/images/fig10-10.svg +++ b/book-hu/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -ágens A -követelmények elemzés - -kimenet: strukturált Követelménydokumentum -spec.json -Átadás → - - -ágens B -Architektúratervezés - -kimenet: műszaki tervezés dokumentum -design.md -Átadás → - - -ágens C -kód Implementation - -kimenet: Forráskód -src/*.py -Átadás → - - -ágens D -Tesztelés és validálás - -kimenet: Tesztjelentés -test_report.md -Átadás → - -Átadás tartalma (A ágens → B ágens példa) -indító feltétel: -A befejezi a követelménydokumentumot → is_complete=True -cél ágens: -cél="Architekt" (ágens B) -Átadás tartalma: -files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" -Átadás utáni állapot: -állapot="kilépés" (release erőforrások, nem marad alapján készenlét) - -decentralizáció előnyök -✓ Nincs szükség központi menedzserre, aki minden szerepet átlát -✓ tiszta responsibility boundaries, Laza csatolás -✓ Befejezéskor kilépés, a tartós erőforrások felszabadítása - -decentralizáció korlátok -✗ Lack globális optimalizálás nézet -✗ Nehéz kivételkezelés (nincs központi koordináció) -✗ Rögzített folyamat, nehéz dinamikusan módosítani + +Isabella Rodriguez +A Hobbs kávézó tulajdonosa +Vendégszerető és társaságkedvelő + +Memóriafolyam +[08:30] A Hobbs kávézó kinyit +Fontosság: 4 Frissesség: 0.9 +[09:15] Klaus kávét vásárolni érkezik +Fontosság: 5 Frissesség: 0.85 +[10:00] Döntés egy Valentin-napi buliról +Fontosság: 9 Frissesség: 0.8 +[11:30] Maria meghívása a buliba +Fontosság: 8 Frissesség: 0.7 +[14:00] Maria megkérése a díszítésre +Fontosság: 7 Frissesség: 0.6 + +Reflexió +"Kik Hobbs törzsvendégei?" +→ Maria, Klaus, Tom (törzsvendégek) +"Kit hívjak meg a buliba?" +→ Törzsvendégek és barátok meghívása +"Hol tart a buli előkészítése?" +→ Többen meghívva; a helyszínt még díszíteni kell +"Ki segíthet feldíszíteni a kávézót?" +→ Maria (barát, szívesen segít) + +Tervezés és cselekvés +08:00 Ébredés + reggeli +09:00 Hobbs Nyitás +12:00 Vendégek meghívása az üzlet működtetése közben +14:00 A helyszín díszítése Mariával +16:00 Frissítők és ülőhelyek előkészítése +← Dinamikus alkalmazkodás +18:00 Valentin-napi buli a Hobbsban + + +Visszakeresés + + +Ösztönzés + +Emergens viselkedés (25 ágens · 2 virtuális nap) +▸ Spontán társas kapcsolatok +találkozások → barátság → összejövetelek +▸ Információterjedés +A bulimeghívás sok ágenshez eljut +▸ Választási hírterjedés +A polgármesteri kampány elterjed az ágensek között +▸ Kapcsolati memória +Emlékszik a korábbi beszélgetésekre, folytatja a témákat +A viselkedés nincs előre programozva — a memória, reflexió és társas érvelés emergens eredménye \ No newline at end of file diff --git a/book-hu/images/fig10-11.svg b/book-hu/images/fig10-11.svg index f333ab4b7..1f3f1f44a 100644 --- a/book-hu/images/fig10-11.svg +++ b/book-hu/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Termékmenedzser -Bemenet: felhasználói követelményleírás - -kimenet: -Funkciólista + prioritás -Felhasználói történetek (5 elem) -Elfogadási feltételek - -docs/PRD.md - - - -Architekt -Input: PRD.md - -kimenet: -Technológiai verem: FastAPI+React -API-specifikáció (OpenAPI) -Adatbázisséma - -docs/design.md - - - -Projektmenedzser -Input: design.md - -kimenet: -Feladatlista + kiosztás -Fájlszintű felosztás -Modulfüggőségi sorrend - -docs/tasks.md - - - -Mérnök ×3 -Input: tasks.md + design.md - -kimenet: -A modul: felhasználói szolgáltatás -B modul: rendelési szolgáltatás -C modul: fizetési szolgáltatás - -src/*.py - - - -QA-mérnök -Input: src/ + PRD.md - -kimenet: -Egységtesztek (pytest) -Integrációs tesztek (API) -Hibajelentés → mérnök - -docs/test_report.md - -Hibajavítás - - -Megosztott projektkönyvtár -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -A MetaGPT alapterve -▸ Egységes dokumentumok -Minden szerep rögzített formátumot ad; a következő lépésnek ez kell, nem az érvelés -▸ Laza csatolás -Erősebb termékmenedzser cserélhető lenni; a PRD-formátum mellett a további folyamat változatlan -▸ Nincs menedzser -Vezérlés a DAG mentén: termékmenedzser→architekt→projektmenedzser→mérnök→QA -▸ Kivételcsatorna -QA-hiba → modulonkénti hibajelentés a mérnöknek → iteratív javítás + +Bíró (kódvezérelt) +Játékállapot · fázisvezérlés · információelosztás +Éjszaka → nappal → szavazás → lezárás + +🐺 1. vérfarkas +Látható: csapattársak kiléte +Stratégia: falusinak álcázni magát +Éjszaka: célpont kiválasztása + + +kölcsönös tudás + +🐺 2. vérfarkas +Látható: csapattársak kiléte +Stratégia: követés és védelem +Éjszaka: egyeztetés a célpontról + + +kölcsönös tudás + +🔮 Látnok +Látható: vizsgálati eredmények +Stratégia: a felfedés idejének megválasztása +Éjszaka: 1 személy vizsgálata + + +Investigation eredmények + +🧪 Boszorkány +Látható: halál/gyógyítás +Stratégia: bájital/ellenszer megőrzése +Éjszaka: 1 személy megmentése/megmérgezése + + +👤 Falusi ×2 +Látható: csak nyilvános információ +Stratégia: logikai érvelés +Nappal: a beszéd elemzése + + +Információ-hozzáférés: a bíró szerep szerint szűri a kontextust +vérfarkas: +Ally IDs + éjszaka talk + nyilvános beszéd +Látnok: +saját ellenőrzés eredmények + nyilvános beszéd +Boszorkány: +Deaths + potion állapot + nyilvános beszéd +falusi: +nyilvános beszéd + szavazatok csak + +Valós idejű hanginterakció (ASR + LLM + TTS) +Nappali vita +A bíró megadja a felszólalási sorrendet +Felszólalás üléssorrendben +Szavazási fázis +A játékosok szavazatainak begyűjtése +Számlálás + eredményhirdetés +Éjszakai fázis +A szerepek sorban felébrednek +Privát hangcsatorna +Emberi játékos +Szerepek véletlenszerű kiosztása +Hangos szavazás/beszéd \ No newline at end of file diff --git a/book-hu/images/fig10-12.svg b/book-hu/images/fig10-12.svg deleted file mode 100644 index 913045627..000000000 --- a/book-hu/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -A Hobbs kávézó tulajdonosa -Vendégszerető és társaságkedvelő - -Memóriafolyam -[08:30] A Hobbs kávézó kinyit -Fontosság: 4 Frissesség: 0.9 -[09:15] Klaus kávét vásárolni érkezik -Fontosság: 5 Frissesség: 0.85 -[10:00] Döntés egy Valentin-napi buliról -Fontosság: 9 Frissesség: 0.8 -[11:30] Maria meghívása a buliba -Fontosság: 8 Frissesség: 0.7 -[14:00] Maria megkérése a díszítésre -Fontosság: 7 Frissesség: 0.6 - -Reflexió -"Kik Hobbs törzsvendégei?" -→ Maria, Klaus, Tom (törzsvendégek) -"Kit hívjak meg a buliba?" -→ Törzsvendégek és barátok meghívása -"Hol tart a buli előkészítése?" -→ Többen meghívva; a helyszínt még díszíteni kell -"Ki segíthet feldíszíteni a kávézót?" -→ Maria (barát, szívesen segít) - -Tervezés és cselekvés -08:00 Ébredés + reggeli -09:00 Hobbs Nyitás -12:00 Vendégek meghívása az üzlet működtetése közben -14:00 A helyszín díszítése Mariával -16:00 Frissítők és ülőhelyek előkészítése -← Dinamikus alkalmazkodás -18:00 Valentin-napi buli a Hobbsban - - -Visszakeresés - - -Ösztönzés - -Emergens viselkedés (25 ágens · 2 virtuális nap) -▸ Spontán társas kapcsolatok -találkozások → barátság → összejövetelek -▸ Információterjedés -A bulimeghívás sok ágenshez eljut -▸ Választási hírterjedés -A polgármesteri kampány elterjed az ágensek között -▸ Kapcsolati memória -Emlékszik a korábbi beszélgetésekre, folytatja a témákat -A viselkedés nincs előre programozva — a memória, reflexió és társas érvelés emergens eredménye - \ No newline at end of file diff --git a/book-hu/images/fig10-13.svg b/book-hu/images/fig10-13.svg deleted file mode 100644 index 1f3f1f44a..000000000 --- a/book-hu/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Bíró (kódvezérelt) -Játékállapot · fázisvezérlés · információelosztás -Éjszaka → nappal → szavazás → lezárás - -🐺 1. vérfarkas -Látható: csapattársak kiléte -Stratégia: falusinak álcázni magát -Éjszaka: célpont kiválasztása - - -kölcsönös tudás - -🐺 2. vérfarkas -Látható: csapattársak kiléte -Stratégia: követés és védelem -Éjszaka: egyeztetés a célpontról - - -kölcsönös tudás - -🔮 Látnok -Látható: vizsgálati eredmények -Stratégia: a felfedés idejének megválasztása -Éjszaka: 1 személy vizsgálata - - -Investigation eredmények - -🧪 Boszorkány -Látható: halál/gyógyítás -Stratégia: bájital/ellenszer megőrzése -Éjszaka: 1 személy megmentése/megmérgezése - - -👤 Falusi ×2 -Látható: csak nyilvános információ -Stratégia: logikai érvelés -Nappal: a beszéd elemzése - - -Információ-hozzáférés: a bíró szerep szerint szűri a kontextust -vérfarkas: -Ally IDs + éjszaka talk + nyilvános beszéd -Látnok: -saját ellenőrzés eredmények + nyilvános beszéd -Boszorkány: -Deaths + potion állapot + nyilvános beszéd -falusi: -nyilvános beszéd + szavazatok csak - -Valós idejű hanginterakció (ASR + LLM + TTS) -Nappali vita -A bíró megadja a felszólalási sorrendet -Felszólalás üléssorrendben -Szavazási fázis -A játékosok szavazatainak begyűjtése -Számlálás + eredményhirdetés -Éjszakai fázis -A szerepek sorban felébrednek -Privát hangcsatorna -Emberi játékos -Szerepek véletlenszerű kiosztása -Hangos szavazás/beszéd - \ No newline at end of file diff --git a/book-hu/images/fig10-2.svg b/book-hu/images/fig10-2.svg index 9cf85c5b4..a0a7fcec3 100644 --- a/book-hu/images/fig10-2.svg +++ b/book-hu/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Folyamatos folyamat ugyanabban a kontextusban — a beszélgetési előzmény minden szakaszban teljesen megmarad ▼ - -fázis 1 -Követelményelemző - -Rendszerprompt -"Az ön feladata a követelmények teljes megértése. -Don't rush → implement helyszín: ez szakasz -az ön feladat → ask kérdések és confirm." - -Eszközkészlet -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -indító conversion -complete_req_analysis() - - -fázis 2 -Szoftvermérnök - -Rendszerprompt -"írás alapú alapján confirmed követelmények -magas-minőség Python kód. Follow -Modularization, Hibakezelés Bevált gyakorlatok." - -Eszközkészlet -write_file(path, content) -read_file(path) -execute_code(code) - -indító conversion -submit_for_review() - - -fázis 3 -Kódfelülvizsgáló - -Rendszerprompt -"A kódminőség többdimenziós kiértékelése: -Functional helyesség, kód standards, -biztonság. Adopt kritikus gondolkodás." - -Eszközkészlet -run_linter(file) -run_tests(file) -analyze_complexity(file) -Szerepváltás: a rendszerprompt és az eszközkészlet frissül; a beszélgetési előzmény és az állapot folyamatosan megmarad - \ No newline at end of file + + +ágens A + +ágens B + + + +Virtuális fájlrendszer / +Unified felület: read_file · write_file · list_dir + + + +felhasználó +Upload / Download + + + + + + + +Upload / Download + + + + + +Mount + + + + +Az ágens privát munkaterülete +/scratch/<id> +Scratchpad + +privát · ágens-csak +Destroyed és instance +Olvasás/írás · nincs szükség párhuzamosság-vezérlésre +egy minden ágens + + + +Többágenses megosztott Space +/workspace/shared +Megosztott munkaterület + +felhasználó-látható · tartós +Olvasás/írás · párhuzamosság-vezérlés szükséges +Optimistic lock · worktree + + + +Külső csatolt erőforrások +/mnt/gdrive · /mnt/notion +adapteren keresztül + +Subject → külső authorization +Mostly olvasás-csak · írás és caution +Nagy késleltetés · gyenge következetesség + + + +rendszer Built-során erőforrások +/skills +Skills · Templates · Manuals + +Globally megosztott · olvasás-csak +Stabil mindenhol munkamenetek +Progressive disclosure + + + +külső adatok Sources +Google Ösztönzés · Notion + + diff --git a/book-hu/images/fig10-3.svg b/book-hu/images/fig10-3.svg index a0a7fcec3..9e30ad54c 100644 --- a/book-hu/images/fig10-3.svg +++ b/book-hu/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -ágens A - -ágens B - - - -Virtuális fájlrendszer / -Unified felület: read_file · write_file · list_dir - - - -felhasználó -Upload / Download - - - - - - - -Upload / Download - - - - - -Mount - - - - -Az ágens privát munkaterülete -/scratch/<id> -Scratchpad - -privát · ágens-csak -Destroyed és instance -Olvasás/írás · nincs szükség párhuzamosság-vezérlésre -egy minden ágens - - - -Többágenses megosztott Space -/workspace/shared -Megosztott munkaterület - -felhasználó-látható · tartós -Olvasás/írás · párhuzamosság-vezérlés szükséges -Optimistic lock · worktree - - - -Külső csatolt erőforrások -/mnt/gdrive · /mnt/notion -adapteren keresztül - -Subject → külső authorization -Mostly olvasás-csak · írás és caution -Nagy késleltetés · gyenge következetesség - - - -rendszer Built-során erőforrások -/skills -Skills · Templates · Manuals - -Globally megosztott · olvasás-csak -Stabil mindenhol munkamenetek -Progressive disclosure - - - -külső adatok Sources -Google Ösztönzés · Notion - - + +Javaslattevő ágens +bemenet: Extended tanulmány abstract (2000 words) + +--- +theme: academic +--- +# Transformer Figyelmi mechanizmus + +## Alapgondolat +- Az önfigyelem kiszámítja: Q·K^T/√d +- A többfejes figyelem párhuzamos feldolgozása +A tartalomszerkezet megértése → felbontás diákra + +Felülvizsgáló ágens + +① Slidev renderelés → PDF/PNG +② látás LLM multi-dimenziós Kiértékelés + +Strukturált visszajelzés: +Page Issue Type Severity +3. o. Sűrű tartalom Magas +P7 Font too small Medium +11. o. Színeltérés Alacsony +renderelés + vizuális elemzés → actionable Javítási javaslatok + +Slidev-kód + +Strukturált visszajelzés + +Iteratív javítási folyamat + +kör 1 +12-oldal draft +5 problémák + + +kör 2 +14 oldal (a sűrű oldalak felosztva) +2 problémák + + +kör 3 +14 oldal (betűtípus javítva) +0 problémák ✓ + +Miért ne egyetlen ágenst használjunk? +Egyetlen ágens: renderelés képek ×N körök → kontextus explosion +(1080p-s képernyőkép = több ezer token × 14 oldal × 5 kör) +kettős ágens: felülvizsgáló csak sees aktuális version +javaslattevő csak accumulates szöveg visszajelzés → clean kontextus + \ No newline at end of file diff --git a/book-hu/images/fig10-4.svg b/book-hu/images/fig10-4.svg index 9e30ad54c..1dc5b9a9d 100644 --- a/book-hu/images/fig10-4.svg +++ b/book-hu/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Javaslattevő ágens -bemenet: Extended tanulmány abstract (2000 words) - ---- -theme: academic ---- -# Transformer Figyelmi mechanizmus - -## Alapgondolat -- Az önfigyelem kiszámítja: Q·K^T/√d -- A többfejes figyelem párhuzamos feldolgozása -A tartalomszerkezet megértése → felbontás diákra - -Felülvizsgáló ágens - -① Slidev renderelés → PDF/PNG -② látás LLM multi-dimenziós Kiértékelés - -Strukturált visszajelzés: -Page Issue Type Severity -3. o. Sűrű tartalom Magas -P7 Font too small Medium -11. o. Színeltérés Alacsony -renderelés + vizuális elemzés → actionable Javítási javaslatok - -Slidev-kód - -Strukturált visszajelzés - -Iteratív javítási folyamat - -kör 1 -12-oldal draft -5 problémák - - -kör 2 -14 oldal (a sűrű oldalak felosztva) -2 problémák - - -kör 3 -14 oldal (betűtípus javítva) -0 problémák ✓ - -Miért ne egyetlen ágenst használjunk? -Egyetlen ágens: renderelés képek ×N körök → kontextus explosion -(1080p-s képernyőkép = több ezer token × 14 oldal × 5 kör) -kettős ágens: felülvizsgáló csak sees aktuális version -javaslattevő csak accumulates szöveg visszajelzés → clean kontextus + +Menedzser ágens +feladat megértés → Decomposition → Scheduling → szintézis +Eszközkészlet: [call_agent_A, call_agent_B, +call_agent_C, keresés, write_file] + +Alágens A +szerep: adatok gyűjtés +keresés műszaki Dokumentáció +kinyerés kulcs információ + +lépés 1 + + + +Alágens B +szerep: elemzés & feldolgozás +Compare és elemzés adatok +generálás statistical jelentés + +lépés 2 + + + +Alágens C +szerep: jelentés generálás +írás végső jelentés +Formátum kimenet + +lépés 3 + + +Soros végrehajtási folyamat +A menedzser meghívja A-t +→ A visszaad adatok +→ A menedzser továbbítja B-nek +→ B visszaad elemzés +→ A menedzser továbbítja C-nek +→ C visszaad jelentés +Menedzseri nézet: egy ágens meghívása = egy eszköz meghívása (kérés küldése → válasz fogadása) \ No newline at end of file diff --git a/book-hu/images/fig10-5.svg b/book-hu/images/fig10-5.svg index 1dc5b9a9d..6c0a62189 100644 --- a/book-hu/images/fig10-5.svg +++ b/book-hu/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Menedzser ágens -feladat megértés → Decomposition → Scheduling → szintézis -Eszközkészlet: [call_agent_A, call_agent_B, -call_agent_C, keresés, write_file] - -Alágens A -szerep: adatok gyűjtés -keresés műszaki Dokumentáció -kinyerés kulcs információ - -lépés 1 - - - -Alágens B -szerep: elemzés & feldolgozás -Compare és elemzés adatok -generálás statistical jelentés - -lépés 2 - - - -Alágens C -szerep: jelentés generálás -írás végső jelentés -Formátum kimenet - -lépés 3 - - -Soros végrehajtási folyamat -A menedzser meghívja A-t -→ A visszaad adatok -→ A menedzser továbbítja B-nek -→ B visszaad elemzés -→ A menedzser továbbítja C-nek -→ C visszaad jelentés -Menedzseri nézet: egy ágens meghívása = egy eszköz meghívása (kérés küldése → válasz fogadása) + +Menedzser ágens +Feladattervezés · előrehaladás monitorozás · kivétel kezelés · eredmény szintézis + +Szójegyzékkészítő ágens +szójegyzék +A teljes könyv fogadása → szakkifejezések azonosítása +keresés Specialized Dictionaries + fordítás Conventions +Output: glossary.json + +{"attention": "figyelem", + "transformer": "Transformer", + "backprop": "visszaterjesztés"} + + +Fordító ágens ×N +Fejezetfordítás +bemenet: fejezet + szójegyzék + útmutató +fordítás kifejezések strictly according → szójegyzék +kimenet: fejezet{n}_hu.md + +"...Figyelmi mechanizmus computes the similarity of + Query·Key^T ..." + + +Lektoráló ágens +teljes szöveg felülvizsgálat +átvizsgálás és ellenőrzés kifejezés következetesség +A folyékonyság és olvashatóság ellenőrzése +Output: review_report.md + +3. o.: „figyelem” → „odafigyelés”: következetlenség +8. o.: a hosszú mondatot érdemes kettébontani + + +szójegyzék + +fordítás + +Megosztott fájlrendszer +glossary.json +szójegyzék +chapter{1..10}_zh.md +Fejezetfordítás +review_report.md +Felülvizsgálati jelentés +translation_guide.md +fordítás útmutató + +Kontextuselkülönítés előnyök +Szójegyzék: csak a kifejezéseket látja | Fordítás: csak az aktuális fejezetet + a szójegyzéket látja | Menedzser: csak a fájlindexet tartja karban \ No newline at end of file diff --git a/book-hu/images/fig10-6.svg b/book-hu/images/fig10-6.svg index 6c0a62189..b436ee751 100644 --- a/book-hu/images/fig10-6.svg +++ b/book-hu/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Menedzser ágens -Feladattervezés · előrehaladás monitorozás · kivétel kezelés · eredmény szintézis - -Szójegyzékkészítő ágens -szójegyzék -A teljes könyv fogadása → szakkifejezések azonosítása -keresés Specialized Dictionaries + fordítás Conventions -Output: glossary.json - -{"attention": "figyelem", - "transformer": "Transformer", - "backprop": "visszaterjesztés"} - - -Fordító ágens ×N -Fejezetfordítás -bemenet: fejezet + szójegyzék + útmutató -fordítás kifejezések strictly according → szójegyzék -kimenet: fejezet{n}_hu.md - -"...Figyelmi mechanizmus computes the similarity of - Query·Key^T ..." - - -Lektoráló ágens -teljes szöveg felülvizsgálat -átvizsgálás és ellenőrzés kifejezés következetesség -A folyékonyság és olvashatóság ellenőrzése -Output: review_report.md - -3. o.: „figyelem” → „odafigyelés”: következetlenség -8. o.: a hosszú mondatot érdemes kettébontani - - -szójegyzék - -fordítás - -Megosztott fájlrendszer -glossary.json -szójegyzék -chapter{1..10}_zh.md -Fejezetfordítás -review_report.md -Felülvizsgálati jelentés -translation_guide.md -fordítás útmutató - -Kontextuselkülönítés előnyök -Szójegyzék: csak a kifejezéseket látja | Fordítás: csak az aktuális fejezetet + a szójegyzéket látja | Menedzser: csak a fájlindexet tartja karban +Párhuzamos Scheduling · valós idejű monitorozás · eredmény Aggregation + +üzenet Bus + + +ágens 1 +adatok gyűjtés +futó ◎ +Független kontextus + + +ágens 2 +tartalom elemzés +futó ◎ +Független kontextus + + +ágens 3 +Chart generálás +kész ✓ +Független kontextus + + +ágens 4 +Formátum validálás +várakozás ○ +Független kontextus + + +üzenet Bus kommunikáció példa +Manager → ágens 1 +{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} +ágens 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} +ágens 1 → ágens 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → ágens 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-hu/images/fig10-7.svg b/book-hu/images/fig10-7.svg index b436ee751..ce23baacc 100644 --- a/book-hu/images/fig10-7.svg +++ b/book-hu/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Menedzser ágens -Párhuzamos Scheduling · valós idejű monitorozás · eredmény Aggregation - -üzenet Bus - - -ágens 1 -adatok gyűjtés -futó ◎ -Független kontextus - - -ágens 2 -tartalom elemzés -futó ◎ -Független kontextus - - -ágens 3 -Chart generálás -kész ✓ -Független kontextus - - -ágens 4 -Formátum validálás -várakozás ○ -Független kontextus - - -üzenet Bus kommunikáció példa -Manager → ágens 1 -{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} -ágens 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} -ágens 1 → ágens 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → ágens 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +telefon ágens +Node.js · Real-time Voice Call + +felhasználó hang +Microphone bemenet + + +VAD + ASR +Silero VAD → STT átírás + + +LLM következtetés +megértés Intent + kinyerés információ + + +TTS szintézis +generálás hang válasz → Play + +számítógép ágens +Python · Böngésző-automatizálás + +Képernyőkép +A böngésző aktuális oldala + + +látás LLM +megértés oldal szerkezet + űrlap Fields + + +Művelettervezés +megkeresés Fields → terv bemenet sorozat + + +végrehajtás műveletek +kattintás / bemenet / beküldés + +WebSocket kétirányú kommunikáció (ws://localhost:8849) + + + +valós idejű kétirányú üzenet Stream (használat számítógép While alapján hívás) +telefon → számítógép +[FROM_PHONE_AGENT] A felhasználó neve Zhang San +számítógép → telefon +[FROM_COMPUTER_AGENT] A név kitöltve, azonosítószám szükséges +telefon → számítógép +[FROM_PHONE_AGENT] Azonosítószám: 310101199001011234 +számítógép → telefon +[FROM_COMPUTER_AGENT] Form submitted, registration successful +kulcs: kettő ágensek futtatás Független ReAct-cikluss során Párhuzamos, Non-blocking \ No newline at end of file diff --git a/book-hu/images/fig10-8.svg b/book-hu/images/fig10-8.svg index ce23baacc..10c0c11b8 100644 --- a/book-hu/images/fig10-8.svg +++ b/book-hu/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -telefon ágens -Node.js · Real-time Voice Call - -felhasználó hang -Microphone bemenet - - -VAD + ASR -Silero VAD → STT átírás - - -LLM következtetés -megértés Intent + kinyerés információ - - -TTS szintézis -generálás hang válasz → Play - -számítógép ágens -Python · Böngésző-automatizálás - -Képernyőkép -A böngésző aktuális oldala - - -látás LLM -megértés oldal szerkezet + űrlap Fields - - -Művelettervezés -megkeresés Fields → terv bemenet sorozat - - -végrehajtás műveletek -kattintás / bemenet / beküldés - -WebSocket kétirányú kommunikáció (ws://localhost:8849) - - - -valós idejű kétirányú üzenet Stream (használat számítógép While alapján hívás) -telefon → számítógép -[FROM_PHONE_AGENT] A felhasználó neve Zhang San -számítógép → telefon -[FROM_COMPUTER_AGENT] A név kitöltve, azonosítószám szükséges -telefon → számítógép -[FROM_PHONE_AGENT] Azonosítószám: 310101199001011234 -számítógép → telefon -[FROM_COMPUTER_AGENT] Form submitted, registration successful -kulcs: kettő ágensek futtatás Független ReAct-cikluss során Párhuzamos, Non-blocking + +Menedzser ágens +dinamikus létrehozás · valós idejű monitorozás · kaszkádos befejezés + +ágens 1 +cs.edu.cn +tanár Directory keresés +Searching... ◎ + + +ágens 2 +math.edu.cn +tanár Directory keresés +nem megtalálva ✗ + + +ágens 3 +phys.edu.cn +tanár Directory keresés +megtalálva! ✓ + + +ágens 4 +chem.edu.cn +tanár Directory keresés +Terminated ⊘ + + +ágens 5 … 10 +… (10 total) +tanár Directory keresés +Terminated ⊘ + + +kaszkádos befejezés sorozat +t=0s +indítás 10 ágensek +Párhuzamos keresés céljára "Zhang Wei" + +t=12s +A 2. ágens befejezi +nem megtalálva → kilépés + +t=18s +ágens 3 megtalálva! +küldés target_found + +t=18.1s +A menedzser leállítást sugároz szét +→ fennmaradó futó ágensek + +t=19s +Mindenki megerősíti a befejezést +Az eredmények összesítése és visszaadása + +eredmény megtalálva +Name: Zhang Wei School: School of Physics +Position: Professor Field: Quantum Computing +Email: zhangwei@phys.edu.cn + +Teljesítmény-összehasonlítás +soros: 10 websites × 30s = ~5 perc +Párhuzamos: 18s → keresés + 1s → terminate = 19s +gyorsulás: ~15× (és kaszkádos befejezés optimalizálás) \ No newline at end of file diff --git a/book-hu/images/fig10-9.svg b/book-hu/images/fig10-9.svg index 10c0c11b8..f333ab4b7 100644 --- a/book-hu/images/fig10-9.svg +++ b/book-hu/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Menedzser ágens -dinamikus létrehozás · valós idejű monitorozás · kaszkádos befejezés - -ágens 1 -cs.edu.cn -tanár Directory keresés -Searching... ◎ - - -ágens 2 -math.edu.cn -tanár Directory keresés -nem megtalálva ✗ - - -ágens 3 -phys.edu.cn -tanár Directory keresés -megtalálva! ✓ - - -ágens 4 -chem.edu.cn -tanár Directory keresés -Terminated ⊘ - - -ágens 5 … 10 -… (10 total) -tanár Directory keresés -Terminated ⊘ - - -kaszkádos befejezés sorozat -t=0s -indítás 10 ágensek -Párhuzamos keresés céljára "Zhang Wei" - -t=12s -A 2. ágens befejezi -nem megtalálva → kilépés - -t=18s -ágens 3 megtalálva! -küldés target_found - -t=18.1s -A menedzser leállítást sugároz szét -→ fennmaradó futó ágensek - -t=19s -Mindenki megerősíti a befejezést -Az eredmények összesítése és visszaadása - -eredmény megtalálva -Name: Zhang Wei School: School of Physics -Position: Professor Field: Quantum Computing -Email: zhangwei@phys.edu.cn - -Teljesítmény-összehasonlítás -soros: 10 websites × 30s = ~5 perc -Párhuzamos: 18s → keresés + 1s → terminate = 19s -gyorsulás: ~15× (és kaszkádos befejezés optimalizálás) + +Termékmenedzser +Bemenet: felhasználói követelményleírás + +kimenet: +Funkciólista + prioritás +Felhasználói történetek (5 elem) +Elfogadási feltételek + +docs/PRD.md + + + +Architekt +Input: PRD.md + +kimenet: +Technológiai verem: FastAPI+React +API-specifikáció (OpenAPI) +Adatbázisséma + +docs/design.md + + + +Projektmenedzser +Input: design.md + +kimenet: +Feladatlista + kiosztás +Fájlszintű felosztás +Modulfüggőségi sorrend + +docs/tasks.md + + + +Mérnök ×3 +Input: tasks.md + design.md + +kimenet: +A modul: felhasználói szolgáltatás +B modul: rendelési szolgáltatás +C modul: fizetési szolgáltatás + +src/*.py + + + +QA-mérnök +Input: src/ + PRD.md + +kimenet: +Egységtesztek (pytest) +Integrációs tesztek (API) +Hibajelentés → mérnök + +docs/test_report.md + +Hibajavítás + + +Megosztott projektkönyvtár +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +A MetaGPT alapterve +▸ Egységes dokumentumok +Minden szerep rögzített formátumot ad; a következő lépésnek ez kell, nem az érvelés +▸ Laza csatolás +Erősebb termékmenedzser cserélhető lenni; a PRD-formátum mellett a további folyamat változatlan +▸ Nincs menedzser +Vezérlés a DAG mentén: termékmenedzser→architekt→projektmenedzser→mérnök→QA +▸ Kivételcsatorna +QA-hiba → modulonkénti hibajelentés a mérnöknek → iteratív javítás \ No newline at end of file diff --git a/book-hu/images/fig10-sequential-handoff.svg b/book-hu/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..406d5959f --- /dev/null +++ b/book-hu/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +ágens A +követelmények elemzés + +kimenet: strukturált Követelménydokumentum +spec.json +Átadás → + + +ágens B +Architektúratervezés + +kimenet: műszaki tervezés dokumentum +design.md +Átadás → + + +ágens C +kód Implementation + +kimenet: Forráskód +src/*.py +Átadás → + + +ágens D +Tesztelés és validálás + +kimenet: Tesztjelentés +test_report.md +Átadás → + +Átadás tartalma (A ágens → B ágens példa) +indító feltétel: +A befejezi a követelménydokumentumot → is_complete=True +cél ágens: +cél="Architekt" (ágens B) +Átadás tartalma: +files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" +Átadás utáni állapot: +állapot="kilépés" (release erőforrások, nem marad alapján készenlét) + +decentralizáció előnyök +✓ Nincs szükség központi menedzserre, aki minden szerepet átlát +✓ tiszta responsibility boundaries, Laza csatolás +✓ Befejezéskor kilépés, a tartós erőforrások felszabadítása + +decentralizáció korlátok +✗ Lack globális optimalizálás nézet +✗ Nehéz kivételkezelés (nincs központi koordináció) +✗ Rögzített folyamat, nehéz dinamikusan módosítani + \ No newline at end of file diff --git a/book-hu/images/fig10-stage-switching.svg b/book-hu/images/fig10-stage-switching.svg new file mode 100644 index 000000000..9cf85c5b4 --- /dev/null +++ b/book-hu/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Folyamatos folyamat ugyanabban a kontextusban — a beszélgetési előzmény minden szakaszban teljesen megmarad ▼ + +fázis 1 +Követelményelemző + +Rendszerprompt +"Az ön feladata a követelmények teljes megértése. +Don't rush → implement helyszín: ez szakasz +az ön feladat → ask kérdések és confirm." + +Eszközkészlet +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +indító conversion +complete_req_analysis() + + +fázis 2 +Szoftvermérnök + +Rendszerprompt +"írás alapú alapján confirmed követelmények +magas-minőség Python kód. Follow +Modularization, Hibakezelés Bevált gyakorlatok." + +Eszközkészlet +write_file(path, content) +read_file(path) +execute_code(code) + +indító conversion +submit_for_review() + + +fázis 3 +Kódfelülvizsgáló + +Rendszerprompt +"A kódminőség többdimenziós kiértékelése: +Functional helyesség, kód standards, +biztonság. Adopt kritikus gondolkodás." + +Eszközkészlet +run_linter(file) +run_tests(file) +analyze_complexity(file) +Szerepváltás: a rendszerprompt és az eszközkészlet frissül; a beszélgetési előzmény és az állapot folyamatosan megmarad + \ No newline at end of file diff --git a/book-hu/images/fig8-1.svg b/book-hu/images/fig8-1.svg index 72e217e4c..8f9804d9c 100644 --- a/book-hu/images/fig8-1.svg +++ b/book-hu/images/fig8-1.svg @@ -1,26 +1,54 @@ - - - -teljes feladat -Nyers -tapasztalat generálása - -finomítás tapasztalat generálása -Összegzés, -tömörítés, strukturálás - - -tárolás során külső rendszer -Tudásbázis/eszközök, -retrievable - - -Visszakeresés és -újrahasználás -Meghívás a következő feladatban - - - - -tapasztalat generálása accumulates persistently, reused mindenhol munkamenetek - \ No newline at end of file + + + + + + + + + Folyamatos fejlődés: a futási tapasztalattól az új Agent-verzióig + + + Feladat végrehajtása + Interakció felhasználókkal,környezettel, eszközökkel + + + Trajektória rögzítése + Műveletek, eredmények,visszajelzés + + + Jelek képzése + Eredmény · Folyamat · Minőség + + + Jelölt frissítések előállítása + + + + + Tudás + Utasítások + Programok + Paraméterek + + + Ellenőrzés és kiadás + Regresszió, fokozatoskiadás, visszaállítás + + + + + + + + Az új Agent belép a következő körbe + Csak az a frissítés jelent folyamatos fejlődést, amely megváltoztatja a későbbi viselkedést és átmegy az ellenőrzésen + + diff --git a/book-id/chapter10.md b/book-id/chapter10.md index 421384af0..13b92d319 100644 --- a/book-id/chapter10.md +++ b/book-id/chapter10.md @@ -162,9 +162,9 @@ Di awal bab ini, "shared file system" dicantumkan sebagai salah satu dari tiga m **IV. Built-in System Resources.** Sebuah paket sumber daya yang telah diinstal sebelumnya oleh sistem dan dibagikan secara read-only kepada semua Agent. Contoh umumnya adalah **Skills** yang diperkenalkan pada Bab 2 dan 4—dokumen pengetahuan dan skrip yang diorganisasikan sebagai file, di-mount di path seperti `/skills`, diakses melalui progressive disclosure (indeks terlebih dahulu, lalu di-expand sesuai permintaan). Contoh lainnya termasuk panduan referensi, pustaka template, dan definisi tool yang dibagikan. Lapisan ini dibagikan secara global, bersifat read-only, stabil di seluruh sesi, dan dapat dibaca secara konkuren oleh semua Agent tanpa concurrency control. -Gambar 10-3 mengilustrasikan bagaimana keempat tipe area ini secara seragam di-mount di bawah satu directory tree tunggal: Agent mengakses keseluruhan pohon melalui antarmuka yang terpadu, pengguna mengunggah dan mengunduh file dari ruang bersama, sumber data eksternal di-mount melalui adaptor, dan sumber daya sistem bawaan disediakan secara read-only. +Gambar 10-2 mengilustrasikan bagaimana keempat tipe area ini secara seragam di-mount di bawah satu directory tree tunggal: Agent mengakses keseluruhan pohon melalui antarmuka yang terpadu, pengguna mengunggah dan mengunduh file dari ruang bersama, sumber data eksternal di-mount melalui adaptor, dan sumber daya sistem bawaan disediakan secara read-only. -![Gambar 10-3: Struktur mounting dari empat tipe area dalam Agent Virtual File System](images/fig10-3.svg) +![Gambar 10-2: Struktur mounting dari empat tipe area dalam Agent Virtual File System](images/fig10-2.svg) Tabel 10-4 membandingkan keempat tipe area ini di empat dimensi—visibilitas, lifecycle, permission baca/tulis, dan concurrency control—yang berfungsi sebagai daftar periksa untuk desain tata letak file system. @@ -248,7 +248,7 @@ Agent tetap melakukan penalaran, menggunakan tool, dan menghasilkan artefak kand **Paradigma Proposer-Reviewer.** -![Gambar 10-4: Proposer-Reviewer Loop](images/fig10-4.svg) +![Gambar 10-3: Proposer-Reviewer Loop](images/fig10-3.svg) Proposer-Reviewer adalah paradigma peer-collaboration kanonik. Bab 5 telah membahas prinsip-prinsip desainnya dan aplikasi praktis dalam tiga eksperimen: pembuatan PPT, pengeditan video, dan visualisasi log. Proposer Agent menghasilkan kode, sementara Reviewer Agent merender hasil eksekusi, mengevaluasi kualitasnya menggunakan vision-language model, dan memberikan saran terstruktur untuk perbaikan. Keduanya beriterasi hingga hasilnya memenuhi standar yang disyaratkan. @@ -328,7 +328,7 @@ return summarize_failures(workers) **Pola Koordinasi Sekuensial (Sequential Coordination Pattern).** -![Gambar 10-5: Manager Sequential Coordination](images/fig10-5.svg) +![Gambar 10-4: Manager Sequential Coordination](images/fig10-4.svg) Manager memanggil Agent-agent khusus (specialized Agents) secara berurutan. Setiap Agent mengembalikan hasil setelah selesai, dan Manager memutuskan langkah selanjutnya. Control flow-nya linier, sederhana, dan jelas, membuatnya cocok untuk skenario di mana sub-tugas memiliki dependensi sekuensial yang jelas. @@ -357,14 +357,14 @@ Manager memanggil Agent-agent khusus (specialized Agents) secara berurutan. Seti > 4. Bandingkan Agent tunggal dengan pola manajer dalam hal kualitas terjemahan, efisiensi eksekusi, dan konsumsi sumber daya > > -> ![Gambar 10-6: Book Translation Agent Architecture](images/fig10-6.svg) +> ![Gambar 10-5: Book Translation Agent Architecture](images/fig10-5.svg) > > **Pola Koordinasi Paralel (Parallel Coordination Pattern).** -![Gambar 10-7: Manager Parallel Coordination](images/fig10-7.svg) +![Gambar 10-6: Manager Parallel Coordination](images/fig10-6.svg) Ketika beberapa sub-tugas (subtasks) dapat berjalan secara paralel, pola sekuensial (sequential pattern) menjadi tidak efisien. Koordinasi paralel memungkinkan beberapa Agent untuk bekerja secara bersamaan (simultaneously), yang secara signifikan meningkatkan throughput. Manager Agent harus merencanakan tugas paralel, memonitor semua Agent yang berjalan secara real time, mengoordinasikan komunikasi mereka, dan membuat keputusan di tingkat sistem (system-wide decisions) ketika Agent berhasil atau gagal. Ini biasanya membutuhkan sebuah **message bus** sebagai infrastruktur—anggap saja sebagai "papan buletin publik" di mana Agent-agent dapat menerbitkan pesan (publish messages) dan berlangganan (subscribe) ke tipe pesan yang menarik minat mereka, memungkinkan komunikasi asinkron (asynchronous, non-blocking communication). Dua implementasi umum, dari yang lebih sederhana hingga yang lebih kompleks, adalah **Redis Pub/Sub** dan message queues seperti **RabbitMQ**. Redis Pub/Sub bersifat ringan (lightweight) dan segera mengirimkan pesan, tetapi tidak menyimpannya (persist), sehingga penerima yang sedang offline akan kehilangannya. RabbitMQ dan sistem serupa menyimpan pesan ke disk (persist messages to disk), menjaganya tetap utuh ketika penerima sedang offline sementara waktu. Pesan biasanya menggunakan amplop JSON (JSON envelope) yang berisi sender ID, target Agent (atau penanda siaran (broadcast marker)), tipe pesan, dan payload. @@ -425,7 +425,7 @@ Sisa dari desain Lingtai juga menggemakan bagian-bagian sebelumnya. Pengetahuan > 4. Catat stempel waktu (*timestamp*) untuk pesan yang dipertukarkan dan catat keputusan-keputusan penting para Agent > > -> ![Gambar 10-8: Phone and Computer Dual Agent Architecture](images/fig10-8.svg) +> ![Gambar 10-7: Phone and Computer Dual Agent Architecture](images/fig10-7.svg) > > > **Eksperimen 10-4 ★★★: Agent Mengumpulkan Informasi dari Banyak Situs Web Secara Bersamaan** @@ -457,7 +457,7 @@ Sisa dari desain Lingtai juga menggemakan bagian-bagian sebelumnya. Pengetahuan > 6. Ukur dan bandingkan waktu eksekusi serial dan paralel untuk mengukur peningkatan kecepatan dari paralelisasi > > -> ![Gambar 10-9: Parallel Web Scraping Architecture](images/fig10-9.svg) +> ![Gambar 10-8: Parallel Web Scraping Architecture](images/fig10-8.svg) > ### Pola terdesentralisasi @@ -486,7 +486,7 @@ else: **MetaGPT: simulasi perusahaan perangkat lunak berbasis SOP.** -![Gambar 10-11 Jaringan kolaborasi multi-Agent MetaGPT](images/fig10-11.svg) +![Gambar 10-9 Jaringan kolaborasi multi-Agent MetaGPT](images/fig10-9.svg) MetaGPT mengodekan prosedur operasi standar perusahaan perangkat lunak. Peran bekerja dalam urutan Product Manager → Architect → Project Manager → Engineer → QA. Setiap peran menghasilkan paket handoff terstruktur: deskripsi tugas dan kriteria penerimaan, fakta dan batasan yang telah dipastikan, serta referensi artifact seperti path file. Peran menerbitkan pesan ke shared pool dan hanya membaca tipe yang dilanggan. Ini melepaskan ketergantungan pengirim dan penerima, tetapi control flow tetap ditentukan SOP; MetaGPT tidak sepenuhnya terdesentralisasi. @@ -592,7 +592,7 @@ Kasus-kasus di bagian ini dapat dipahami dari tiga dimensi: ### Stanford AI Town: Simulasi Sosial Agent Generatif -![Gambar 10-12: AI Town Architecture](images/fig10-12.svg) +![Gambar 10-10: AI Town Architecture](images/fig10-10.svg) Pada tahun 2023, para peneliti dari Stanford University dan Google menerbitkan makalah penting "Generative Agents: Interactive Simulacra of Human Behavior," yang memperkenalkan konsep "generative agents." Inovasi intinya adalah berhenti membatasi Agents pada tugas-tugas yang telah ditentukan sebelumnya dan sebaliknya membekali mereka dengan memori, *reflection*, dan *planning* yang menyerupai manusia, sehingga mereka dapat hidup, bersosialisasi, dan berkembang secara mandiri di lingkungan sosial yang terbuka. @@ -707,7 +707,7 @@ Werewolf menjadi jangkar bagi dimensi ketiga dari bagian ini, **strategic gamepl > > > -> ![Gambar 10-13: Sistem Voice Werewolf Agent](images/fig10-13.svg) +> ![Gambar 10-11: Sistem Voice Werewolf Agent](images/fig10-11.svg) > > diff --git a/book-id/images/fig10-10.svg b/book-id/images/fig10-10.svg index 2eb005820..bc011dddb 100644 --- a/book-id/images/fig10-10.svg +++ b/book-id/images/fig10-10.svg @@ -1,56 +1,57 @@ - + - -Agent A -Analisis Kebutuhan - -Output: Dokumen Kebutuhan Terstruktur -spec.json -Serah Terima → - - -Agent B -Desain Arsitektur - -Output: Dokumen Desain Teknis -design.md -Serah Terima → - - -Agent C -Implementasi Kode - -Output: Kode Sumber -src/*.py -Serah Terima → - - -Agent D -Pengujian dan Validasi - -Output: Laporan Pengujian -test_report.md -Serah Terima → - -Konten Serah Terima (Contoh Agent A → Agent B) -Kondisi Pemicu: -A menyelesaikan dokumen kebutuhan → is_complete=True -Target Agent: -target="architect" (Agent B) -Konten Serah Terima: -files=["spec.json"] + summary="Sistem e-commerce: 3 microservices, REST API" -Status Pasca-Serah Terima: -status="exit" (lepaskan sumber daya, tidak standby) - -Keunggulan Desentralisasi -✓ Tidak butuh Manager pusat untuk memahami semua peran -✓ Batas tanggung jawab jelas, decoupling antarmuka -✓ Keluar setelah selesai, lepaskan sumber daya persisten - -Keterbatasan Desentralisasi -✗ Kurangnya perspektif optimasi global -✗ Penanganan pengecualian sulit (tanpa koordinasi pusat) -✗ Proses tetap, sulit disesuaikan secara dinamis + +Isabella Rodriguez +Pemilik Hobbs Cafe +Ramah dan mudah bergaul + +Memory Stream +[08:30] Hobbs Cafe buka +importance: 4 recency: 0.9 +[09:15] Pelanggan Klaus datang membeli kopi +importance: 5 recency: 0.85 +[10:00] Memutuskan mengadakan pesta Hari Valentine +importance: 9 recency: 0.8 +[11:30] Mengundang pelanggan Maria ke pesta +importance: 8 recency: 0.7 +[14:00] Meminta Maria membantu mendekorasi tempat +importance: 7 recency: 0.6 + +Refleksi +"Siapa pelanggan tetap Hobbs?" +→ Maria, Klaus, Tom (pengunjung yang sering datang) +"Siapa yang harus saya undang ke pesta?" +→ Mengundang pelanggan tetap dan teman +"Sejauh mana persiapan pestanya?" +→ Beberapa diundang, tempat masih butuh dekorasi +"Siapa yang bisa membantu saya mendekorasi kafe?" +→ Maria (teman, bersedia membantu) + +Perencanaan dan Tindakan +08:00 Bangun tidur + Sarapan +09:00 Hobbs buka +12:00 Mengundang pelanggan saat menjalankan toko +14:00 Mendekorasi tempat bersama Maria +16:00 Menyiapkan makanan ringan dan tempat duduk +← Penyesuaian dinamis +18:00 Mengadakan pesta Hari Valentine di Hobbs + + +Retrieval + + +Drive + +Perilaku emergen (25 Agent · 2 hari waktu virtual) +▸ Sosialisasi spontan +Pertemuan → pertemanan → kumpul-kumpul +▸ Propagasi Informasi +Undangan pesta menyebar ke banyak Agent +▸ Propagasi Pemilihan +Kampanye walikota menyebar di antara Agent +▸ Memori Hubungan +Mengingat obrolan lalu, melanjutkan topik +Semua perilaku tidak diprogram sebelumnya — hasil emergen dari memori + refleksi + penalaran akal sehat sosial \ No newline at end of file diff --git a/book-id/images/fig10-11.svg b/book-id/images/fig10-11.svg index b6172313f..b5794295f 100644 --- a/book-id/images/fig10-11.svg +++ b/book-id/images/fig10-11.svg @@ -1,80 +1,69 @@ - + - -Product Manager -Input: Deskripsi kebutuhan pengguna - -Output: -Daftar fitur + prioritas -User stories (5 item) -Kriteria penerimaan - -docs/PRD.md - - - -Architect -Input: PRD.md - -Output: -Tech stack: FastAPI+React -Spesifikasi API (OpenAPI) -Skema database - -docs/design.md - - - -Project Manager -Input: design.md - -Output: -Daftar tugas + penugasan -Alokasi tingkat file -Urutan dependensi modul - -docs/tasks.md - - - -Engineer ×3 -Input: tasks.md + design.md - -Output: -Modul A: Layanan pengguna -Modul B: Layanan pesanan -Modul C: Layanan pembayaran - -src/*.py - - - -QA Engineer -Input: src/ + PRD.md - -Output: -Pengujian unit (pytest) -Pengujian integrasi (API) -Laporan bug → Engineer - -docs/test_report.md - -Perbaikan bug - - -Direktori proyek bersama -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -Desain inti MetaGPT -▸ Dokumen terstandarisasi -Setiap peran menghasilkan format tetap; downstream butuh formatnya, bukan penalarannya -▸ Decoupling antarmuka -Ganti dengan Product Mgr yang lebih kuat; jika output pertahankan format PRD, downstream tidak berubah -▸ Tanpa Manager -Kontrol mengalir di sepanjang DAG: Product Mgr→Architect→Project Mgr→Engineer→QA -▸ Saluran pengecualian -Kegagalan QA → laporan bug diarahkan ke Engineer sesuai modul → perbaikan iteratif + +Judge (Code-Driven) +Game State · Phase Control · Information Distribution +Malam → Siang → Voting → Penyelesaian + +🐺 Werewolf 1 +Terlihat: Identitas Rekan Tim +Strategi: Menyamar sebagai Villager +Malam: Pilih Target + + +Mutual Knowledge + +🐺 Werewolf 2 +Terlihat: Identitas Rekan Tim +Strategi: Ikuti dan Lindungi +Malam: Negosiasi Target + + +Mutual Knowledge + +🔮 Seer +Terlihat: Hasil Investigasi +Strategi: Pilih Kapan Mengungkapkan +Malam: Investigasi 1 Orang + + +Hasil Investigasi + +🧪 Witch +Terlihat: Kematian/Penyembuhan +Strategi: Simpan Ramuan/Penawar +Malam: Selamatkan/Racuni 1 Orang + + +👤 Villager ×2 +Terlihat: Hanya Informasi Publik +Strategi: Penalaran Logis +Siang: Analisis Pernyataan + + +Kontrol Akses Informasi: Judge Menyaring Konteks Berdasarkan Peran +Werewolf: +ID Sekutu + diskusi malam + diskusi publik +Seer: +Hasil pemeriksaan sendiri + diskusi publik +Witch: +Kematian + status ramuan + diskusi publik +Villager: +Diskusi publik + voting saja + +Interaksi suara real-time (ASR + LLM + TTS) +Diskusi siang +Judge mengatur urutan bicara +Bicara bergiliran berdasarkan tempat duduk +Fase voting +Kumpulkan suara pemain +Hitung + umumkan suara +Fase malam +Bangunkan peran secara bergiliran +Saluran suara privat +Pemain manusia +Berikan peran secara acak +Pemungutan suara/bicara via suara \ No newline at end of file diff --git a/book-id/images/fig10-12.svg b/book-id/images/fig10-12.svg deleted file mode 100644 index bc011dddb..000000000 --- a/book-id/images/fig10-12.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - -Isabella Rodriguez -Pemilik Hobbs Cafe -Ramah dan mudah bergaul - -Memory Stream -[08:30] Hobbs Cafe buka -importance: 4 recency: 0.9 -[09:15] Pelanggan Klaus datang membeli kopi -importance: 5 recency: 0.85 -[10:00] Memutuskan mengadakan pesta Hari Valentine -importance: 9 recency: 0.8 -[11:30] Mengundang pelanggan Maria ke pesta -importance: 8 recency: 0.7 -[14:00] Meminta Maria membantu mendekorasi tempat -importance: 7 recency: 0.6 - -Refleksi -"Siapa pelanggan tetap Hobbs?" -→ Maria, Klaus, Tom (pengunjung yang sering datang) -"Siapa yang harus saya undang ke pesta?" -→ Mengundang pelanggan tetap dan teman -"Sejauh mana persiapan pestanya?" -→ Beberapa diundang, tempat masih butuh dekorasi -"Siapa yang bisa membantu saya mendekorasi kafe?" -→ Maria (teman, bersedia membantu) - -Perencanaan dan Tindakan -08:00 Bangun tidur + Sarapan -09:00 Hobbs buka -12:00 Mengundang pelanggan saat menjalankan toko -14:00 Mendekorasi tempat bersama Maria -16:00 Menyiapkan makanan ringan dan tempat duduk -← Penyesuaian dinamis -18:00 Mengadakan pesta Hari Valentine di Hobbs - - -Retrieval - - -Drive - -Perilaku emergen (25 Agent · 2 hari waktu virtual) -▸ Sosialisasi spontan -Pertemuan → pertemanan → kumpul-kumpul -▸ Propagasi Informasi -Undangan pesta menyebar ke banyak Agent -▸ Propagasi Pemilihan -Kampanye walikota menyebar di antara Agent -▸ Memori Hubungan -Mengingat obrolan lalu, melanjutkan topik -Semua perilaku tidak diprogram sebelumnya — hasil emergen dari memori + refleksi + penalaran akal sehat sosial - \ No newline at end of file diff --git a/book-id/images/fig10-13.svg b/book-id/images/fig10-13.svg deleted file mode 100644 index b5794295f..000000000 --- a/book-id/images/fig10-13.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - -Judge (Code-Driven) -Game State · Phase Control · Information Distribution -Malam → Siang → Voting → Penyelesaian - -🐺 Werewolf 1 -Terlihat: Identitas Rekan Tim -Strategi: Menyamar sebagai Villager -Malam: Pilih Target - - -Mutual Knowledge - -🐺 Werewolf 2 -Terlihat: Identitas Rekan Tim -Strategi: Ikuti dan Lindungi -Malam: Negosiasi Target - - -Mutual Knowledge - -🔮 Seer -Terlihat: Hasil Investigasi -Strategi: Pilih Kapan Mengungkapkan -Malam: Investigasi 1 Orang - - -Hasil Investigasi - -🧪 Witch -Terlihat: Kematian/Penyembuhan -Strategi: Simpan Ramuan/Penawar -Malam: Selamatkan/Racuni 1 Orang - - -👤 Villager ×2 -Terlihat: Hanya Informasi Publik -Strategi: Penalaran Logis -Siang: Analisis Pernyataan - - -Kontrol Akses Informasi: Judge Menyaring Konteks Berdasarkan Peran -Werewolf: -ID Sekutu + diskusi malam + diskusi publik -Seer: -Hasil pemeriksaan sendiri + diskusi publik -Witch: -Kematian + status ramuan + diskusi publik -Villager: -Diskusi publik + voting saja - -Interaksi suara real-time (ASR + LLM + TTS) -Diskusi siang -Judge mengatur urutan bicara -Bicara bergiliran berdasarkan tempat duduk -Fase voting -Kumpulkan suara pemain -Hitung + umumkan suara -Fase malam -Bangunkan peran secara bergiliran -Saluran suara privat -Pemain manusia -Berikan peran secara acak -Pemungutan suara/bicara via suara - \ No newline at end of file diff --git a/book-id/images/fig10-2.svg b/book-id/images/fig10-2.svg index 49c41320d..531345a3f 100644 --- a/book-id/images/fig10-2.svg +++ b/book-id/images/fig10-2.svg @@ -1,55 +1,82 @@ - + - -▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ - -Fase 1 -Requirements Analyst - -System prompt -"Tanggung jawab Anda adalah memahami persyaratan sepenuhnya. -Jangan terburu-buru mengimplementasikan pada tahap ini -Tugas Anda adalah mengajukan pertanyaan dan mengonfirmasi." - -Tool set -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -Memicu konversi -complete_req_analysis() - - -Fase 2 -Software engineer - -System prompt -"Tulis berdasarkan persyaratan yang telah dikonfirmasi -Kode Python berkualitas tinggi. Ikuti -Modularisasi, praktik terbaik penanganan error." - -Tool set -write_file(path, content) -read_file(path) -execute_code(code) - -Memicu konversi -submit_for_review() - - -Fase 3 -Code reviewer - -System prompt -"Evaluasi kualitas kode dari berbagai dimensi: -Kebenaran fungsional, standar kode, -Keamanan. Adopsi pemikiran kritis." - -Tool set -run_linter(file) -run_tests(file) -analyze_complexity(file) -Pergantian peran: perbarui system prompt + set tool, riwayat percakapan dan status dipertahankan secara berkesinambungan + + +Agent A + +Agent B + + + +Virtual File System / +Unified interface: read_file · write_file · list_dir + + + +User +Upload / Download + + + + + + + +Upload / Download + + + + + +Mount + + + + +Agent Private Workspace +/scratch/<id> +Scratchpad + +Private · Agent-only +Dihancurkan bersama instans +Read/Write · No concurrency control needed +Satu per Agent + + + +Ruang Bersama Multi-Agent +/workspace/shared +Shared Workspace + +User-visible · Persistent +Read/Write · Concurrency control required +Optimistic lock · worktree + + + +Sumber Daya Terpasang Eksternal +/mnt/gdrive · /mnt/notion +Melalui adapter + +Tunduk pada otorisasi eksternal +Mostly read-only · Write with caution +High latency · Weak consistency + + + +Sumber Daya Bawaan Sistem +/skills +Skills · Templates · Manuals + +Globally shared · Read-only +Stabil antar sesi +Pengungkapan progresif + + + +Sumber Data Eksternal +Google Drive · Notion + \ No newline at end of file diff --git a/book-id/images/fig10-3.svg b/book-id/images/fig10-3.svg index 531345a3f..51a20405d 100644 --- a/book-id/images/fig10-3.svg +++ b/book-id/images/fig10-3.svg @@ -1,82 +1,55 @@ - - - - - - -Agent A - -Agent B - - - -Virtual File System / -Unified interface: read_file · write_file · list_dir - - - -User -Upload / Download - - - - - - - -Upload / Download - - - - - -Mount - - - - -Agent Private Workspace -/scratch/<id> -Scratchpad - -Private · Agent-only -Dihancurkan bersama instans -Read/Write · No concurrency control needed -Satu per Agent - - - -Ruang Bersama Multi-Agent -/workspace/shared -Shared Workspace - -User-visible · Persistent -Read/Write · Concurrency control required -Optimistic lock · worktree - - - -Sumber Daya Terpasang Eksternal -/mnt/gdrive · /mnt/notion -Melalui adapter - -Tunduk pada otorisasi eksternal -Mostly read-only · Write with caution -High latency · Weak consistency - - - -Sumber Daya Bawaan Sistem -/skills -Skills · Templates · Manuals - -Globally shared · Read-only -Stabil antar sesi -Pengungkapan progresif - - - -Sumber Data Eksternal -Google Drive · Notion - + + + + +Proposer Agent +Input: Abstrak makalah diperluas (2000 kata) + +--- +theme: academic +--- +# Mekanisme Attention Transformer + +## Ide Inti +- Self-attention menghitung Q·K^T/√d +- Pemrosesan paralel multi-head attention +Memahami struktur konten → mendekomposisikan ke halaman slide + +Reviewer Agent + +① Rendering Slidev → PDF/PNG +② Evaluasi multi-dimensi Vision LLM + +Feedback terstruktur: +Halaman Jenis Masalah Keparahan +P3 Konten padat Tinggi +P7 Font terlalu kecil Sedang +P11 Warna tidak cocok Rendah +Rendering + analisis visual → saran perbaikan yang dapat ditindaklanjuti + +Kode Slidev + +Feedback terstruktur + +Proses perbaikan iteratif + +Putaran 1 +Draf 12 halaman +5 masalah + + +Putaran 2 +14 halaman (pisahkan halaman padat) +2 masalah + + +Putaran 3 +14 halaman (font dikoreksi) +0 masalah ✓ + +Mengapa tidak menggunakan satu Agent? +Satu Agent: merender gambar ×N putaran → ledakan konteks +(Tangkapan layar 1080p = ribuan token × 14 halaman × 5 putaran) +Agen ganda: Reviewer hanya melihat versi saat ini +Proposer hanya mengakumulasi feedback teks → konteks bersih \ No newline at end of file diff --git a/book-id/images/fig10-4.svg b/book-id/images/fig10-4.svg index 51a20405d..db26d3216 100644 --- a/book-id/images/fig10-4.svg +++ b/book-id/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -Input: Abstrak makalah diperluas (2000 kata) - ---- -theme: academic ---- -# Mekanisme Attention Transformer - -## Ide Inti -- Self-attention menghitung Q·K^T/√d -- Pemrosesan paralel multi-head attention -Memahami struktur konten → mendekomposisikan ke halaman slide - -Reviewer Agent - -① Rendering Slidev → PDF/PNG -② Evaluasi multi-dimensi Vision LLM - -Feedback terstruktur: -Halaman Jenis Masalah Keparahan -P3 Konten padat Tinggi -P7 Font terlalu kecil Sedang -P11 Warna tidak cocok Rendah -Rendering + analisis visual → saran perbaikan yang dapat ditindaklanjuti - -Kode Slidev - -Feedback terstruktur - -Proses perbaikan iteratif - -Putaran 1 -Draf 12 halaman -5 masalah - - -Putaran 2 -14 halaman (pisahkan halaman padat) -2 masalah - - -Putaran 3 -14 halaman (font dikoreksi) -0 masalah ✓ - -Mengapa tidak menggunakan satu Agent? -Satu Agent: merender gambar ×N putaran → ledakan konteks -(Tangkapan layar 1080p = ribuan token × 14 halaman × 5 putaran) -Agen ganda: Reviewer hanya melihat versi saat ini -Proposer hanya mengakumulasi feedback teks → konteks bersih + +Manager Agent +Pemahaman tugas → Dekomposisi → Penjadwalan → Sintesis +Set Tools: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +Peran: Pengumpulan Data +Cari dokumentasi teknis +Ekstrak informasi kunci + +Langkah 1 + + + +Sub-Agent B +Peran: Analisis & Pemrosesan +Bandingkan dan analisis data +Buat laporan statistik + +Langkah 2 + + + +Sub-Agent C +Peran: Pembuatan Laporan +Tulis laporan akhir +Format Output + +Langkah 3 + + +Alur eksekusi sekuensial +Manager memanggil A +→ A mengembalikan data +→ Manager meneruskan ke B +→ B mengembalikan analisis +→ Manager meneruskan ke C +→ C mengembalikan laporan +Perspektif Manager: Memanggil Agent = Memanggil Tool (kirim request → terima response) \ No newline at end of file diff --git a/book-id/images/fig10-5.svg b/book-id/images/fig10-5.svg index db26d3216..97194b018 100644 --- a/book-id/images/fig10-5.svg +++ b/book-id/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Pemahaman tugas → Dekomposisi → Penjadwalan → Sintesis -Set Tools: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -Peran: Pengumpulan Data -Cari dokumentasi teknis -Ekstrak informasi kunci - -Langkah 1 - - - -Sub-Agent B -Peran: Analisis & Pemrosesan -Bandingkan dan analisis data -Buat laporan statistik - -Langkah 2 - - - -Sub-Agent C -Peran: Pembuatan Laporan -Tulis laporan akhir -Format Output - -Langkah 3 - - -Alur eksekusi sekuensial -Manager memanggil A -→ A mengembalikan data -→ Manager meneruskan ke B -→ B mengembalikan analisis -→ Manager meneruskan ke C -→ C mengembalikan laporan -Perspektif Manager: Memanggil Agent = Memanggil Tool (kirim request → terima response) + +Manager Agent +Perencanaan Tugas · Pemantauan Progres · Penanganan Pengecualian · Sintesis Hasil + +Glossary Agent +Glosarium +Terima Buku Penuh → Identifikasi Istilah Teknis +Cari Kamus Khusus + Konvensi Terjemahan +Output: glossary.json + +{"attention": "attention", + "transformer": "Transformer", + "backprop": "propagasi balik"} + + +Translation Agent ×N +Terjemahan Bab +Input: Bab + Glosarium + Panduan +Terjemahkan istilah secara ketat sesuai glosarium +Output: chapter{n}_id.md + +"...mekanisme attention menghitung kesamaan dari + Query·Key^T ..." + + +Proofreading Agent +Ulasan Teks Penuh +Pindai dan verifikasi konsistensi istilah +Periksa kelancaran dan keterbacaan +Output: review_report.md + +P3: inkonsistensi "attention"→"atensi" +P8: Kalimat panjang disarankan untuk dipisah + + +Glosarium + +Terjemahan + +Sistem File Bersama +glossary.json +Glosarium +chapter{1..10}_id.md +Terjemahan Bab +review_report.md +Laporan Ulasan +translation_guide.md +Panduan Terjemahan + +Keuntungan Isolasi Konteks +Glosarium: Hanya lihat istilah | Terjemahan: Hanya lihat bab saat ini + glosarium | Manager: Hanya kelola indeks file \ No newline at end of file diff --git a/book-id/images/fig10-6.svg b/book-id/images/fig10-6.svg index 97194b018..dca78e170 100644 --- a/book-id/images/fig10-6.svg +++ b/book-id/images/fig10-6.svg @@ -1,55 +1,45 @@ - - + + + - + Manager Agent -Perencanaan Tugas · Pemantauan Progres · Penanganan Pengecualian · Sintesis Hasil - -Glossary Agent -Glosarium -Terima Buku Penuh → Identifikasi Istilah Teknis -Cari Kamus Khusus + Konvensi Terjemahan -Output: glossary.json - -{"attention": "attention", - "transformer": "Transformer", - "backprop": "propagasi balik"} - - -Translation Agent ×N -Terjemahan Bab -Input: Bab + Glosarium + Panduan -Terjemahkan istilah secara ketat sesuai glosarium -Output: chapter{n}_id.md - -"...mekanisme attention menghitung kesamaan dari - Query·Key^T ..." - - -Proofreading Agent -Ulasan Teks Penuh -Pindai dan verifikasi konsistensi istilah -Periksa kelancaran dan keterbacaan -Output: review_report.md - -P3: inkonsistensi "attention"→"atensi" -P8: Kalimat panjang disarankan untuk dipisah - - -Glosarium - -Terjemahan - -Sistem File Bersama -glossary.json -Glosarium -chapter{1..10}_id.md -Terjemahan Bab -review_report.md -Laporan Ulasan -translation_guide.md -Panduan Terjemahan - -Keuntungan Isolasi Konteks -Glosarium: Hanya lihat istilah | Terjemahan: Hanya lihat bab saat ini + glosarium | Manager: Hanya kelola indeks file +Penjadwalan Paralel · Pemantauan Real-time · Agregasi Hasil + +Message Bus + + +Agent 1 +Pengumpulan Data +Berjalan ◎ +Konteks Independen + + +Agent 2 +Analisis Konten +Berjalan ◎ +Konteks Independen + + +Agent 3 +Pembuatan Grafik +Selesai ✓ +Konteks Independen + + +Agent 4 +Validasi Format +Menunggu ○ +Konteks Independen + + +Contoh Komunikasi Message Bus +Manager → Agent 1 +{"type":"start","task":"Kumpulkan makalah arxiv","params":{"query":"LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg dihasilkan"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-id/images/fig10-7.svg b/book-id/images/fig10-7.svg index dca78e170..f2eeb6a2c 100644 --- a/book-id/images/fig10-7.svg +++ b/book-id/images/fig10-7.svg @@ -1,45 +1,56 @@ - - + + - -Manager Agent -Penjadwalan Paralel · Pemantauan Real-time · Agregasi Hasil - -Message Bus - - -Agent 1 -Pengumpulan Data -Berjalan ◎ -Konteks Independen - - -Agent 2 -Analisis Konten -Berjalan ◎ -Konteks Independen - - -Agent 3 -Pembuatan Grafik -Selesai ✓ -Konteks Independen - - -Agent 4 -Validasi Format -Menunggu ○ -Konteks Independen - - -Contoh Komunikasi Message Bus -Manager → Agent 1 -{"type":"start","task":"Kumpulkan makalah arxiv","params":{"query":"LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg dihasilkan"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · Panggilan Suara Real-time + +Suara Pengguna +Input Mikrofon + + +VAD + ASR +Silero VAD → Transkripsi STT + + +Inferensi LLM +Pahami Niat + Ekstrak Informasi + + +Sintesis TTS +Hasilkan Balasan Suara → Putar + +Computer Agent +Python · Otomatisasi Browser + +Tangkapan Layar +Halaman Browser Saat Ini + + +Vision LLM +Pahami Struktur Halaman + Kolom Formulir + + +Perencanaan Aksi +Temukan Kolom → Rencanakan Urutan Input + + +Eksekusi Aksi +Klik / Input / Kirim + +Komunikasi Dua Arah WebSocket (ws://localhost:8849) + + + +Aliran Pesan Dua Arah Real-time (Gunakan Komputer Saat Menelepon) +Telepon → Komputer +[FROM_PHONE_AGENT] Pengguna mengatakan namanya Zhang San +Komputer → Telepon +[FROM_COMPUTER_AGENT] Nama diisi, butuh nomor KTP +Telepon → Komputer +[FROM_PHONE_AGENT] Nomor KTP 310101199001011234 +Komputer → Telepon +[FROM_COMPUTER_AGENT] Formulir dikirim, pendaftaran berhasil +Kunci: Dua Agent Menjalankan Loop ReAct Independen secara Paralel, Non-blocking \ No newline at end of file diff --git a/book-id/images/fig10-8.svg b/book-id/images/fig10-8.svg index f2eeb6a2c..3ee1403d3 100644 --- a/book-id/images/fig10-8.svg +++ b/book-id/images/fig10-8.svg @@ -1,56 +1,69 @@ - - + + - -Phone Agent -Node.js · Panggilan Suara Real-time - -Suara Pengguna -Input Mikrofon - - -VAD + ASR -Silero VAD → Transkripsi STT - - -Inferensi LLM -Pahami Niat + Ekstrak Informasi - - -Sintesis TTS -Hasilkan Balasan Suara → Putar - -Computer Agent -Python · Otomatisasi Browser - -Tangkapan Layar -Halaman Browser Saat Ini - - -Vision LLM -Pahami Struktur Halaman + Kolom Formulir - - -Perencanaan Aksi -Temukan Kolom → Rencanakan Urutan Input - - -Eksekusi Aksi -Klik / Input / Kirim - -Komunikasi Dua Arah WebSocket (ws://localhost:8849) - - - -Aliran Pesan Dua Arah Real-time (Gunakan Komputer Saat Menelepon) -Telepon → Komputer -[FROM_PHONE_AGENT] Pengguna mengatakan namanya Zhang San -Komputer → Telepon -[FROM_COMPUTER_AGENT] Nama diisi, butuh nomor KTP -Telepon → Komputer -[FROM_PHONE_AGENT] Nomor KTP 310101199001011234 -Komputer → Telepon -[FROM_COMPUTER_AGENT] Formulir dikirim, pendaftaran berhasil -Kunci: Dua Agent Menjalankan Loop ReAct Independen secara Paralel, Non-blocking + +Manager Agent +Pembuatan Dinamis · Pemantauan Real-time · Penghentian Beruntun + +Agent 1 +cs.edu.cn +Pencarian Direktori Guru +Mencari... ◎ + + +Agent 2 +math.edu.cn +Pencarian Direktori Guru +Tidak Ditemukan ✗ + + +Agent 3 +phys.edu.cn +Pencarian Direktori Guru +Ditemukan! ✓ + + +Agent 4 +chem.edu.cn +Pencarian Direktori Guru +Dihentikan ⊘ + + +Agent 5 … 10 +… (total 10) +Pencarian Direktori Guru +Dihentikan ⊘ + + +Urutan Penghentian Beruntun +t=0s +Mulai 10 Agent +Pencarian paralel untuk "Zhang Wei" + +t=12s +Agent 2 selesai +Tidak ditemukan → keluar + +t=18s +Agent 3 menemukan! +Kirim target_found + +t=18.1s +Manager menyiarkan penghentian +Ke Agent tersisa yang berjalan + +t=19s +Semua mengonfirmasi penghentian +Kumpulkan hasil dan kembalikan + +Hasil ditemukan +Nama: Zhang Wei Sekolah: Fakultas Fisika +Posisi: Profesor Bidang: Komputasi Kuantum +Email: zhangwei@phys.edu.cn + +Perbandingan Kinerja +Serial: 10 situs web × 30s = ~5 menit +Paralel: 18s untuk mencari + 1s untuk menghentikan = 19s +Peningkatan Kecepatan: ~15× (dengan optimasi penghentian beruntun) \ No newline at end of file diff --git a/book-id/images/fig10-9.svg b/book-id/images/fig10-9.svg index 3ee1403d3..b6172313f 100644 --- a/book-id/images/fig10-9.svg +++ b/book-id/images/fig10-9.svg @@ -1,69 +1,80 @@ - + - -Manager Agent -Pembuatan Dinamis · Pemantauan Real-time · Penghentian Beruntun - -Agent 1 -cs.edu.cn -Pencarian Direktori Guru -Mencari... ◎ - - -Agent 2 -math.edu.cn -Pencarian Direktori Guru -Tidak Ditemukan ✗ - - -Agent 3 -phys.edu.cn -Pencarian Direktori Guru -Ditemukan! ✓ - - -Agent 4 -chem.edu.cn -Pencarian Direktori Guru -Dihentikan ⊘ - - -Agent 5 … 10 -… (total 10) -Pencarian Direktori Guru -Dihentikan ⊘ - - -Urutan Penghentian Beruntun -t=0s -Mulai 10 Agent -Pencarian paralel untuk "Zhang Wei" - -t=12s -Agent 2 selesai -Tidak ditemukan → keluar - -t=18s -Agent 3 menemukan! -Kirim target_found - -t=18.1s -Manager menyiarkan penghentian -Ke Agent tersisa yang berjalan - -t=19s -Semua mengonfirmasi penghentian -Kumpulkan hasil dan kembalikan - -Hasil ditemukan -Nama: Zhang Wei Sekolah: Fakultas Fisika -Posisi: Profesor Bidang: Komputasi Kuantum -Email: zhangwei@phys.edu.cn - -Perbandingan Kinerja -Serial: 10 situs web × 30s = ~5 menit -Paralel: 18s untuk mencari + 1s untuk menghentikan = 19s -Peningkatan Kecepatan: ~15× (dengan optimasi penghentian beruntun) + +Product Manager +Input: Deskripsi kebutuhan pengguna + +Output: +Daftar fitur + prioritas +User stories (5 item) +Kriteria penerimaan + +docs/PRD.md + + + +Architect +Input: PRD.md + +Output: +Tech stack: FastAPI+React +Spesifikasi API (OpenAPI) +Skema database + +docs/design.md + + + +Project Manager +Input: design.md + +Output: +Daftar tugas + penugasan +Alokasi tingkat file +Urutan dependensi modul + +docs/tasks.md + + + +Engineer ×3 +Input: tasks.md + design.md + +Output: +Modul A: Layanan pengguna +Modul B: Layanan pesanan +Modul C: Layanan pembayaran + +src/*.py + + + +QA Engineer +Input: src/ + PRD.md + +Output: +Pengujian unit (pytest) +Pengujian integrasi (API) +Laporan bug → Engineer + +docs/test_report.md + +Perbaikan bug + + +Direktori proyek bersama +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +Desain inti MetaGPT +▸ Dokumen terstandarisasi +Setiap peran menghasilkan format tetap; downstream butuh formatnya, bukan penalarannya +▸ Decoupling antarmuka +Ganti dengan Product Mgr yang lebih kuat; jika output pertahankan format PRD, downstream tidak berubah +▸ Tanpa Manager +Kontrol mengalir di sepanjang DAG: Product Mgr→Architect→Project Mgr→Engineer→QA +▸ Saluran pengecualian +Kegagalan QA → laporan bug diarahkan ke Engineer sesuai modul → perbaikan iteratif \ No newline at end of file diff --git a/book-id/images/fig10-sequential-handoff.svg b/book-id/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..2eb005820 --- /dev/null +++ b/book-id/images/fig10-sequential-handoff.svg @@ -0,0 +1,56 @@ + + + + + +Agent A +Analisis Kebutuhan + +Output: Dokumen Kebutuhan Terstruktur +spec.json +Serah Terima → + + +Agent B +Desain Arsitektur + +Output: Dokumen Desain Teknis +design.md +Serah Terima → + + +Agent C +Implementasi Kode + +Output: Kode Sumber +src/*.py +Serah Terima → + + +Agent D +Pengujian dan Validasi + +Output: Laporan Pengujian +test_report.md +Serah Terima → + +Konten Serah Terima (Contoh Agent A → Agent B) +Kondisi Pemicu: +A menyelesaikan dokumen kebutuhan → is_complete=True +Target Agent: +target="architect" (Agent B) +Konten Serah Terima: +files=["spec.json"] + summary="Sistem e-commerce: 3 microservices, REST API" +Status Pasca-Serah Terima: +status="exit" (lepaskan sumber daya, tidak standby) + +Keunggulan Desentralisasi +✓ Tidak butuh Manager pusat untuk memahami semua peran +✓ Batas tanggung jawab jelas, decoupling antarmuka +✓ Keluar setelah selesai, lepaskan sumber daya persisten + +Keterbatasan Desentralisasi +✗ Kurangnya perspektif optimasi global +✗ Penanganan pengecualian sulit (tanpa koordinasi pusat) +✗ Proses tetap, sulit disesuaikan secara dinamis + \ No newline at end of file diff --git a/book-id/images/fig10-stage-switching.svg b/book-id/images/fig10-stage-switching.svg new file mode 100644 index 000000000..49c41320d --- /dev/null +++ b/book-id/images/fig10-stage-switching.svg @@ -0,0 +1,55 @@ + + + + + +▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ + +Fase 1 +Requirements Analyst + +System prompt +"Tanggung jawab Anda adalah memahami persyaratan sepenuhnya. +Jangan terburu-buru mengimplementasikan pada tahap ini +Tugas Anda adalah mengajukan pertanyaan dan mengonfirmasi." + +Tool set +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +Memicu konversi +complete_req_analysis() + + +Fase 2 +Software engineer + +System prompt +"Tulis berdasarkan persyaratan yang telah dikonfirmasi +Kode Python berkualitas tinggi. Ikuti +Modularisasi, praktik terbaik penanganan error." + +Tool set +write_file(path, content) +read_file(path) +execute_code(code) + +Memicu konversi +submit_for_review() + + +Fase 3 +Code reviewer + +System prompt +"Evaluasi kualitas kode dari berbagai dimensi: +Kebenaran fungsional, standar kode, +Keamanan. Adopsi pemikiran kritis." + +Tool set +run_linter(file) +run_tests(file) +analyze_complexity(file) +Pergantian peran: perbarui system prompt + set tool, riwayat percakapan dan status dipertahankan secara berkesinambungan + \ No newline at end of file diff --git a/book-id/images/fig8-1.svg b/book-id/images/fig8-1.svg index 6e63c99b6..003c50813 100644 --- a/book-id/images/fig8-1.svg +++ b/book-id/images/fig8-1.svg @@ -1,27 +1,54 @@ - - - - -Selesaikan tugas -Hasilkan pengalaman -mentah - -Sempurnakan pengalaman -Ringkas, -kompres, susun - - -Simpan di sistem eksternal -Knowledge base/tools, -dapat diambil - - -Ambil dan -gunakan kembali -Panggil di tugas berikutnya - - - - -Pengalaman terakumulasi secara persisten, digunakan kembali lintas sesi - \ No newline at end of file + + + + + + + + + Evolusi berkelanjutan: dari pengalaman operasi ke versi Agent baru + + + Jalankan tugas + Interaksi dengan pengguna,lingkungan, dan alat + + + Catat trajektori + Aksi, hasil, dan umpan balik + + + Bentuk sinyal + Hasil · Proses · Kualitas + + + Hasilkan kandidat pembaruan + + + + + Pengetahuan + Instruksi + Program + Parameter + + + Verifikasi dan rilis + Regresi, rilisbertahap, dan rollback + + + + + + + + Agent baru memasuki putaran berikutnya + Hanya pembaruan yang mengubah perilaku berikutnya dan lolos verifikasi yang merupakan evolusi berkelanjutan + + diff --git a/book-ja/chapter10.ja.md b/book-ja/chapter10.ja.md index 78774a5b3..bc4bf9c4d 100644 --- a/book-ja/chapter10.ja.md +++ b/book-ja/chapter10.ja.md @@ -164,10 +164,10 @@ IPC の 2 つのパラダイムに対応させると、共有ファイルシス **四、システム組み込みリソース(Built-in System Resources)**。システムが事前配置し、すべての Agent に対して読み取り専用で共有されるリソースパックで、典型的な代表は第 2 章・第 4 章で紹介した **Skills** です。ファイルの形で組織された知識文書とスクリプトで、`/skills` などのパスにマウントされ、漸進的開示(まずインデックス、次にオンデマンドで展開)で取り出されます。ほかに参考マニュアル、テンプレートライブラリ、共有ツール定義も含まれます。この層はグローバルに共有され、読み取り専用で、セッションをまたいで安定しており、すべての Agent が並行制御なしに並行して読み取れます。 -図10-3 は、これら 4 種類の領域が同一のディレクトリツリーに統一的にマウントされる構造を示しています。Agent は統一インターフェースを通じてツリー全体にアクセスし、ユーザーは共有空間からファイルをアップロード・ダウンロードし、外部データソースはアダプター経由でマウントされ、システム組み込みリソースは読み取り専用で提供されます。 +図10-2 は、これら 4 種類の領域が同一のディレクトリツリーに統一的にマウントされる構造を示しています。Agent は統一インターフェースを通じてツリー全体にアクセスし、ユーザーは共有空間からファイルをアップロード・ダウンロードし、外部データソースはアダプター経由でマウントされ、システム組み込みリソースは読み取り専用で提供されます。 -![図10-3 Agent 仮想ファイルシステムの 4 種類の領域のマウント構造](images/fig10-3.svg) +![図10-2 Agent 仮想ファイルシステムの 4 種類の領域のマウント構造](images/fig10-2.svg) 表10-4 は可視性、ライフサイクル、読み書き権限、並行制御という 4 つの次元からこの 4 種類の領域を対比したもので、ファイルシステムのレイアウト設計のチェックリストとして使えます。 @@ -249,7 +249,7 @@ Agent は引き続き推論し、ツールを使い、候補成果物を生成 **提議者・審査者パラダイム。** -![図10-4 提議者・審査者ループ](images/fig10-4.svg) +![図10-3 提議者・審査者ループ](images/fig10-3.svg) 提議者・審査者は最も典型的な対等協調パラダイムです。第 5 章ではすでに PPT 生成、動画編集、ログ可視化という 3 つの実験で、このパラダイムの設計原則と実戦応用を詳しく紹介しました。Proposer Agent がコード生成を担い、Reviewer Agent がレンダリング実行結果を Vision LLM で品質評価して構造化された改善提案を出し、両者が効果が基準に達するまで反復します。 @@ -330,7 +330,7 @@ return summarize_failures(workers) **逐次協調形態。** -![図10-5 Manager 逐次協調](images/fig10-5.svg) +![図10-4 Manager 逐次協調](images/fig10-4.svg) Manager が順番に専門 Agent を次々と呼び出し、各 Agent が完了後に結果を返し、Manager が次のステップを決めます。制御フローは線形で、シンプルで分かりやすく、サブタスク間に明確な先後依存がある場面に適します。 @@ -359,14 +359,14 @@ Manager が順番に専門 Agent を次々と呼び出し、各 Agent が完了 > 4. 単一 Agent と管理者パターンを、翻訳品質・実行効率・リソース消費の面で対比する > > -> ![図10-6 書籍翻訳 Agent アーキテクチャ](images/fig10-6.svg) +> ![図10-5 書籍翻訳 Agent アーキテクチャ](images/fig10-5.svg) > > **並列協調形態。** -![図10-7 Manager 並列協調](images/fig10-7.svg) +![図10-6 Manager 並列協調](images/fig10-6.svg) 複数のサブタスクを並列に実行できるとき、逐次モードは効率が悪く見えてきます。並列協調は複数の Agent を同時に働かせ、スループットを大幅に高めます。Manager Agent は並列タスクを計画するだけでなく、実行中のすべての Agent をリアルタイムに監視し、通信の協調を処理し、Agent が成功または失敗したときにグローバルな意思決定を下さなければなりません。これには通常、インフラとして**メッセージバス**(Message Bus)が必要です。これは「公共の掲示板」のようなものと理解できます。Agent はそこにメッセージを貼る(発行する)ことも、自分が関心のあるメッセージ種別をフォローする(購読する)こともでき、非同期通信を実現して互いにブロックしません。よくある実装案は複雑さの順に 2 種類あります。**Redis Pub/Sub** は軽量で、メッセージは発行と同時に受信され、シンプルで使いやすいものの、永続化しないのが欠点です。受信側がそのときオンラインでなければ、メッセージは失われます。**RabbitMQ** などのメッセージキューはメッセージをディスク上に保存するので、受信側が一時的にオフラインでも失われません。メッセージ形式は通常、送信者 ID、宛先 Agent(または全員へのブロードキャスト)、メッセージ種別、そして JSON 形式のデータ内容を含みます。 @@ -424,7 +424,7 @@ Manager が順番に専門 Agent を次々と呼び出し、各 Agent が完了 > 4. 協調過程のメッセージの時系列と Agent の意思決定の鍵となる点を記録する > > -> ![図10-8 Phone と Computer の 2 Agent アーキテクチャ](images/fig10-8.svg) +> ![図10-7 Phone と Computer の 2 Agent アーキテクチャ](images/fig10-7.svg) > > > **実験 10-4 ★★★:複数のサイトから同時に情報を集める Agent** @@ -456,7 +456,7 @@ Manager が順番に専門 Agent を次々と呼び出し、各 Agent が完了 > 6. 並列実行と直列実行の時間差を記録・対比し、並列化がもたらす性能向上を検証する > > -> ![図10-9 並列 Web スクレイピングアーキテクチャ](images/fig10-9.svg) +> ![図10-8 並列 Web スクレイピングアーキテクチャ](images/fig10-8.svg) > > ### 去中心化パターン @@ -485,7 +485,7 @@ else: **MetaGPT:SOP 駆動のソフトウェア会社シミュレーション。** -![図10-11 MetaGPT のマルチ Agent 協調ネットワーク](images/fig10-11.svg) +![図10-9 MetaGPT のマルチ Agent 協調ネットワーク](images/fig10-9.svg) MetaGPT はソフトウェア会社の標準作業手順を符号化します。役割は Product Manager → Architect → Project Manager → Engineer → QA の順で働き、それぞれが構造化された引き継ぎパッケージを出力します。内容はタスクと受け入れ基準、確認済みの事実と制約、ファイルパスなどの成果物参照です。各役割は共有メッセージプールへ発行し、購読した種類だけを取得します。送信者と受信者は疎結合になりますが、制御フローは SOP が固定するため、MetaGPT は完全な去中心化ではありません。 @@ -591,7 +591,7 @@ AI Agent の数が十分に多く、相互作用が十分に自由になると ### スタンフォード AI タウン:生成式 Agent の社会シミュレーション -![図10-12 AI タウンのアーキテクチャ](images/fig10-12.svg) +![図10-10 AI タウンのアーキテクチャ](images/fig10-10.svg) 2023 年、スタンフォード大学と Google の研究チームは画期的な論文『Generative Agents: Interactive Simulacra of Human Behavior』を発表し、「生成式 Agent」の概念を提示しました。中核的な革新は、Agent にあらかじめ定義されたタスクを完成させることにとどめず、Agent に人間に近い記憶・反省・計画の能力を与え、開かれた社会環境の中で自律的に生活し、社交し、発展できるようにした点にあります。 @@ -697,7 +697,7 @@ Pinchwork と RentAHuman はともに**市場メカニズムに基づく協調 > > > -> ![図10-13 音声人狼 Agent システム](images/fig10-13.svg) +> ![図10-11 音声人狼 Agent システム](images/fig10-11.svg) > > ## 本章のまとめ diff --git a/book-ja/images/fig10-10.svg b/book-ja/images/fig10-10.svg index c86fbe324..15121abd3 100644 --- a/book-ja/images/fig10-10.svg +++ b/book-ja/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -要件分析 - -出力: 構造化された要件定義書 -spec.json -ハンドオフ → - - -Agent B -アーキテクチャ設計 - -出力: 技術設計書 -design.md -ハンドオフ → - - -Agent C -コード実装 - -出力: ソースコード -src/*.py -ハンドオフ → - - -Agent D -テストと検証 - -出力: テストレポート -test_report.md -ハンドオフ → - -ハンドオフの内容(Agent A → Agent B の例) -トリガー条件: -A が要件定義書を完成 → is_complete=True -対象 Agent: -target="architect"(Agent B) -ハンドオフの内容: -files=["spec.json"] + summary="EC システム: 3 マイクロサービス、REST API" -ハンドオフ後の状態: -status="exit"(リソースを解放し、待機し続けない) - -分散化の利点 -✓ 中央の管理者が全役割を把握する必要がない -✓ 責任範囲が明確で、インターフェースが疎結合 -✓ 完了時に終了し、永続リソースを解放 - -分散化の限界 -✗ 全体最適の視点が欠如 -✗ 例外処理が困難(中央の調整がない) -✗ プロセスが固定的で、動的な調整が難しい + +Isabella Rodriguez +Hobbs カフェのオーナー +もてなし上手で社交的 + +メモリストリーム +[08:30] Hobbs カフェが開店 +importance: 4 recency: 0.9 +[09:15] 客の Klaus がコーヒーを買いに来る +importance: 5 recency: 0.85 +[10:00] バレンタインデーのパーティーを開くと決める +importance: 9 recency: 0.8 +[11:30] 客の Maria をパーティーに招待 +importance: 8 recency: 0.7 +[14:00] Maria に会場の飾り付けを手伝ってと頼む +importance: 7 recency: 0.6 + +リフレクション +「Hobbs の常連客は誰か?」 +→ Maria、Klaus、Tom(よく来る客) +「パーティーに誰を招待すべきか?」 +→ 常連客と友人の両方を招待 +「パーティーの準備はどこまで進んだか?」 +→ 数人を招待済み、会場はまだ飾り付けが必要 +「カフェの飾り付けを誰が手伝えるか?」 +→ Maria(友人、快く手伝ってくれる) + +計画と行動 +08:00 起床 + 朝食 +09:00 Hobbs が開店 +12:00 店を切り盛りしながら客を招待 +14:00 Maria と会場を飾り付け +16:00 軽食と席を準備 +← 動的に調整 +18:00 Hobbs でバレンタインデーのパーティーを開催 + + +検索 + + +駆動 + +創発的な振る舞い(25体の Agent · 仮想時間2日) +▸ 自発的な社交 +出会い → 友情 → 集まり +▸ 情報の伝播 +パーティーの招待が多くの Agent に広がる +▸ 選挙の伝播 +市長選のキャンペーンが Agent 間に広がる +▸ 関係の記憶 +過去の会話を覚え、話題を続ける +すべての振る舞いは事前にプログラムされたものではなく、記憶 + リフレクション + 社会的な常識推論から生じた創発的な結果 \ No newline at end of file diff --git a/book-ja/images/fig10-11.svg b/book-ja/images/fig10-11.svg index 15823769a..ca309264b 100644 --- a/book-ja/images/fig10-11.svg +++ b/book-ja/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -プロダクトマネージャー -入力: ユーザー要求の記述 - -出力: -機能リスト + 優先度 -ユーザーストーリー(5件) -受け入れ基準 - -docs/PRD.md - - - -アーキテクト -入力: PRD.md - -出力: -技術スタック: FastAPI+React -API 仕様(OpenAPI) -データベーススキーマ - -docs/design.md - - - -プロジェクトマネージャー -入力: design.md - -出力: -タスクリスト + 割り当て -ファイル単位の割り当て -モジュールの依存順序 - -docs/tasks.md - - - -エンジニア ×3 -入力: tasks.md + design.md - -出力: -モジュール A: ユーザーサービス -モジュール B: 注文サービス -モジュール C: 決済サービス - -src/*.py - - - -QA エンジニア -入力: src/ + PRD.md - -出力: -ユニットテスト(pytest) -統合テスト(API) -バグレポート → エンジニア - -docs/test_report.md - -バグ修正 - - -共有プロジェクトディレクトリ -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT の中核設計 -▸ 標準化されたドキュメント -各役割は固定フォーマットを出力し、下流はフォーマットを必要とし推論過程は不要 -▸ インターフェースの疎結合 -より強力なプロダクトマネージャーに差し替えても、出力が PRD フォーマットを保てば下流は変わらない -▸ 管理者なし -制御は DAG に沿って流れる: プロダクトマネージャー→アーキテクト→プロジェクトマネージャー→エンジニア→QA -▸ 例外チャネル -QA 失敗 → バグレポートをモジュール単位でエンジニアに差し戻し → 反復修正 + +審判(コード駆動) +ゲーム状態 · フェーズ制御 · 情報配布 +夜 → 昼 → 投票 → 決着 + +🐺 人狼1 +可視: 仲間の正体 +戦略: 村人を装う +夜: 標的を選ぶ + + +相互に把握 + +🐺 人狼2 +可視: 仲間の正体 +戦略: 追従して守る +夜: 標的を相談 + + +相互に把握 + +🔮 占い師 +可視: 占い結果 +戦略: 公開のタイミングを選ぶ +夜: 1人を占う + + +占い結果 + +🧪 魔女 +可視: 死亡/治療 +戦略: 毒薬/解毒薬を温存 +夜: 1人を救う/毒殺 + + +👤 村人 ×2 +可視: 公開情報のみ +戦略: 論理推論 +昼: 発言を分析 + + +情報アクセス制御: 審判が役割ごとにコンテキストをフィルタ +人狼: +仲間の ID + 夜の会話 + 公開発言 +占い師: +自分の占い結果 + 公開発言 +魔女: +死亡者 + 薬の状態 + 公開発言 +村人: +公開発言と投票のみ + +リアルタイム音声対話(ASR + LLM + TTS) +昼の議論 +審判が発言順を設定 +席順に発言 +投票フェーズ +プレイヤーの投票を集計 +集計 + 投票結果を発表 +夜フェーズ +役職を順に起こす +プライベート音声チャネル +人間プレイヤー +役職をランダムに割り当て +音声で投票/発言 \ No newline at end of file diff --git a/book-ja/images/fig10-12.svg b/book-ja/images/fig10-12.svg deleted file mode 100644 index 15121abd3..000000000 --- a/book-ja/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs カフェのオーナー -もてなし上手で社交的 - -メモリストリーム -[08:30] Hobbs カフェが開店 -importance: 4 recency: 0.9 -[09:15] 客の Klaus がコーヒーを買いに来る -importance: 5 recency: 0.85 -[10:00] バレンタインデーのパーティーを開くと決める -importance: 9 recency: 0.8 -[11:30] 客の Maria をパーティーに招待 -importance: 8 recency: 0.7 -[14:00] Maria に会場の飾り付けを手伝ってと頼む -importance: 7 recency: 0.6 - -リフレクション -「Hobbs の常連客は誰か?」 -→ Maria、Klaus、Tom(よく来る客) -「パーティーに誰を招待すべきか?」 -→ 常連客と友人の両方を招待 -「パーティーの準備はどこまで進んだか?」 -→ 数人を招待済み、会場はまだ飾り付けが必要 -「カフェの飾り付けを誰が手伝えるか?」 -→ Maria(友人、快く手伝ってくれる) - -計画と行動 -08:00 起床 + 朝食 -09:00 Hobbs が開店 -12:00 店を切り盛りしながら客を招待 -14:00 Maria と会場を飾り付け -16:00 軽食と席を準備 -← 動的に調整 -18:00 Hobbs でバレンタインデーのパーティーを開催 - - -検索 - - -駆動 - -創発的な振る舞い(25体の Agent · 仮想時間2日) -▸ 自発的な社交 -出会い → 友情 → 集まり -▸ 情報の伝播 -パーティーの招待が多くの Agent に広がる -▸ 選挙の伝播 -市長選のキャンペーンが Agent 間に広がる -▸ 関係の記憶 -過去の会話を覚え、話題を続ける -すべての振る舞いは事前にプログラムされたものではなく、記憶 + リフレクション + 社会的な常識推論から生じた創発的な結果 - \ No newline at end of file diff --git a/book-ja/images/fig10-13.svg b/book-ja/images/fig10-13.svg deleted file mode 100644 index ca309264b..000000000 --- a/book-ja/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -審判(コード駆動) -ゲーム状態 · フェーズ制御 · 情報配布 -夜 → 昼 → 投票 → 決着 - -🐺 人狼1 -可視: 仲間の正体 -戦略: 村人を装う -夜: 標的を選ぶ - - -相互に把握 - -🐺 人狼2 -可視: 仲間の正体 -戦略: 追従して守る -夜: 標的を相談 - - -相互に把握 - -🔮 占い師 -可視: 占い結果 -戦略: 公開のタイミングを選ぶ -夜: 1人を占う - - -占い結果 - -🧪 魔女 -可視: 死亡/治療 -戦略: 毒薬/解毒薬を温存 -夜: 1人を救う/毒殺 - - -👤 村人 ×2 -可視: 公開情報のみ -戦略: 論理推論 -昼: 発言を分析 - - -情報アクセス制御: 審判が役割ごとにコンテキストをフィルタ -人狼: -仲間の ID + 夜の会話 + 公開発言 -占い師: -自分の占い結果 + 公開発言 -魔女: -死亡者 + 薬の状態 + 公開発言 -村人: -公開発言と投票のみ - -リアルタイム音声対話(ASR + LLM + TTS) -昼の議論 -審判が発言順を設定 -席順に発言 -投票フェーズ -プレイヤーの投票を集計 -集計 + 投票結果を発表 -夜フェーズ -役職を順に起こす -プライベート音声チャネル -人間プレイヤー -役職をランダムに割り当て -音声で投票/発言 - \ No newline at end of file diff --git a/book-ja/images/fig10-2.svg b/book-ja/images/fig10-2.svg index 56f2e5799..b026188fc 100644 --- a/book-ja/images/fig10-2.svg +++ b/book-ja/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ 同一コンテキスト内での連続的な流れ — 会話履歴は各段階を通じて完全に保持される ▼ - -フェーズ1 -要件アナリスト - -システムプロンプト -"あなたの責務は要件を完全に理解することです。 -この段階では実装を急がないこと -あなたのタスクは質問して確認することです。" - -ツールセット -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -遷移をトリガー -complete_req_analysis() - - -フェーズ2 -ソフトウェアエンジニア - -システムプロンプト -"確定した要件に基づいて記述する -高品質な Python コード。以下に従う -モジュール化、エラー処理のベストプラクティス。" - -ツールセット -write_file(path, content) -read_file(path) -execute_code(code) - -遷移をトリガー -submit_for_review() - - -フェーズ3 -コードレビュアー - -システムプロンプト -"コードの品質を複数の観点から評価する: -機能の正しさ、コード規約、 -セキュリティ。批判的思考を採り入れる。" - -ツールセット -run_linter(file) -run_tests(file) -analyze_complexity(file) -役割の切り替え: システムプロンプト + ツールセットを更新、会話履歴と状態は継続的に保持される - \ No newline at end of file + + +Agent A + +Agent B + + + +仮想ファイルシステム / +統一インターフェース: read_file · write_file · list_dir + + + +ユーザー +アップロード / ダウンロード + + + + + + + +アップロード / ダウンロード + + + + + +マウント + + + + +Agent 専用ワークスペース +/scratch/<id> +スクラッチパッド + +プライベート · Agent 専用 +インスタンスと共に破棄 +読み書き · 並行制御は不要 +Agent ごとに1つ + + + +マルチ Agent 共有空間 +/workspace/shared +共有ワークスペース + +ユーザーから可視 · 永続 +読み書き · 並行制御が必要 +楽観ロック · worktree + + + +外部マウントリソース +/mnt/gdrive · /mnt/notion +アダプター経由 + +外部の認可に従う +多くは読み取り専用 · 書き込みは慎重に +高レイテンシ · 弱い整合性 + + + +システム組み込みリソース +/skills +Skills · テンプレート · マニュアル + +グローバル共有 · 読み取り専用 +セッション間で安定 +漸進的開示 + + + +外部データソース +Google Drive · Notion + + diff --git a/book-ja/images/fig10-3.svg b/book-ja/images/fig10-3.svg index b026188fc..9f663bae2 100644 --- a/book-ja/images/fig10-3.svg +++ b/book-ja/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -仮想ファイルシステム / -統一インターフェース: read_file · write_file · list_dir - - - -ユーザー -アップロード / ダウンロード - - - - - - - -アップロード / ダウンロード - - - - - -マウント - - - - -Agent 専用ワークスペース -/scratch/<id> -スクラッチパッド - -プライベート · Agent 専用 -インスタンスと共に破棄 -読み書き · 並行制御は不要 -Agent ごとに1つ - - - -マルチ Agent 共有空間 -/workspace/shared -共有ワークスペース - -ユーザーから可視 · 永続 -読み書き · 並行制御が必要 -楽観ロック · worktree - - - -外部マウントリソース -/mnt/gdrive · /mnt/notion -アダプター経由 - -外部の認可に従う -多くは読み取り専用 · 書き込みは慎重に -高レイテンシ · 弱い整合性 - - - -システム組み込みリソース -/skills -Skills · テンプレート · マニュアル - -グローバル共有 · 読み取り専用 -セッション間で安定 -漸進的開示 - - - -外部データソース -Google Drive · Notion - - + +提案者 Agent +入力: 拡張された論文アブストラクト(2000語) + +--- +theme: academic +--- +# Transformer のアテンション機構 + +## 中核アイデア +- セルフアテンションは Q·K^T/√d を計算 +- マルチヘッドアテンションによる並列処理 +内容の構造を理解 → スライドページに分解 + +審査者 Agent + +① Slidev でレンダリング → PDF/PNG +② Vision LLM による多次元評価 + +構造化フィードバック: +ページ 問題の種類 深刻度 +P3 内容が過密 高 +P7 フォントが小さすぎ 中 +P11 色の不一致 低 +レンダリング + 視覚分析 → 実行可能な改善提案 + +Slidev コード + +構造化フィードバック + +反復的な改善プロセス + +第1ラウンド +12ページの草案 +問題 5 件 + + +第2ラウンド +14ページ(過密ページを分割) +問題 2 件 + + +第3ラウンド +14ページ(フォント修正済み) +問題 0 件 ✓ + +なぜ単一の Agent を使わないのか? +単一 Agent: 画像を N ラウンドレンダリング → コンテキストが爆発 +(1080p スクリーンショット = 数千トークン × 14ページ × 5ラウンド) +デュアル Agent: 審査者は現在のバージョンのみを見る +提案者はテキストフィードバックのみを蓄積 → クリーンなコンテキスト + \ No newline at end of file diff --git a/book-ja/images/fig10-4.svg b/book-ja/images/fig10-4.svg index 9f663bae2..de6a1f5e2 100644 --- a/book-ja/images/fig10-4.svg +++ b/book-ja/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -提案者 Agent -入力: 拡張された論文アブストラクト(2000語) - ---- -theme: academic ---- -# Transformer のアテンション機構 - -## 中核アイデア -- セルフアテンションは Q·K^T/√d を計算 -- マルチヘッドアテンションによる並列処理 -内容の構造を理解 → スライドページに分解 - -審査者 Agent - -① Slidev でレンダリング → PDF/PNG -② Vision LLM による多次元評価 - -構造化フィードバック: -ページ 問題の種類 深刻度 -P3 内容が過密 高 -P7 フォントが小さすぎ 中 -P11 色の不一致 低 -レンダリング + 視覚分析 → 実行可能な改善提案 - -Slidev コード - -構造化フィードバック - -反復的な改善プロセス - -第1ラウンド -12ページの草案 -問題 5 件 - - -第2ラウンド -14ページ(過密ページを分割) -問題 2 件 - - -第3ラウンド -14ページ(フォント修正済み) -問題 0 件 ✓ - -なぜ単一の Agent を使わないのか? -単一 Agent: 画像を N ラウンドレンダリング → コンテキストが爆発 -(1080p スクリーンショット = 数千トークン × 14ページ × 5ラウンド) -デュアル Agent: 審査者は現在のバージョンのみを見る -提案者はテキストフィードバックのみを蓄積 → クリーンなコンテキスト + +管理者 Agent +タスク理解 → 分解 → スケジューリング → 統合 +ツールセット: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +サブ Agent A +役割: データ収集 +技術文書を検索 +重要情報を抽出 + +ステップ1 + + + +サブ Agent B +役割: 分析と処理 +データを比較・分析 +統計レポートを生成 + +ステップ2 + + + +サブ Agent C +役割: レポート生成 +最終レポートを作成 +出力を整形 + +ステップ3 + + +逐次実行フロー +管理者が A を呼ぶ +→ A がデータを返す +→ 管理者が B に渡す +→ B が分析を返す +→ 管理者が C に渡す +→ C がレポートを返す +管理者の視点: Agent の呼び出し = ツールの呼び出し(リクエスト送信 → レスポンス受信) \ No newline at end of file diff --git a/book-ja/images/fig10-5.svg b/book-ja/images/fig10-5.svg index de6a1f5e2..bc6185c69 100644 --- a/book-ja/images/fig10-5.svg +++ b/book-ja/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -管理者 Agent -タスク理解 → 分解 → スケジューリング → 統合 -ツールセット: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -サブ Agent A -役割: データ収集 -技術文書を検索 -重要情報を抽出 - -ステップ1 - - - -サブ Agent B -役割: 分析と処理 -データを比較・分析 -統計レポートを生成 - -ステップ2 - - - -サブ Agent C -役割: レポート生成 -最終レポートを作成 -出力を整形 - -ステップ3 - - -逐次実行フロー -管理者が A を呼ぶ -→ A がデータを返す -→ 管理者が B に渡す -→ B が分析を返す -→ 管理者が C に渡す -→ C がレポートを返す -管理者の視点: Agent の呼び出し = ツールの呼び出し(リクエスト送信 → レスポンス受信) + +管理者 Agent +タスク計画 · 進捗監視 · 例外処理 · 結果統合 + +用語集 Agent +用語集 +全書を受け取る → 専門用語を特定 +専門辞書 + 翻訳の慣例を検索 +出力: glossary.json + +{"attention": "アテンション", + "transformer": "Transformer", + "backprop": "逆伝播"} + + +翻訳 Agent ×N +章の翻訳 +入力: 章 + 用語集 + ガイド +用語集に厳密に従って翻訳 +出力: chapter{n}_zh.md + +"...アテンション機構は次の類似度を計算する + Query·Key^T ..." + + +校正 Agent +全文レビュー +用語の一貫性を走査・検証 +流暢さと読みやすさをチェック +出力: review_report.md + +P3: "アテンション"→"注意" の不一致 +P8: 長文につき分割を提案 + + +用語集 + +翻訳 + +共有ファイルシステム +glossary.json +用語集 +chapter{1..10}_zh.md +章の翻訳 +review_report.md +レビューレポート +translation_guide.md +翻訳ガイド + +コンテキストの隔離の利点 +用語集: 用語のみを閲覧 | 翻訳: 現在の章 + 用語集のみを閲覧 | 管理者: ファイルインデックスのみを保守 \ No newline at end of file diff --git a/book-ja/images/fig10-6.svg b/book-ja/images/fig10-6.svg index bc6185c69..f2511c1d6 100644 --- a/book-ja/images/fig10-6.svg +++ b/book-ja/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + 管理者 Agent -タスク計画 · 進捗監視 · 例外処理 · 結果統合 - -用語集 Agent -用語集 -全書を受け取る → 専門用語を特定 -専門辞書 + 翻訳の慣例を検索 -出力: glossary.json - -{"attention": "アテンション", - "transformer": "Transformer", - "backprop": "逆伝播"} - - -翻訳 Agent ×N -章の翻訳 -入力: 章 + 用語集 + ガイド -用語集に厳密に従って翻訳 -出力: chapter{n}_zh.md - -"...アテンション機構は次の類似度を計算する - Query·Key^T ..." - - -校正 Agent -全文レビュー -用語の一貫性を走査・検証 -流暢さと読みやすさをチェック -出力: review_report.md - -P3: "アテンション"→"注意" の不一致 -P8: 長文につき分割を提案 - - -用語集 - -翻訳 - -共有ファイルシステム -glossary.json -用語集 -chapter{1..10}_zh.md -章の翻訳 -review_report.md -レビューレポート -translation_guide.md -翻訳ガイド - -コンテキストの隔離の利点 -用語集: 用語のみを閲覧 | 翻訳: 現在の章 + 用語集のみを閲覧 | 管理者: ファイルインデックスのみを保守 +並列スケジューリング · リアルタイム監視 · 結果集約 + +メッセージバス + + +Agent 1 +データ収集 +実行中 ◎ +独立したコンテキスト + + +Agent 2 +コンテンツ分析 +実行中 ◎ +独立したコンテキスト + + +Agent 3 +チャート生成 +完了 ✓ +独立したコンテキスト + + +Agent 4 +フォーマット検証 +待機中 ○ +独立したコンテキスト + + +メッセージバス通信の例 +管理者 → Agent 1 +{"type":"start","task":"arxiv 論文を収集","params":{"query":"LLM agent"}} +Agent 3 → 管理者 +{"type":"completed","agent_id":"3","result":"charts/fig1.svg を生成"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +管理者 → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-ja/images/fig10-7.svg b/book-ja/images/fig10-7.svg index f2511c1d6..c3b1696ee 100644 --- a/book-ja/images/fig10-7.svg +++ b/book-ja/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -管理者 Agent -並列スケジューリング · リアルタイム監視 · 結果集約 - -メッセージバス - - -Agent 1 -データ収集 -実行中 ◎ -独立したコンテキスト - - -Agent 2 -コンテンツ分析 -実行中 ◎ -独立したコンテキスト - - -Agent 3 -チャート生成 -完了 ✓ -独立したコンテキスト - - -Agent 4 -フォーマット検証 -待機中 ○ -独立したコンテキスト - - -メッセージバス通信の例 -管理者 → Agent 1 -{"type":"start","task":"arxiv 論文を収集","params":{"query":"LLM agent"}} -Agent 3 → 管理者 -{"type":"completed","agent_id":"3","result":"charts/fig1.svg を生成"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -管理者 → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +電話 Agent +Node.js · リアルタイム音声通話 + +ユーザー音声 +マイク入力 + + +VAD + ASR +Silero VAD → STT 文字起こし + + +LLM 推論 +意図を理解 + 情報を抽出 + + +TTS 合成 +音声応答を生成 → 再生 + +コンピュータ Agent +Python · ブラウザ自動化 + +スクリーンショット +ブラウザの現在ページ + + +Vision LLM +ページ構造 + フォーム項目を理解 + + +アクション計画 +項目を特定 → 入力順序を計画 + + +アクションを実行 +クリック / 入力 / 送信 + +WebSocket 双方向通信(ws://localhost:8849) + + + +リアルタイム双方向メッセージストリーム(通話しながらコンピュータを操作) +電話 → コンピュータ +[FROM_PHONE_AGENT] ユーザーが名前は Zhang San と言った +コンピュータ → 電話 +[FROM_COMPUTER_AGENT] 氏名を入力済み、ID 番号が必要 +電話 → コンピュータ +[FROM_PHONE_AGENT] ID 番号 310101199001011234 +コンピュータ → 電話 +[FROM_COMPUTER_AGENT] フォーム送信完了、登録成功 +ポイント: 2つの Agent が独立した ReAct ループを並列で実行、ノンブロッキング \ No newline at end of file diff --git a/book-ja/images/fig10-8.svg b/book-ja/images/fig10-8.svg index c3b1696ee..cb06908e8 100644 --- a/book-ja/images/fig10-8.svg +++ b/book-ja/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -電話 Agent -Node.js · リアルタイム音声通話 - -ユーザー音声 -マイク入力 - - -VAD + ASR -Silero VAD → STT 文字起こし - - -LLM 推論 -意図を理解 + 情報を抽出 - - -TTS 合成 -音声応答を生成 → 再生 - -コンピュータ Agent -Python · ブラウザ自動化 - -スクリーンショット -ブラウザの現在ページ - - -Vision LLM -ページ構造 + フォーム項目を理解 - - -アクション計画 -項目を特定 → 入力順序を計画 - - -アクションを実行 -クリック / 入力 / 送信 - -WebSocket 双方向通信(ws://localhost:8849) - - - -リアルタイム双方向メッセージストリーム(通話しながらコンピュータを操作) -電話 → コンピュータ -[FROM_PHONE_AGENT] ユーザーが名前は Zhang San と言った -コンピュータ → 電話 -[FROM_COMPUTER_AGENT] 氏名を入力済み、ID 番号が必要 -電話 → コンピュータ -[FROM_PHONE_AGENT] ID 番号 310101199001011234 -コンピュータ → 電話 -[FROM_COMPUTER_AGENT] フォーム送信完了、登録成功 -ポイント: 2つの Agent が独立した ReAct ループを並列で実行、ノンブロッキング + +管理者 Agent +動的生成 · リアルタイム監視 · カスケード終了 + +Agent 1 +cs.edu.cn +教員名簿を検索 +検索中... ◎ + + +Agent 2 +math.edu.cn +教員名簿を検索 +見つからず ✗ + + +Agent 3 +phys.edu.cn +教員名簿を検索 +発見! ✓ + + +Agent 4 +chem.edu.cn +教員名簿を検索 +終了 ⊘ + + +Agent 5 … 10 +… (合計10) +教員名簿を検索 +終了 ⊘ + + +カスケード終了のシーケンス +t=0s +10体の Agent を起動 +「Zhang Wei」を並列検索 + +t=12s +Agent 2 が完了 +見つからず → 終了 + +t=18s +Agent 3 が発見! +target_found を送信 + +t=18.1s +管理者が terminate をブロードキャスト +実行中の残りの Agent へ + +t=19s +全員が終了を確認 +結果を集約して返す + +発見した結果 +氏名: Zhang Wei 学部: 物理学部 +職位: 教授 分野: 量子計算 +Email: zhangwei@phys.edu.cn + +パフォーマンス比較 +直列: 10サイト × 30秒 = 約5分 +並列: 発見まで18秒 + 終了1秒 = 19秒 +高速化: 約15倍(カスケード終了の最適化を含む) \ No newline at end of file diff --git a/book-ja/images/fig10-9.svg b/book-ja/images/fig10-9.svg index cb06908e8..15823769a 100644 --- a/book-ja/images/fig10-9.svg +++ b/book-ja/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -管理者 Agent -動的生成 · リアルタイム監視 · カスケード終了 - -Agent 1 -cs.edu.cn -教員名簿を検索 -検索中... ◎ - - -Agent 2 -math.edu.cn -教員名簿を検索 -見つからず ✗ - - -Agent 3 -phys.edu.cn -教員名簿を検索 -発見! ✓ - - -Agent 4 -chem.edu.cn -教員名簿を検索 -終了 ⊘ - - -Agent 5 … 10 -… (合計10) -教員名簿を検索 -終了 ⊘ - - -カスケード終了のシーケンス -t=0s -10体の Agent を起動 -「Zhang Wei」を並列検索 - -t=12s -Agent 2 が完了 -見つからず → 終了 - -t=18s -Agent 3 が発見! -target_found を送信 - -t=18.1s -管理者が terminate をブロードキャスト -実行中の残りの Agent へ - -t=19s -全員が終了を確認 -結果を集約して返す - -発見した結果 -氏名: Zhang Wei 学部: 物理学部 -職位: 教授 分野: 量子計算 -Email: zhangwei@phys.edu.cn - -パフォーマンス比較 -直列: 10サイト × 30秒 = 約5分 -並列: 発見まで18秒 + 終了1秒 = 19秒 -高速化: 約15倍(カスケード終了の最適化を含む) + +プロダクトマネージャー +入力: ユーザー要求の記述 + +出力: +機能リスト + 優先度 +ユーザーストーリー(5件) +受け入れ基準 + +docs/PRD.md + + + +アーキテクト +入力: PRD.md + +出力: +技術スタック: FastAPI+React +API 仕様(OpenAPI) +データベーススキーマ + +docs/design.md + + + +プロジェクトマネージャー +入力: design.md + +出力: +タスクリスト + 割り当て +ファイル単位の割り当て +モジュールの依存順序 + +docs/tasks.md + + + +エンジニア ×3 +入力: tasks.md + design.md + +出力: +モジュール A: ユーザーサービス +モジュール B: 注文サービス +モジュール C: 決済サービス + +src/*.py + + + +QA エンジニア +入力: src/ + PRD.md + +出力: +ユニットテスト(pytest) +統合テスト(API) +バグレポート → エンジニア + +docs/test_report.md + +バグ修正 + + +共有プロジェクトディレクトリ +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT の中核設計 +▸ 標準化されたドキュメント +各役割は固定フォーマットを出力し、下流はフォーマットを必要とし推論過程は不要 +▸ インターフェースの疎結合 +より強力なプロダクトマネージャーに差し替えても、出力が PRD フォーマットを保てば下流は変わらない +▸ 管理者なし +制御は DAG に沿って流れる: プロダクトマネージャー→アーキテクト→プロジェクトマネージャー→エンジニア→QA +▸ 例外チャネル +QA 失敗 → バグレポートをモジュール単位でエンジニアに差し戻し → 反復修正 \ No newline at end of file diff --git a/book-ja/images/fig10-sequential-handoff.svg b/book-ja/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..c86fbe324 --- /dev/null +++ b/book-ja/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +要件分析 + +出力: 構造化された要件定義書 +spec.json +ハンドオフ → + + +Agent B +アーキテクチャ設計 + +出力: 技術設計書 +design.md +ハンドオフ → + + +Agent C +コード実装 + +出力: ソースコード +src/*.py +ハンドオフ → + + +Agent D +テストと検証 + +出力: テストレポート +test_report.md +ハンドオフ → + +ハンドオフの内容(Agent A → Agent B の例) +トリガー条件: +A が要件定義書を完成 → is_complete=True +対象 Agent: +target="architect"(Agent B) +ハンドオフの内容: +files=["spec.json"] + summary="EC システム: 3 マイクロサービス、REST API" +ハンドオフ後の状態: +status="exit"(リソースを解放し、待機し続けない) + +分散化の利点 +✓ 中央の管理者が全役割を把握する必要がない +✓ 責任範囲が明確で、インターフェースが疎結合 +✓ 完了時に終了し、永続リソースを解放 + +分散化の限界 +✗ 全体最適の視点が欠如 +✗ 例外処理が困難(中央の調整がない) +✗ プロセスが固定的で、動的な調整が難しい + \ No newline at end of file diff --git a/book-ja/images/fig10-stage-switching.svg b/book-ja/images/fig10-stage-switching.svg new file mode 100644 index 000000000..56f2e5799 --- /dev/null +++ b/book-ja/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ 同一コンテキスト内での連続的な流れ — 会話履歴は各段階を通じて完全に保持される ▼ + +フェーズ1 +要件アナリスト + +システムプロンプト +"あなたの責務は要件を完全に理解することです。 +この段階では実装を急がないこと +あなたのタスクは質問して確認することです。" + +ツールセット +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +遷移をトリガー +complete_req_analysis() + + +フェーズ2 +ソフトウェアエンジニア + +システムプロンプト +"確定した要件に基づいて記述する +高品質な Python コード。以下に従う +モジュール化、エラー処理のベストプラクティス。" + +ツールセット +write_file(path, content) +read_file(path) +execute_code(code) + +遷移をトリガー +submit_for_review() + + +フェーズ3 +コードレビュアー + +システムプロンプト +"コードの品質を複数の観点から評価する: +機能の正しさ、コード規約、 +セキュリティ。批判的思考を採り入れる。" + +ツールセット +run_linter(file) +run_tests(file) +analyze_complexity(file) +役割の切り替え: システムプロンプト + ツールセットを更新、会話履歴と状態は継続的に保持される + \ No newline at end of file diff --git a/book-ja/images/fig8-1.svg b/book-ja/images/fig8-1.svg index aac9f7a39..a79ceffbd 100644 --- a/book-ja/images/fig8-1.svg +++ b/book-ja/images/fig8-1.svg @@ -1,24 +1,54 @@ - - - -タスクの完了 -生の経験を生成 - -経験の精製 -要約・圧縮・構造化 - - -外部システムに保存 -知識ベース/ツール、検 -索可能 - - -検索して再利用 -次のタスクで呼び出 - - - - - -経験は永続的に蓄積され、セッションを越えて再利用される - \ No newline at end of file + + + + + + + + + 継続的進化:実行経験から新バージョンの Agent へ + + + タスクを実行 + ユーザー・環境・ツールとの相互作用 + + + 軌跡を記録 + 行動・結果・フィードバック + + + 信号を形成 + 結果・過程・品質 + + + 候補となる更新を生成 + + + + + 知識 + 指示 + プログラム + パラメータ + + + 検証とリリース + 回帰・段階公開・ロールバック + + + + + + + + 新しい Agent が次のラウンドへ + 後続の行動を変え、かつ検証を通過した更新だけが継続的進化となる + + diff --git a/book-ko/chapter10.ko.md b/book-ko/chapter10.ko.md index d4248bdca..63cc92ad9 100644 --- a/book-ko/chapter10.ko.md +++ b/book-ko/chapter10.ko.md @@ -162,9 +162,9 @@ OpenAI는 한때 AI 능력을 다섯 단계로 분류했습니다. 1단계 대 **IV. 내장 시스템 리소스.** 시스템에 사전 설치되어 모든 에이전트와 읽기 전용으로 공유하는 리소스 패키지입니다. 대표적인 예는 2장과 4장에서 소개한 **스킬**입니다. 지식 문서와 스크립트를 파일로 구성하여 `/skills` 같은 경로에 마운트하고 점진적 공개(먼저 색인, 필요할 때 확장) 방식으로 접근합니다. 참조 설명서, 템플릿 라이브러리, 공유 도구 정의도 예입니다. 이 계층은 전역으로 공유되고 읽기 전용이며 세션 간 안정적이므로 모든 에이전트가 동시성 제어 없이 함께 읽을 수 있습니다. -그림 10-3은 네 영역 유형을 하나의 디렉터리 트리 아래에 통합 마운트하는 방법을 보여 줍니다. 에이전트는 통합 인터페이스로 전체 트리에 접근하고, 사용자는 공유 공간에서 파일을 업로드·다운로드하며, 외부 데이터 원본은 어댑터로 마운트되고, 내장 시스템 리소스는 읽기 전용으로 제공됩니다. +그림 10-2은 네 영역 유형을 하나의 디렉터리 트리 아래에 통합 마운트하는 방법을 보여 줍니다. 에이전트는 통합 인터페이스로 전체 트리에 접근하고, 사용자는 공유 공간에서 파일을 업로드·다운로드하며, 외부 데이터 원본은 어댑터로 마운트되고, 내장 시스템 리소스는 읽기 전용으로 제공됩니다. -![그림 10-3: 에이전트 가상 파일 시스템의 네 영역 유형 마운트 구조](images/fig10-3.svg) +![그림 10-2: 에이전트 가상 파일 시스템의 네 영역 유형 마운트 구조](images/fig10-2.svg) 표 10-4는 네 영역 유형을 가시성, 생명 주기, 읽기/쓰기 권한, 동시성 제어라는 네 차원에서 비교하며 파일 시스템 레이아웃 설계의 체크리스트로 사용할 수 있습니다. @@ -252,7 +252,7 @@ LoopX 결정 → 에이전트 실행 → 독립 검증기 증명 → LoopX 커 **제안자-검토자 패러다임.** -![그림 10-4: 제안자-검토자 루프](images/fig10-4.svg) +![그림 10-3: 제안자-검토자 루프](images/fig10-3.svg) 제안자-검토자는 정석적인 동료 협업 패러다임입니다. 5장에서 PPT 생성, 동영상 편집, 로그 시각화라는 세 실험을 통해 설계 원칙과 실제 활용을 이미 다뤘습니다. 제안자 에이전트가 코드를 생성하면 검토자 에이전트가 실행 결과를 렌더링하고 시각-언어 모델로 품질을 평가하고 구조화된 개선 제안을 제공합니다. 결과가 요구 기준을 충족할 때까지 반복합니다. @@ -332,7 +332,7 @@ return summarize_failures(workers) **순차 조율 패턴.** -![그림 10-5: 관리자의 순차 조율](images/fig10-5.svg) +![그림 10-4: 관리자의 순차 조율](images/fig10-4.svg) 관리자가 전문 에이전트를 순서대로 호출합니다. 각 에이전트가 완료한 뒤 결과를 반환하면 관리자가 다음 단계를 결정합니다. 제어 흐름이 선형적이고 단순하며 명확하여 하위 업무의 순차적 의존성이 뚜렷한 상황에 적합합니다. @@ -361,14 +361,14 @@ return summarize_failures(workers) > 4. 번역 품질, 실행 효율, 자원 소비 측면에서 단일 에이전트와 관리자 패턴을 비교합니다. > > -> ![그림 10-6: 도서 번역 에이전트 아키텍처](images/fig10-6.svg) +> ![그림 10-5: 도서 번역 에이전트 아키텍처](images/fig10-5.svg) > > **병렬 조율 패턴.** -![그림 10-7: 관리자의 병렬 조율](images/fig10-7.svg) +![그림 10-6: 관리자의 병렬 조율](images/fig10-6.svg) 여러 하위 업무를 병렬로 실행할 수 있으면 순차 패턴은 비효율적입니다. 병렬 조율은 여러 에이전트가 동시에 작업하게 하여 처리량을 크게 높입니다. 관리자 에이전트는 병렬 업무를 계획하고 실행 중인 모든 에이전트를 실시간으로 모니터링하고 통신을 조율하며, 에이전트가 성공하거나 실패할 때 시스템 전체의 결정을 내려야 합니다. 일반적으로 인프라로 **메시지 버스**가 필요합니다. 에이전트가 메시지를 게시하고 관심 있는 메시지 유형을 구독하는 ‘공개 게시판’으로 생각할 수 있으며 비동기·비차단 통신을 가능하게 합니다. 단순한 것부터 복잡한 것까지 흔한 구현 두 가지는 **Redis Pub/Sub**과 **RabbitMQ** 같은 메시지 큐입니다. Redis Pub/Sub은 가볍고 메시지를 즉시 전달하지만 영속화하지 않으므로 수신자가 오프라인이면 놓칩니다. RabbitMQ 같은 시스템은 메시지를 디스크에 영속화하므로 수신자가 잠시 오프라인이어도 보존합니다. 메시지는 일반적으로 송신자 ID, 대상 에이전트(또는 브로드캐스트 표시), 메시지 유형, 페이로드를 담은 JSON 봉투를 사용합니다. @@ -428,7 +428,7 @@ Lingtai 설계의 나머지 부분도 앞 절과 맞닿습니다. 지식은 각 > 4. 교환한 메시지의 타임스탬프를 로깅하고 에이전트의 핵심 결정을 기록합니다. > > -> ![그림 10-8: 전화·컴퓨터 이중 에이전트 아키텍처](images/fig10-8.svg) +> ![그림 10-7: 전화·컴퓨터 이중 에이전트 아키텍처](images/fig10-7.svg) > > > **실험 10-4 ★★★: 여러 웹사이트에서 동시에 정보를 수집하는 에이전트** @@ -460,7 +460,7 @@ Lingtai 설계의 나머지 부분도 앞 절과 맞닿습니다. 지식은 각 > 6. 직렬 실행과 병렬 실행 시간을 측정·비교하여 병렬화의 속도 향상을 정량화합니다. > > -> ![그림 10-9: 병렬 웹 스크래핑 아키텍처](images/fig10-9.svg) +> ![그림 10-8: 병렬 웹 스크래핑 아키텍처](images/fig10-8.svg) > > @@ -490,7 +490,7 @@ else: **MetaGPT: SOP 기반 소프트웨어 회사 시뮬레이션.** -![그림 10-11 MetaGPT 멀티 에이전트 협업 네트워크](images/fig10-11.svg) +![그림 10-9 MetaGPT 멀티 에이전트 협업 네트워크](images/fig10-9.svg) MetaGPT는 소프트웨어 회사의 표준 작업 절차를 코드화한다. 역할은 Product Manager → Architect → Project Manager → Engineer → QA 순서로 일하며, 각 역할은 구조화된 핸드오프 패키지를 출력한다. 패키지에는 작업과 인수 기준, 확인된 사실과 제약, 파일 경로 같은 산출물 참조가 들어간다. 역할은 공유 메시지 풀에 게시하고 구독한 유형만 가져간다. 송신자와 수신자는 느슨하게 결합되지만 제어 흐름은 SOP가 고정하므로 MetaGPT는 완전한 탈중앙화가 아니다. @@ -596,7 +596,7 @@ AI 에이전트의 수가 충분히 많고 상호 작용이 충분히 자유로 ### Stanford AI Town: 생성형 에이전트의 사회 시뮬레이션 -![그림 10-12: AI Town 아키텍처](images/fig10-12.svg) +![그림 10-10: AI Town 아키텍처](images/fig10-10.svg) 2023년 Stanford University와 Google의 연구진은 기념비적인 논문 “Generative Agents: Interactive Simulacra of Human Behavior”를 발표하며 ‘생성형 에이전트’라는 개념을 소개했습니다. 핵심 혁신은 에이전트를 미리 정의된 업무에 가두지 않고 사람과 비슷한 기억, 성찰, 계획 능력을 부여하여 열린 사회 환경에서 자율적으로 살아가고 교류하며 성장하게 한 것입니다. @@ -712,7 +712,7 @@ Werewolf는 이 절의 세 번째 차원인 **전략적 게임 플레이**를 > > > -> ![그림 10-13: 음성 Werewolf 에이전트 시스템](images/fig10-13.svg) +> ![그림 10-11: 음성 Werewolf 에이전트 시스템](images/fig10-11.svg) > > diff --git a/book-ko/images/fig10-10.svg b/book-ko/images/fig10-10.svg index f85cf9b9b..c2d4964f9 100644 --- a/book-ko/images/fig10-10.svg +++ b/book-ko/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -요구 사항 분석 - -출력: 구조화된 요구 사항 문서 -spec.json -완료 후 핸드오프 → - - -Agent B -아키텍처 설계 - -출력: 기술 설계 문서 -design.md -완료 후 핸드오프 → - - -Agent C -코드 구현 - -출력: 소스 코드 -src/*.py -완료 후 핸드오프 → - - -Agent D -테스트 및 검증 - -출력: 테스트 보고서 -test_report.md -완료 후 핸드오프 → - -핸드오프 내용(Agent A → Agent B 예시) -트리거 조건: -A가 요구 사항 문서 완료 → is_complete=True -대상 에이전트: -target="architect" (Agent B) -전달 내용: -files=["spec.json"] + summary="전자상거래: 마이크로서비스 3개, REST API" -핸드오프 후 상태: -status="종료" (자원 해제, 대기하지 않음) - -탈중앙화의 장점 -✓ 중앙 관리자가 모든 역할을 알 필요 없음 -✓ 책임 경계 명확 · 인터페이스 분리 -✓ 완료 즉시 종료 · 상주 자원 해제 - -탈중앙화의 한계 -✗ 전역 최적화 관점 부족 -✗ 예외 처리 어려움(중앙 조율 없음) -✗ 흐름 고정 · 동적 조정 어려움 + +Isabella Rodriguez +Hobbs Cafe 운영자 +친절하고 사교적 + +기억 스트림 Memory Stream +[08:30] Hobbs Cafe 영업 시작 +importance: 4 recency: 0.9 +[09:15] Klaus가 커피를 사러 방문 +importance: 5 recency: 0.85 +[10:00] 밸런타인데이 파티를 열기로 결정 +importance: 9 recency: 0.8 +[11:30] Maria를 파티에 초대 +importance: 8 recency: 0.7 +[14:00] Maria에게 장식 도움 요청 +importance: 7 recency: 0.6 + +성찰 Reflection +"Hobbs 단골은 누구인가?" +→ Maria, Klaus, Tom(자주 방문) +"누구를 파티에 초대할까?" +→ 단골과 친구 모두 초대 +"파티 준비는 어디까지 됐나?" +→ 여러 명 초대, 장소 장식 필요 +"카페 장식을 누가 도울까?" +→ Maria(친구, 기꺼이 도움) + +계획과 행동 Planning +08:00 기상 + 아침 식사 +09:00 Hobbs Cafe 영업 시작 +12:00 영업하며 손님 초대 +14:00 Maria와 장소 장식 +16:00 다과와 좌석 준비 +← 동적 조정 +18:00 Hobbs Cafe에서 밸런타인데이 파티 + + +검색 + + +구동 + +출현 행동(에이전트 25개 · 가상 시간 2일) +▸ 자발적 교류 +만남 → 우정 형성 → 먼저 약속 잡기 +▸ 정보 확산 +Isabella의 파티 초대가 여러 에이전트로 확산 +▸ 선거 확산 +Sam의 시장 출마 소식이 마을에 확산 +▸ 관계 기억 +지난 대화를 기억해 화제를 이어 감 +모든 행동은 사전 프로그래밍이 아닌 기억·성찰·사회적 상식 추론에서 출현 diff --git a/book-ko/images/fig10-11.svg b/book-ko/images/fig10-11.svg index 8f6cfc25d..a28c11e4c 100644 --- a/book-ko/images/fig10-11.svg +++ b/book-ko/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -제품 관리자 -입력: 사용자 요구 사항 설명 - -출력: -기능 목록 + 우선순위 -사용자 스토리(5개) -인수 조건 - -docs/PRD.md - - - -아키텍트 -입력: PRD.md - -출력: -기술 스택: FastAPI+React -API 규격(OpenAPI) -데이터베이스 스키마 - -docs/design.md - - - -프로젝트 관리자 -입력: design.md - -출력: -업무 목록 + 분담 -파일 단위 할당 -모듈 의존 순서 - -docs/tasks.md - - - -엔지니어 ×3 -입력: tasks.md + design.md - -출력: -모듈 A: 사용자 서비스 -모듈 B: 주문 서비스 -모듈 C: 결제 서비스 - -src/*.py - - - -QA 엔지니어 -입력: src/ + PRD.md - -출력: -단위 테스트(pytest) -통합 테스트(API) -버그 보고서 → 엔지니어 - -docs/test_report.md - -버그 수정 - - -공유 프로젝트 디렉터리 -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT 핵심 설계 -▸ 표준화된 문서 -각 역할은 고정 형식으로 출력 — 후속 역할은 형식만 알면 되고 이전 추론은 불필요 -▸ 인터페이스 분리 -제품 관리자를 더 강한 모델로 바꿔도 PRD 형식만 지키면 후속 역할은 변경 없음 -▸ 관리자 없음 -제어권은 DAG를 따라 이동: Product Mgr→Architect→Project Mgr→Engineer→QA -▸ 예외 경로 -QA 테스트 실패 → 모듈별 버그 보고서를 엔지니어에 전달 → 반복 수정 + +심판(코드 구동) +게임 상태 · 단계 제어 · 정보 배포 +Night → Day → Vote → Settle + +🐺 늑대인간 1 +정보: 동료 정체 +전략: 주민 위장 +밤: 표적 선택 + + +서로 앎 + +🐺 늑대인간 2 +정보: 동료 정체 +전략: 다수표 추종 +밤: 표적 협의 + + +서로 앎 + +🔮 예언자 +정보: 확인 결과 +전략: 공개 시점 선택 +밤: 1명 확인 + + +확인 결과 + +🧪 마녀 +정보: 사망/치유 +전략: 독약·해독약 보존 +밤: 1명 살림/독살 + + +👤 주민 ×2 +정보: 공개 정보만 +전략: 논리 추론 +낮: 발언 분석 + + +정보 접근 제어: 심판이 역할별로 컨텍스트 필터링 +늑대인간: +동료 정체 + 밤 협의 + 공개 발언 +예언자: +본인 확인 결과 + 공개 발언 +마녀: +밤 사망자 + 약 상태 + 공개 발언 +주민: +공개 발언 + 투표 기록만(비공개 정보 없음) + +실시간 음성 상호 작용(ASR + LLM + TTS) +낮 토론 +심판이 발언 순서 관리 +자리순으로 발언 +투표 단계 +모든 플레이어 표 수집 +집계 후 결과 발표 +밤 단계 +심판이 역할별로 호출 +비공개 음성 채널 +사람 플레이어 +역할 무작위 배정 +음성으로 투표/발언 diff --git a/book-ko/images/fig10-12.svg b/book-ko/images/fig10-12.svg deleted file mode 100644 index c2d4964f9..000000000 --- a/book-ko/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs Cafe 운영자 -친절하고 사교적 - -기억 스트림 Memory Stream -[08:30] Hobbs Cafe 영업 시작 -importance: 4 recency: 0.9 -[09:15] Klaus가 커피를 사러 방문 -importance: 5 recency: 0.85 -[10:00] 밸런타인데이 파티를 열기로 결정 -importance: 9 recency: 0.8 -[11:30] Maria를 파티에 초대 -importance: 8 recency: 0.7 -[14:00] Maria에게 장식 도움 요청 -importance: 7 recency: 0.6 - -성찰 Reflection -"Hobbs 단골은 누구인가?" -→ Maria, Klaus, Tom(자주 방문) -"누구를 파티에 초대할까?" -→ 단골과 친구 모두 초대 -"파티 준비는 어디까지 됐나?" -→ 여러 명 초대, 장소 장식 필요 -"카페 장식을 누가 도울까?" -→ Maria(친구, 기꺼이 도움) - -계획과 행동 Planning -08:00 기상 + 아침 식사 -09:00 Hobbs Cafe 영업 시작 -12:00 영업하며 손님 초대 -14:00 Maria와 장소 장식 -16:00 다과와 좌석 준비 -← 동적 조정 -18:00 Hobbs Cafe에서 밸런타인데이 파티 - - -검색 - - -구동 - -출현 행동(에이전트 25개 · 가상 시간 2일) -▸ 자발적 교류 -만남 → 우정 형성 → 먼저 약속 잡기 -▸ 정보 확산 -Isabella의 파티 초대가 여러 에이전트로 확산 -▸ 선거 확산 -Sam의 시장 출마 소식이 마을에 확산 -▸ 관계 기억 -지난 대화를 기억해 화제를 이어 감 -모든 행동은 사전 프로그래밍이 아닌 기억·성찰·사회적 상식 추론에서 출현 - diff --git a/book-ko/images/fig10-13.svg b/book-ko/images/fig10-13.svg deleted file mode 100644 index a28c11e4c..000000000 --- a/book-ko/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -심판(코드 구동) -게임 상태 · 단계 제어 · 정보 배포 -Night → Day → Vote → Settle - -🐺 늑대인간 1 -정보: 동료 정체 -전략: 주민 위장 -밤: 표적 선택 - - -서로 앎 - -🐺 늑대인간 2 -정보: 동료 정체 -전략: 다수표 추종 -밤: 표적 협의 - - -서로 앎 - -🔮 예언자 -정보: 확인 결과 -전략: 공개 시점 선택 -밤: 1명 확인 - - -확인 결과 - -🧪 마녀 -정보: 사망/치유 -전략: 독약·해독약 보존 -밤: 1명 살림/독살 - - -👤 주민 ×2 -정보: 공개 정보만 -전략: 논리 추론 -낮: 발언 분석 - - -정보 접근 제어: 심판이 역할별로 컨텍스트 필터링 -늑대인간: -동료 정체 + 밤 협의 + 공개 발언 -예언자: -본인 확인 결과 + 공개 발언 -마녀: -밤 사망자 + 약 상태 + 공개 발언 -주민: -공개 발언 + 투표 기록만(비공개 정보 없음) - -실시간 음성 상호 작용(ASR + LLM + TTS) -낮 토론 -심판이 발언 순서 관리 -자리순으로 발언 -투표 단계 -모든 플레이어 표 수집 -집계 후 결과 발표 -밤 단계 -심판이 역할별로 호출 -비공개 음성 채널 -사람 플레이어 -역할 무작위 배정 -음성으로 투표/발언 - diff --git a/book-ko/images/fig10-2.svg b/book-ko/images/fig10-2.svg index 179d4354d..27af6d641 100644 --- a/book-ko/images/fig10-2.svg +++ b/book-ko/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ 하나의 컨텍스트가 이어짐 — 단계 간 대화 기록을 완전히 보존 ▼ - -단계 1 -요구 사항 분석가 - -시스템 프롬프트 -"요구 사항을 충분히 파악하세요. -구현을 서두르지 말고 -질문과 확인에 집중하세요." - -도구 집합 -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -전환 트리거 -complete_req_analysis() - - -단계 2 -소프트웨어 엔지니어 - -시스템 프롬프트 -"확정된 요구 사항에 따라 -고품질 Python 코드를 작성하고 -모듈화·오류 처리 원칙을 따르세요." - -도구 집합 -write_file(path, content) -read_file(path) -execute_code(code) - -전환 트리거 -submit_for_review() - - -단계 3 -코드 검토자 - -시스템 프롬프트 -"다각도로 코드 품질을 평가하세요: -기능 정확성, 코딩 규칙, -보안성을 비판적으로 검토하세요." - -도구 집합 -run_linter(file) -run_tests(file) -analyze_complexity(file) -역할 전환: 시스템 프롬프트와 도구 집합 갱신 · 대화 기록과 상태는 계속 보존 + + +에이전트 A + +에이전트 B + + + +가상 파일 시스템 / +통합 인터페이스: read_file · write_file · list_dir + + + +사용자 +업로드 / 다운로드 + + + + + + + +업로드 / 다운로드 + + + + + +마운트 + + + + +에이전트별 작업 공간 +/scratch/<id> +스크래치패드 + +비공개 · 해당 에이전트만 +인스턴스와 함께 삭제 +읽기/쓰기 · 동시성 제어 불필요 +에이전트마다 하나 + + + +멀티 에이전트 공유 공간 +/workspace/shared +공유 작업 공간 + +사용자에게 보임 · 영속적 +읽기/쓰기 · 동시성 제어 필요 +낙관적 잠금 · worktree + + + +마운트된 외부 리소스 +/mnt/gdrive · /mnt/notion +어댑터 경유 + +외부 권한의 제약을 받음 +주로 읽기 전용 · 쓰기 주의 +높은 지연 · 약한 일관성 + + + +내장 시스템 리소스 +/skills +스킬 · 템플릿 · 설명서 + +전역 공유 · 읽기 전용 +세션 간 안정적 +점진적 공개 + + + +외부 데이터 원본 +Google Drive · Notion + diff --git a/book-ko/images/fig10-3.svg b/book-ko/images/fig10-3.svg index 27af6d641..92003d05e 100644 --- a/book-ko/images/fig10-3.svg +++ b/book-ko/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -에이전트 A - -에이전트 B - - - -가상 파일 시스템 / -통합 인터페이스: read_file · write_file · list_dir - - - -사용자 -업로드 / 다운로드 - - - - - - - -업로드 / 다운로드 - - - - - -마운트 - - - - -에이전트별 작업 공간 -/scratch/<id> -스크래치패드 - -비공개 · 해당 에이전트만 -인스턴스와 함께 삭제 -읽기/쓰기 · 동시성 제어 불필요 -에이전트마다 하나 - - - -멀티 에이전트 공유 공간 -/workspace/shared -공유 작업 공간 - -사용자에게 보임 · 영속적 -읽기/쓰기 · 동시성 제어 필요 -낙관적 잠금 · worktree - - - -마운트된 외부 리소스 -/mnt/gdrive · /mnt/notion -어댑터 경유 - -외부 권한의 제약을 받음 -주로 읽기 전용 · 쓰기 주의 -높은 지연 · 약한 일관성 - - - -내장 시스템 리소스 -/skills -스킬 · 템플릿 · 설명서 - -전역 공유 · 읽기 전용 -세션 간 안정적 -점진적 공개 - - - -외부 데이터 원본 -Google Drive · Notion - + +제안자 에이전트 +입력: 논문 확장 초록 (2000자) + +--- +theme: academic +--- +# Transformer 어텐션 메커니즘 + +## 핵심 아이디어 +- 셀프 어텐션 계산 Q·K^T/√d +- 멀티헤드 어텐션 병렬 처리 +내용 구조 파악 → 슬라이드 페이지로 분해 + +검토자 에이전트 + +① Slidev 렌더링 → PDF/PNG +② Vision LLM 다차원 평가 + +구조화된 피드백: +페이지 문제 유형 심각도 +P3 내용 과밀 높음 +P7 글자 너무 작음 중간 +P11 색상 불일치 낮음 +렌더링 + 시각 분석 → 실행 가능한 개선안 + +Slidev 코드 + +구조화된 피드백 + +반복 개선 과정 + +라운드 1 +12페이지 초안 +문제 5건 + + +라운드 2 +14페이지 (과밀 페이지 분할) +문제 2건 + + +라운드 3 +14페이지 (글자 크기 수정) +문제 0건 ✓ + +왜 단일 에이전트가 아닌가? +단일: 이미지 ×N회 렌더링 → 컨텍스트 폭발 +(1080p 스크린샷 = 수천 토큰 × 14페이지 × 5회) +두 에이전트: 검토자는 현재 버전만 확인 +제안자는 텍스트 피드백만 축적 → 컨텍스트 간결 diff --git a/book-ko/images/fig10-4.svg b/book-ko/images/fig10-4.svg index 92003d05e..c02009f28 100644 --- a/book-ko/images/fig10-4.svg +++ b/book-ko/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -제안자 에이전트 -입력: 논문 확장 초록 (2000자) - ---- -theme: academic ---- -# Transformer 어텐션 메커니즘 - -## 핵심 아이디어 -- 셀프 어텐션 계산 Q·K^T/√d -- 멀티헤드 어텐션 병렬 처리 -내용 구조 파악 → 슬라이드 페이지로 분해 - -검토자 에이전트 - -① Slidev 렌더링 → PDF/PNG -② Vision LLM 다차원 평가 - -구조화된 피드백: -페이지 문제 유형 심각도 -P3 내용 과밀 높음 -P7 글자 너무 작음 중간 -P11 색상 불일치 낮음 -렌더링 + 시각 분석 → 실행 가능한 개선안 - -Slidev 코드 - -구조화된 피드백 - -반복 개선 과정 - -라운드 1 -12페이지 초안 -문제 5건 - - -라운드 2 -14페이지 (과밀 페이지 분할) -문제 2건 - - -라운드 3 -14페이지 (글자 크기 수정) -문제 0건 ✓ - -왜 단일 에이전트가 아닌가? -단일: 이미지 ×N회 렌더링 → 컨텍스트 폭발 -(1080p 스크린샷 = 수천 토큰 × 14페이지 × 5회) -두 에이전트: 검토자는 현재 버전만 확인 -제안자는 텍스트 피드백만 축적 → 컨텍스트 간결 + +관리자 에이전트 +업무 이해 → 분해 → 스케줄링 → 통합 +도구 집합: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +하위 에이전트 A +역할: 데이터 수집 +기술 문서 검색 +핵심 정보 추출 + +1단계 + + + +하위 에이전트 B +역할: 분석·처리 +데이터 비교·분석 +통계 보고서 생성 + +2단계 + + + +하위 에이전트 C +역할: 보고서 생성 +최종 보고서 작성 +출력 서식 지정 + +3단계 + + +순차 실행 흐름 +관리자: A 호출 +→ A: 데이터 반환 +→ 관리자: B에 전달 +→ B: 분석 반환 +→ 관리자: C에 전달 +→ C: 보고서 반환 +관리자 관점: 에이전트 호출 = 도구 호출 (요청 전송 → 응답 수신) diff --git a/book-ko/images/fig10-5.svg b/book-ko/images/fig10-5.svg index c02009f28..8da2a5811 100644 --- a/book-ko/images/fig10-5.svg +++ b/book-ko/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -관리자 에이전트 -업무 이해 → 분해 → 스케줄링 → 통합 -도구 집합: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -하위 에이전트 A -역할: 데이터 수집 -기술 문서 검색 -핵심 정보 추출 - -1단계 - - - -하위 에이전트 B -역할: 분석·처리 -데이터 비교·분석 -통계 보고서 생성 - -2단계 - - - -하위 에이전트 C -역할: 보고서 생성 -최종 보고서 작성 -출력 서식 지정 - -3단계 - - -순차 실행 흐름 -관리자: A 호출 -→ A: 데이터 반환 -→ 관리자: B에 전달 -→ B: 분석 반환 -→ 관리자: C에 전달 -→ C: 보고서 반환 -관리자 관점: 에이전트 호출 = 도구 호출 (요청 전송 → 응답 수신) + +관리자 에이전트 +업무 계획 · 진행 모니터링 · 예외 처리 · 결과 통합 + +용어집 에이전트 +용어집 +책 전체 수신 → 전문 용어 식별 +전문 사전 + 번역 규칙 검색 +출력: glossary.json + +{"attention": "어텐션", + "transformer": "Transformer", + "backprop": "역전파"} + + +번역 에이전트 ×N +장 번역 +입력: 장 + 용어집 + 지침 +용어집에 따라 엄격히 번역 +출력: chapter{n}_zh.md + +"...어텐션 메커니즘은 + Query·Key^T 유사도를 계산..." + + +교정 에이전트 +전체 교정 +용어 일관성 전수 검사 +유창함과 가독성 점검 +출력: review_report.md + +P3: "어텐션"→"주의" 불일치 +P8: 긴 문장은 분할 권고 + + +용어집 + +번역문 + +공유 파일 시스템 +glossary.json +용어집 +chapter{1..10}_zh.md +장별 번역문 +review_report.md +교정 보고서 +translation_guide.md +번역 지침 + +컨텍스트 격리의 장점 +용어집: 용어만 확인 | 번역: 현재 장+용어집만 확인 | 관리자: 파일 색인만 유지 diff --git a/book-ko/images/fig10-6.svg b/book-ko/images/fig10-6.svg index 8da2a5811..85d52a686 100644 --- a/book-ko/images/fig10-6.svg +++ b/book-ko/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + 관리자 에이전트 -업무 계획 · 진행 모니터링 · 예외 처리 · 결과 통합 - -용어집 에이전트 -용어집 -책 전체 수신 → 전문 용어 식별 -전문 사전 + 번역 규칙 검색 -출력: glossary.json - -{"attention": "어텐션", - "transformer": "Transformer", - "backprop": "역전파"} - - -번역 에이전트 ×N -장 번역 -입력: 장 + 용어집 + 지침 -용어집에 따라 엄격히 번역 -출력: chapter{n}_zh.md - -"...어텐션 메커니즘은 - Query·Key^T 유사도를 계산..." - - -교정 에이전트 -전체 교정 -용어 일관성 전수 검사 -유창함과 가독성 점검 -출력: review_report.md - -P3: "어텐션"→"주의" 불일치 -P8: 긴 문장은 분할 권고 - - -용어집 - -번역문 - -공유 파일 시스템 -glossary.json -용어집 -chapter{1..10}_zh.md -장별 번역문 -review_report.md -교정 보고서 -translation_guide.md -번역 지침 - -컨텍스트 격리의 장점 -용어집: 용어만 확인 | 번역: 현재 장+용어집만 확인 | 관리자: 파일 색인만 유지 +병렬 스케줄링 · 실시간 모니터링 · 결과 집계 + +메시지 버스 (Message Bus) + + +에이전트 1 +데이터 수집 +실행 중 ◎ +독립 컨텍스트 + + +에이전트 2 +콘텐츠 분석 +실행 중 ◎ +독립 컨텍스트 + + +에이전트 3 +차트 생성 +완료 ✓ +독립 컨텍스트 + + +에이전트 4 +형식 검증 +대기 중 ○ +독립 컨텍스트 + + +메시지 버스 통신 예시 +관리자 → 에이전트 1 +{"type":"start","task":"arXiv 논문 수집","params":{"query":"LLM agent"}} +에이전트 3 → 관리자 +{"type":"completed","agent_id":"3","result":"charts/fig1.svg 생성 완료"} +에이전트 1 → 에이전트 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +관리자 → 에이전트 4 +{"type":"start","depends_on":["agent_2","agent_3"]} diff --git a/book-ko/images/fig10-7.svg b/book-ko/images/fig10-7.svg index 85d52a686..446a4958f 100644 --- a/book-ko/images/fig10-7.svg +++ b/book-ko/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -관리자 에이전트 -병렬 스케줄링 · 실시간 모니터링 · 결과 집계 - -메시지 버스 (Message Bus) - - -에이전트 1 -데이터 수집 -실행 중 ◎ -독립 컨텍스트 - - -에이전트 2 -콘텐츠 분석 -실행 중 ◎ -독립 컨텍스트 - - -에이전트 3 -차트 생성 -완료 ✓ -독립 컨텍스트 - - -에이전트 4 -형식 검증 -대기 중 ○ -독립 컨텍스트 - - -메시지 버스 통신 예시 -관리자 → 에이전트 1 -{"type":"start","task":"arXiv 논문 수집","params":{"query":"LLM agent"}} -에이전트 3 → 관리자 -{"type":"completed","agent_id":"3","result":"charts/fig1.svg 생성 완료"} -에이전트 1 → 에이전트 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -관리자 → 에이전트 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +전화 에이전트 +Node.js · 실시간 음성 통화 + +사용자 음성 +마이크 입력 + + +VAD + ASR +Silero VAD → STT 전사 + + +LLM 추론 +의도 이해 + 정보 추출 + + +TTS 합성 +음성 응답 생성 → 재생 + +컴퓨터 에이전트 +Python · 브라우저 자동화 + +스크린샷 +현재 브라우저 페이지 + + +Vision LLM +페이지 구조 + 양식 필드 이해 + + +행동 계획 +필드 찾기 → 입력 순서 계획 + + +작업 실행 +클릭 / 입력 / 제출 + +WebSocket 양방향 통신 (ws://localhost:8849) + + + +실시간 양방향 메시지 흐름(통화하며 컴퓨터 사용) +전화 → 컴퓨터 +[FROM_PHONE_AGENT] 사용자 이름은 Zhang San +컴퓨터 → 전화 +[FROM_COMPUTER_AGENT] 이름 입력 완료, 신분증 번호 필요 +전화 → 컴퓨터 +[FROM_PHONE_AGENT] 신분증 번호 310101199001011234 +컴퓨터 → 전화 +[FROM_COMPUTER_AGENT] 양식 제출 완료, 등록 성공 +핵심: 두 에이전트가 독립된 ReAct 루프를 병렬 실행하며 서로 막지 않음 diff --git a/book-ko/images/fig10-8.svg b/book-ko/images/fig10-8.svg index 446a4958f..e7d9444a0 100644 --- a/book-ko/images/fig10-8.svg +++ b/book-ko/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -전화 에이전트 -Node.js · 실시간 음성 통화 - -사용자 음성 -마이크 입력 - - -VAD + ASR -Silero VAD → STT 전사 - - -LLM 추론 -의도 이해 + 정보 추출 - - -TTS 합성 -음성 응답 생성 → 재생 - -컴퓨터 에이전트 -Python · 브라우저 자동화 - -스크린샷 -현재 브라우저 페이지 - - -Vision LLM -페이지 구조 + 양식 필드 이해 - - -행동 계획 -필드 찾기 → 입력 순서 계획 - - -작업 실행 -클릭 / 입력 / 제출 - -WebSocket 양방향 통신 (ws://localhost:8849) - - - -실시간 양방향 메시지 흐름(통화하며 컴퓨터 사용) -전화 → 컴퓨터 -[FROM_PHONE_AGENT] 사용자 이름은 Zhang San -컴퓨터 → 전화 -[FROM_COMPUTER_AGENT] 이름 입력 완료, 신분증 번호 필요 -전화 → 컴퓨터 -[FROM_PHONE_AGENT] 신분증 번호 310101199001011234 -컴퓨터 → 전화 -[FROM_COMPUTER_AGENT] 양식 제출 완료, 등록 성공 -핵심: 두 에이전트가 독립된 ReAct 루프를 병렬 실행하며 서로 막지 않음 + +관리자 에이전트 +동적 생성 · 실시간 모니터링 · 연쇄 종료 + +Agent 1 +cs.edu.cn +교수 명단 검색 +검색 중... ◎ + + +Agent 2 +math.edu.cn +교수 명단 검색 +찾지 못함 ✗ + + +Agent 3 +phys.edu.cn +교수 명단 검색 +찾음! ✓ + + +Agent 4 +chem.edu.cn +교수 명단 검색 +종료됨 ⊘ + + +Agent 5 … 10 +…(총 10개) +교수 명단 검색 +종료됨 ⊘ + + +연쇄 종료 타임라인 +t=0s +에이전트 10개 시작 +"Zhang Wei" 병렬 검색 + +t=12s +Agent 2 완료 +찾지 못함 → 종료 + +t=18s +Agent 3이 찾음! +target_found 전송 + +t=18.1s +관리자가 terminate를 +나머지 에이전트에 전파 + +t=19s +모두 종료 확인 +결과 집계·반환 + +검색 결과 +이름: Zhang Wei 소속: 물리학부 +직위: 교수 분야: 양자 컴퓨팅 +이메일: zhangwei@phys.edu.cn + +성능 비교 +직렬: 사이트 10개 × 30s = 약 5분 +병렬: 18초 검색 + 종료 1초 = 19초 +속도 향상: ~15×(연쇄 종료 최적화 포함) diff --git a/book-ko/images/fig10-9.svg b/book-ko/images/fig10-9.svg index e7d9444a0..8f6cfc25d 100644 --- a/book-ko/images/fig10-9.svg +++ b/book-ko/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -관리자 에이전트 -동적 생성 · 실시간 모니터링 · 연쇄 종료 - -Agent 1 -cs.edu.cn -교수 명단 검색 -검색 중... ◎ - - -Agent 2 -math.edu.cn -교수 명단 검색 -찾지 못함 ✗ - - -Agent 3 -phys.edu.cn -교수 명단 검색 -찾음! ✓ - - -Agent 4 -chem.edu.cn -교수 명단 검색 -종료됨 ⊘ - - -Agent 5 … 10 -…(총 10개) -교수 명단 검색 -종료됨 ⊘ - - -연쇄 종료 타임라인 -t=0s -에이전트 10개 시작 -"Zhang Wei" 병렬 검색 - -t=12s -Agent 2 완료 -찾지 못함 → 종료 - -t=18s -Agent 3이 찾음! -target_found 전송 - -t=18.1s -관리자가 terminate를 -나머지 에이전트에 전파 - -t=19s -모두 종료 확인 -결과 집계·반환 - -검색 결과 -이름: Zhang Wei 소속: 물리학부 -직위: 교수 분야: 양자 컴퓨팅 -이메일: zhangwei@phys.edu.cn - -성능 비교 -직렬: 사이트 10개 × 30s = 약 5분 -병렬: 18초 검색 + 종료 1초 = 19초 -속도 향상: ~15×(연쇄 종료 최적화 포함) + +제품 관리자 +입력: 사용자 요구 사항 설명 + +출력: +기능 목록 + 우선순위 +사용자 스토리(5개) +인수 조건 + +docs/PRD.md + + + +아키텍트 +입력: PRD.md + +출력: +기술 스택: FastAPI+React +API 규격(OpenAPI) +데이터베이스 스키마 + +docs/design.md + + + +프로젝트 관리자 +입력: design.md + +출력: +업무 목록 + 분담 +파일 단위 할당 +모듈 의존 순서 + +docs/tasks.md + + + +엔지니어 ×3 +입력: tasks.md + design.md + +출력: +모듈 A: 사용자 서비스 +모듈 B: 주문 서비스 +모듈 C: 결제 서비스 + +src/*.py + + + +QA 엔지니어 +입력: src/ + PRD.md + +출력: +단위 테스트(pytest) +통합 테스트(API) +버그 보고서 → 엔지니어 + +docs/test_report.md + +버그 수정 + + +공유 프로젝트 디렉터리 +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT 핵심 설계 +▸ 표준화된 문서 +각 역할은 고정 형식으로 출력 — 후속 역할은 형식만 알면 되고 이전 추론은 불필요 +▸ 인터페이스 분리 +제품 관리자를 더 강한 모델로 바꿔도 PRD 형식만 지키면 후속 역할은 변경 없음 +▸ 관리자 없음 +제어권은 DAG를 따라 이동: Product Mgr→Architect→Project Mgr→Engineer→QA +▸ 예외 경로 +QA 테스트 실패 → 모듈별 버그 보고서를 엔지니어에 전달 → 반복 수정 diff --git a/book-ko/images/fig10-sequential-handoff.svg b/book-ko/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..f85cf9b9b --- /dev/null +++ b/book-ko/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +요구 사항 분석 + +출력: 구조화된 요구 사항 문서 +spec.json +완료 후 핸드오프 → + + +Agent B +아키텍처 설계 + +출력: 기술 설계 문서 +design.md +완료 후 핸드오프 → + + +Agent C +코드 구현 + +출력: 소스 코드 +src/*.py +완료 후 핸드오프 → + + +Agent D +테스트 및 검증 + +출력: 테스트 보고서 +test_report.md +완료 후 핸드오프 → + +핸드오프 내용(Agent A → Agent B 예시) +트리거 조건: +A가 요구 사항 문서 완료 → is_complete=True +대상 에이전트: +target="architect" (Agent B) +전달 내용: +files=["spec.json"] + summary="전자상거래: 마이크로서비스 3개, REST API" +핸드오프 후 상태: +status="종료" (자원 해제, 대기하지 않음) + +탈중앙화의 장점 +✓ 중앙 관리자가 모든 역할을 알 필요 없음 +✓ 책임 경계 명확 · 인터페이스 분리 +✓ 완료 즉시 종료 · 상주 자원 해제 + +탈중앙화의 한계 +✗ 전역 최적화 관점 부족 +✗ 예외 처리 어려움(중앙 조율 없음) +✗ 흐름 고정 · 동적 조정 어려움 + diff --git a/book-ko/images/fig10-stage-switching.svg b/book-ko/images/fig10-stage-switching.svg new file mode 100644 index 000000000..179d4354d --- /dev/null +++ b/book-ko/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ 하나의 컨텍스트가 이어짐 — 단계 간 대화 기록을 완전히 보존 ▼ + +단계 1 +요구 사항 분석가 + +시스템 프롬프트 +"요구 사항을 충분히 파악하세요. +구현을 서두르지 말고 +질문과 확인에 집중하세요." + +도구 집합 +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +전환 트리거 +complete_req_analysis() + + +단계 2 +소프트웨어 엔지니어 + +시스템 프롬프트 +"확정된 요구 사항에 따라 +고품질 Python 코드를 작성하고 +모듈화·오류 처리 원칙을 따르세요." + +도구 집합 +write_file(path, content) +read_file(path) +execute_code(code) + +전환 트리거 +submit_for_review() + + +단계 3 +코드 검토자 + +시스템 프롬프트 +"다각도로 코드 품질을 평가하세요: +기능 정확성, 코딩 규칙, +보안성을 비판적으로 검토하세요." + +도구 집합 +run_linter(file) +run_tests(file) +analyze_complexity(file) +역할 전환: 시스템 프롬프트와 도구 집합 갱신 · 대화 기록과 상태는 계속 보존 + diff --git a/book-ru/chapter10.md b/book-ru/chapter10.md index a5e6a9098..c4cef92da 100644 --- a/book-ru/chapter10.md +++ b/book-ru/chapter10.md @@ -168,7 +168,7 @@ RLEF (Reinforcement Learning from Execution Feedback)[^rlef-2025] 2025 года На рис. 10-3 показана структура, при которой эти четыре типа областей смонтированы в одно и то же дерево каталогов: агент обращается ко всему дереву через единый интерфейс, пользователь загружает и скачивает файлы из общего пространства, внешние источники данных монтируются через адаптеры, а встроенные системные ресурсы предоставляются только для чтения. -![Рис. 10-3 Структура монтирования четырёх типов областей виртуальной файловой системы агента](images/fig10-3.svg) +![Рис. 10-2 Структура монтирования четырёх типов областей виртуальной файловой системы агента](images/fig10-2.svg) В табл. 10-4 эти четыре типа областей сравниваются по четырём измерениям — видимости, жизненному циклу, правам чтения/записи и контролю конкурентного доступа; таблицу можно использовать как контрольный список при проектировании структуры файловой системы. @@ -250,7 +250,7 @@ LoopX решает → агент выполняет → независимый **Парадигма предложитель-рецензент.** -![Рис. 10-4 Цикл предложитель-рецензент](images/fig10-4.svg) +![Рис. 10-3 Цикл предложитель-рецензент](images/fig10-3.svg) Предложитель-рецензент — самая классическая парадигма равноправного сотрудничества. В пятой главе на трёх экспериментах — генерации PPT, монтаже видео и визуализации логов — уже подробно рассматривались принципы проектирования и практическое применение этой парадигмы: Proposer Agent генерирует код, Reviewer Agent рендерит результат выполнения, оценивает качество с помощью Vision LLM и даёт структурированные рекомендации по улучшению, а затем оба агента итеративно повторяют этот цикл, пока результат не достигнет нужного уровня. @@ -333,7 +333,7 @@ return summarize_failures(workers) **Форма последовательной координации.** -![Рис. 10-5 Последовательная координация менеджера](images/fig10-5.svg) +![Рис. 10-4 Последовательная координация менеджера](images/fig10-4.svg) Менеджер по очереди вызывает специализированных агентов, каждый агент по завершении возвращает результат, после чего менеджер решает, что делать дальше. Поток управления линейный, простой и понятный, подходит для сценариев с чёткой последовательной зависимостью между подзадачами. @@ -362,14 +362,14 @@ return summarize_failures(workers) > 4. Сравните различия между одноагентным подходом и моделью оркестрации по качеству перевода, эффективности выполнения и расходу ресурсов > > -> ![Рис. 10-6 Архитектура агента перевода книги](images/fig10-6.svg) +> ![Рис. 10-5 Архитектура агента перевода книги](images/fig10-5.svg) > > **Форма параллельной координации.** -![Рис. 10-7 Параллельная координация менеджера](images/fig10-7.svg) +![Рис. 10-6 Параллельная координация менеджера](images/fig10-6.svg) Когда несколько подзадач можно выполнять параллельно, последовательная модель оказывается неэффективной. Параллельная координация позволяет нескольким агентам работать одновременно, значительно повышая пропускную способность. Manager Agent должен не только планировать параллельные задачи, но и в реальном времени отслеживать все работающие агенты, обрабатывать коммуникацию и координацию, принимать глобальные решения при успехе или сбое агента. Для этого обычно требуется базовая инфраструктура — **шина сообщений** (Message Bus), которую можно понимать как «общую доску объявлений»: агенты могут вывешивать на неё сообщения (публикация), а также подписываться на интересующие их типы сообщений (подписка), обеспечивая асинхронную коммуникацию без взаимной блокировки. Распространённые реализации по возрастанию сложности бывают двух видов: **Redis Pub/Sub** — лёгкий вариант, сообщение отправляется и сразу принимается, прост в использовании, но недостаток в том, что сообщения не сохраняются — если получатель в этот момент не в сети, сообщение теряется; очереди сообщений вроде **RabbitMQ**, напротив, сохраняют сообщения на диске, поэтому даже при временном отключении получателя сообщение не пропадёт. Формат сообщения обычно включает ID отправителя, целевого агента (или пометку о рассылке всем), тип сообщения и данные в формате JSON. @@ -427,7 +427,7 @@ return summarize_failures(workers) > 4. Зафиксируйте временную последовательность сообщений в процессе взаимодействия и ключевые моменты принятия решений агентом > > -> ![Рис. 10-8 Архитектура из двух агентов Phone и Computer](images/fig10-8.svg) +> ![Рис. 10-7 Архитектура из двух агентов Phone и Computer](images/fig10-7.svg) > > > **Эксперимент 10-4 ★★★: агент, одновременно собирающий информацию с нескольких сайтов** @@ -459,7 +459,7 @@ return summarize_failures(workers) > 6. Зафиксируйте и сравните разницу во времени между параллельным и последовательным выполнением, подтвердив прирост производительности от параллелизации > > -> ![Рис. 10-9 Архитектура параллельного веб-скрейпинга](images/fig10-9.svg) +> ![Рис. 10-8 Архитектура параллельного веб-скрейпинга](images/fig10-8.svg) > > @@ -489,7 +489,7 @@ else: **MetaGPT: симуляция программной компании на основе SOP.** -![Рисунок 10-11. Сеть мультиагентного взаимодействия MetaGPT](images/fig10-11.svg) +![Рисунок 10-11. Сеть мультиагентного взаимодействия MetaGPT](images/fig10-9.svg) MetaGPT кодирует стандартные процедуры программной компании. Роли работают в порядке Product Manager → Architect → Project Manager → Engineer → QA, и каждая выдаёт структурированный пакет передачи: задачу и критерии приёмки, подтверждённые факты и ограничения, ссылки на артефакты, например пути файлов. Роли публикуют сообщения в общий пул и читают только типы, на которые подписаны. Отправитель и получатель развязаны, но поток управления фиксирован SOP; MetaGPT не полностью децентрализована. @@ -598,7 +598,7 @@ MetaGPT кодирует стандартные процедуры програ ### Stanford AI Town: социальное моделирование генеративных агентов -![Рис. 10-12 Архитектура AI-городка](images/fig10-12.svg) +![Рис. 10-10 Архитектура AI-городка](images/fig10-10.svg) В 2023 году исследовательская группа из Стэнфордского университета и Google опубликовала эпохальную статью «Generative Agents: Interactive Simulacra of Human Behavior», предложив концепцию «генеративного агента». Ключевая инновация состоит в том, что агенты больше не ограничиваются выполнением заранее определённых задач, а наделяются памятью, рефлексией и способностью планирования, близкими к человеческим, что позволяет им автономно жить, общаться и развиваться в открытой социальной среде. @@ -705,7 +705,7 @@ Pinchwork и RentAHuman вместе представляют **способ к > > > -> ![Рис. 10-13 Голосовая система агентов для игры в Мафию](images/fig10-13.svg) +> ![Рис. 10-11 Голосовая система агентов для игры в Мафию](images/fig10-11.svg) > > diff --git a/book-ru/images/fig10-10.svg b/book-ru/images/fig10-10.svg index d69087648..ce10bc457 100644 --- a/book-ru/images/fig10-10.svg +++ b/book-ru/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Агент A -Анализ требований - -Выход: структ. документ требований -spec.json -Передача → - - -Агент B -Проектирование архитектуры - -Выход: технический документ проектирования -design.md -Передача → - - -Агент C -Реализация кода - -Выход: исходный код -src/*.py -Передача → - - -Агент D -Тестирование и проверка - -Выход: отчёт о тестировании -test_report.md -Передача → - -Содержимое передачи (пример: агент A → агент B) -Условие срабатывания: -A завершает документ требований → is_complete=True -Целевой агент: -target="architect" (агент B) -Содержимое передачи: -files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" -Статус после передачи: -status="exit" (освободить ресурсы, не оставаться в режиме ожидания) - -Преимущества децентрализации -✓ Не требуется центральный менеджер для понимания всех ролей -✓ Чёткие границы ответственности, разделение интерфейсов -✓ Выход после завершения, освобождение постоянных ресурсов - -Ограничения децентрализации -✗ Отсутствие глобальной перспективы оптимизации -✗ Сложная обработка исключений (нет центральной координации) -✗ Фиксированный процесс, сложно динамически настраивать + +Isabella Rodriguez +Владелец Hobbs Cafe +Гостеприимный и общительный + +Memory Stream +[08:30] Hobbs Cafe открывается +важность: 4 недавность: 0.9 +[09:15] Клиент Klaus приходит купить кофе +важность: 5 недавность: 0.85 +[10:00] Решение устроить вечеринку на День святого Валентина +важность: 9 недавность: 0.8 +[11:30] Пригласить клиента Maria на вечеринку +важность: 8 недавность: 0.7 +[14:00] Попросить Maria помочь украсить помещение +важность: 7 недавность: 0.6 + +Reflection +"Кто постоянные клиенты Hobbs?" +→ Мария, Клаус, Том (частые посетители) +"Кого мне пригласить на вечеринку?" +→ Пригласить и постоянных клиентов, и друзей +"Насколько продвинулась подготовка к вечеринке?" +→ Несколько приглашённых, площадку ещё нужно украсить +"Кто может помочь мне украсить кафе?" +→ Мария (подруга, готова помочь) + +Планирование и действие +08:00 Подъём + завтрак +09:00 Hobbs открывается для бизнеса +12:00 Приглашение клиентов во время работы магазина +14:00 Украшение площадки с Maria +16:00 Подготовить напитки и места +← Динамическая настройка +18:00 Провести вечеринку в честь Дня влюблённых в Hobbs + + +Извлечение + + +Диск + +Эмерджентное поведение (25 агентов · 2 дня виртуального времени) +▸ Спонтанное общение +Встречи → дружба → встречи +▸ Распространение информации +Приглашение на вечеринку распространяется на множество агентов +▸ Распространение выбора +Кампания мэра распространяется среди агентов +▸ Память отношений +Помнит прошлые чаты, продолжает темы +Все поведения не запрограммированы заранее — эмерджентные результаты памяти + рефлексии + рассуждений на основе социального здравого смысла \ No newline at end of file diff --git a/book-ru/images/fig10-11.svg b/book-ru/images/fig10-11.svg index 2a779419b..5cb14db78 100644 --- a/book-ru/images/fig10-11.svg +++ b/book-ru/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Менеджер продукта -Вход: описание требований пользователя - -Выход: -Список функций + приоритет -Пользовательские истории (5 шт.) -Критерии приёмки - -docs/PRD.md - - - -Архитектор -Вход: PRD.md - -Выход: -Стек технологий: FastAPI+React -Спецификация API (OpenAPI) -Схема базы данных - -docs/design.md - - - -Менеджер проекта -Вход: design.md - -Выход: -Список задач + распределение -Распределение на уровне файлов -Порядок зависимостей модулей - -docs/tasks.md - - - -Инженер ×3 -Вход: tasks.md + design.md - -Выход: -Модуль A: Сервис пользователей -Модуль B: Сервис заказов -Модуль C: Сервис платежей - -src/*.py - - - -QA-инженер -Вход: src/ + PRD.md - -Выход: -Модульные тесты (pytest) -Интеграционные тесты (API) -Отчёт об ошибке → Инженер - -docs/test_report.md - -Исправление ошибки - - -Общая директория проекта -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -Основной дизайн MetaGPT -▸ Стандартизированные документы -Каждая роль выдаёт фиксированный формат; downstream нужен формат, а не рассуждение -▸ Развязка интерфейса -Заменить на более сильного менеджера продукта; если вывод сохраняет формат PRD, нижестоящий процесс не меняется -▸ Без менеджера -Управление проходит по DAG: Менеджер продукта→Архитектор→Менеджер проекта→Инженер→QA -▸ Канал исключений -Ошибка QA → отчёт об ошибке передаётся инженеру по модулю → итеративное исправление + +Судья (на основе кода) +Состояние игры · Управление фазами · Распределение информации +Ночь → День → Голосование → Итоги + +🐺 Оборотень 1 +Видимо: Личности напарников +Стратегия: маскировка под жителя +Ночь: Выбор цели + + +Общее знание + +🐺 Оборотень 2 +Видимо: Личности напарников +Стратегия: следовать и защищать +Ночь: Переговоры о цели + + +Общее знание + +🔮 Провидец +Видимо: Результаты расследования +Стратегия: выбрать, когда раскрыться +Ночь: Проверка 1 человека + + +Итоги расследования + +🧪 Ведьма +Видимо: Смерть/Исцеление +Стратегия: сохранить зелье/противоядие +Ночь: Спасти/Отравить 1 человека + + +👤 Житель ×2 +Видимо: Только публичная информация +Стратегия: логическое рассуждение +День: анализ речи + + +Контроль доступа к информации: судья фильтрует контекст по роли +Оборотень: +ID союзников + ночной разговор + публичная речь +Провидец: +Собственные результаты проверки + публичная речь +Ведьма: +Смерти + статус зелья + публичная речь +Житель: +Только публичная речь + голосование + +Голосовое взаимодействие в реальном времени (ASR + LLM + TTS) +Дневное обсуждение +Судья задаёт порядок выступлений +Говорить по очереди по местам +Фаза голосования +Сбор голосов игроков +Подсчёт + объявление голосов +Ночная фаза +Пробуждение ролей по очереди +Приватный голосовой канал +Человек-игрок +Случайное распределение ролей +Голосовое голосование/речь \ No newline at end of file diff --git a/book-ru/images/fig10-12.svg b/book-ru/images/fig10-12.svg deleted file mode 100644 index ce10bc457..000000000 --- a/book-ru/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Владелец Hobbs Cafe -Гостеприимный и общительный - -Memory Stream -[08:30] Hobbs Cafe открывается -важность: 4 недавность: 0.9 -[09:15] Клиент Klaus приходит купить кофе -важность: 5 недавность: 0.85 -[10:00] Решение устроить вечеринку на День святого Валентина -важность: 9 недавность: 0.8 -[11:30] Пригласить клиента Maria на вечеринку -важность: 8 недавность: 0.7 -[14:00] Попросить Maria помочь украсить помещение -важность: 7 недавность: 0.6 - -Reflection -"Кто постоянные клиенты Hobbs?" -→ Мария, Клаус, Том (частые посетители) -"Кого мне пригласить на вечеринку?" -→ Пригласить и постоянных клиентов, и друзей -"Насколько продвинулась подготовка к вечеринке?" -→ Несколько приглашённых, площадку ещё нужно украсить -"Кто может помочь мне украсить кафе?" -→ Мария (подруга, готова помочь) - -Планирование и действие -08:00 Подъём + завтрак -09:00 Hobbs открывается для бизнеса -12:00 Приглашение клиентов во время работы магазина -14:00 Украшение площадки с Maria -16:00 Подготовить напитки и места -← Динамическая настройка -18:00 Провести вечеринку в честь Дня влюблённых в Hobbs - - -Извлечение - - -Диск - -Эмерджентное поведение (25 агентов · 2 дня виртуального времени) -▸ Спонтанное общение -Встречи → дружба → встречи -▸ Распространение информации -Приглашение на вечеринку распространяется на множество агентов -▸ Распространение выбора -Кампания мэра распространяется среди агентов -▸ Память отношений -Помнит прошлые чаты, продолжает темы -Все поведения не запрограммированы заранее — эмерджентные результаты памяти + рефлексии + рассуждений на основе социального здравого смысла - \ No newline at end of file diff --git a/book-ru/images/fig10-13.svg b/book-ru/images/fig10-13.svg deleted file mode 100644 index 5cb14db78..000000000 --- a/book-ru/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Судья (на основе кода) -Состояние игры · Управление фазами · Распределение информации -Ночь → День → Голосование → Итоги - -🐺 Оборотень 1 -Видимо: Личности напарников -Стратегия: маскировка под жителя -Ночь: Выбор цели - - -Общее знание - -🐺 Оборотень 2 -Видимо: Личности напарников -Стратегия: следовать и защищать -Ночь: Переговоры о цели - - -Общее знание - -🔮 Провидец -Видимо: Результаты расследования -Стратегия: выбрать, когда раскрыться -Ночь: Проверка 1 человека - - -Итоги расследования - -🧪 Ведьма -Видимо: Смерть/Исцеление -Стратегия: сохранить зелье/противоядие -Ночь: Спасти/Отравить 1 человека - - -👤 Житель ×2 -Видимо: Только публичная информация -Стратегия: логическое рассуждение -День: анализ речи - - -Контроль доступа к информации: судья фильтрует контекст по роли -Оборотень: -ID союзников + ночной разговор + публичная речь -Провидец: -Собственные результаты проверки + публичная речь -Ведьма: -Смерти + статус зелья + публичная речь -Житель: -Только публичная речь + голосование - -Голосовое взаимодействие в реальном времени (ASR + LLM + TTS) -Дневное обсуждение -Судья задаёт порядок выступлений -Говорить по очереди по местам -Фаза голосования -Сбор голосов игроков -Подсчёт + объявление голосов -Ночная фаза -Пробуждение ролей по очереди -Приватный голосовой канал -Человек-игрок -Случайное распределение ролей -Голосовое голосование/речь - \ No newline at end of file diff --git a/book-ru/images/fig10-2.svg b/book-ru/images/fig10-2.svg index 05ac546d3..9697bd7cf 100644 --- a/book-ru/images/fig10-2.svg +++ b/book-ru/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Непрерывный поток в рамках одного контекста — история диалога полностью сохраняется между этапами ▼ - -Этап 1 -Аналитик требований - -Системный промпт -"Ваша задача — полностью понять требования. -На этом этапе не спешить с реализацией -Ваша задача — задавать вопросы и подтверждать." - -Набор инструментов -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -Триггер конверсии -complete_req_analysis() - - -Этап 2 -Инженер-программист - -Системный промпт -"Написать на основе подтверждённых требований -Качественный код на Python. Следуйте -Модульность, best practices обработки ошибок" - -Набор инструментов -write_file(path, content) -read_file(path) -execute_code(code) - -Триггер конверсии -submit_for_review() - - -Этап 3 -Ревьюер кода - -Системный промпт -"Оценить качество кода по нескольким измерениям: -Функциональная корректность, стандарты кода, -Безопасность. Применяй критическое мышление." - -Набор инструментов -run_linter(file) -run_tests(file) -analyze_complexity(file) -Смена роли: обновление системного промпта + набора инструментов, история диалога и состояние сохраняются - \ No newline at end of file + + +Агент A + +Агент B + + + +Виртуальная файловая система / +Единый интерфейс: read_file · write_file · list_dir + + + +Пользователь +Загрузка / Скачивание + + + + + + + +Загрузка / Скачивание + + + + + +Монтировать + + + + +Приватное рабочее пространство агента +/scratch/<id> +Черновик (Scratchpad) + +Приватно · только для агентов +Уничтожается вместе с экземпляром +Чтение/запись · без контроля конкурентности +Один на агента + + + +Общее пространство мультиагентов +/workspace/shared +Общее рабочее пространство + +Видимо пользователю · Постоянно +Чтение/запись · требуется контроль конкурентности +Оптимистичная блокировка · worktree + + + +Внешние подключённые ресурсы +/mnt/gdrive · /mnt/notion +Через адаптер + +Подлежит внешней авторизации +В основном только чтение · Запись с осторожностью +Высокая задержка · слабая консистентность + + + +Встроенные ресурсы системы +/skills +Skills · Шаблоны · Руководства + +Общий доступ · Только чтение +Стабильно между сессиями +Прогрессивное раскрытие + + + +Внешние источники данных +Google Drive · Notion + + diff --git a/book-ru/images/fig10-3.svg b/book-ru/images/fig10-3.svg index 9697bd7cf..0e26239d8 100644 --- a/book-ru/images/fig10-3.svg +++ b/book-ru/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Агент A - -Агент B - - - -Виртуальная файловая система / -Единый интерфейс: read_file · write_file · list_dir - - - -Пользователь -Загрузка / Скачивание - - - - - - - -Загрузка / Скачивание - - - - - -Монтировать - - - - -Приватное рабочее пространство агента -/scratch/<id> -Черновик (Scratchpad) - -Приватно · только для агентов -Уничтожается вместе с экземпляром -Чтение/запись · без контроля конкурентности -Один на агента - - - -Общее пространство мультиагентов -/workspace/shared -Общее рабочее пространство - -Видимо пользователю · Постоянно -Чтение/запись · требуется контроль конкурентности -Оптимистичная блокировка · worktree - - - -Внешние подключённые ресурсы -/mnt/gdrive · /mnt/notion -Через адаптер - -Подлежит внешней авторизации -В основном только чтение · Запись с осторожностью -Высокая задержка · слабая консистентность - - - -Встроенные ресурсы системы -/skills -Skills · Шаблоны · Руководства - -Общий доступ · Только чтение -Стабильно между сессиями -Прогрессивное раскрытие - - - -Внешние источники данных -Google Drive · Notion - - + +Агент-предложитель +Вход: расширенная аннотация статьи (2000 слов) + +--- +theme: академический +--- +# Механизм внимания Transformer + +## Основная идея +- Self-attention вычисляет Q·K^T/√d +- Параллельная обработка многоголового внимания +Понять структуру контента → разбить на слайды + +Агент-рецензент + +① Рендеринг Slidev → PDF/PNG +② Мультимодальная оценка Vision LLM + +Структурированная обратная связь: +Страница Тип проблемы Серьёзность +P3 Плотный контент Высокая +P7 Слишком мелкий шрифт Средняя +P11 Несовпадение цвета Низкая +Рендеринг + визуальный анализ → практические рекомендации + +Код Slidev + +Структурированная обратная связь + +Процесс итеративного улучшения + +Раунд 1 +12-страничный черновик +5 проблем + + +Раунд 2 +14 страниц (разбиты плотные страницы) +2 проблемы + + +Раунд 3 +14 страниц (шрифт исправлен) +0 проблем ✓ + +Почему не использовать одного агента? +Один агент: рендеринг изображений ×N раундов → взрыв контекста +(1080p скриншот = тысячи токенов × 14 страниц × 5 раундов) +Двойной агент: Reviewer видит только текущую версию +Предложитель накапливает только текстовую обратную связь → чистый контекст + \ No newline at end of file diff --git a/book-ru/images/fig10-4.svg b/book-ru/images/fig10-4.svg index 0e26239d8..06ede6757 100644 --- a/book-ru/images/fig10-4.svg +++ b/book-ru/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Агент-предложитель -Вход: расширенная аннотация статьи (2000 слов) - ---- -theme: академический ---- -# Механизм внимания Transformer - -## Основная идея -- Self-attention вычисляет Q·K^T/√d -- Параллельная обработка многоголового внимания -Понять структуру контента → разбить на слайды - -Агент-рецензент - -① Рендеринг Slidev → PDF/PNG -② Мультимодальная оценка Vision LLM - -Структурированная обратная связь: -Страница Тип проблемы Серьёзность -P3 Плотный контент Высокая -P7 Слишком мелкий шрифт Средняя -P11 Несовпадение цвета Низкая -Рендеринг + визуальный анализ → практические рекомендации - -Код Slidev - -Структурированная обратная связь - -Процесс итеративного улучшения - -Раунд 1 -12-страничный черновик -5 проблем - - -Раунд 2 -14 страниц (разбиты плотные страницы) -2 проблемы - - -Раунд 3 -14 страниц (шрифт исправлен) -0 проблем ✓ - -Почему не использовать одного агента? -Один агент: рендеринг изображений ×N раундов → взрыв контекста -(1080p скриншот = тысячи токенов × 14 страниц × 5 раундов) -Двойной агент: Reviewer видит только текущую версию -Предложитель накапливает только текстовую обратную связь → чистый контекст + +Agent-менеджер +Понимание задачи → Декомпозиция → Планирование → Синтез +Набор инструментов: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Субагент A +Роль: сбор данных +Поиск технической документации +Извлечь ключевую информацию + +Шаг 1 + + + +Субагент B +Роль: анализ и обработка +Сравнение и анализ данных +Генерация статистического отчёта + +Шаг 2 + + + +Субагент C +Роль: генерация отчёта +Написать итоговый отчёт +Форматировать вывод + +Шаг 3 + + +Последовательный поток выполнения +Менеджер вызывает A +→ A возвращает данные +→ Менеджер передаёт B +→ B возвращает анализ +→ Менеджер передаёт C +→ C возвращает отчёт +Взгляд менеджера: вызов агента = вызов инструмента (отправить запрос → получить ответ) \ No newline at end of file diff --git a/book-ru/images/fig10-5.svg b/book-ru/images/fig10-5.svg index 06ede6757..873b93d25 100644 --- a/book-ru/images/fig10-5.svg +++ b/book-ru/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Agent-менеджер -Понимание задачи → Декомпозиция → Планирование → Синтез -Набор инструментов: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Субагент A -Роль: сбор данных -Поиск технической документации -Извлечь ключевую информацию - -Шаг 1 - - - -Субагент B -Роль: анализ и обработка -Сравнение и анализ данных -Генерация статистического отчёта - -Шаг 2 - - - -Субагент C -Роль: генерация отчёта -Написать итоговый отчёт -Форматировать вывод - -Шаг 3 - - -Последовательный поток выполнения -Менеджер вызывает A -→ A возвращает данные -→ Менеджер передаёт B -→ B возвращает анализ -→ Менеджер передаёт C -→ C возвращает отчёт -Взгляд менеджера: вызов агента = вызов инструмента (отправить запрос → получить ответ) + +Agent-менеджер +Планирование задач · Мониторинг прогресса · Обработка исключений · Синтез результатов + +Glossary Agent +Глоссарий +Получить всю книгу → Определить технические термины +Поиск специализированных словарей + конвенций перевода +Выход: glossary.json + +{"attention": "внимание", + "transformer": "Transformer", + "backprop": "обратное распространение"} + + +Translation Agent ×N +Перевод главы +Вход: глава + глоссарий + руководство +Переводить термины строго по глоссарию +Выход: chapter{n}_zh.md + +"...механизм внимания вычисляет сходство + Query·Key^T ..." + + +Proofreading Agent +Проверка полного текста +Сканирование и проверка согласованности терминов +Проверка беглости и читаемости +Выход: review_report.md + +P3: «внимание»→«вниманию» — рассогласование +P8: предложено разбить длинное предложение + + +Глоссарий + +Перевод + +Общая файловая система +glossary.json +Глоссарий +chapter{1..10}_zh.md +Перевод главы +review_report.md +Отчёт проверки +translation_guide.md +Руководство по переводу + +Преимущества изоляции контекста +Глоссарий: только просмотр терминов | Перевод: только просмотр текущей главы + глоссария | Менеджер: только ведение индекса файлов \ No newline at end of file diff --git a/book-ru/images/fig10-6.svg b/book-ru/images/fig10-6.svg index 873b93d25..87d10416c 100644 --- a/book-ru/images/fig10-6.svg +++ b/book-ru/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Agent-менеджер -Планирование задач · Мониторинг прогресса · Обработка исключений · Синтез результатов - -Glossary Agent -Глоссарий -Получить всю книгу → Определить технические термины -Поиск специализированных словарей + конвенций перевода -Выход: glossary.json - -{"attention": "внимание", - "transformer": "Transformer", - "backprop": "обратное распространение"} - - -Translation Agent ×N -Перевод главы -Вход: глава + глоссарий + руководство -Переводить термины строго по глоссарию -Выход: chapter{n}_zh.md - -"...механизм внимания вычисляет сходство - Query·Key^T ..." - - -Proofreading Agent -Проверка полного текста -Сканирование и проверка согласованности терминов -Проверка беглости и читаемости -Выход: review_report.md - -P3: «внимание»→«вниманию» — рассогласование -P8: предложено разбить длинное предложение - - -Глоссарий - -Перевод - -Общая файловая система -glossary.json -Глоссарий -chapter{1..10}_zh.md -Перевод главы -review_report.md -Отчёт проверки -translation_guide.md -Руководство по переводу - -Преимущества изоляции контекста -Глоссарий: только просмотр терминов | Перевод: только просмотр текущей главы + глоссария | Менеджер: только ведение индекса файлов +Параллельное планирование · Мониторинг в реальном времени · Агрегация результатов + +Message Bus + + +Агент 1 +Сбор данных +Выполняется ◎ +Независимый контекст + + +Агент 2 +Анализ содержимого +Выполняется ◎ +Независимый контекст + + +Агент 3 +Генерация диаграмм +Завершено ✓ +Независимый контекст + + +Агент 4 +Проверка формата +Ожидание ○ +Независимый контекст + + +Пример коммуникации через Message Bus +Менеджер → Агент 1 +{"type":"start","task":"Собрать статьи с arxiv","params":{"query":"LLM агент"}} +Агент 3 → Менеджер +{"type":"completed","agent_id":"3","result":"charts/fig1.svg сгенерирован"} +Агент 1 → Агент 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Менеджер → Агент 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-ru/images/fig10-7.svg b/book-ru/images/fig10-7.svg index 87d10416c..ed91b0828 100644 --- a/book-ru/images/fig10-7.svg +++ b/book-ru/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Agent-менеджер -Параллельное планирование · Мониторинг в реальном времени · Агрегация результатов - -Message Bus - - -Агент 1 -Сбор данных -Выполняется ◎ -Независимый контекст - - -Агент 2 -Анализ содержимого -Выполняется ◎ -Независимый контекст - - -Агент 3 -Генерация диаграмм -Завершено ✓ -Независимый контекст - - -Агент 4 -Проверка формата -Ожидание ○ -Независимый контекст - - -Пример коммуникации через Message Bus -Менеджер → Агент 1 -{"type":"start","task":"Собрать статьи с arxiv","params":{"query":"LLM агент"}} -Агент 3 → Менеджер -{"type":"completed","agent_id":"3","result":"charts/fig1.svg сгенерирован"} -Агент 1 → Агент 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Менеджер → Агент 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · Голосовой звонок в реальном времени + +Голос пользователя +Вход с микрофона + + +VAD + ASR +Silero VAD → транскрипция STT + + +Инференс LLM +Понять намерение + извлечь информацию + + +TTS-синтез +Генерация голосового ответа → Воспроизведение + +Computer Agent +Python · Автоматизация браузера + +Скриншот +Текущая страница браузера + + +Vision LLM +Понять структуру страницы + поля формы + + +Планирование действий +Определить поля → Спланировать последовательность ввода + + +Выполнить действия +Клик / Ввод / Отправка + +Двусторонняя связь WebSocket (ws://localhost:8849) + + + +Двунаправленный поток сообщений в реальном времени (использование компьютера во время звонка) +Телефон → Компьютер +[FROM_PHONE_AGENT] Пользователь говорит, что имя — Zhang San +Компьютер → Телефон +[FROM_COMPUTER_AGENT] Имя заполнено, нужен номер удостоверения +Телефон → Компьютер +[FROM_PHONE_AGENT] Номер удостоверения 310101199001011234 +Компьютер → Телефон +[FROM_COMPUTER_AGENT] Форма отправлена, регистрация успешна +Ключевое: два агента выполняют независимые циклы ReAct параллельно, без блокировки \ No newline at end of file diff --git a/book-ru/images/fig10-8.svg b/book-ru/images/fig10-8.svg index ed91b0828..e76b8e153 100644 --- a/book-ru/images/fig10-8.svg +++ b/book-ru/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · Голосовой звонок в реальном времени - -Голос пользователя -Вход с микрофона - - -VAD + ASR -Silero VAD → транскрипция STT - - -Инференс LLM -Понять намерение + извлечь информацию - - -TTS-синтез -Генерация голосового ответа → Воспроизведение - -Computer Agent -Python · Автоматизация браузера - -Скриншот -Текущая страница браузера - - -Vision LLM -Понять структуру страницы + поля формы - - -Планирование действий -Определить поля → Спланировать последовательность ввода - - -Выполнить действия -Клик / Ввод / Отправка - -Двусторонняя связь WebSocket (ws://localhost:8849) - - - -Двунаправленный поток сообщений в реальном времени (использование компьютера во время звонка) -Телефон → Компьютер -[FROM_PHONE_AGENT] Пользователь говорит, что имя — Zhang San -Компьютер → Телефон -[FROM_COMPUTER_AGENT] Имя заполнено, нужен номер удостоверения -Телефон → Компьютер -[FROM_PHONE_AGENT] Номер удостоверения 310101199001011234 -Компьютер → Телефон -[FROM_COMPUTER_AGENT] Форма отправлена, регистрация успешна -Ключевое: два агента выполняют независимые циклы ReAct параллельно, без блокировки + +Agent-менеджер +Динамическое создание · Мониторинг в реальном времени · Каскадное завершение + +Агент 1 +cs.edu.cn +Поиск в справочнике преподавателей +Поиск... ◎ + + +Агент 2 +math.edu.cn +Поиск в справочнике преподавателей +Не найдено ✗ + + +Агент 3 +phys.edu.cn +Поиск в справочнике преподавателей +Найдено! ✓ + + +Агент 4 +chem.edu.cn +Поиск в справочнике преподавателей +Прервано ⊘ + + +Агент 5 … 10 +… (всего 10) +Поиск в справочнике преподавателей +Прервано ⊘ + + +Каскадная последовательность завершения +t=0s +Запустить 10 агентов +Параллельный поиск "Zhang Wei" + +t=12s +Агент 2 завершает +Не найдено → выход + +t=18s +Агент 3 найден! +Отправить target_found + +t=18.1s +Менеджер транслирует завершение +К оставшимся работающим агентам + +t=19s +Все подтверждают завершение +Агрегировать результаты и вернуть + +Результат найден +Имя: Zhang Wei Школа: Школа физики +Должность: профессор Направление: квантовые вычисления +Email: zhangwei@phys.edu.cn + +Сравнение производительности +Последовательно: 10 сайтов × 30с = ~5 минут +Параллельно: 18с на поиск + 1с на завершение = 19с +Ускорение: ~15× (с оптимизацией каскадного завершения) \ No newline at end of file diff --git a/book-ru/images/fig10-9.svg b/book-ru/images/fig10-9.svg index e76b8e153..2a779419b 100644 --- a/book-ru/images/fig10-9.svg +++ b/book-ru/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Agent-менеджер -Динамическое создание · Мониторинг в реальном времени · Каскадное завершение - -Агент 1 -cs.edu.cn -Поиск в справочнике преподавателей -Поиск... ◎ - - -Агент 2 -math.edu.cn -Поиск в справочнике преподавателей -Не найдено ✗ - - -Агент 3 -phys.edu.cn -Поиск в справочнике преподавателей -Найдено! ✓ - - -Агент 4 -chem.edu.cn -Поиск в справочнике преподавателей -Прервано ⊘ - - -Агент 5 … 10 -… (всего 10) -Поиск в справочнике преподавателей -Прервано ⊘ - - -Каскадная последовательность завершения -t=0s -Запустить 10 агентов -Параллельный поиск "Zhang Wei" - -t=12s -Агент 2 завершает -Не найдено → выход - -t=18s -Агент 3 найден! -Отправить target_found - -t=18.1s -Менеджер транслирует завершение -К оставшимся работающим агентам - -t=19s -Все подтверждают завершение -Агрегировать результаты и вернуть - -Результат найден -Имя: Zhang Wei Школа: Школа физики -Должность: профессор Направление: квантовые вычисления -Email: zhangwei@phys.edu.cn - -Сравнение производительности -Последовательно: 10 сайтов × 30с = ~5 минут -Параллельно: 18с на поиск + 1с на завершение = 19с -Ускорение: ~15× (с оптимизацией каскадного завершения) + +Менеджер продукта +Вход: описание требований пользователя + +Выход: +Список функций + приоритет +Пользовательские истории (5 шт.) +Критерии приёмки + +docs/PRD.md + + + +Архитектор +Вход: PRD.md + +Выход: +Стек технологий: FastAPI+React +Спецификация API (OpenAPI) +Схема базы данных + +docs/design.md + + + +Менеджер проекта +Вход: design.md + +Выход: +Список задач + распределение +Распределение на уровне файлов +Порядок зависимостей модулей + +docs/tasks.md + + + +Инженер ×3 +Вход: tasks.md + design.md + +Выход: +Модуль A: Сервис пользователей +Модуль B: Сервис заказов +Модуль C: Сервис платежей + +src/*.py + + + +QA-инженер +Вход: src/ + PRD.md + +Выход: +Модульные тесты (pytest) +Интеграционные тесты (API) +Отчёт об ошибке → Инженер + +docs/test_report.md + +Исправление ошибки + + +Общая директория проекта +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +Основной дизайн MetaGPT +▸ Стандартизированные документы +Каждая роль выдаёт фиксированный формат; downstream нужен формат, а не рассуждение +▸ Развязка интерфейса +Заменить на более сильного менеджера продукта; если вывод сохраняет формат PRD, нижестоящий процесс не меняется +▸ Без менеджера +Управление проходит по DAG: Менеджер продукта→Архитектор→Менеджер проекта→Инженер→QA +▸ Канал исключений +Ошибка QA → отчёт об ошибке передаётся инженеру по модулю → итеративное исправление \ No newline at end of file diff --git a/book-ru/images/fig10-sequential-handoff.svg b/book-ru/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..d69087648 --- /dev/null +++ b/book-ru/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Агент A +Анализ требований + +Выход: структ. документ требований +spec.json +Передача → + + +Агент B +Проектирование архитектуры + +Выход: технический документ проектирования +design.md +Передача → + + +Агент C +Реализация кода + +Выход: исходный код +src/*.py +Передача → + + +Агент D +Тестирование и проверка + +Выход: отчёт о тестировании +test_report.md +Передача → + +Содержимое передачи (пример: агент A → агент B) +Условие срабатывания: +A завершает документ требований → is_complete=True +Целевой агент: +target="architect" (агент B) +Содержимое передачи: +files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" +Статус после передачи: +status="exit" (освободить ресурсы, не оставаться в режиме ожидания) + +Преимущества децентрализации +✓ Не требуется центральный менеджер для понимания всех ролей +✓ Чёткие границы ответственности, разделение интерфейсов +✓ Выход после завершения, освобождение постоянных ресурсов + +Ограничения децентрализации +✗ Отсутствие глобальной перспективы оптимизации +✗ Сложная обработка исключений (нет центральной координации) +✗ Фиксированный процесс, сложно динамически настраивать + \ No newline at end of file diff --git a/book-ru/images/fig10-stage-switching.svg b/book-ru/images/fig10-stage-switching.svg new file mode 100644 index 000000000..05ac546d3 --- /dev/null +++ b/book-ru/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Непрерывный поток в рамках одного контекста — история диалога полностью сохраняется между этапами ▼ + +Этап 1 +Аналитик требований + +Системный промпт +"Ваша задача — полностью понять требования. +На этом этапе не спешить с реализацией +Ваша задача — задавать вопросы и подтверждать." + +Набор инструментов +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +Триггер конверсии +complete_req_analysis() + + +Этап 2 +Инженер-программист + +Системный промпт +"Написать на основе подтверждённых требований +Качественный код на Python. Следуйте +Модульность, best practices обработки ошибок" + +Набор инструментов +write_file(path, content) +read_file(path) +execute_code(code) + +Триггер конверсии +submit_for_review() + + +Этап 3 +Ревьюер кода + +Системный промпт +"Оценить качество кода по нескольким измерениям: +Функциональная корректность, стандарты кода, +Безопасность. Применяй критическое мышление." + +Набор инструментов +run_linter(file) +run_tests(file) +analyze_complexity(file) +Смена роли: обновление системного промпта + набора инструментов, история диалога и состояние сохраняются + \ No newline at end of file diff --git a/book-ru/images/fig8-1.svg b/book-ru/images/fig8-1.svg index 35fd770f0..cf14192d9 100644 --- a/book-ru/images/fig8-1.svg +++ b/book-ru/images/fig8-1.svg @@ -1,26 +1,54 @@ - - - -Завершить задачу -Генерация исходного -опыт - -Уточнение опыта -Обобщить, -сжатие, структурирование - - -Сохранить во внешней системе -База знаний/инструменты, -извлекаемый - - -Извлечь и -повторное использование -Вызвать в следующей задаче - - - - -Опыт накапливается постоянно, повторно используется между сессиями - \ No newline at end of file + + + + + + + + + Непрерывная эволюция: от опыта работы к новой версии Agent + + + Выполнить задачу + Взаимодействие с пользователем,средой и инструментами + + + Записать траекторию + Действия, результаты,обратная связь + + + Сформировать сигналы + Результат ·Процесс · Качество + + + Сгенерировать кандидатов на обновление + + + + + Знания + Инструкции + Программы + Параметры + + + Проверка и выпуск + Регрессия, канареечныйвыпуск, откат + + + + + + + + Новый Agent переходит к следующему циклу + Только обновления, меняющие дальнейшее поведение и прошедшие проверку, дают непрерывную эволюцию + + diff --git a/book-ta/chapter10.ta.md b/book-ta/chapter10.ta.md index 6cc665833..3d56bf384 100644 --- a/book-ta/chapter10.ta.md +++ b/book-ta/chapter10.ta.md @@ -163,9 +163,9 @@ IPC இன் இரண்டு முன்னுதாரணங்களு **IV. உள்ளமைக்கப்பட்ட கணினி வளங்கள் (Built-in System Resources)**. கணினியால் முன்பே நிறுவப்பட்டு, அனைத்து ஏஜெண்டுகளுடனும் படிப்பதற்கு மட்டும் பகிரப்பட்ட ஒரு வள தொகுப்பு. பொதுவான எடுத்துக்காட்டுகள் அத்தியாயங்கள் 2 மற்றும் 4 இல் அறிமுகப்படுத்தப்பட்ட **திறன்கள் (Skills)** ஆகும்—கோப்புகளாக ஒழுங்கமைக்கப்பட்ட அறிவு ஆவணங்கள் மற்றும் ஸ்கிரிப்ட்கள், `/skills` போன்ற பாதைகளில் மவுண்ட் செய்யப்பட்டு, படிப்படியான வெளிப்பாட்டின் மூலம் அணுகப்படுகின்றன (முதலில் அட்டவணை, பின்னர் தேவைக்கேற்ப விரிவாக்கம்). பிற எடுத்துக்காட்டுகளில் குறிப்பு கையேடுகள், வார்ப்புரு நூலகங்கள் மற்றும் பகிரப்பட்ட கருவி வரையறைகள் அடங்கும். இந்த அடுக்கு உலகளவில் பகிரப்பட்டது, படிப்பதற்கு மட்டுமே, அமர்வுகள் முழுவதும் நிலையானது, மேலும் இணைநிலைக் கட்டுப்பாடு இல்லாமல் அனைத்து ஏஜெண்டுகளாலும் ஒரே நேரத்தில் படிக்க முடியும். -படம் 10-3, இந்த நான்கு வகையான பகுதிகளும் ஒரு ஒற்றை அடைவு மரத்தின் கீழ் ஒரே மாதிரியாக மவுண்ட் செய்யப்பட்டுள்ள கட்டமைப்பை விளக்குகிறது: ஏஜெண்ட் ஒருங்கிணைந்த இடைமுகம் மூலம் முழு மரத்தையும் அணுகுகிறது, பயனர்கள் பகிரப்பட்ட இடத்திலிருந்து கோப்புகளைப் பதிவேற்றி பதிவிறக்குகிறார்கள், வெளிப்புற தரவு மூலங்கள் அடாப்டர்கள் மூலம் மவுண்ட் செய்யப்படுகின்றன, மற்றும் உள்ளமைக்கப்பட்ட கணினி வளங்கள் படிப்பதற்கு மட்டும் வழங்கப்படுகின்றன. +படம் 10-2, இந்த நான்கு வகையான பகுதிகளும் ஒரு ஒற்றை அடைவு மரத்தின் கீழ் ஒரே மாதிரியாக மவுண்ட் செய்யப்பட்டுள்ள கட்டமைப்பை விளக்குகிறது: ஏஜெண்ட் ஒருங்கிணைந்த இடைமுகம் மூலம் முழு மரத்தையும் அணுகுகிறது, பயனர்கள் பகிரப்பட்ட இடத்திலிருந்து கோப்புகளைப் பதிவேற்றி பதிவிறக்குகிறார்கள், வெளிப்புற தரவு மூலங்கள் அடாப்டர்கள் மூலம் மவுண்ட் செய்யப்படுகின்றன, மற்றும் உள்ளமைக்கப்பட்ட கணினி வளங்கள் படிப்பதற்கு மட்டும் வழங்கப்படுகின்றன. -![படம் 10-3: ஏஜெண்ட் மெய்நிகர் கோப்பு முறைமையில் நான்கு பகுதி வகைகளின் மவுண்ட் அமைப்பு](images/fig10-3.svg) +![படம் 10-2: ஏஜெண்ட் மெய்நிகர் கோப்பு முறைமையில் நான்கு பகுதி வகைகளின் மவுண்ட் அமைப்பு](images/fig10-2.svg) அட்டவணை 10-4 இந்த நான்கு பகுதி வகைகளை நான்கு பரிமாணங்களில்—தெரிவுநிலை, வாழ்க்கைச் சுழற்சி, படிப்பு/எழுது அனுமதிகள், மற்றும் இணைநிலைக் கட்டுப்பாடு—ஒப்பிட்டு, கோப்பு முறைமை அமைப்பு வடிவமைப்பிற்கான சரிபார்ப்புப் பட்டியலாகச் செயல்படுகிறது. @@ -245,7 +245,7 @@ LoopX தீர்மானிக்கிறது → ஏஜெண்ட் **முன்மொழிபவர்-மதிப்பாய்வாளர் முன்னுதாரணம்.** -![படம் 10-4: முன்மொழிபவர்-மதிப்பாய்வாளர் சுழற்சி](images/fig10-4.svg) +![படம் 10-3: முன்மொழிபவர்-மதிப்பாய்வாளர் சுழற்சி](images/fig10-3.svg) முன்மொழிபவர்-மதிப்பாய்வாளர் (Proposer-Reviewer) என்பது மிகவும் செவ்வியலான சக-க்கு-சக ஒத்துழைப்பு முன்னுதாரணமாகும். அத்தியாயம் 5 ஏற்கனவே இந்த முன்னுதாரணத்தின் வடிவமைப்புக் கொள்கைகளையும் நடைமுறைப் பயன்பாடுகளையும் மூன்று சோதனைகளில் விரிவாக விளக்கியுள்ளது: PPT உருவாக்கம், வீடியோ எடிட்டிங் மற்றும் பதிவு காட்சிப்படுத்தல் (log visualization). முன்மொழிபவர் ஏஜெண்ட் (Proposer Agent) குறியீட்டை உருவாக்குகிறது; மதிப்பாய்வாளர் ஏஜெண்ட் (Reviewer Agent) செயலாக்க முடிவுகளை ரெண்டர் செய்து, ஒரு Vision LLM ஐப் பயன்படுத்தி தரத்தை மதிப்பீடு செய்து, கட்டமைக்கப்பட்ட மேம்பாட்டுப் பரிந்துரைகளை வழங்குகிறது. முடிவு தரநிலையைப் பூர்த்தி செய்யும் வரை இரண்டும் மீண்டும் மீண்டும் செயல்படுகின்றன. @@ -325,7 +325,7 @@ return summarize_failures(workers) **வரிசைமுறை ஒருங்கிணைப்பு முறை.** -![படம் 10-5: மேலாளர் வரிசைமுறை ஒருங்கிணைப்பு](images/fig10-5.svg) +![படம் 10-4: மேலாளர் வரிசைமுறை ஒருங்கிணைப்பு](images/fig10-4.svg) மேலாளர் சிறப்பு ஏஜெண்டுகளை வரிசையாக அழைக்கிறது. ஒவ்வொரு ஏஜெண்டும் முடிந்ததும் முடிவுகளைத் திருப்பித் தருகிறது; மேலாளர் அடுத்த படியை முடிவு செய்கிறது. கட்டுப்பாட்டு ஓட்டம் நேரியல், எளிய மற்றும் தெளிவானது, துணைப் பணிகள் தெளிவான வரிசைமுறை சார்புகளைக் கொண்ட காட்சிகளுக்கு ஏற்றது. @@ -354,13 +354,13 @@ return summarize_failures(workers) > 4. ஒற்றை ஏஜெண்ட் vs. மேலாளர் முறைக்கு இடையே மொழிபெயர்ப்புத் தரம், செயல்படுத்தல் திறன் மற்றும் வள நுகர்வு ஆகியவற்றில் உள்ள வேறுபாடுகளை ஒப்பிடவும் > > -> ![படம் 10-6: புத்தக மொழிபெயர்ப்பு ஏஜெண்ட் கட்டமைப்பு](images/fig10-6.svg) +> ![படம் 10-5: புத்தக மொழிபெயர்ப்பு ஏஜெண்ட் கட்டமைப்பு](images/fig10-5.svg) > > **இணை ஒருங்கிணைப்பு முறை (Parallel Coordination Pattern).** -![படம் 10-7: மேலாளர் இணை ஒருங்கிணைப்பு](images/fig10-7.svg) +![படம் 10-6: மேலாளர் இணை ஒருங்கிணைப்பு](images/fig10-6.svg) பல துணைப் பணிகளை இணையாக இயக்க முடியும் போது, வரிசைமுறை முறை திறனற்றதாகிறது. இணை ஒருங்கிணைப்பு பல ஏஜெண்டுகளை ஒரே நேரத்தில் செயல்பட அனுமதித்து, செயலாக்க அளவை (throughput) கணிசமாக உயர்த்துகிறது. மேலாளர் ஏஜெண்ட் இணை பணிகளைத் திட்டமிடுவது மட்டுமல்லாமல், இயங்கும் அனைத்து ஏஜெண்டுகளையும் நிகழ்நேரத்தில் கண்காணிக்க வேண்டும், தகவல் தொடர்பு ஒருங்கிணைப்பைக் கையாள வேண்டும், மேலும் ஏஜெண்டுகள் வெற்றிபெறும்போது அல்லது தோல்வியடையும்போது உலகளாவிய முடிவுகளை எடுக்க வேண்டும். இதற்கு பொதுவாக ஒரு **செய்தி பேருந்து (Message Bus)** உள்கட்டமைப்பு தேவைப்படுகிறது—இதை ஒரு "பொது அறிவிப்பு பலகை" போல் நினைத்துக்கொள்ளுங்கள், அங்கு ஏஜெண்டுகள் செய்திகளை இடுகையிடலாம் (வெளியிடுதல்) மற்றும் அவர்களுக்கு ஆர்வமுள்ள செய்தி வகைகளுக்கு குழுசேரலாம், இது ஒத்திசைவற்ற, தடையற்ற தகவல்தொடர்பை செயல்படுத்துகிறது. பொதுவான செயலாக்க தீர்வுகள், சிக்கலின் அதிகரிக்கும் வரிசையில்: **Redis Pub/Sub**—இலகுரக, செய்திகள் உடனடியாக அனுப்பப்பட்டு பெறப்படுகின்றன, பயன்படுத்த எளிதானது, ஆனால் நிரந்தரமானது அல்ல—பெறுநர் ஆஃப்லைனில் இருந்தால், செய்தி இழக்கப்படுகிறது; **RabbitMQ** மற்றும் ஒத்த செய்தி வரிசைகள் செய்திகளை வட்டில் நிரந்தரமாக சேமிக்கின்றன, எனவே பெறுநர் தற்காலிகமாக ஆஃப்லைனில் இருந்தாலும் அவை இழக்கப்படாது. செய்தி வடிவமைப்பில் பொதுவாக அனுப்புநர் ஐடி, இலக்கு ஏஜெண்ட் (அல்லது அனைவருக்கும் ஒளிபரப்பு), செய்தி வகை மற்றும் JSON வடிவத்தில் தரவு உள்ளடக்கம் ஆகியவை அடங்கும். @@ -418,7 +418,7 @@ return summarize_failures(workers) > 4. ஒத்துழைப்பு செயல்முறையின் செய்தி நேரம் மற்றும் ஏஜெண்டுகளின் முக்கிய முடிவெடுக்கும் புள்ளிகளைப் பதிவு செய்யவும் > > -> ![படம் 10-8: தொலைபேசி மற்றும் கணினி இரட்டை ஏஜெண்ட் கட்டமைப்பு](images/fig10-8.svg) +> ![படம் 10-7: தொலைபேசி மற்றும் கணினி இரட்டை ஏஜெண்ட் கட்டமைப்பு](images/fig10-7.svg) > > > **சோதனை 10-4 ★★★: பல இணையதளங்களில் இருந்து ஒரே நேரத்தில் தகவல் சேகரிக்கும் ஏஜெண்ட்** @@ -450,7 +450,7 @@ return summarize_failures(workers) > 6. இணை மற்றும் தொடர் செயலாக்கத்திற்கு இடையேயான நேர வேறுபாட்டைப் பதிவுசெய்து ஒப்பிட்டு, இணைமயமாக்கல் கொண்டு வரும் செயல்திறன் முன்னேற்றத்தை சரிபார்க்கவும் > > -> ![படம் 10-9: இணை வலை ஸ்கிராப்பிங் கட்டமைப்பு](images/fig10-9.svg) +> ![படம் 10-8: இணை வலை ஸ்கிராப்பிங் கட்டமைப்பு](images/fig10-8.svg) > > @@ -480,7 +480,7 @@ else: **MetaGPT: SOP வழிநடத்தும் மென்பொருள் நிறுவனம் உருவகப்படுத்தல்.** -![படம் 10-11 MetaGPT பல-Agent ஒத்துழைப்பு வலை](images/fig10-11.svg) +![படம் 10-9 MetaGPT பல-Agent ஒத்துழைப்பு வலை](images/fig10-9.svg) MetaGPT மென்பொருள் நிறுவனத்தின் நிலையான செயல் முறைகளை குறியீடாக்குகிறது. Product Manager → Architect → Project Manager → Engineer → QA வரிசையில் பங்குகள் செயல்பட்டு, பணி மற்றும் ஏற்றுக்கொள்ளும் நிபந்தனைகள், உறுதிசெய்யப்பட்ட உண்மைகள் மற்றும் கட்டுப்பாடுகள், கோப்பு பாதை போன்ற கலைப்பொருள் குறிப்புகள் அடங்கிய கட்டமைக்கப்பட்ட handoff தொகுப்பை வழங்குகின்றன. பங்குகள் பகிரப்பட்ட செய்திக் குளத்தில் வெளியிட்டு, சந்தா செய்த வகைகளை மட்டும் வாசிக்கின்றன. அனுப்புநரும் பெறுநரும் தளர்வாக இணைக்கப்பட்டாலும் கட்டுப்பாட்டு ஓட்டம் SOP-ஆல் நிர்ணயிக்கப்படுகிறது; MetaGPT முழுமையாகப் பரவலாக்கப்படவில்லை. @@ -586,7 +586,7 @@ AI ஏஜெண்டுகளின் எண்ணிக்கை போது ### ஸ்டான்போர்டு AI டவுன்: ஜெனரேட்டிவ் ஏஜெண்டுகளின் சமூக உருவகப்படுத்துதல் -![படம் 10-12: AI டவுன் கட்டமைப்பு](images/fig10-12.svg) +![படம் 10-10: AI டவுன் கட்டமைப்பு](images/fig10-10.svg) 2023 ஆம் ஆண்டில், ஸ்டான்போர்டு பல்கலைக்கழகம் மற்றும் கூகிளைச் சேர்ந்த ஆராய்ச்சியாளர்கள் "ஜெனரேட்டிவ் ஏஜெண்டுகள்: மனித நடத்தையின் ஊடாடும் பிரதிபிம்பங்கள்" என்ற மைல்கல் ஆய்வுக் கட்டுரையை வெளியிட்டனர்; இது "ஜெனரேட்டிவ் ஏஜெண்டுகள்" என்ற கருத்தை அறிமுகப்படுத்தியது. முக்கியப் புதுமை: ஏஜெண்டுகளை முன்வரையறுக்கப்பட்ட பணிகளுக்குள் அடைத்து வைக்காமல், மனிதர்களை ஒத்த நினைவாற்றல், பிரதிபலிப்பு மற்றும் திட்டமிடல் திறன்களை அவற்றுக்கு வழங்கி, திறந்த சமூகச் சூழலில் அவை சுயாதீனமாக வாழவும், பழகவும், வளரவும் விடுவது. @@ -702,7 +702,7 @@ Pinchwork மற்றும் RentAHuman ஆகியவை சேர்ந் > > > -> ![படம் 10-13: குரல் வேர்வுல்ஃப் ஏஜெண்ட் அமைப்பு](images/fig10-13.svg) +> ![படம் 10-11: குரல் வேர்வுல்ஃப் ஏஜெண்ட் அமைப்பு](images/fig10-11.svg) > > diff --git a/book-ta/images/fig10-10.svg b/book-ta/images/fig10-10.svg index 091211019..c21e06d42 100644 --- a/book-ta/images/fig10-10.svg +++ b/book-ta/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -Requirements Analysis - -Output: Structured Requirements Document -spec.json -Handoff → - - -Agent B -Architecture Design - -Output: Technical Design Document -design.md -Handoff → - - -Agent C -Code Implementation - -Output: Source Code -src/*.py -Handoff → - - -Agent D -Testing and Validation - -Output: Test Report -test_report.md -Handoff → - -Handoff Content (Agent A → Agent B Example) -Trigger Condition: -A completes requirements document → is_complete=True -Target Agent: -target="architect" (Agent B) -Handoff Content: -files=[&quot;spec.json&quot;] + summary=&quot;E-commerce system: 3 microservices, REST API&quot; -Post-Handoff Status: -status=&quot;exit&quot; (release resources, do not remain on standby) - -Decentralization Advantages -✓ No central Manager needed to understand all roles -✓ Clear responsibility boundaries, interface decoupling -✓ Exit upon completion, release persistent resources - -Decentralization Limitations -✗ Lack of global optimization perspective -✗ Difficult exception handling (no central coordination) -✗ Fixed process, hard to dynamically adjust + +Isabella Rodriguez +Hobbs Cafe Owner +Hospitable and sociable + +Memory Stream +[08:30] Hobbs Cafe opens for business +importance: 4 recency: 0.9 +[09:15] Customer Klaus comes to buy coffee +importance: 5 recency: 0.85 +[10:00] Decide to hold a Valentine's Day party +importance: 9 recency: 0.8 +[11:30] Invite customer Maria to the party +importance: 8 recency: 0.7 +[14:00] Ask Maria to help decorate the venue +importance: 7 recency: 0.6 + +Reflection +"Who are Hobbs' regular customers?" +→ Maria, Klaus, Tom (frequent visitors) +"Who should I invite to the party?" +→ Invite both regulars and friends +"How far along is the party preparation?" +→ Several invited, venue still needs decoration +"Who can help me decorate the cafe?" +→ Maria (friend, willing to help) + +Planning and Action +08:00 Wake up + Breakfast +09:00 Hobbs opens for business +12:00 Invite customers while running the shop +14:00 Decorate the venue with Maria +16:00 Prepare refreshments and seating +← Dynamic adjustment +18:00 Hold Valentine's Day party at Hobbs + + +Retrieval + + +Drive + +Emergent behavior (25 Agents · 2 days virtual time) +▸ Spontaneous socializing +Multiple encounters → Friendship formation → Proactive meetups +▸ Information Propagation +Isabella's Valentine's party invitation spreads to multiple Agents +▸ Election Propagation +Sam's campaign for mayor spreads among Agents +▸ Relationship Memory +Remembers past conversations (e.g., photography project) and continues topics +All behaviors are not pre-programmed — emergent results of memory + reflection + social common sense reasoning \ No newline at end of file diff --git a/book-ta/images/fig10-11.svg b/book-ta/images/fig10-11.svg index cab484c74..1bfdece52 100644 --- a/book-ta/images/fig10-11.svg +++ b/book-ta/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Product Manager -Input: User requirement description - -Output: -Feature list + priority -User stories (5 items) -Acceptance criteria - -docs/PRD.md - - - -Architect -Input: PRD.md - -Output: -Tech stack: FastAPI+React -API specification (OpenAPI) -Database schema - -docs/design.md - - - -Project Manager -Input: design.md - -Output: -Task list + assignment -File-level allocation -Module dependency order - -docs/tasks.md - - - -Engineer ×3 -Input: tasks.md + design.md - -Output: -Module A: User service -Module B: Order service -Module C: Payment service - -src/*.py - - - -QA Engineer -Input: src/ + PRD.md - -Output: -Unit tests (pytest) -Integration tests (API) -Bug report → Engineer - -docs/test_report.md - -Bug fix - - -Shared project directory -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT core design -▸ Standardized documents -Each role outputs a clear format — downstream only needs to understand the format, not the upstream thinking process -▸ Interface decoupling -Improve Product Mgr (swap to a stronger model) as long as the output conforms to the PRD format, downstream zero modifications -▸ No Manager -Control flows naturally along the DAG: Product Mgr→Architect→Project Mgr→Engineer→QA -▸ Exception channel -QA test failure → Bug report routed back to Engineer by module → Iterative fix + +Judge (Code-Driven) +Game State · Phase Control · Information Distribution +Night → Day → Vote → Settle + +🐺 Werewolf 1 +Visible: Teammate Identities +Strategy: Disguise as Villager +Night: Choose Target + + +Mutual Knowledge + +🐺 Werewolf 2 +Visible: Teammate Identities +Strategy: Follow and Protect +Night: Negotiate Target + + +Mutual Knowledge + +🔮 Seer +Visible: Investigation Results +Strategy: Choose When to Reveal +Night: Investigate 1 Person + + +Investigation Results + +🧪 Witch +Visible: Death/Healing +Strategy: Preserve Potion/Antidote +Night: Save/Poison 1 Person + + +👤 Villager ×2 +Visible: Public Information Only +Strategy: Logical Reasoning +Day: Analyze Speech + + +Information Access Control: Judge Filters Context by Role +Werewolf: +All Werewolf Identities + Night Discussion + Public Speech +Seer: +Investigation Results (Only Self-Investigated) + Public Speech +Witch: +Night's Deceased + Antidote/Poison Status + Public Speech +Villager: +Public speech only + voting record (zero private information) + +Real-time voice interaction (ASR + LLM + TTS) +Day discussion +Judge manages speaking order +Speak in turn by seat +Voting phase +Collect all player votes +Count votes and announce results +Night phase +Judge wakes up roles in turn +Private voice channel +Human player +Randomly assign roles +Voice-based voting/speech \ No newline at end of file diff --git a/book-ta/images/fig10-12.svg b/book-ta/images/fig10-12.svg deleted file mode 100644 index c21e06d42..000000000 --- a/book-ta/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs Cafe Owner -Hospitable and sociable - -Memory Stream -[08:30] Hobbs Cafe opens for business -importance: 4 recency: 0.9 -[09:15] Customer Klaus comes to buy coffee -importance: 5 recency: 0.85 -[10:00] Decide to hold a Valentine's Day party -importance: 9 recency: 0.8 -[11:30] Invite customer Maria to the party -importance: 8 recency: 0.7 -[14:00] Ask Maria to help decorate the venue -importance: 7 recency: 0.6 - -Reflection -"Who are Hobbs' regular customers?" -→ Maria, Klaus, Tom (frequent visitors) -"Who should I invite to the party?" -→ Invite both regulars and friends -"How far along is the party preparation?" -→ Several invited, venue still needs decoration -"Who can help me decorate the cafe?" -→ Maria (friend, willing to help) - -Planning and Action -08:00 Wake up + Breakfast -09:00 Hobbs opens for business -12:00 Invite customers while running the shop -14:00 Decorate the venue with Maria -16:00 Prepare refreshments and seating -← Dynamic adjustment -18:00 Hold Valentine's Day party at Hobbs - - -Retrieval - - -Drive - -Emergent behavior (25 Agents · 2 days virtual time) -▸ Spontaneous socializing -Multiple encounters → Friendship formation → Proactive meetups -▸ Information Propagation -Isabella's Valentine's party invitation spreads to multiple Agents -▸ Election Propagation -Sam's campaign for mayor spreads among Agents -▸ Relationship Memory -Remembers past conversations (e.g., photography project) and continues topics -All behaviors are not pre-programmed — emergent results of memory + reflection + social common sense reasoning - \ No newline at end of file diff --git a/book-ta/images/fig10-13.svg b/book-ta/images/fig10-13.svg deleted file mode 100644 index 1bfdece52..000000000 --- a/book-ta/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Judge (Code-Driven) -Game State · Phase Control · Information Distribution -Night → Day → Vote → Settle - -🐺 Werewolf 1 -Visible: Teammate Identities -Strategy: Disguise as Villager -Night: Choose Target - - -Mutual Knowledge - -🐺 Werewolf 2 -Visible: Teammate Identities -Strategy: Follow and Protect -Night: Negotiate Target - - -Mutual Knowledge - -🔮 Seer -Visible: Investigation Results -Strategy: Choose When to Reveal -Night: Investigate 1 Person - - -Investigation Results - -🧪 Witch -Visible: Death/Healing -Strategy: Preserve Potion/Antidote -Night: Save/Poison 1 Person - - -👤 Villager ×2 -Visible: Public Information Only -Strategy: Logical Reasoning -Day: Analyze Speech - - -Information Access Control: Judge Filters Context by Role -Werewolf: -All Werewolf Identities + Night Discussion + Public Speech -Seer: -Investigation Results (Only Self-Investigated) + Public Speech -Witch: -Night's Deceased + Antidote/Poison Status + Public Speech -Villager: -Public speech only + voting record (zero private information) - -Real-time voice interaction (ASR + LLM + TTS) -Day discussion -Judge manages speaking order -Speak in turn by seat -Voting phase -Collect all player votes -Count votes and announce results -Night phase -Judge wakes up roles in turn -Private voice channel -Human player -Randomly assign roles -Voice-based voting/speech - \ No newline at end of file diff --git a/book-ta/images/fig10-2.svg b/book-ta/images/fig10-2.svg index ce7155867..67e6b2f93 100644 --- a/book-ta/images/fig10-2.svg +++ b/book-ta/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ - -Phase 1 -Requirements Analyst - -System prompt -&quot;Your responsibility is to fully understand the requirements. -Don't rush to implement at this stage -Your task is to ask questions and confirm.&quot; - -Tool set -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -Trigger conversion -complete_req_analysis() - - -Phase 2 -Software engineer - -System prompt -&quot;Write based on confirmed requirements -High-quality Python code. Follow -Modularization, error handling best practices." - -Tool set -write_file(path, content) -read_file(path) -execute_code(code) - -Trigger conversion -submit_for_review() - - -Phase 3 -Code reviewer - -System prompt -&quot;Evaluate code quality from multiple dimensions: -Functional correctness, code standards, -Security. Adopt critical thinking.&quot; - -Tool set -run_linter(file) -run_tests(file) -analyze_complexity(file) -Role switch: update system prompt + tool set, conversation history and state continuously preserved - \ No newline at end of file + + +Agent A + +Agent B + + + +Virtual File System / +Unified interface: read_file · write_file · list_dir + + + +User +Upload / Download + + + + + + + +Upload / Download + + + + + +Mount + + + + +Agent Private Workspace +/scratch/<id> +Scratchpad + +Private · Agent-only +Destroyed with instance +Read/Write · No concurrency control needed +One per Agent + + + +Multi-Agent Shared Space +/workspace/shared +Shared Workspace + +User-visible · Persistent +Read/Write · Concurrency control required +Optimistic lock · worktree + + + +External Mounted Resources +/mnt/gdrive · /mnt/notion +Via adapter + +Subject to external authorization +Mostly read-only · Write with caution +High latency · Weak consistency + + + +System Built-in Resources +/skills +Skills · Templates · Manuals + +Globally shared · Read-only +Stable across sessions +Progressive disclosure + + + +External Data Sources +Google Drive · Notion + + diff --git a/book-ta/images/fig10-3.svg b/book-ta/images/fig10-3.svg index 67e6b2f93..ec068f75b 100644 --- a/book-ta/images/fig10-3.svg +++ b/book-ta/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -Virtual File System / -Unified interface: read_file · write_file · list_dir - - - -User -Upload / Download - - - - - - - -Upload / Download - - - - - -Mount - - - - -Agent Private Workspace -/scratch/<id> -Scratchpad - -Private · Agent-only -Destroyed with instance -Read/Write · No concurrency control needed -One per Agent - - - -Multi-Agent Shared Space -/workspace/shared -Shared Workspace - -User-visible · Persistent -Read/Write · Concurrency control required -Optimistic lock · worktree - - - -External Mounted Resources -/mnt/gdrive · /mnt/notion -Via adapter - -Subject to external authorization -Mostly read-only · Write with caution -High latency · Weak consistency - - - -System Built-in Resources -/skills -Skills · Templates · Manuals - -Globally shared · Read-only -Stable across sessions -Progressive disclosure - - - -External Data Sources -Google Drive · Notion - - + +Proposer Agent +Input: Extended paper abstract (2000 words) + +--- +theme: academic +--- +# Transformer Attention Mechanism + +## Core Idea +- Self-attention computes Q·K^T/√d +- Multi-head attention parallel processing +Understand content structure → decompose into slide pages + +Reviewer Agent + +① Slidev rendering → PDF/PNG +② Vision LLM multi-dimensional evaluation + +Structured feedback: +Page Issue Type Severity +P3 Content dense High +P7 Font too small Medium +P11 Color mismatch Low +Rendering + visual analysis → actionable improvement suggestions + +Slidev code + +Structured feedback + +Iterative improvement process + +Round 1 +12-page draft +5 issues + + +Round 2 +14 pages (split dense pages) +2 issues + + +Round 3 +14 pages (font corrected) +0 issues ✓ + +Why not use a single agent? +Single agent: rendering images ×N rounds → context explosion +(1080p screenshot = thousands of tokens × 14 pages × 5 rounds) +Dual agent: Reviewer only sees current version +Proposer only accumulates text feedback → clean context + \ No newline at end of file diff --git a/book-ta/images/fig10-4.svg b/book-ta/images/fig10-4.svg index ec068f75b..bd60d4d7a 100644 --- a/book-ta/images/fig10-4.svg +++ b/book-ta/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -Input: Extended paper abstract (2000 words) - ---- -theme: academic ---- -# Transformer Attention Mechanism - -## Core Idea -- Self-attention computes Q·K^T/√d -- Multi-head attention parallel processing -Understand content structure → decompose into slide pages - -Reviewer Agent - -① Slidev rendering → PDF/PNG -② Vision LLM multi-dimensional evaluation - -Structured feedback: -Page Issue Type Severity -P3 Content dense High -P7 Font too small Medium -P11 Color mismatch Low -Rendering + visual analysis → actionable improvement suggestions - -Slidev code - -Structured feedback - -Iterative improvement process - -Round 1 -12-page draft -5 issues - - -Round 2 -14 pages (split dense pages) -2 issues - - -Round 3 -14 pages (font corrected) -0 issues ✓ - -Why not use a single agent? -Single agent: rendering images ×N rounds → context explosion -(1080p screenshot = thousands of tokens × 14 pages × 5 rounds) -Dual agent: Reviewer only sees current version -Proposer only accumulates text feedback → clean context + +Manager Agent +Task understanding → Decomposition → Scheduling → Synthesis +Tool set: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +Role: Data Collection +Search technical documentation +Extract key information + +Step 1 + + + +Sub-Agent B +Role: Analysis & Processing +Compare and analyze data +Generate statistical report + +Step 2 + + + +Sub-Agent C +Role: Report Generation +Write final report +Format output + +Step 3 + + +Sequential execution flow +Manager calls A +→ A returns data +→ Manager passes to B +→ B returns analysis +→ Manager passes to C +→ C returns report +Manager perspective: Calling Agent = Calling a tool (send request → receive response) \ No newline at end of file diff --git a/book-ta/images/fig10-5.svg b/book-ta/images/fig10-5.svg index bd60d4d7a..3c9636bdb 100644 --- a/book-ta/images/fig10-5.svg +++ b/book-ta/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Task understanding → Decomposition → Scheduling → Synthesis -Tool set: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -Role: Data Collection -Search technical documentation -Extract key information - -Step 1 - - - -Sub-Agent B -Role: Analysis & Processing -Compare and analyze data -Generate statistical report - -Step 2 - - - -Sub-Agent C -Role: Report Generation -Write final report -Format output - -Step 3 - - -Sequential execution flow -Manager calls A -→ A returns data -→ Manager passes to B -→ B returns analysis -→ Manager passes to C -→ C returns report -Manager perspective: Calling Agent = Calling a tool (send request → receive response) + +Manager Agent +Task Planning · Progress Monitoring · Exception Handling · Result Synthesis + +Glossary Agent +Glossary +Receive Full Book → Identify Technical Terms +Search Specialized Dictionaries + Translation Conventions +Output: glossary.json + +{"attention": "注意力", + "transformer": "Transformer", + "backprop": "反向传播"} + + +Translation Agent ×N +Chapter Translation +Input: Chapter + Glossary + Guide +Translate terms strictly according to glossary +Output: chapter{n}_zh.md + +"...attention mechanism computes the similarity of + Query·Key^T ..." + + +Proofreading Agent +Full Text Review +Scan and verify term consistency +Check fluency and readability +Output: review_report.md + +P3: "注意力"→"关注" inconsistency +P8: Long sentence suggested to split + + +Glossary + +Translation + +Shared File System +glossary.json +Glossary +chapter{1..10}_zh.md +Chapter Translation +review_report.md +Review Report +translation_guide.md +Translation Guide + +Context Isolation Advantages +Glossary: Only view terms | Translation: Only view current chapter + glossary | Manager: Only maintain file index \ No newline at end of file diff --git a/book-ta/images/fig10-6.svg b/book-ta/images/fig10-6.svg index 3c9636bdb..635fdde35 100644 --- a/book-ta/images/fig10-6.svg +++ b/book-ta/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Manager Agent -Task Planning · Progress Monitoring · Exception Handling · Result Synthesis - -Glossary Agent -Glossary -Receive Full Book → Identify Technical Terms -Search Specialized Dictionaries + Translation Conventions -Output: glossary.json - -{"attention": "注意力", - "transformer": "Transformer", - "backprop": "反向传播"} - - -Translation Agent ×N -Chapter Translation -Input: Chapter + Glossary + Guide -Translate terms strictly according to glossary -Output: chapter{n}_zh.md - -"...attention mechanism computes the similarity of - Query·Key^T ..." - - -Proofreading Agent -Full Text Review -Scan and verify term consistency -Check fluency and readability -Output: review_report.md - -P3: "注意力"→"关注" inconsistency -P8: Long sentence suggested to split - - -Glossary - -Translation - -Shared File System -glossary.json -Glossary -chapter{1..10}_zh.md -Chapter Translation -review_report.md -Review Report -translation_guide.md -Translation Guide - -Context Isolation Advantages -Glossary: Only view terms | Translation: Only view current chapter + glossary | Manager: Only maintain file index +Parallel Scheduling · Real-time Monitoring · Result Aggregation + +Message Bus + + +Agent 1 +Data Collection +Running ◎ +Independent Context + + +Agent 2 +Content Analysis +Running ◎ +Independent Context + + +Agent 3 +Chart Generation +Completed ✓ +Independent Context + + +Agent 4 +Format Validation +Waiting ○ +Independent Context + + +Message Bus Communication Example +Manager → Agent 1 +{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-ta/images/fig10-7.svg b/book-ta/images/fig10-7.svg index 635fdde35..39d474ffa 100644 --- a/book-ta/images/fig10-7.svg +++ b/book-ta/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Parallel Scheduling · Real-time Monitoring · Result Aggregation - -Message Bus - - -Agent 1 -Data Collection -Running ◎ -Independent Context - - -Agent 2 -Content Analysis -Running ◎ -Independent Context - - -Agent 3 -Chart Generation -Completed ✓ -Independent Context - - -Agent 4 -Format Validation -Waiting ○ -Independent Context - - -Message Bus Communication Example -Manager → Agent 1 -{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · Real-time Voice Call + +User Voice +Microphone Input + + +VAD + ASR +Silero VAD → STT Transcription + + +LLM Inference +Understand Intent + Extract Information + + +TTS Synthesis +Generate Voice Reply → Play + +Computer Agent +Python · Browser Automation + +Screenshot +Browser Current Page + + +Vision LLM +Understand Page Structure + Form Fields + + +Action Planning +Locate Fields → Plan Input Sequence + + +Execute Actions +Click / Input / Submit + +WebSocket Bidirectional Communication (ws://localhost:8849) + + + +Real-time Bidirectional Message Stream (Use Computer While on Call) +Phone → Computer +[FROM_PHONE_AGENT] User says name is Zhang San +Computer → Phone +[FROM_COMPUTER_AGENT] Name filled, need ID number +Phone → Computer +[FROM_PHONE_AGENT] ID number 310101199001011234 +Computer → Phone +[FROM_COMPUTER_AGENT] Form submitted, registration successful +Key: Two Agents Run Independent ReAct Loops in Parallel, Non-blocking \ No newline at end of file diff --git a/book-ta/images/fig10-8.svg b/book-ta/images/fig10-8.svg index 39d474ffa..1452c85e3 100644 --- a/book-ta/images/fig10-8.svg +++ b/book-ta/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · Real-time Voice Call - -User Voice -Microphone Input - - -VAD + ASR -Silero VAD → STT Transcription - - -LLM Inference -Understand Intent + Extract Information - - -TTS Synthesis -Generate Voice Reply → Play - -Computer Agent -Python · Browser Automation - -Screenshot -Browser Current Page - - -Vision LLM -Understand Page Structure + Form Fields - - -Action Planning -Locate Fields → Plan Input Sequence - - -Execute Actions -Click / Input / Submit - -WebSocket Bidirectional Communication (ws://localhost:8849) - - - -Real-time Bidirectional Message Stream (Use Computer While on Call) -Phone → Computer -[FROM_PHONE_AGENT] User says name is Zhang San -Computer → Phone -[FROM_COMPUTER_AGENT] Name filled, need ID number -Phone → Computer -[FROM_PHONE_AGENT] ID number 310101199001011234 -Computer → Phone -[FROM_COMPUTER_AGENT] Form submitted, registration successful -Key: Two Agents Run Independent ReAct Loops in Parallel, Non-blocking + +Manager Agent +Dynamic Creation · Real-time Monitoring · Cascading Termination + +Agent 1 +cs.edu.cn +Teacher Directory Search +Searching... ◎ + + +Agent 2 +math.edu.cn +Teacher Directory Search +Not Found ✗ + + +Agent 3 +phys.edu.cn +Teacher Directory Search +Found! ✓ + + +Agent 4 +chem.edu.cn +Teacher Directory Search +Terminated ⊘ + + +Agent 5 … 10 +… (10 total) +Teacher Directory Search +Terminated ⊘ + + +Cascading Termination Sequence +t=0s +Start 10 Agents +Parallel search for "Zhang Wei" + +t=12s +Agent 2 completes +Not found → exit + +t=18s +Agent 3 found! +Send target_found + +t=18.1s +Manager broadcasts terminate +To remaining running Agents + +t=19s +All confirm termination +Aggregate results and return + +Result found +Name: Zhang Wei School: School of Physics +Position: Professor Field: Quantum Computing +Email: zhangwei@phys.edu.cn + +Performance Comparison +Serial: 10 websites × 30s = ~5 minutes +Parallel: 18s to find + 1s to terminate = 19s +Speedup: ~15× (with cascading termination optimization) \ No newline at end of file diff --git a/book-ta/images/fig10-9.svg b/book-ta/images/fig10-9.svg index 1452c85e3..cab484c74 100644 --- a/book-ta/images/fig10-9.svg +++ b/book-ta/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Manager Agent -Dynamic Creation · Real-time Monitoring · Cascading Termination - -Agent 1 -cs.edu.cn -Teacher Directory Search -Searching... ◎ - - -Agent 2 -math.edu.cn -Teacher Directory Search -Not Found ✗ - - -Agent 3 -phys.edu.cn -Teacher Directory Search -Found! ✓ - - -Agent 4 -chem.edu.cn -Teacher Directory Search -Terminated ⊘ - - -Agent 5 … 10 -… (10 total) -Teacher Directory Search -Terminated ⊘ - - -Cascading Termination Sequence -t=0s -Start 10 Agents -Parallel search for "Zhang Wei" - -t=12s -Agent 2 completes -Not found → exit - -t=18s -Agent 3 found! -Send target_found - -t=18.1s -Manager broadcasts terminate -To remaining running Agents - -t=19s -All confirm termination -Aggregate results and return - -Result found -Name: Zhang Wei School: School of Physics -Position: Professor Field: Quantum Computing -Email: zhangwei@phys.edu.cn - -Performance Comparison -Serial: 10 websites × 30s = ~5 minutes -Parallel: 18s to find + 1s to terminate = 19s -Speedup: ~15× (with cascading termination optimization) + +Product Manager +Input: User requirement description + +Output: +Feature list + priority +User stories (5 items) +Acceptance criteria + +docs/PRD.md + + + +Architect +Input: PRD.md + +Output: +Tech stack: FastAPI+React +API specification (OpenAPI) +Database schema + +docs/design.md + + + +Project Manager +Input: design.md + +Output: +Task list + assignment +File-level allocation +Module dependency order + +docs/tasks.md + + + +Engineer ×3 +Input: tasks.md + design.md + +Output: +Module A: User service +Module B: Order service +Module C: Payment service + +src/*.py + + + +QA Engineer +Input: src/ + PRD.md + +Output: +Unit tests (pytest) +Integration tests (API) +Bug report → Engineer + +docs/test_report.md + +Bug fix + + +Shared project directory +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT core design +▸ Standardized documents +Each role outputs a clear format — downstream only needs to understand the format, not the upstream thinking process +▸ Interface decoupling +Improve Product Mgr (swap to a stronger model) as long as the output conforms to the PRD format, downstream zero modifications +▸ No Manager +Control flows naturally along the DAG: Product Mgr→Architect→Project Mgr→Engineer→QA +▸ Exception channel +QA test failure → Bug report routed back to Engineer by module → Iterative fix \ No newline at end of file diff --git a/book-ta/images/fig10-sequential-handoff.svg b/book-ta/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..091211019 --- /dev/null +++ b/book-ta/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +Requirements Analysis + +Output: Structured Requirements Document +spec.json +Handoff → + + +Agent B +Architecture Design + +Output: Technical Design Document +design.md +Handoff → + + +Agent C +Code Implementation + +Output: Source Code +src/*.py +Handoff → + + +Agent D +Testing and Validation + +Output: Test Report +test_report.md +Handoff → + +Handoff Content (Agent A → Agent B Example) +Trigger Condition: +A completes requirements document → is_complete=True +Target Agent: +target="architect" (Agent B) +Handoff Content: +files=[&quot;spec.json&quot;] + summary=&quot;E-commerce system: 3 microservices, REST API&quot; +Post-Handoff Status: +status=&quot;exit&quot; (release resources, do not remain on standby) + +Decentralization Advantages +✓ No central Manager needed to understand all roles +✓ Clear responsibility boundaries, interface decoupling +✓ Exit upon completion, release persistent resources + +Decentralization Limitations +✗ Lack of global optimization perspective +✗ Difficult exception handling (no central coordination) +✗ Fixed process, hard to dynamically adjust + \ No newline at end of file diff --git a/book-ta/images/fig10-stage-switching.svg b/book-ta/images/fig10-stage-switching.svg new file mode 100644 index 000000000..ce7155867 --- /dev/null +++ b/book-ta/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ + +Phase 1 +Requirements Analyst + +System prompt +&quot;Your responsibility is to fully understand the requirements. +Don't rush to implement at this stage +Your task is to ask questions and confirm.&quot; + +Tool set +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +Trigger conversion +complete_req_analysis() + + +Phase 2 +Software engineer + +System prompt +&quot;Write based on confirmed requirements +High-quality Python code. Follow +Modularization, error handling best practices." + +Tool set +write_file(path, content) +read_file(path) +execute_code(code) + +Trigger conversion +submit_for_review() + + +Phase 3 +Code reviewer + +System prompt +&quot;Evaluate code quality from multiple dimensions: +Functional correctness, code standards, +Security. Adopt critical thinking.&quot; + +Tool set +run_linter(file) +run_tests(file) +analyze_complexity(file) +Role switch: update system prompt + tool set, conversation history and state continuously preserved + \ No newline at end of file diff --git a/book-ta/images/fig8-1.svg b/book-ta/images/fig8-1.svg index 300b65ed8..5b5c62a66 100644 --- a/book-ta/images/fig8-1.svg +++ b/book-ta/images/fig8-1.svg @@ -1,26 +1,54 @@ - - - -Complete task -Generate raw -experience - -Refine experience -Summarize, -compress, structure - - -Store in external system -Knowledge base/tools, -retrievable - - -Retrieve and -reuse -Invoke in next task - - - - -Experience accumulates persistently, reused across sessions - \ No newline at end of file + + + + + + + + + தொடர் பரிணாமம்: இயக்க அனுபவத்திலிருந்து புதிய Agent பதிப்பிற்கு + + + பணியை இயக்கு + பயனர், சூழல்,கருவிகளுடன் இடைவினை + + + பாதையைப் பதிவு செய் + செயல்கள், முடிவுகள்,பின்னூட்டம் + + + சமிக்ஞைகளை உருவாக்கு + முடிவு · செயல்முறை · தரம் + + + வேட்பாளர் புதுப்பிப்புகளை உருவாக்கு + + + + + அறிவு + அறிவுறுத்தல்கள் + நிரல்கள் + அளபுருக்கள் + + + சரிபார்த்து வெளியிடு + பின்னடைவு, படிப்படியானவெளியீடு, பின்வாங்கல் + + + + + + + + புதிய Agent அடுத்த சுற்றுக்குள் நுழைகிறது + பிந்தைய நடத்தையை மாற்றி சரிபார்ப்பில் தேறும் புதுப்பிப்புகள் மட்டுமே தொடர் பரிணாமம் ஆகும் + + diff --git a/book-tr/chapter10.tr.md b/book-tr/chapter10.tr.md index c437f9b5a..6653f2d97 100644 --- a/book-tr/chapter10.tr.md +++ b/book-tr/chapter10.tr.md @@ -164,10 +164,10 @@ Bu bölümün başında "paylaşılan dosya sistemi", paylaşılmayan context'in **Dört, Sistemle Gelen Kaynaklar (Built-in System Resources)**. Sistemin önceden yerleştirdiği, bütün Agent'lara salt okunur biçimde paylaştırılan kaynak paketleridir; tipik örneği Bölüm 2 ve Bölüm 4'te tanıtılan **Skills**'tir — dosya biçiminde örgütlenmiş bilgi dokümanları ve betikler, `/skills` gibi yollara bağlanır ve aşamalı açığa çıkarmayla (önce dizin, sonra ihtiyaç oldukça açma) kullanılır; bunun dışında başvuru kılavuzları, şablon kitaplıkları ve paylaşılan araç tanımları da bu kapsamdadır. Bu katman küresel olarak paylaşılır, salt okunurdur, oturumlar arası kararlıdır ve eşzamanlılık denetimi gerekmeden bütün Agent'lar tarafından eşzamanlı okunabilir. -Şekil 10-3, bu dört bölgenin aynı dizin ağacı altında tek tip biçimde bağlanmış yapısını gösterir: Agent bütün ağaca tek tip arayüzle erişir, kullanıcı paylaşılan alandan dosya yükleyip indirir, dış veri kaynakları adaptörle bağlanır, sistemle gelen kaynaklar ise salt okunur biçimde sunulur. +Şekil 10-2, bu dört bölgenin aynı dizin ağacı altında tek tip biçimde bağlanmış yapısını gösterir: Agent bütün ağaca tek tip arayüzle erişir, kullanıcı paylaşılan alandan dosya yükleyip indirir, dış veri kaynakları adaptörle bağlanır, sistemle gelen kaynaklar ise salt okunur biçimde sunulur. -![Şekil 10-3: Agent Sanal Dosya Sisteminin Dört Bölge Türünün Bağlanma Yapısı](images/fig10-3.svg) +![Şekil 10-2: Agent Sanal Dosya Sisteminin Dört Bölge Türünün Bağlanma Yapısı](images/fig10-2.svg) Tablo 10-4, bu dört bölgeyi görünürlük, yaşam döngüsü, okuma-yazma izni ve eşzamanlılık denetimi olmak üzere dört boyutta karşılaştırır; dosya sistemi yerleşimi tasarımı için kontrol listesi olarak kullanılabilir. @@ -249,7 +249,7 @@ Agent yine akıl yürütür, araçları kullanır ve aday çıktılar üretir. L **Proposer-Reviewer paradigması.** -![Şekil 10-4: Proposer-Reviewer Döngüsü](images/fig10-4.svg) +![Şekil 10-3: Proposer-Reviewer Döngüsü](images/fig10-3.svg) Proposer-Reviewer, eşler arası iş birliğinin en klasik paradigmasıdır. Bölüm 5, bu paradigmanın tasarım ilkelerini ve saha uygulamasını PPT üretimi, video düzenleme ve günlük görselleştirme olmak üzere üç deneyde ayrıntılı olarak tanıtmıştı: Proposer Agent kodu üretir, Reviewer Agent yürütme sonucunu render edip Vision LLM ile kaliteyi değerlendirir ve yapılandırılmış iyileştirme önerileri verir; ikisi sonuç istenen düzeye gelene kadar tekrar tekrar yineler. @@ -330,7 +330,7 @@ return summarize_failures(workers) **Sıralı koordinasyon biçimi.** -![Şekil 10-5: Manager Sıralı Koordinasyonu](images/fig10-5.svg) +![Şekil 10-4: Manager Sıralı Koordinasyonu](images/fig10-4.svg) Manager, uzman Agent'ları sırayla birbiri ardına çağırır; her Agent tamamlandığında sonucunu döndürür, Manager da bir sonraki adıma karar verir. Kontrol akışı doğrusal, basit ve nettir; alt görevler arasında açık bir öncelik-sonralık bağımlılığı bulunan senaryolara uygundur. @@ -359,14 +359,14 @@ Manager, uzman Agent'ları sırayla birbiri ardına çağırır; her Agent tamam > 4. Tek Agent ile yönetici modelini çeviri kalitesi, yürütme verimliliği ve kaynak tüketimi açısından karşılaştırın > > -> ![Şekil 10-6: Kitap Çeviri Agent'ı Mimarisi](images/fig10-6.svg) +> ![Şekil 10-5: Kitap Çeviri Agent'ı Mimarisi](images/fig10-5.svg) > > **Paralel koordinasyon biçimi.** -![Şekil 10-7: Manager Paralel Koordinasyonu](images/fig10-7.svg) +![Şekil 10-6: Manager Paralel Koordinasyonu](images/fig10-6.svg) Birden çok alt görev paralel yürütülebiliyorsa sıralı model verimsiz kalır. Paralel koordinasyon, birden çok Agent'ın aynı anda çalışmasına izin vererek iş hacmini büyük ölçüde artırır. Manager Agent yalnızca paralel görevleri planlamakla kalmaz; çalışan bütün Agent'ları gerçek zamanlı izlemeli, iletişimi koordine etmeli ve bir Agent başarılı ya da başarısız olduğunda sistem çapında karar vermelidir. Bu genellikle altyapı olarak bir **message bus** (mesaj veri yolu) gerektirir — bunu bir "kamuya açık ilan panosu" gibi düşünebilirsiniz: Agent'lar panoya mesaj asabilir (yayımlama), ilgilendikleri mesaj türlerini takibe alabilir (abonelik) ve böylece birbirini bloke etmeden asenkron iletişim kurabilir. Yaygın uygulamalar karmaşıklığa göre iki gruba ayrılır: **Redis Pub/Sub** hafiftir, mesaj gönderildiği anda teslim edilir, kullanımı basittir; kusuru kalıcılık sağlamamasıdır — alıcı o sırada çevrimiçi değilse mesaj kaybolur. **RabbitMQ** gibi mesaj kuyrukları ise mesajları diske kaydeder, böylece alıcı geçici olarak çevrimdışı olsa bile mesaj kaybolmaz. Mesaj biçimi genelde göndericinin kimliğini, hedef Agent'ı (ya da herkese yayın işaretini), mesaj türünü ve JSON biçimindeki veri içeriğini kapsar. @@ -424,7 +424,7 @@ Birden çok alt görev paralel yürütülebiliyorsa sıralı model verimsiz kal > 4. İş birliği sürecindeki mesaj zaman sırasını ve Agent'ların kilit karar noktalarını kaydedin > > -> ![Şekil 10-8: Phone ve Computer İkili Agent Mimarisi](images/fig10-8.svg) +> ![Şekil 10-7: Phone ve Computer İkili Agent Mimarisi](images/fig10-7.svg) > > > **Deney 10-4 ★★★: Aynı Anda Birden Çok Siteden Bilgi Toplayan Agent** @@ -456,7 +456,7 @@ Birden çok alt görev paralel yürütülebiliyorsa sıralı model verimsiz kal > 6. Paralel ve sıralı yürütme arasındaki süre farkını kaydedip karşılaştırın, paralelleştirmenin getirdiği performans kazancını doğrulayın > > -> ![Şekil 10-9: Paralel Web Scraping Mimarisi](images/fig10-9.svg) +> ![Şekil 10-8: Paralel Web Scraping Mimarisi](images/fig10-8.svg) > > @@ -486,7 +486,7 @@ else: **MetaGPT: SOP güdümlü yazılım şirketi simülasyonu.** -![Şekil 10-11 MetaGPT çoklu Agent iş birliği ağı](images/fig10-11.svg) +![Şekil 10-9 MetaGPT çoklu Agent iş birliği ağı](images/fig10-9.svg) MetaGPT bir yazılım şirketinin standart çalışma prosedürlerini kodlar. Roller Product Manager → Architect → Project Manager → Engineer → QA sırasıyla çalışır ve her biri yapılandırılmış bir devir paketi üretir: görev ile kabul ölçütleri, doğrulanmış olgular ve kısıtlar, dosya yolları gibi ürün referansları. Roller ortak mesaj havuzuna yayın yapar ve yalnızca abone oldukları türleri alır. Gönderen ile alıcı gevşek bağlanır, ancak kontrol akışını SOP sabitler; MetaGPT tümüyle merkezsiz değildir. @@ -592,7 +592,7 @@ Bu kısımdaki örnekler üç boyuttan okunabilir: ### Stanford AI Kasabası: Üretken Agent'ların Toplumsal Simülasyonu -![Şekil 10-12: AI Kasabası Mimarisi](images/fig10-12.svg) +![Şekil 10-10: AI Kasabası Mimarisi](images/fig10-10.svg) 2023'te Stanford Üniversitesi ile Google araştırma ekibi, dönüm noktası niteliğindeki "Generative Agents: Interactive Simulacra of Human Behavior" makalesini yayımlayarak "üretken Agent" (Generative Agent) kavramını ortaya koydu. Temel yenilik, Agent'ı önceden tanımlanmış görevleri tamamlamakla sınırlamak yerine ona insana yakın bellek, kendini değerlendirme ve planlama yetenekleri vermek ve böylece açık bir toplumsal ortamda kendi başına yaşayabilmesini, sosyalleşebilmesini ve gelişebilmesini sağlamaktır. @@ -708,7 +708,7 @@ Kurt adam, bu kısımdaki üç boyuttan **stratejik oyunu** temsil eder: kural k > > > -> ![Şekil 10-13: Sesli Kurt Adam Agent Sistemi](images/fig10-13.svg) +> ![Şekil 10-11: Sesli Kurt Adam Agent Sistemi](images/fig10-11.svg) > > diff --git a/book-tr/images/fig10-10.svg b/book-tr/images/fig10-10.svg index c27bb4482..65131d1e1 100644 --- a/book-tr/images/fig10-10.svg +++ b/book-tr/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -Requirements Analysis - -Output: Structured Requirements Document -spec.json -Handoff → - - -Agent B -Architecture Design - -Output: Technical Design Document -design.md -Handoff → - - -Agent C -Code Implementation - -Output: Source Code -src/*.py -Handoff → - - -Agent D -Testing and Validation - -Output: Test Report -test_report.md -Handoff → - -Handoff Content (Agent A → Agent B Example) -Trigger Condition: -A completes requirements document → is_complete=True -Target Agent: -target="architect" (Agent B) -Handoff Content: -files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" -Post-Handoff Status: -status="exit" (release resources, do not remain on standby) - -Decentralization Advantages -✓ No central Manager needed to understand all roles -✓ Clear responsibility boundaries, interface decoupling -✓ Exit upon completion, release persistent resources - -Decentralization Limitations -✗ Lack of global optimization perspective -✗ Difficult exception handling (no central coordination) -✗ Fixed process, hard to dynamically adjust + +Isabella Rodriguez +Hobbs Cafe Owner +Hospitable and sociable + +Memory Stream +[08:30] Hobbs Cafe opens for business +importance: 4 recency: 0.9 +[09:15] Customer Klaus comes to buy coffee +importance: 5 recency: 0.85 +[10:00] Decide to hold a Valentine's Day party +importance: 9 recency: 0.8 +[11:30] Invite customer Maria to the party +importance: 8 recency: 0.7 +[14:00] Ask Maria to help decorate the venue +importance: 7 recency: 0.6 + +Reflection +"Who are Hobbs' regular customers?" +→ Maria, Klaus, Tom (frequent visitors) +"Who should I invite to the party?" +→ Invite both regulars and friends +"How far along is the party preparation?" +→ Several invited, venue still needs decoration +"Who can help me decorate the cafe?" +→ Maria (friend, willing to help) + +Planning and Action +08:00 Wake up + Breakfast +09:00 Hobbs opens for business +12:00 Invite customers while running the shop +14:00 Decorate the venue with Maria +16:00 Prepare refreshments and seating +← Dynamic adjustment +18:00 Hold Valentine's Day party at Hobbs + + +Retrieval + + +Drive + +Emergent behavior (25 Agents · 2 days virtual time) +▸ Spontaneous socializing +Encounters → friendship → meetups +▸ Information Propagation +Party invite spreads to many Agents +▸ Election Propagation +Mayor campaign spreads among Agents +▸ Relationship Memory +Remembers past chats, continues topics +All behaviors are not pre-programmed — emergent results of memory + reflection + social common sense reasoning \ No newline at end of file diff --git a/book-tr/images/fig10-11.svg b/book-tr/images/fig10-11.svg index e54d59cc5..1aa584391 100644 --- a/book-tr/images/fig10-11.svg +++ b/book-tr/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Product Manager -Input: User requirement description - -Output: -Feature list + priority -User stories (5 items) -Acceptance criteria - -docs/PRD.md - - - -Architect -Input: PRD.md - -Output: -Tech stack: FastAPI+React -API specification (OpenAPI) -Database schema - -docs/design.md - - - -Project Manager -Input: design.md - -Output: -Task list + assignment -File-level allocation -Module dependency order - -docs/tasks.md - - - -Engineer ×3 -Input: tasks.md + design.md - -Output: -Module A: User service -Module B: Order service -Module C: Payment service - -src/*.py - - - -QA Engineer -Input: src/ + PRD.md - -Output: -Unit tests (pytest) -Integration tests (API) -Bug report → Engineer - -docs/test_report.md - -Bug fix - - -Shared project directory -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT core design -▸ Standardized documents -Each role emits a fixed format; downstream needs the format, not the reasoning -▸ Interface decoupling -Swap in a stronger Product Mgr; if output keeps PRD format, downstream is unchanged -▸ No Manager -Control flows along the DAG: Product Mgr→Architect→Project Mgr→Engineer→QA -▸ Exception channel -QA failure → bug report routed back to Engineer by module → iterative fix + +Judge (Code-Driven) +Game State · Phase Control · Information Distribution +Night → Day → Vote → Settle + +🐺 Werewolf 1 +Visible: Teammate Identities +Strategy: Disguise as Villager +Night: Choose Target + + +Mutual Knowledge + +🐺 Werewolf 2 +Visible: Teammate Identities +Strategy: Follow and Protect +Night: Negotiate Target + + +Mutual Knowledge + +🔮 Seer +Visible: Investigation Results +Strategy: Choose When to Reveal +Night: Investigate 1 Person + + +Investigation Results + +🧪 Witch +Visible: Death/Healing +Strategy: Preserve Potion/Antidote +Night: Save/Poison 1 Person + + +👤 Villager ×2 +Visible: Public Information Only +Strategy: Logical Reasoning +Day: Analyze Speech + + +Information Access Control: Judge Filters Context by Role +Werewolf: +Ally IDs + night talk + public speech +Seer: +Own check results + public speech +Witch: +Deaths + potion status + public speech +Villager: +Public speech + votes only + +Real-time voice interaction (ASR + LLM + TTS) +Day discussion +Judge sets speak order +Speak in turn by seat +Voting phase +Collect player votes +Count + announce votes +Night phase +Wake roles in turn +Private voice channel +Human player +Randomly assign roles +Voice voting/speech \ No newline at end of file diff --git a/book-tr/images/fig10-12.svg b/book-tr/images/fig10-12.svg deleted file mode 100644 index 65131d1e1..000000000 --- a/book-tr/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs Cafe Owner -Hospitable and sociable - -Memory Stream -[08:30] Hobbs Cafe opens for business -importance: 4 recency: 0.9 -[09:15] Customer Klaus comes to buy coffee -importance: 5 recency: 0.85 -[10:00] Decide to hold a Valentine's Day party -importance: 9 recency: 0.8 -[11:30] Invite customer Maria to the party -importance: 8 recency: 0.7 -[14:00] Ask Maria to help decorate the venue -importance: 7 recency: 0.6 - -Reflection -"Who are Hobbs' regular customers?" -→ Maria, Klaus, Tom (frequent visitors) -"Who should I invite to the party?" -→ Invite both regulars and friends -"How far along is the party preparation?" -→ Several invited, venue still needs decoration -"Who can help me decorate the cafe?" -→ Maria (friend, willing to help) - -Planning and Action -08:00 Wake up + Breakfast -09:00 Hobbs opens for business -12:00 Invite customers while running the shop -14:00 Decorate the venue with Maria -16:00 Prepare refreshments and seating -← Dynamic adjustment -18:00 Hold Valentine's Day party at Hobbs - - -Retrieval - - -Drive - -Emergent behavior (25 Agents · 2 days virtual time) -▸ Spontaneous socializing -Encounters → friendship → meetups -▸ Information Propagation -Party invite spreads to many Agents -▸ Election Propagation -Mayor campaign spreads among Agents -▸ Relationship Memory -Remembers past chats, continues topics -All behaviors are not pre-programmed — emergent results of memory + reflection + social common sense reasoning - \ No newline at end of file diff --git a/book-tr/images/fig10-13.svg b/book-tr/images/fig10-13.svg deleted file mode 100644 index 1aa584391..000000000 --- a/book-tr/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Judge (Code-Driven) -Game State · Phase Control · Information Distribution -Night → Day → Vote → Settle - -🐺 Werewolf 1 -Visible: Teammate Identities -Strategy: Disguise as Villager -Night: Choose Target - - -Mutual Knowledge - -🐺 Werewolf 2 -Visible: Teammate Identities -Strategy: Follow and Protect -Night: Negotiate Target - - -Mutual Knowledge - -🔮 Seer -Visible: Investigation Results -Strategy: Choose When to Reveal -Night: Investigate 1 Person - - -Investigation Results - -🧪 Witch -Visible: Death/Healing -Strategy: Preserve Potion/Antidote -Night: Save/Poison 1 Person - - -👤 Villager ×2 -Visible: Public Information Only -Strategy: Logical Reasoning -Day: Analyze Speech - - -Information Access Control: Judge Filters Context by Role -Werewolf: -Ally IDs + night talk + public speech -Seer: -Own check results + public speech -Witch: -Deaths + potion status + public speech -Villager: -Public speech + votes only - -Real-time voice interaction (ASR + LLM + TTS) -Day discussion -Judge sets speak order -Speak in turn by seat -Voting phase -Collect player votes -Count + announce votes -Night phase -Wake roles in turn -Private voice channel -Human player -Randomly assign roles -Voice voting/speech - \ No newline at end of file diff --git a/book-tr/images/fig10-2.svg b/book-tr/images/fig10-2.svg index 6560f228f..67e6b2f93 100644 --- a/book-tr/images/fig10-2.svg +++ b/book-tr/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ - -Phase 1 -Requirements Analyst - -System prompt -"Your responsibility is to fully understand the requirements. -Don't rush to implement at this stage -Your task is to ask questions and confirm." - -Tool set -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -Trigger conversion -complete_req_analysis() - - -Phase 2 -Software engineer - -System prompt -"Write based on confirmed requirements -High-quality Python code. Follow -Modularization, error handling best practices." - -Tool set -write_file(path, content) -read_file(path) -execute_code(code) - -Trigger conversion -submit_for_review() - - -Phase 3 -Code reviewer - -System prompt -"Evaluate code quality from multiple dimensions: -Functional correctness, code standards, -Security. Adopt critical thinking." - -Tool set -run_linter(file) -run_tests(file) -analyze_complexity(file) -Role switch: update system prompt + tool set, conversation history and state continuously preserved - \ No newline at end of file + + +Agent A + +Agent B + + + +Virtual File System / +Unified interface: read_file · write_file · list_dir + + + +User +Upload / Download + + + + + + + +Upload / Download + + + + + +Mount + + + + +Agent Private Workspace +/scratch/<id> +Scratchpad + +Private · Agent-only +Destroyed with instance +Read/Write · No concurrency control needed +One per Agent + + + +Multi-Agent Shared Space +/workspace/shared +Shared Workspace + +User-visible · Persistent +Read/Write · Concurrency control required +Optimistic lock · worktree + + + +External Mounted Resources +/mnt/gdrive · /mnt/notion +Via adapter + +Subject to external authorization +Mostly read-only · Write with caution +High latency · Weak consistency + + + +System Built-in Resources +/skills +Skills · Templates · Manuals + +Globally shared · Read-only +Stable across sessions +Progressive disclosure + + + +External Data Sources +Google Drive · Notion + + diff --git a/book-tr/images/fig10-3.svg b/book-tr/images/fig10-3.svg index 67e6b2f93..ec068f75b 100644 --- a/book-tr/images/fig10-3.svg +++ b/book-tr/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -Virtual File System / -Unified interface: read_file · write_file · list_dir - - - -User -Upload / Download - - - - - - - -Upload / Download - - - - - -Mount - - - - -Agent Private Workspace -/scratch/<id> -Scratchpad - -Private · Agent-only -Destroyed with instance -Read/Write · No concurrency control needed -One per Agent - - - -Multi-Agent Shared Space -/workspace/shared -Shared Workspace - -User-visible · Persistent -Read/Write · Concurrency control required -Optimistic lock · worktree - - - -External Mounted Resources -/mnt/gdrive · /mnt/notion -Via adapter - -Subject to external authorization -Mostly read-only · Write with caution -High latency · Weak consistency - - - -System Built-in Resources -/skills -Skills · Templates · Manuals - -Globally shared · Read-only -Stable across sessions -Progressive disclosure - - - -External Data Sources -Google Drive · Notion - - + +Proposer Agent +Input: Extended paper abstract (2000 words) + +--- +theme: academic +--- +# Transformer Attention Mechanism + +## Core Idea +- Self-attention computes Q·K^T/√d +- Multi-head attention parallel processing +Understand content structure → decompose into slide pages + +Reviewer Agent + +① Slidev rendering → PDF/PNG +② Vision LLM multi-dimensional evaluation + +Structured feedback: +Page Issue Type Severity +P3 Content dense High +P7 Font too small Medium +P11 Color mismatch Low +Rendering + visual analysis → actionable improvement suggestions + +Slidev code + +Structured feedback + +Iterative improvement process + +Round 1 +12-page draft +5 issues + + +Round 2 +14 pages (split dense pages) +2 issues + + +Round 3 +14 pages (font corrected) +0 issues ✓ + +Why not use a single agent? +Single agent: rendering images ×N rounds → context explosion +(1080p screenshot = thousands of tokens × 14 pages × 5 rounds) +Dual agent: Reviewer only sees current version +Proposer only accumulates text feedback → clean context + \ No newline at end of file diff --git a/book-tr/images/fig10-4.svg b/book-tr/images/fig10-4.svg index ec068f75b..bd60d4d7a 100644 --- a/book-tr/images/fig10-4.svg +++ b/book-tr/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -Input: Extended paper abstract (2000 words) - ---- -theme: academic ---- -# Transformer Attention Mechanism - -## Core Idea -- Self-attention computes Q·K^T/√d -- Multi-head attention parallel processing -Understand content structure → decompose into slide pages - -Reviewer Agent - -① Slidev rendering → PDF/PNG -② Vision LLM multi-dimensional evaluation - -Structured feedback: -Page Issue Type Severity -P3 Content dense High -P7 Font too small Medium -P11 Color mismatch Low -Rendering + visual analysis → actionable improvement suggestions - -Slidev code - -Structured feedback - -Iterative improvement process - -Round 1 -12-page draft -5 issues - - -Round 2 -14 pages (split dense pages) -2 issues - - -Round 3 -14 pages (font corrected) -0 issues ✓ - -Why not use a single agent? -Single agent: rendering images ×N rounds → context explosion -(1080p screenshot = thousands of tokens × 14 pages × 5 rounds) -Dual agent: Reviewer only sees current version -Proposer only accumulates text feedback → clean context + +Manager Agent +Task understanding → Decomposition → Scheduling → Synthesis +Tool set: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +Role: Data Collection +Search technical documentation +Extract key information + +Step 1 + + + +Sub-Agent B +Role: Analysis & Processing +Compare and analyze data +Generate statistical report + +Step 2 + + + +Sub-Agent C +Role: Report Generation +Write final report +Format output + +Step 3 + + +Sequential execution flow +Manager calls A +→ A returns data +→ Manager passes to B +→ B returns analysis +→ Manager passes to C +→ C returns report +Manager perspective: Calling Agent = Calling a tool (send request → receive response) \ No newline at end of file diff --git a/book-tr/images/fig10-5.svg b/book-tr/images/fig10-5.svg index bd60d4d7a..3c9636bdb 100644 --- a/book-tr/images/fig10-5.svg +++ b/book-tr/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Task understanding → Decomposition → Scheduling → Synthesis -Tool set: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -Role: Data Collection -Search technical documentation -Extract key information - -Step 1 - - - -Sub-Agent B -Role: Analysis & Processing -Compare and analyze data -Generate statistical report - -Step 2 - - - -Sub-Agent C -Role: Report Generation -Write final report -Format output - -Step 3 - - -Sequential execution flow -Manager calls A -→ A returns data -→ Manager passes to B -→ B returns analysis -→ Manager passes to C -→ C returns report -Manager perspective: Calling Agent = Calling a tool (send request → receive response) + +Manager Agent +Task Planning · Progress Monitoring · Exception Handling · Result Synthesis + +Glossary Agent +Glossary +Receive Full Book → Identify Technical Terms +Search Specialized Dictionaries + Translation Conventions +Output: glossary.json + +{"attention": "注意力", + "transformer": "Transformer", + "backprop": "反向传播"} + + +Translation Agent ×N +Chapter Translation +Input: Chapter + Glossary + Guide +Translate terms strictly according to glossary +Output: chapter{n}_zh.md + +"...attention mechanism computes the similarity of + Query·Key^T ..." + + +Proofreading Agent +Full Text Review +Scan and verify term consistency +Check fluency and readability +Output: review_report.md + +P3: "注意力"→"关注" inconsistency +P8: Long sentence suggested to split + + +Glossary + +Translation + +Shared File System +glossary.json +Glossary +chapter{1..10}_zh.md +Chapter Translation +review_report.md +Review Report +translation_guide.md +Translation Guide + +Context Isolation Advantages +Glossary: Only view terms | Translation: Only view current chapter + glossary | Manager: Only maintain file index \ No newline at end of file diff --git a/book-tr/images/fig10-6.svg b/book-tr/images/fig10-6.svg index 3c9636bdb..635fdde35 100644 --- a/book-tr/images/fig10-6.svg +++ b/book-tr/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Manager Agent -Task Planning · Progress Monitoring · Exception Handling · Result Synthesis - -Glossary Agent -Glossary -Receive Full Book → Identify Technical Terms -Search Specialized Dictionaries + Translation Conventions -Output: glossary.json - -{"attention": "注意力", - "transformer": "Transformer", - "backprop": "反向传播"} - - -Translation Agent ×N -Chapter Translation -Input: Chapter + Glossary + Guide -Translate terms strictly according to glossary -Output: chapter{n}_zh.md - -"...attention mechanism computes the similarity of - Query·Key^T ..." - - -Proofreading Agent -Full Text Review -Scan and verify term consistency -Check fluency and readability -Output: review_report.md - -P3: "注意力"→"关注" inconsistency -P8: Long sentence suggested to split - - -Glossary - -Translation - -Shared File System -glossary.json -Glossary -chapter{1..10}_zh.md -Chapter Translation -review_report.md -Review Report -translation_guide.md -Translation Guide - -Context Isolation Advantages -Glossary: Only view terms | Translation: Only view current chapter + glossary | Manager: Only maintain file index +Parallel Scheduling · Real-time Monitoring · Result Aggregation + +Message Bus + + +Agent 1 +Data Collection +Running ◎ +Independent Context + + +Agent 2 +Content Analysis +Running ◎ +Independent Context + + +Agent 3 +Chart Generation +Completed ✓ +Independent Context + + +Agent 4 +Format Validation +Waiting ○ +Independent Context + + +Message Bus Communication Example +Manager → Agent 1 +{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-tr/images/fig10-7.svg b/book-tr/images/fig10-7.svg index 635fdde35..39d474ffa 100644 --- a/book-tr/images/fig10-7.svg +++ b/book-tr/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Parallel Scheduling · Real-time Monitoring · Result Aggregation - -Message Bus - - -Agent 1 -Data Collection -Running ◎ -Independent Context - - -Agent 2 -Content Analysis -Running ◎ -Independent Context - - -Agent 3 -Chart Generation -Completed ✓ -Independent Context - - -Agent 4 -Format Validation -Waiting ○ -Independent Context - - -Message Bus Communication Example -Manager → Agent 1 -{"type":"start","task":"Collect arxiv papers","params":{"query":"LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg generated"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · Real-time Voice Call + +User Voice +Microphone Input + + +VAD + ASR +Silero VAD → STT Transcription + + +LLM Inference +Understand Intent + Extract Information + + +TTS Synthesis +Generate Voice Reply → Play + +Computer Agent +Python · Browser Automation + +Screenshot +Browser Current Page + + +Vision LLM +Understand Page Structure + Form Fields + + +Action Planning +Locate Fields → Plan Input Sequence + + +Execute Actions +Click / Input / Submit + +WebSocket Bidirectional Communication (ws://localhost:8849) + + + +Real-time Bidirectional Message Stream (Use Computer While on Call) +Phone → Computer +[FROM_PHONE_AGENT] User says name is Zhang San +Computer → Phone +[FROM_COMPUTER_AGENT] Name filled, need ID number +Phone → Computer +[FROM_PHONE_AGENT] ID number 310101199001011234 +Computer → Phone +[FROM_COMPUTER_AGENT] Form submitted, registration successful +Key: Two Agents Run Independent ReAct Loops in Parallel, Non-blocking \ No newline at end of file diff --git a/book-tr/images/fig10-8.svg b/book-tr/images/fig10-8.svg index 39d474ffa..1452c85e3 100644 --- a/book-tr/images/fig10-8.svg +++ b/book-tr/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · Real-time Voice Call - -User Voice -Microphone Input - - -VAD + ASR -Silero VAD → STT Transcription - - -LLM Inference -Understand Intent + Extract Information - - -TTS Synthesis -Generate Voice Reply → Play - -Computer Agent -Python · Browser Automation - -Screenshot -Browser Current Page - - -Vision LLM -Understand Page Structure + Form Fields - - -Action Planning -Locate Fields → Plan Input Sequence - - -Execute Actions -Click / Input / Submit - -WebSocket Bidirectional Communication (ws://localhost:8849) - - - -Real-time Bidirectional Message Stream (Use Computer While on Call) -Phone → Computer -[FROM_PHONE_AGENT] User says name is Zhang San -Computer → Phone -[FROM_COMPUTER_AGENT] Name filled, need ID number -Phone → Computer -[FROM_PHONE_AGENT] ID number 310101199001011234 -Computer → Phone -[FROM_COMPUTER_AGENT] Form submitted, registration successful -Key: Two Agents Run Independent ReAct Loops in Parallel, Non-blocking + +Manager Agent +Dynamic Creation · Real-time Monitoring · Cascading Termination + +Agent 1 +cs.edu.cn +Teacher Directory Search +Searching... ◎ + + +Agent 2 +math.edu.cn +Teacher Directory Search +Not Found ✗ + + +Agent 3 +phys.edu.cn +Teacher Directory Search +Found! ✓ + + +Agent 4 +chem.edu.cn +Teacher Directory Search +Terminated ⊘ + + +Agent 5 … 10 +… (10 total) +Teacher Directory Search +Terminated ⊘ + + +Cascading Termination Sequence +t=0s +Start 10 Agents +Parallel search for "Zhang Wei" + +t=12s +Agent 2 completes +Not found → exit + +t=18s +Agent 3 found! +Send target_found + +t=18.1s +Manager broadcasts terminate +To remaining running Agents + +t=19s +All confirm termination +Aggregate results and return + +Result found +Name: Zhang Wei School: School of Physics +Position: Professor Field: Quantum Computing +Email: zhangwei@phys.edu.cn + +Performance Comparison +Serial: 10 websites × 30s = ~5 minutes +Parallel: 18s to find + 1s to terminate = 19s +Speedup: ~15× (with cascading termination optimization) \ No newline at end of file diff --git a/book-tr/images/fig10-9.svg b/book-tr/images/fig10-9.svg index 1452c85e3..e54d59cc5 100644 --- a/book-tr/images/fig10-9.svg +++ b/book-tr/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Manager Agent -Dynamic Creation · Real-time Monitoring · Cascading Termination - -Agent 1 -cs.edu.cn -Teacher Directory Search -Searching... ◎ - - -Agent 2 -math.edu.cn -Teacher Directory Search -Not Found ✗ - - -Agent 3 -phys.edu.cn -Teacher Directory Search -Found! ✓ - - -Agent 4 -chem.edu.cn -Teacher Directory Search -Terminated ⊘ - - -Agent 5 … 10 -… (10 total) -Teacher Directory Search -Terminated ⊘ - - -Cascading Termination Sequence -t=0s -Start 10 Agents -Parallel search for "Zhang Wei" - -t=12s -Agent 2 completes -Not found → exit - -t=18s -Agent 3 found! -Send target_found - -t=18.1s -Manager broadcasts terminate -To remaining running Agents - -t=19s -All confirm termination -Aggregate results and return - -Result found -Name: Zhang Wei School: School of Physics -Position: Professor Field: Quantum Computing -Email: zhangwei@phys.edu.cn - -Performance Comparison -Serial: 10 websites × 30s = ~5 minutes -Parallel: 18s to find + 1s to terminate = 19s -Speedup: ~15× (with cascading termination optimization) + +Product Manager +Input: User requirement description + +Output: +Feature list + priority +User stories (5 items) +Acceptance criteria + +docs/PRD.md + + + +Architect +Input: PRD.md + +Output: +Tech stack: FastAPI+React +API specification (OpenAPI) +Database schema + +docs/design.md + + + +Project Manager +Input: design.md + +Output: +Task list + assignment +File-level allocation +Module dependency order + +docs/tasks.md + + + +Engineer ×3 +Input: tasks.md + design.md + +Output: +Module A: User service +Module B: Order service +Module C: Payment service + +src/*.py + + + +QA Engineer +Input: src/ + PRD.md + +Output: +Unit tests (pytest) +Integration tests (API) +Bug report → Engineer + +docs/test_report.md + +Bug fix + + +Shared project directory +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT core design +▸ Standardized documents +Each role emits a fixed format; downstream needs the format, not the reasoning +▸ Interface decoupling +Swap in a stronger Product Mgr; if output keeps PRD format, downstream is unchanged +▸ No Manager +Control flows along the DAG: Product Mgr→Architect→Project Mgr→Engineer→QA +▸ Exception channel +QA failure → bug report routed back to Engineer by module → iterative fix \ No newline at end of file diff --git a/book-tr/images/fig10-sequential-handoff.svg b/book-tr/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..c27bb4482 --- /dev/null +++ b/book-tr/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +Requirements Analysis + +Output: Structured Requirements Document +spec.json +Handoff → + + +Agent B +Architecture Design + +Output: Technical Design Document +design.md +Handoff → + + +Agent C +Code Implementation + +Output: Source Code +src/*.py +Handoff → + + +Agent D +Testing and Validation + +Output: Test Report +test_report.md +Handoff → + +Handoff Content (Agent A → Agent B Example) +Trigger Condition: +A completes requirements document → is_complete=True +Target Agent: +target="architect" (Agent B) +Handoff Content: +files=["spec.json"] + summary="E-commerce system: 3 microservices, REST API" +Post-Handoff Status: +status="exit" (release resources, do not remain on standby) + +Decentralization Advantages +✓ No central Manager needed to understand all roles +✓ Clear responsibility boundaries, interface decoupling +✓ Exit upon completion, release persistent resources + +Decentralization Limitations +✗ Lack of global optimization perspective +✗ Difficult exception handling (no central coordination) +✗ Fixed process, hard to dynamically adjust + \ No newline at end of file diff --git a/book-tr/images/fig10-stage-switching.svg b/book-tr/images/fig10-stage-switching.svg new file mode 100644 index 000000000..6560f228f --- /dev/null +++ b/book-tr/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Continuous flow within the same context — conversation history is fully preserved across stages ▼ + +Phase 1 +Requirements Analyst + +System prompt +"Your responsibility is to fully understand the requirements. +Don't rush to implement at this stage +Your task is to ask questions and confirm." + +Tool set +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +Trigger conversion +complete_req_analysis() + + +Phase 2 +Software engineer + +System prompt +"Write based on confirmed requirements +High-quality Python code. Follow +Modularization, error handling best practices." + +Tool set +write_file(path, content) +read_file(path) +execute_code(code) + +Trigger conversion +submit_for_review() + + +Phase 3 +Code reviewer + +System prompt +"Evaluate code quality from multiple dimensions: +Functional correctness, code standards, +Security. Adopt critical thinking." + +Tool set +run_linter(file) +run_tests(file) +analyze_complexity(file) +Role switch: update system prompt + tool set, conversation history and state continuously preserved + \ No newline at end of file diff --git a/book-tr/images/fig8-1.svg b/book-tr/images/fig8-1.svg index d60bd9821..05358fca6 100644 --- a/book-tr/images/fig8-1.svg +++ b/book-tr/images/fig8-1.svg @@ -1,25 +1,54 @@ - - - -Görevi tamamla -Ham deneyim üret - -Deneyimi rafine et -Özetle, sıkıştır, -yapılandır - - -Harici sistemde sakla -Bilgi tabanı/araçlar, -getirilebilir - - -Getir ve yeniden -kullan -Sonraki görevde çağır - - - - -Deneyim kalıcı olarak birikir, oturumlar arası yeniden kullanılır - \ No newline at end of file + + + + + + + + + Sürekli evrim: çalışma deneyiminden yeni Agent sürümüne + + + Görevi yürüt + Kullanıcı, ortam vearaçlarla etkileşim + + + Trajectory kaydet + Eylemler, sonuçlar ve geri bildirim + + + Sinyalleri oluştur + Sonuç · Süreç · Kalite + + + Aday güncellemeleri üret + + + + + Bilgi + Talimatlar + Programlar + Parametreler + + + Doğrula ve yayınla + Regresyon, kademeliyayın ve geri alma + + + + + + + + Yeni Agent bir sonraki tura geçer + Yalnızca sonraki davranışı değiştiren ve doğrulamayı geçen güncellemeler sürekli evrim sayılır + + diff --git a/book-vi/chapter10.vi.md b/book-vi/chapter10.vi.md index 25eb46574..d5acb914a 100644 --- a/book-vi/chapter10.vi.md +++ b/book-vi/chapter10.vi.md @@ -164,10 +164,10 @@ Phần đầu của chương này liệt kê "hệ thống tệp dùng chung" l **4. Tài nguyên tích hợp trong hệ thống (Built-in System Resources)**. Cài đặt trước hệ thống và gói tài nguyên chia sẻ chỉ đọc cho tất cả Agent. Đại diện điển hình là **Skills** được giới thiệu trong Chương 2 và 4 - các tài liệu kiến thức và tập lệnh được sắp xếp dưới dạng tệp, được gắn trên `/skills` và các đường dẫn khác và được truy cập theo cách tiết lộ lũy tiến (đầu tiên được lập chỉ mục, sau đó được mở rộng theo yêu cầu); Ngoài ra, nó còn bao gồm các tài liệu hướng dẫn tham khảo, thư viện mẫu và định nghĩa công cụ dùng chung. Lớp này được chia sẻ trên toàn cầu, chỉ đọc, ổn định trong các phiên và có thể được đọc đồng thời bởi tất cả Agent mà không cần kiểm soát đồng thời. -Hình 10-3 cho thấy cấu trúc trong đó bốn loại khu vực này được gắn thống nhất trên cùng một cây thư mục: Agent truy cập toàn bộ cây thông qua giao diện hợp nhất, người dùng tải lên và tải xuống các tệp từ không gian dùng chung, nguồn dữ liệu bên ngoài được gắn thông qua bộ điều hợp và các tài nguyên tích hợp trong hệ thống được cung cấp theo cách chỉ đọc. +Hình 10-2 cho thấy cấu trúc trong đó bốn loại khu vực này được gắn thống nhất trên cùng một cây thư mục: Agent truy cập toàn bộ cây thông qua giao diện hợp nhất, người dùng tải lên và tải xuống các tệp từ không gian dùng chung, nguồn dữ liệu bên ngoài được gắn thông qua bộ điều hợp và các tài nguyên tích hợp trong hệ thống được cung cấp theo cách chỉ đọc. -![Hình 10-3 Bốn loại cấu trúc gắn vùng của hệ thống tệp ảo Agent ](images/fig10-3.svg) +![Hình 10-2 Bốn loại cấu trúc gắn vùng của hệ thống tệp ảo Agent ](images/fig10-2.svg) Bảng 10-4 so sánh bốn loại lĩnh vực này từ bốn chiều về khả năng hiển thị, vòng đời, quyền đọc và ghi và kiểm soát tương tranh, có thể được sử dụng làm danh sách kiểm tra cho thiết kế bố cục hệ thống tệp. @@ -249,7 +249,7 @@ Agent vẫn suy luận, sử dụng công cụ và tạo ra sản phẩm ứng v **Mô hình người đề xuất-người đánh giá.** -![Hình 10-4 Chu trình người đề xuất-đánh giá ](images/fig10-4.svg) +![Hình 10-3 Chu trình người đề xuất-đánh giá ](images/fig10-3.svg) Người đề xuất-đánh giá là mô hình hợp tác ngang hàng cổ điển nhất. Chương 5 đã giới thiệu chi tiết các nguyên tắc thiết kế và ứng dụng thực tế của mô hình này trong ba thử nghiệm tạo PPT, chỉnh sửa video và trực quan hóa nhật ký: Người đề xuất Agent chịu trách nhiệm tạo mã, Người đánh giá Agent hiển thị kết quả thực thi và sử dụng Vision LLM để đánh giá chất lượng và đưa ra các đề xuất cải tiến về cấu trúc. Cả hai lặp đi lặp lại nhiều lần cho đến khi hiệu quả đạt tiêu chuẩn. @@ -330,7 +330,7 @@ return summarize_failures(workers) **Hình thức phối hợp tuần tự.** -![Hình 10-5 Phối hợp trình tự trình quản lý ](images/fig10-5.svg) +![Hình 10-4 Phối hợp trình tự trình quản lý ](images/fig10-4.svg) Người quản lý gọi Agent đặc biệt theo trình tự. Sau khi hoàn thành mỗi Agent, kết quả sẽ được trả về và Người quản lý quyết định bước tiếp theo. Luồng điều khiển tuyến tính, đơn giản và rõ ràng, phù hợp với các tình huống có sự phụ thuộc tuần tự rõ ràng giữa các nhiệm vụ phụ. @@ -359,14 +359,14 @@ Người quản lý gọi Agent đặc biệt theo trình tự. Sau khi hoàn th > 4. So sánh sự khác biệt giữa chế độ Agent và chế độ quản lý về chất lượng dịch, hiệu quả thực thi và mức tiêu thụ tài nguyên > > -> ![Hình 10-6 Kiến trúc tác nhân dịch sách ](images/fig10-6.svg) +> ![Hình 10-5 Kiến trúc tác nhân dịch sách ](images/fig10-5.svg) > > **Hình thức phối hợp song song.** -![Hình 10-7 Phối hợp song song của trình quản lý ](images/fig10-7.svg) +![Hình 10-6 Phối hợp song song của trình quản lý ](images/fig10-6.svg) Chế độ tuần tự trở nên kém hiệu quả khi nhiều tác vụ con có thể được thực thi song song. Phối hợp song song cho phép nhiều Agent hoạt động đồng thời, cải thiện đáng kể thông lượng. Trình quản lý Agent không chỉ lên kế hoạch cho các nhiệm vụ song song mà còn giám sát tất cả các Agent đang chạy trong thời gian thực, xử lý việc phối hợp liên lạc và đưa ra quyết định chung khi Agent thành công hay thất bại. Điều này thường yêu cầu Message Bus làm cơ sở hạ tầng - nó có thể được hiểu là một "bảng thông báo công cộng" mà trên đó Agent có thể đăng tin nhắn (xuất bản) hoặc tập trung vào các loại tin nhắn mà nó quan tâm (đăng ký), đạt được khả năng liên lạc không đồng bộ và không bị chặn. Có hai loại giải pháp triển khai phổ biến với mức độ phức tạp ngày càng tăng: **Redis Pub/Sub** có dung lượng nhẹ, gửi và nhận tin nhắn, đơn giản và dễ sử dụng. Nhược điểm là không liên tục - người nhận lúc đó không trực tuyến và tin nhắn bị mất; hàng đợi tin nhắn như **RabbitMQ** lưu tin nhắn trên đĩa và sẽ không bị mất ngay cả khi người nhận tạm thời ngoại tuyến. Định dạng tin nhắn thường chứa ID người gửi, Agent đích (hoặc phát tới mọi người), loại tin nhắn và nội dung dữ liệu ở định dạng JSON. @@ -424,7 +424,7 @@ Chế độ tuần tự trở nên kém hiệu quả khi nhiều tác vụ con c > 4. Ghi lại thời gian thông báo của quá trình cộng tác và các điểm quyết định chính của Agent > > -> ![Hình 10-8 Kiến trúc tác nhân kép điện thoại và máy tính ](images/fig10-8.svg) +> ![Hình 10-7 Kiến trúc tác nhân kép điện thoại và máy tính ](images/fig10-7.svg) > > > **Thử nghiệm 10-4 ★★★: Agent thu thập thông tin từ nhiều trang web cùng một lúc** @@ -456,7 +456,7 @@ Chế độ tuần tự trở nên kém hiệu quả khi nhiều tác vụ con c > 6. Ghi lại và so sánh sự khác biệt về thời gian giữa thực thi song song và thực thi nối tiếp, đồng thời xác minh sự cải thiện hiệu suất do song song hóa mang lại > > -> ![Hình 10-9 Kiến trúc quét web song song ](images/fig10-9.svg) +> ![Hình 10-8 Kiến trúc quét web song song ](images/fig10-8.svg) > > @@ -486,7 +486,7 @@ else: **MetaGPT: mô phỏng công ty phần mềm theo SOP.** -![Hình 10-11 Mạng cộng tác đa Agent của MetaGPT](images/fig10-11.svg) +![Hình 10-9 Mạng cộng tác đa Agent của MetaGPT](images/fig10-9.svg) MetaGPT mã hóa quy trình vận hành chuẩn của công ty phần mềm. Các vai trò làm việc theo thứ tự Product Manager → Architect → Project Manager → Engineer → QA; mỗi vai trò xuất một gói bàn giao có cấu trúc gồm tác vụ và tiêu chí chấp nhận, sự kiện và ràng buộc đã xác nhận, cùng tham chiếu artifact như đường dẫn tệp. Vai trò đăng vào nhóm tin nhắn chung và chỉ đọc loại đã đăng ký. Người gửi và người nhận được tách rời, nhưng luồng điều khiển vẫn do SOP cố định; MetaGPT chưa hoàn toàn phi tập trung. @@ -592,7 +592,7 @@ Các trường hợp trong phần này có thể được hiểu từ ba chiều ### Thị trấn AI Stanford: Mô phỏng xã hội sáng tạo Agent -![Hình 10-12 Kiến trúc thị trấn AI ](images/fig10-12.svg) +![Hình 10-10 Kiến trúc thị trấn AI ](images/fig10-10.svg) Năm 2023, Đại học Stanford và nhóm nghiên cứu của Google đã xuất bản bài báo mang tính bước ngoặt “Generative Agents: Interactive Simulacra of Human Behavior”, đề xuất khái niệm “Generative Agent”. Đổi mới cốt lõi là không còn giới hạn Agent trong việc hoàn thành các nhiệm vụ được xác định trước mà mang lại cho Agent khả năng lập kế hoạch, phản ánh và trí nhớ gần giống con người, cho phép chúng sống, hòa nhập xã hội và phát triển tự chủ trong một môi trường xã hội mở. @@ -708,7 +708,7 @@ Người sói hỗ trợ **trò chơi chiến lược** theo ba chiều của ph > > > -> ![Hình 10-13 Hệ thống đặc vụ người sói bằng giọng nói ](images/fig10-13.svg) +> ![Hình 10-11 Hệ thống đặc vụ người sói bằng giọng nói ](images/fig10-11.svg) > > diff --git a/book-vi/images/fig10-10.svg b/book-vi/images/fig10-10.svg index 6d473b65c..eb4fdb79c 100644 --- a/book-vi/images/fig10-10.svg +++ b/book-vi/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -phân tích nhu cầu - -Đầu ra: Tài liệucấu trúc yêu cầu -spec.json -Bàn giao sau khihoàn thiện → - - -Agent B -thiết kế kiến​​trúc - -Đầu ra: Hồ sơthiết kế kỹ thuật -design.md -Bàn giao sau khihoàn thiện → - - -Agent C -Triển khai mã - -Đầu ra: mã nguồn -src/*.py -Bàn giao sau khihoàn thiện → - - -Agent D -Kiểm tra xác minh - -Đầu ra: báo cáothử nghiệm -test_report.md -Bàn giao sau khihoàn thiện → - -Nội dung chuyển Handoff (ví dụ Agent A → Agent B) -Điều kiệnkích hoạt: -A Hoàn thành tài liệu yêu cầu → is_complete=True -Mục tiêuAgent: -target="architect" (Agent B) -Chuyển nộidung: -files=["spec.json"] + summary="Hệ thống thương mại điện tử: 3 microservices,REST API" -Tình trạngsau bàn giao: -status="Thoát" (giải phóng tài nguyên, không ở chế độ chờ) - -Ưu điểm của phân quyền -✓ Không cần trung tâm Manager hiểu mọivai trò -✓ Rõ ràng ranh giới trách nhiệm và táchrời giao diện -✓ Thoát khi hoàn thành và giải phóng tàinguyên thường trú - -Hạn chế của việc phân cấp -✗ Thiếu tầm nhìn tối ưu hóa toàn cầu -✗ Khó khăn trong việc xử lý ngoại lệ (khôngcó sự phối hợp trung tâm) -✗ Quy trình cố định, khó điều chỉnh linhhoạt + +Isabella Rodriguez +Chủ quán cà phê Hobbs +hiếu khách và hòa đồng + +Luồng bộ nhớ MemoryStream +[08:30] Quán cà phê Hobbs mở cửa kinhdoanh +importance: 4 recency: 0.9 +[09:15] Khách hàng Klaus đến cửa hàngmua cà phê +importance: 5 recency: 0.85 +[10:00] Quyết định tổ chức tiệc Ngàylễ tình nhân +importance: 9 recency: 0.8 +[11:30] Mời khách hàng Maria đến dựtiệc +importance: 8 recency: 0.7 +[14:00] Vui lòng giúp Maria sắp xếpđịa điểm +importance: 7 recency: 0.6 + +Phản ánh Reflection +"Ai là khách thường xuyên củaHobbs?" +→ Maria, Klaus, Tom (thường xuyên đến) +"Mờiai?" +→ Khách hàng thường xuyên và bạn bèđược mời +"Việc chuẩn bị của bữa tiệc đã tiếntriển đến đâu rồi?" +→ Một số người đã được mời và địa điểmsẽ được sắp xếp +"Ai có thể giúp tôi trang trí quáncà phê?" +→ Maria (Bạn ơi, rất vui được giúp đỡ) + +Kế hoạch và hành độngPlanning +08:00 Dậy + ăn sáng +09:00mởcửa +12:00 Mời khách hàng khi kinh doanh +14:00 và Maria bố trí trang web +16:00 Chuẩn bị đồ uống và chỗ ngồi +← Điều chỉnh động +18:00 đang tổ chức bữa tiệc Ngày lễtình nhân tại Hobbs + + +Tìmkiếm + + +láixe + +Hành vi mới nổi (25 Agent · 2 ngày thời gian ảo) +▸ Mạng xãhội tựphát +Nhiều cuộc gặp gỡ tình cờ → tìnhbạn hình thành → chủ động hẹn hò +▸ Phổbiếnthôngtin +Lời mời dự tiệc Ngày lễ tình nhân củaIsabella lan truyền đến nhiều Agent +▸ Truyềnthôngbầu cử +Tin tức về việc Sam tranh cử thịtrưởng đã lan truyền trong Agent +▸ Bộ nhớquan hệ +Ghi nhớ các cuộc trò chuyện trong quákhứ (chẳng hạn như các dự án chụp ảnh)và tiếp tục cuộc trò chuyện +Mọi hành vi đều không được lập trình trước - kết quả nổi bật của trí nhớ + suy ngẫm + lýluận thông thường của xã hội \ No newline at end of file diff --git a/book-vi/images/fig10-11.svg b/book-vi/images/fig10-11.svg index 5ba238c53..93e4e41f1 100644 --- a/book-vi/images/fig10-11.svg +++ b/book-vi/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Product Manager -Đầu vào: Mô tả yêu cầucủa người dùng - -đầu ra: -Danh sách tính năng+ mức độ ưu tiên -Câu chuyện củangười dùng (mục 5) -Tiêu chí chấp nhận - -docs/PRD.md - - - -Architect -Đầu vào: PRD.md - -đầu ra: -Ngăn xếp công nghệ:FastAPI+React -Thông số kỹ thuậtAPI (OpenAPI) -Cơ sở dữ liệuSchema - -docs/design.md - - - -Project Manager -Đầu vào: design.md - -đầu ra: -Danh sách công việc+ phân công lao động -Phân bổ cấp độ tệp -Thứ tự phụ thuộcmô-đun - -docs/tasks.md - - - -Engineer ×3 -Đầu vào: tasks.md +design.md - -đầu ra: -Mô-đun A: Dịch vụngười dùng -Mô-đun B: Dịch vụđặt hàng -Mô-đun C: Dịch vụthanh toán - -src/*.py - - - -QA Engineer -Đầu vào: src/ + PRD.md - -đầu ra: -Kiểm tra đơn vị(pytest) -Kiểm tra tích hợp(API) -Báo cáo Bug →Engineer - -docs/test_report.md - -Sửa chữa Bug - - -Thư mục dự án được chia sẻ -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -Thiết kế lõi MetaGPT -▸ Tài liệuđược chuẩn hóa -Mỗi vai trò đưa ra một định dạng rõ ràng - xuôi dòng chỉ cần hiểu định dạng chứ không cầnhiểu quá trình suy nghĩ ngược dòng -▸ Tách giaodiện -Product Mgr được cải tiến (được thay thế bằng mẫu mạnh hơn) miễn là đầu ra tuân thủ địnhdạng PRD, không sửa đổi xuôi dòng -▸ Không cóManager -Điều khiển diễn ra tự nhiên dọc theo DAG: Product Mgr→Architect→ProjectMgr→Engineer→QA -▸ Kênh ngoạilệ -Kiểm tra QA không thành công → Báo cáo Bug được chuyển trở lại Engineer theo mô-đun → sửalỗi lặp lại + +Thẩm phán (điều khiểnbằng mã) +Trạng thái trò chơi · Kiểm soátpha · Phân phối thông tin +Night → Day → Vote → Settle + +🐺 Người sói 1 +Hiển thị: trạngthái đồng hành +Chiến lược: Ngụytrang dân làng +Đêm: Chọn mụctiêu + + +Hiểunhau + +🐺 Người sói 2 +Hiển thị: trạngthái đồng hành +Chiến lược: Bảovệ thẻ +Đêm: Mục tiêu đàmphán + + +Hiểunhau + +🔮 Nhà tiêntri +Hiển thị: kết quảkiểm tra +Chiến lược: Thoátđúng lúc +Đêm: Kiểm tra 1Mọi người + + +Kết quảkiểmtra + +🧪 phù thủy +Hiển thị: Cáichết/Cứu hộ +Chiến lược: Bảotồn/giải độc +Đêm: Cứu/Đầu độc1 Người + + +👤 Dân làng ×2 +Hiển thị: chỉthông tin côngkhai +Chiến lược: Suyluận logic +Ngày: Phân tíchbài phát biểu + + +Kiểm soát truy cập thông tin: Thẩm phán lọc bối cảnh theo vai trò +Ngườisói: +Tất cả danh tính người sói + nhữngcuộc thảo luận trong đêm + diễnthuyết trước công chúng +Tiêntri: +Kết quả kiểm tra (chỉ tự kiểm tra) +bài phát biểu trước công chúng +Phùthủy: +Người chết đêm đó + thuốc giảiđộc/trạng thái chất độc + bài phátbiểu trước công chúng +Dânlàng: +Chỉ phát biểu trước công chúng + hồsơ biểu quyết (không có thông tincá nhân) + +Tương tác bằng giọng nói theo thời gian thực (ASR + LLM + TTS) +Thảo luận trong ngày +Thẩm phán quản lý trậttự phát biểu +Nói theo thứ tự chỗngồi +giai đoạn bỏ phiếu +Thu thập phiếu bầutừ tất cả người chơi +Kiểm phiếu và côngbố kết quả +giai đoạn ban đêm +Giám khảo lần lượtđánh thức các nhânvật +Kênh thoại riêng +người chơi thực sự +Phân công vai tròngẫu nhiên +Biểu hiện bằng giọngnói biểu quyết/phátbiểu \ No newline at end of file diff --git a/book-vi/images/fig10-12.svg b/book-vi/images/fig10-12.svg deleted file mode 100644 index eb4fdb79c..000000000 --- a/book-vi/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Chủ quán cà phê Hobbs -hiếu khách và hòa đồng - -Luồng bộ nhớ MemoryStream -[08:30] Quán cà phê Hobbs mở cửa kinhdoanh -importance: 4 recency: 0.9 -[09:15] Khách hàng Klaus đến cửa hàngmua cà phê -importance: 5 recency: 0.85 -[10:00] Quyết định tổ chức tiệc Ngàylễ tình nhân -importance: 9 recency: 0.8 -[11:30] Mời khách hàng Maria đến dựtiệc -importance: 8 recency: 0.7 -[14:00] Vui lòng giúp Maria sắp xếpđịa điểm -importance: 7 recency: 0.6 - -Phản ánh Reflection -"Ai là khách thường xuyên củaHobbs?" -→ Maria, Klaus, Tom (thường xuyên đến) -"Mờiai?" -→ Khách hàng thường xuyên và bạn bèđược mời -"Việc chuẩn bị của bữa tiệc đã tiếntriển đến đâu rồi?" -→ Một số người đã được mời và địa điểmsẽ được sắp xếp -"Ai có thể giúp tôi trang trí quáncà phê?" -→ Maria (Bạn ơi, rất vui được giúp đỡ) - -Kế hoạch và hành độngPlanning -08:00 Dậy + ăn sáng -09:00mởcửa -12:00 Mời khách hàng khi kinh doanh -14:00 và Maria bố trí trang web -16:00 Chuẩn bị đồ uống và chỗ ngồi -← Điều chỉnh động -18:00 đang tổ chức bữa tiệc Ngày lễtình nhân tại Hobbs - - -Tìmkiếm - - -láixe - -Hành vi mới nổi (25 Agent · 2 ngày thời gian ảo) -▸ Mạng xãhội tựphát -Nhiều cuộc gặp gỡ tình cờ → tìnhbạn hình thành → chủ động hẹn hò -▸ Phổbiếnthôngtin -Lời mời dự tiệc Ngày lễ tình nhân củaIsabella lan truyền đến nhiều Agent -▸ Truyềnthôngbầu cử -Tin tức về việc Sam tranh cử thịtrưởng đã lan truyền trong Agent -▸ Bộ nhớquan hệ -Ghi nhớ các cuộc trò chuyện trong quákhứ (chẳng hạn như các dự án chụp ảnh)và tiếp tục cuộc trò chuyện -Mọi hành vi đều không được lập trình trước - kết quả nổi bật của trí nhớ + suy ngẫm + lýluận thông thường của xã hội - \ No newline at end of file diff --git a/book-vi/images/fig10-13.svg b/book-vi/images/fig10-13.svg deleted file mode 100644 index 93e4e41f1..000000000 --- a/book-vi/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Thẩm phán (điều khiểnbằng mã) -Trạng thái trò chơi · Kiểm soátpha · Phân phối thông tin -Night → Day → Vote → Settle - -🐺 Người sói 1 -Hiển thị: trạngthái đồng hành -Chiến lược: Ngụytrang dân làng -Đêm: Chọn mụctiêu - - -Hiểunhau - -🐺 Người sói 2 -Hiển thị: trạngthái đồng hành -Chiến lược: Bảovệ thẻ -Đêm: Mục tiêu đàmphán - - -Hiểunhau - -🔮 Nhà tiêntri -Hiển thị: kết quảkiểm tra -Chiến lược: Thoátđúng lúc -Đêm: Kiểm tra 1Mọi người - - -Kết quảkiểmtra - -🧪 phù thủy -Hiển thị: Cáichết/Cứu hộ -Chiến lược: Bảotồn/giải độc -Đêm: Cứu/Đầu độc1 Người - - -👤 Dân làng ×2 -Hiển thị: chỉthông tin côngkhai -Chiến lược: Suyluận logic -Ngày: Phân tíchbài phát biểu - - -Kiểm soát truy cập thông tin: Thẩm phán lọc bối cảnh theo vai trò -Ngườisói: -Tất cả danh tính người sói + nhữngcuộc thảo luận trong đêm + diễnthuyết trước công chúng -Tiêntri: -Kết quả kiểm tra (chỉ tự kiểm tra) +bài phát biểu trước công chúng -Phùthủy: -Người chết đêm đó + thuốc giảiđộc/trạng thái chất độc + bài phátbiểu trước công chúng -Dânlàng: -Chỉ phát biểu trước công chúng + hồsơ biểu quyết (không có thông tincá nhân) - -Tương tác bằng giọng nói theo thời gian thực (ASR + LLM + TTS) -Thảo luận trong ngày -Thẩm phán quản lý trậttự phát biểu -Nói theo thứ tự chỗngồi -giai đoạn bỏ phiếu -Thu thập phiếu bầutừ tất cả người chơi -Kiểm phiếu và côngbố kết quả -giai đoạn ban đêm -Giám khảo lần lượtđánh thức các nhânvật -Kênh thoại riêng -người chơi thực sự -Phân công vai tròngẫu nhiên -Biểu hiện bằng giọngnói biểu quyết/phátbiểu - \ No newline at end of file diff --git a/book-vi/images/fig10-2.svg b/book-vi/images/fig10-2.svg index ab32167fa..d326e55c7 100644 --- a/book-vi/images/fig10-2.svg +++ b/book-vi/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ Luồng liên tục của cùng một bối cảnh — lịch sử hội thoại được giữ nguyên giữa các giaiđoạn ▼ - -Giai đoạn 1 -Nhà phân tích nhu cầu - -Lời nhắc hệ thống -"Công việc của bạn là hiểu đầy đủcác yêu cầu. -Đừng vội thực hiện ở giai đoạnnày -Công việc của bạn là đặt câu hỏivà xác nhận. " - -Bộ tool -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -kích hoạt chuyển đổi -complete_req_analysis() - - -Giai đoạn 2 -kỹ sư phần mềm - -Lời nhắc hệ thống -"Viết dựa trên nhu cầu đã đượcxác nhận -Mã Python chất lượng cao. theo -Mô-đun hóa, xử lý lỗi tốt nhất. " - -Bộ tool -write_file(path, content) -read_file(path) -execute_code(code) - -kích hoạt chuyển đổi -submit_for_review() - - -Giai đoạn 3 -người đánh giá mã - -Lời nhắc hệ thống -"Đánh giá chất lượng mã từ nhiềuchiều: -Tính chính xác về chức năng,thông số kỹ thuật của mã, -Bảo vệ. Sử dụng tư duy phản biện." - -Bộ tool -run_linter(file) -run_tests(file) -analyze_complexity(file) -Đảo ngược vai trò: Cập nhật từ nhắc nhở hệ thống + bộ tool, lịch sử và trạng thái hội thoại liêntục được giữ lại + + +Agent A + +Agent B + + + +hệ thống tập tin ảo / +Giao diện hợp nhất: read_file ·write_file · list_dir + + + +người dùng +Tải lên/Tải xuống + + + + + + + +Tải lên/Tải xuống + + + + + +Gắn mount + + + + +Không gian làm việcđộc quyền Agent +/scratch/<id> +Scratchpad + +Riêng tư · Chỉ dành choAgent này +Bị phá hủy với phiên bản +Đọc và viết · Không cầnkiểm soát đồng thời +Một bản sao của mỗi Agent + + + +Nhiều không gianchia sẻ Agent +/workspace/shared +Shared Workspace + +Hiển thị với người dùng ·Liên tục +Đọc và viết · Yêu cầu kiểmsoát đồng thời +Khóa lạc quan · worktree + + + +Tài nguyên được gắnbên ngoài +/mnt/gdrive · /mnt/notion +Thông qua bộ chuyển đổiadapter + +Tùy thuộc vào sự cho phépbên ngoài +Hầu hết chỉ đọc · Cẩn thậnkhi viết +Độ trễ cao · Tính nhất quányếu + + + +Tài nguyên tích hợphệ thống +/skills +Skills · Mẫu · Hướng dẫn sửdụng + +Chia sẻ toàn cầu · Chỉ đọc +Ổn định qua các phiên +tiết lộ lũy tiến + + + +nguồn dữ liệu bên ngoài +Google Drive · Notion + \ No newline at end of file diff --git a/book-vi/images/fig10-3.svg b/book-vi/images/fig10-3.svg index d326e55c7..368574491 100644 --- a/book-vi/images/fig10-3.svg +++ b/book-vi/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -hệ thống tập tin ảo / -Giao diện hợp nhất: read_file ·write_file · list_dir - - - -người dùng -Tải lên/Tải xuống - - - - - - - -Tải lên/Tải xuống - - - - - -Gắn mount - - - - -Không gian làm việcđộc quyền Agent -/scratch/<id> -Scratchpad - -Riêng tư · Chỉ dành choAgent này -Bị phá hủy với phiên bản -Đọc và viết · Không cầnkiểm soát đồng thời -Một bản sao của mỗi Agent - - - -Nhiều không gianchia sẻ Agent -/workspace/shared -Shared Workspace - -Hiển thị với người dùng ·Liên tục -Đọc và viết · Yêu cầu kiểmsoát đồng thời -Khóa lạc quan · worktree - - - -Tài nguyên được gắnbên ngoài -/mnt/gdrive · /mnt/notion -Thông qua bộ chuyển đổiadapter - -Tùy thuộc vào sự cho phépbên ngoài -Hầu hết chỉ đọc · Cẩn thậnkhi viết -Độ trễ cao · Tính nhất quányếu - - - -Tài nguyên tích hợphệ thống -/skills -Skills · Mẫu · Hướng dẫn sửdụng - -Chia sẻ toàn cầu · Chỉ đọc -Ổn định qua các phiên -tiết lộ lũy tiến - - - -nguồn dữ liệu bên ngoài -Google Drive · Notion - + +Proposer Agent +Đầu vào: phần tóm tắt mở rộng của bàibáo (từ 2000) + +--- +theme: academic +--- +#Transformer cơ chế chú ý + +## Ý tưởng cốt lõi +- Tính toán tự chú ý Q·K^T/√d +- Xử lý song song nhiều đầu chú ý +Hiểu cấu trúc nội dung → chia thành cáctrang slide + +Reviewer Agent + +① Kết xuất Slidev → PDF/PNG +② Vision LLM Đánh giá đa chiều + +Phản hồi có cấu trúc: +Mức độ nghiêm trọng của loại sự cố trang +P3 Nội dung quá dày đặc Cao +P7 Phông chữ quá nhỏ Trung bình +P11 Phối màu không nhất quán Thấp +Kết xuất + Phân tích trực quan → Đềxuất cải tiến có thể thực hiện được + +Mã Slidev + +phản hồi có cấu trúc + +quá trình cải tiến lặp đi lặp lại + +Round 1 +Trang 12 bản nháp đầutiên +Câu hỏi về 5 + + +Round 2 +Trang 14 (trang dàyđặc chia nhỏ) +Câu hỏi về 2 + + +Round 3 +Trang 14 (sửa phôngchữ) +Câu hỏi 0 ✓ + +Tại sao không chỉ Agent? +Agent đơn: Hiển thị bánh xe ×N → bùng nổ bốicảnh +(Ảnh chụp màn hình 1080p = hàng nghìn trangtoken × 14 × vòng 5) +Agent kép: Reviewer Chỉ xem phiên bản hiệntại +Proposer Chỉ tích lũy phản hồi văn bản → làmsạch context \ No newline at end of file diff --git a/book-vi/images/fig10-4.svg b/book-vi/images/fig10-4.svg index 368574491..53915c8ec 100644 --- a/book-vi/images/fig10-4.svg +++ b/book-vi/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -Đầu vào: phần tóm tắt mở rộng của bàibáo (từ 2000) - ---- -theme: academic ---- -#Transformer cơ chế chú ý - -## Ý tưởng cốt lõi -- Tính toán tự chú ý Q·K^T/√d -- Xử lý song song nhiều đầu chú ý -Hiểu cấu trúc nội dung → chia thành cáctrang slide - -Reviewer Agent - -① Kết xuất Slidev → PDF/PNG -② Vision LLM Đánh giá đa chiều - -Phản hồi có cấu trúc: -Mức độ nghiêm trọng của loại sự cố trang -P3 Nội dung quá dày đặc Cao -P7 Phông chữ quá nhỏ Trung bình -P11 Phối màu không nhất quán Thấp -Kết xuất + Phân tích trực quan → Đềxuất cải tiến có thể thực hiện được - -Mã Slidev - -phản hồi có cấu trúc - -quá trình cải tiến lặp đi lặp lại - -Round 1 -Trang 12 bản nháp đầutiên -Câu hỏi về 5 - - -Round 2 -Trang 14 (trang dàyđặc chia nhỏ) -Câu hỏi về 2 - - -Round 3 -Trang 14 (sửa phôngchữ) -Câu hỏi 0 ✓ - -Tại sao không chỉ Agent? -Agent đơn: Hiển thị bánh xe ×N → bùng nổ bốicảnh -(Ảnh chụp màn hình 1080p = hàng nghìn trangtoken × 14 × vòng 5) -Agent kép: Reviewer Chỉ xem phiên bản hiệntại -Proposer Chỉ tích lũy phản hồi văn bản → làmsạch context + +Manager Agent +Hiểu nhiệm vụ → phân tách → lập kếhoạch → tổng hợp +Bộ tool: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +Vai trò: Thu thập dữ liệu +Tìm kiếm tài liệu kỹ thuật +Trích xuất thông tin chính + +Step1 + + + +Sub-Agent B +Vai trò: Xử lý phân tích +Dữ liệu phân tích so sánh +Tạo báo cáo thống kê + +Step2 + + + +Sub-Agent C +Vai trò: Tạo báo cáo +Viết báo cáo cuối cùng +Đầu ra được định dạng + +Step3 + + +luồng thực hiện tuần tự +Manager gọi A +→ A trả về dữliệu +→ Manager chuyểnsang B +→ B Quay lạiphân tích +→ Manager chuyểnsang C +→ C Báo cáo trả lại +Phối cảnh Manager: gọi Agent = tool gọi (gửi yêu cầu → nhận phản hồi) \ No newline at end of file diff --git a/book-vi/images/fig10-5.svg b/book-vi/images/fig10-5.svg index 53915c8ec..979755dc3 100644 --- a/book-vi/images/fig10-5.svg +++ b/book-vi/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Hiểu nhiệm vụ → phân tách → lập kếhoạch → tổng hợp -Bộ tool: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -Vai trò: Thu thập dữ liệu -Tìm kiếm tài liệu kỹ thuật -Trích xuất thông tin chính - -Step1 - - - -Sub-Agent B -Vai trò: Xử lý phân tích -Dữ liệu phân tích so sánh -Tạo báo cáo thống kê - -Step2 - - - -Sub-Agent C -Vai trò: Tạo báo cáo -Viết báo cáo cuối cùng -Đầu ra được định dạng - -Step3 - - -luồng thực hiện tuần tự -Manager gọi A -→ A trả về dữliệu -→ Manager chuyểnsang B -→ B Quay lạiphân tích -→ Manager chuyểnsang C -→ C Báo cáo trả lại -Phối cảnh Manager: gọi Agent = tool gọi (gửi yêu cầu → nhận phản hồi) + +Manager Agent +Lập kế hoạch nhiệm vụ · Giám sát tiếnđộ · Xử lý ngoại lệ · Tổng hợp kết quả + +Glossary Agent +Bảng chú giải thuật ngữ +Nhận toàn bộ sách → Xácđịnh thuật ngữ kỹ thuật +Tra cứu từ điển chuyênngành + thông số dịch thuật +Đầu ra: glossary.json + +{"attention": "Chú ý", +"transformer": "Transformer", +"backprop": "Truyền ngược"} + + +Translation Agent ×N +Dịch chương +Đầu vào: Chương + Bảngthuật ngữ + Hướng dẫn +Các điều khoản được dịchđúng theo bảng +Đầu ra: chapter{n}_zh.md + +"...cơ chế chú ý tính toán +Sự giống nhau của Query·Key^T..." + + +Proofreading Agent +Đánh giá toàn văn +Quét để xác minh tính nhấtquán của thuật ngữ +Kiểm tra tính lưu loát vàdễ đọc +Đầu ra: review_report.md + +P3: "Chú ý" → "Chú ý" không nhất quán +P8: Nên chia câu dài + + +Thuật ngữ + +dịch thuật + +Hệ thống tập tin được chia sẻ +glossary.json +Bảng chú giải thuật ngữ +chapter{1..10}_zh.md +Dịch chương +review_report.md +Báo cáo đánh giá +translation_guide.md +Hướng dẫn dịch thuật + +Ưu điểm của cách ly bối cảnh +Glossary: Chỉ xem các điều khoản | Translation: Chỉ xem chương hiện tại + bảng thuật ngữ |Manager: Chỉ duy trì chỉ mục tệp \ No newline at end of file diff --git a/book-vi/images/fig10-6.svg b/book-vi/images/fig10-6.svg index 979755dc3..9ffc7c491 100644 --- a/book-vi/images/fig10-6.svg +++ b/book-vi/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Manager Agent -Lập kế hoạch nhiệm vụ · Giám sát tiếnđộ · Xử lý ngoại lệ · Tổng hợp kết quả - -Glossary Agent -Bảng chú giải thuật ngữ -Nhận toàn bộ sách → Xácđịnh thuật ngữ kỹ thuật -Tra cứu từ điển chuyênngành + thông số dịch thuật -Đầu ra: glossary.json - -{"attention": "Chú ý", -"transformer": "Transformer", -"backprop": "Truyền ngược"} - - -Translation Agent ×N -Dịch chương -Đầu vào: Chương + Bảngthuật ngữ + Hướng dẫn -Các điều khoản được dịchđúng theo bảng -Đầu ra: chapter{n}_zh.md - -"...cơ chế chú ý tính toán -Sự giống nhau của Query·Key^T..." - - -Proofreading Agent -Đánh giá toàn văn -Quét để xác minh tính nhấtquán của thuật ngữ -Kiểm tra tính lưu loát vàdễ đọc -Đầu ra: review_report.md - -P3: "Chú ý" → "Chú ý" không nhất quán -P8: Nên chia câu dài - - -Thuật ngữ - -dịch thuật - -Hệ thống tập tin được chia sẻ -glossary.json -Bảng chú giải thuật ngữ -chapter{1..10}_zh.md -Dịch chương -review_report.md -Báo cáo đánh giá -translation_guide.md -Hướng dẫn dịch thuật - -Ưu điểm của cách ly bối cảnh -Glossary: Chỉ xem các điều khoản | Translation: Chỉ xem chương hiện tại + bảng thuật ngữ |Manager: Chỉ duy trì chỉ mục tệp +Lập kế hoạch song song · Giám sát thờigian thực · Tóm tắt kết quả + +Bus tin nhắn (Message Bus) + + +Agent 1 +Thu thập dữ liệu +Đang chạy ◎ +bối cảnh độc lập + + +Agent 2 +phân tích nội dung +Đang chạy ◎ +bối cảnh độc lập + + +Agent 3 +Tạo biểu đồ +Đã hoàn thành ✓ +bối cảnh độc lập + + +Agent 4 +Kiểm tra định dạng +Chờ đợi ○ +bối cảnh độc lập + + +Ví dụ về giao tiếp bus tin nhắn +Manager → Agent 1 +{"type":start","task":Bộ sưu tập các giấy tờ arxiv","params":{"query://LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result:"charts/fig1.svg"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-vi/images/fig10-7.svg b/book-vi/images/fig10-7.svg index 9ffc7c491..617b551e4 100644 --- a/book-vi/images/fig10-7.svg +++ b/book-vi/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -Lập kế hoạch song song · Giám sát thờigian thực · Tóm tắt kết quả - -Bus tin nhắn (Message Bus) - - -Agent 1 -Thu thập dữ liệu -Đang chạy ◎ -bối cảnh độc lập - - -Agent 2 -phân tích nội dung -Đang chạy ◎ -bối cảnh độc lập - - -Agent 3 -Tạo biểu đồ -Đã hoàn thành ✓ -bối cảnh độc lập - - -Agent 4 -Kiểm tra định dạng -Chờ đợi ○ -bối cảnh độc lập - - -Ví dụ về giao tiếp bus tin nhắn -Manager → Agent 1 -{"type":start","task":Bộ sưu tập các giấy tờ arxiv","params":{"query://LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result:"charts/fig1.svg"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · Cuộc gọi thoại theo thời gianthực + +Giọng nói của người dùng +Đầu vào micrô + + +VAD + ASR +Phiên âm Silero VAD → STT Phiên âm + + +Lý luận LLM +Hiểu ý định + trích xuất thông tin + + +Tổng hợp TTS +Tạo trả lời bằng giọng nói → Phát + +Computer Agent +Python · Tự động hóa trình duyệt + +ảnh chụp màn hình +Trang hiện tại của trình duyệt + + +Vision LLM +Hiểu cấu trúc trang + trường biểu mẫu + + +lập kế hoạch hành động +Xác định vị trí các trường → Lập kế hoạchtrình tự đầu vào + + +thực hiện các hoạt động +Bấm/Nhập/Gửi + +Giao tiếp hai chiều WebSocket (ws://localhost:8849) + + + +Luồng tin nhắn hai chiều theo thời gian thực (trên điện thoạitrong khi sử dụng máy tính của bạn) +Phone → Computer +[FROM_PHONE_AGENT] Người dùng cho biết tên là Zhang San +Computer → Phone +[FROM_COMPUTER_AGENT] Tên đã được điền, cần có số ID +Phone → Computer +[FROM_PHONE_AGENT] Số ID 310101199001011234 +Computer → Phone +[FROM_COMPUTER_AGENT] Biểu mẫu đã được gửi và đăng ký thành công +Phím: Hai vòng lặp ReAct độc lập Agent chạy song song và không chặn nhau. \ No newline at end of file diff --git a/book-vi/images/fig10-8.svg b/book-vi/images/fig10-8.svg index 617b551e4..9446353ea 100644 --- a/book-vi/images/fig10-8.svg +++ b/book-vi/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · Cuộc gọi thoại theo thời gianthực - -Giọng nói của người dùng -Đầu vào micrô - - -VAD + ASR -Phiên âm Silero VAD → STT Phiên âm - - -Lý luận LLM -Hiểu ý định + trích xuất thông tin - - -Tổng hợp TTS -Tạo trả lời bằng giọng nói → Phát - -Computer Agent -Python · Tự động hóa trình duyệt - -ảnh chụp màn hình -Trang hiện tại của trình duyệt - - -Vision LLM -Hiểu cấu trúc trang + trường biểu mẫu - - -lập kế hoạch hành động -Xác định vị trí các trường → Lập kế hoạchtrình tự đầu vào - - -thực hiện các hoạt động -Bấm/Nhập/Gửi - -Giao tiếp hai chiều WebSocket (ws://localhost:8849) - - - -Luồng tin nhắn hai chiều theo thời gian thực (trên điện thoạitrong khi sử dụng máy tính của bạn) -Phone → Computer -[FROM_PHONE_AGENT] Người dùng cho biết tên là Zhang San -Computer → Phone -[FROM_COMPUTER_AGENT] Tên đã được điền, cần có số ID -Phone → Computer -[FROM_PHONE_AGENT] Số ID 310101199001011234 -Computer → Phone -[FROM_COMPUTER_AGENT] Biểu mẫu đã được gửi và đăng ký thành công -Phím: Hai vòng lặp ReAct độc lập Agent chạy song song và không chặn nhau. + +Manager Agent +Tạo động · Giám sát thời gian thực · Chấmdứt tầng + +Agent 1 +cs.edu.cn +Tìm kiếm danhmục giáo viên +Đang tìmkiếm...◎ + + +Agent 2 +math.edu.cn +Tìm kiếm danhmục giáo viên +Không tìm thấy ✗ + + +Agent 3 +phys.edu.cn +Tìm kiếm danhmục giáo viên +xuất hiện! ✓ + + +Agent 4 +chem.edu.cn +Tìm kiếm danhmục giáo viên +Đã chấm dứt ⊘ + + +Agent 5 … 10 +…(Tổng cộng 10) +Tìm kiếm danhmục giáo viên +Đã chấm dứt ⊘ + + +Thời điểm kết thúc tầng +t=0s +Bắt đầu 10 Agent +Tìm kiếm song songcho "Zhang Wei" + +t=12s +Agent 2 Hoàn thành +Không tìm thấy →Thoát + +t=18s +Đã tìm thấy Agent 3! +Gửi target_found + +t=18.1s +Manager Phát sóngterminate +sang Agent đang chạycòn lại + +t=19s +Tất cả đã xác nhận chấmdứt +Kết quả tổng hợp trả về + +kết quả được tìm thấy +Tên: Zhang Wei College: Trường Vật lý +Chức vụ: Giáo sư Hướng: Máy tính lượng tử +Email: zhangwei@phys.edu.cn + +So sánh hiệu suất +Nối tiếp: Trang web 10 × 30s = ~5 phút +Song song: 18 giây cần tìm + 1 giây để kếtthúc = 19 giây +Tỷ lệ tăng tốc: ~15× (bao gồm tối ưu hóachấm dứt tầng) \ No newline at end of file diff --git a/book-vi/images/fig10-9.svg b/book-vi/images/fig10-9.svg index 9446353ea..5ba238c53 100644 --- a/book-vi/images/fig10-9.svg +++ b/book-vi/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Manager Agent -Tạo động · Giám sát thời gian thực · Chấmdứt tầng - -Agent 1 -cs.edu.cn -Tìm kiếm danhmục giáo viên -Đang tìmkiếm...◎ - - -Agent 2 -math.edu.cn -Tìm kiếm danhmục giáo viên -Không tìm thấy ✗ - - -Agent 3 -phys.edu.cn -Tìm kiếm danhmục giáo viên -xuất hiện! ✓ - - -Agent 4 -chem.edu.cn -Tìm kiếm danhmục giáo viên -Đã chấm dứt ⊘ - - -Agent 5 … 10 -…(Tổng cộng 10) -Tìm kiếm danhmục giáo viên -Đã chấm dứt ⊘ - - -Thời điểm kết thúc tầng -t=0s -Bắt đầu 10 Agent -Tìm kiếm song songcho "Zhang Wei" - -t=12s -Agent 2 Hoàn thành -Không tìm thấy →Thoát - -t=18s -Đã tìm thấy Agent 3! -Gửi target_found - -t=18.1s -Manager Phát sóngterminate -sang Agent đang chạycòn lại - -t=19s -Tất cả đã xác nhận chấmdứt -Kết quả tổng hợp trả về - -kết quả được tìm thấy -Tên: Zhang Wei College: Trường Vật lý -Chức vụ: Giáo sư Hướng: Máy tính lượng tử -Email: zhangwei@phys.edu.cn - -So sánh hiệu suất -Nối tiếp: Trang web 10 × 30s = ~5 phút -Song song: 18 giây cần tìm + 1 giây để kếtthúc = 19 giây -Tỷ lệ tăng tốc: ~15× (bao gồm tối ưu hóachấm dứt tầng) + +Product Manager +Đầu vào: Mô tả yêu cầucủa người dùng + +đầu ra: +Danh sách tính năng+ mức độ ưu tiên +Câu chuyện củangười dùng (mục 5) +Tiêu chí chấp nhận + +docs/PRD.md + + + +Architect +Đầu vào: PRD.md + +đầu ra: +Ngăn xếp công nghệ:FastAPI+React +Thông số kỹ thuậtAPI (OpenAPI) +Cơ sở dữ liệuSchema + +docs/design.md + + + +Project Manager +Đầu vào: design.md + +đầu ra: +Danh sách công việc+ phân công lao động +Phân bổ cấp độ tệp +Thứ tự phụ thuộcmô-đun + +docs/tasks.md + + + +Engineer ×3 +Đầu vào: tasks.md +design.md + +đầu ra: +Mô-đun A: Dịch vụngười dùng +Mô-đun B: Dịch vụđặt hàng +Mô-đun C: Dịch vụthanh toán + +src/*.py + + + +QA Engineer +Đầu vào: src/ + PRD.md + +đầu ra: +Kiểm tra đơn vị(pytest) +Kiểm tra tích hợp(API) +Báo cáo Bug →Engineer + +docs/test_report.md + +Sửa chữa Bug + + +Thư mục dự án được chia sẻ +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +Thiết kế lõi MetaGPT +▸ Tài liệuđược chuẩn hóa +Mỗi vai trò đưa ra một định dạng rõ ràng - xuôi dòng chỉ cần hiểu định dạng chứ không cầnhiểu quá trình suy nghĩ ngược dòng +▸ Tách giaodiện +Product Mgr được cải tiến (được thay thế bằng mẫu mạnh hơn) miễn là đầu ra tuân thủ địnhdạng PRD, không sửa đổi xuôi dòng +▸ Không cóManager +Điều khiển diễn ra tự nhiên dọc theo DAG: Product Mgr→Architect→ProjectMgr→Engineer→QA +▸ Kênh ngoạilệ +Kiểm tra QA không thành công → Báo cáo Bug được chuyển trở lại Engineer theo mô-đun → sửalỗi lặp lại \ No newline at end of file diff --git a/book-vi/images/fig10-sequential-handoff.svg b/book-vi/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..6d473b65c --- /dev/null +++ b/book-vi/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +phân tích nhu cầu + +Đầu ra: Tài liệucấu trúc yêu cầu +spec.json +Bàn giao sau khihoàn thiện → + + +Agent B +thiết kế kiến​​trúc + +Đầu ra: Hồ sơthiết kế kỹ thuật +design.md +Bàn giao sau khihoàn thiện → + + +Agent C +Triển khai mã + +Đầu ra: mã nguồn +src/*.py +Bàn giao sau khihoàn thiện → + + +Agent D +Kiểm tra xác minh + +Đầu ra: báo cáothử nghiệm +test_report.md +Bàn giao sau khihoàn thiện → + +Nội dung chuyển Handoff (ví dụ Agent A → Agent B) +Điều kiệnkích hoạt: +A Hoàn thành tài liệu yêu cầu → is_complete=True +Mục tiêuAgent: +target="architect" (Agent B) +Chuyển nộidung: +files=["spec.json"] + summary="Hệ thống thương mại điện tử: 3 microservices,REST API" +Tình trạngsau bàn giao: +status="Thoát" (giải phóng tài nguyên, không ở chế độ chờ) + +Ưu điểm của phân quyền +✓ Không cần trung tâm Manager hiểu mọivai trò +✓ Rõ ràng ranh giới trách nhiệm và táchrời giao diện +✓ Thoát khi hoàn thành và giải phóng tàinguyên thường trú + +Hạn chế của việc phân cấp +✗ Thiếu tầm nhìn tối ưu hóa toàn cầu +✗ Khó khăn trong việc xử lý ngoại lệ (khôngcó sự phối hợp trung tâm) +✗ Quy trình cố định, khó điều chỉnh linhhoạt + \ No newline at end of file diff --git a/book-vi/images/fig10-stage-switching.svg b/book-vi/images/fig10-stage-switching.svg new file mode 100644 index 000000000..ab32167fa --- /dev/null +++ b/book-vi/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ Luồng liên tục của cùng một bối cảnh — lịch sử hội thoại được giữ nguyên giữa các giaiđoạn ▼ + +Giai đoạn 1 +Nhà phân tích nhu cầu + +Lời nhắc hệ thống +"Công việc của bạn là hiểu đầy đủcác yêu cầu. +Đừng vội thực hiện ở giai đoạnnày +Công việc của bạn là đặt câu hỏivà xác nhận. " + +Bộ tool +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +kích hoạt chuyển đổi +complete_req_analysis() + + +Giai đoạn 2 +kỹ sư phần mềm + +Lời nhắc hệ thống +"Viết dựa trên nhu cầu đã đượcxác nhận +Mã Python chất lượng cao. theo +Mô-đun hóa, xử lý lỗi tốt nhất. " + +Bộ tool +write_file(path, content) +read_file(path) +execute_code(code) + +kích hoạt chuyển đổi +submit_for_review() + + +Giai đoạn 3 +người đánh giá mã + +Lời nhắc hệ thống +"Đánh giá chất lượng mã từ nhiềuchiều: +Tính chính xác về chức năng,thông số kỹ thuật của mã, +Bảo vệ. Sử dụng tư duy phản biện." + +Bộ tool +run_linter(file) +run_tests(file) +analyze_complexity(file) +Đảo ngược vai trò: Cập nhật từ nhắc nhở hệ thống + bộ tool, lịch sử và trạng thái hội thoại liêntục được giữ lại + \ No newline at end of file diff --git a/book-vi/images/fig8-1.svg b/book-vi/images/fig8-1.svg index 7b0b2e943..ee88ac8d8 100644 --- a/book-vi/images/fig8-1.svg +++ b/book-vi/images/fig8-1.svg @@ -1,22 +1,54 @@ - - - -Hoàn thành nhiệmvụ -tạo ra trải nghiệmban đầu - -Tinh chỉnh kinhnghiệm -Tóm tắt·Nén·Cấutrúc - - -Lưu vào hệ thốngbên ngoài -Cơ sở kiến​​thức/tool, cóthể tìm kiếm - - -Tìm kiếm sử dụnglại -Cuộc gọi nhiệm vụtiếp theo - - - - -Kinh nghiệm tiếp tục tích lũy và được tái sử dụng qua các phiên - \ No newline at end of file + + + + + + + + + Tiến hóa liên tục: từ kinh nghiệm vận hành đến phiên bản Agent mới + + + Thực thi tác vụ + Tương tác với người dùng,môi trường và công cụ + + + Ghi lại quỹ đạo + Hành động, kết quả và phản hồi + + + Hình thành tín hiệu + Kết quả · Quá trình · Chất lượng + + + Sinh các bản cập nhật ứng viên + + + + + Tri thức + Chỉ dẫn + Chương trình + Tham số + + + Kiểm chứng và phát hành + Hồi quy, phát hànhdần và quay lui + + + + + + + + Agent mới bước vào vòng tiếp theo + Chỉ những cập nhật làm thay đổi hành vi sau đó và vượt qua kiểm chứng mới tạo nên tiến hóa liên tục + + diff --git a/book-zhtw/chapter10.zhtw.md b/book-zhtw/chapter10.zhtw.md index c8e514b39..3194786ca 100644 --- a/book-zhtw/chapter10.zhtw.md +++ b/book-zhtw/chapter10.zhtw.md @@ -164,10 +164,10 @@ **四、系統內建資源(Built-in System Resources)**。系統預置、對所有 Agent 唯讀共享的資源包,典型代表是第二章、第四章介紹的 **Skills**——以檔案形式組織的知識文件與指令碼,掛載於 `/skills` 等路徑,按漸進式披露(先索引、後按需展開)取用;還包括參考手冊、範本庫與共享工具定義。該層全域性共享、唯讀、跨會話穩定,可被所有 Agent 並行讀取而無需並行控制。 -圖 10-3 呈現了這四類區域統一掛載於同一目錄樹的結構:Agent 透過統一介面訪問整棵樹,使用者從共享空間上傳與下載檔案,外部資料來源經介面卡掛載,系統內建資源則以唯讀方式提供。 +圖 10-2 呈現了這四類區域統一掛載於同一目錄樹的結構:Agent 透過統一介面訪問整棵樹,使用者從共享空間上傳與下載檔案,外部資料來源經介面卡掛載,系統內建資源則以唯讀方式提供。 -![圖 10-3 Agent 虛擬檔案系統的四類區域掛載結構](images/fig10-3.svg) +![圖 10-2 Agent 虛擬檔案系統的四類區域掛載結構](images/fig10-2.svg) 表 10-4 從可見性、生命週期、讀寫權限與並行控制四個維度對比這四類區域,可作為檔案系統佈局設計的檢查表。 @@ -249,7 +249,7 @@ LoopX 決策 → Agent 執行 → 獨立驗證器證明 → LoopX 提交 **提議者~稽核者正規化。** -![圖 10-4 提議者~稽核者迴圈](images/fig10-4.svg) +![圖 10-3 提議者~稽核者迴圈](images/fig10-3.svg) 提議者~稽核者是最經典的對等協作正規化。第五章已經在 PPT 生成、影片編輯和日誌視覺化三個實驗中詳細介紹了這一正規化的設計原則和實戰應用:Proposer Agent 負責生成程式碼,Reviewer Agent 渲染執行結果並用 Vision LLM 評估質量、給出結構化改進建議,兩者反覆迭代直到效果達標。 @@ -330,7 +330,7 @@ return summarize_failures(workers) **順序協調形態。** -![圖 10-5 Manager 順序協調](images/fig10-5.svg) +![圖 10-4 Manager 順序協調](images/fig10-4.svg) Manager 按順序依次呼叫專門 Agent,每個 Agent 完成後返回結果,Manager 再決定下一步。控制流是線性的,簡單明瞭,適合子任務之間有清晰先後依賴的場景。 @@ -359,14 +359,14 @@ Manager 按順序依次呼叫專門 Agent,每個 Agent 完成後返回結果 > 4. 對比單 Agent vs 管理者模式在翻譯質量、執行效率、資源消耗方面的差異 > > -> ![圖 10-6 書籍翻譯 Agent 架構](images/fig10-6.svg) +> ![圖 10-5 書籍翻譯 Agent 架構](images/fig10-5.svg) > > **並行協調形態。** -![圖 10-7 Manager 並行協調](images/fig10-7.svg) +![圖 10-6 Manager 並行協調](images/fig10-6.svg) 當多個子任務可以並行執行時,順序模式就顯得效率低下了。並行協調讓多個 Agent 同時工作,大幅提升吞吐量。Manager Agent 不僅要規劃並行任務,還要即時監控所有執行中的 Agent,處理通訊協調,在 Agent 成功或失敗時做出全域性決策。這通常需要**訊息匯流排**(Message Bus)作為基礎設施——可以把它理解為一個「公共公告板」,Agent 可以往上面貼訊息(釋出),也可以關注自己感興趣的訊息型別(訂閱),實現非同步通訊、互不阻塞。常見的實現方案按複雜度遞增有兩類:**Redis Pub/Sub** 輕量級、訊息即發即收,簡單易用,缺點是不持久化——接收方當時不線上,訊息就丟失了;**RabbitMQ** 等訊息佇列則將訊息儲存在磁碟上,即使接收方暫時離線也不會丟失。訊息格式通常包含傳送者 ID、目標 Agent(或廣播給所有人)、訊息型別、以及 JSON 格式的資料內容。 @@ -424,7 +424,7 @@ Manager 按順序依次呼叫專門 Agent,每個 Agent 完成後返回結果 > 4. 記錄協作過程訊息時序和 Agent 決策關鍵點 > > -> ![圖 10-8 Phone 與 Computer 雙 Agent 架構](images/fig10-8.svg) +> ![圖 10-7 Phone 與 Computer 雙 Agent 架構](images/fig10-7.svg) > > > **實驗 10-4 ★★★:同時從多個網站蒐集資訊的 Agent** @@ -456,7 +456,7 @@ Manager 按順序依次呼叫專門 Agent,每個 Agent 完成後返回結果 > 6. 記錄和對比並行執行與序列執行的時間差異,驗證並行化帶來的效能提升 > > -> ![圖 10-9 並行 Web Scraping 架構](images/fig10-9.svg) +> ![圖 10-8 並行 Web Scraping 架構](images/fig10-8.svg) > > @@ -486,7 +486,7 @@ else: **MetaGPT:SOP 驅動的軟體公司模擬。** -![圖10-11 MetaGPT 多 Agent 協作網路](images/fig10-11.svg) +![圖10-9 MetaGPT 多 Agent 協作網路](images/fig10-9.svg) MetaGPT 把軟體公司的標準作業程序編碼進系統。角色依 Product Manager → Architect → Project Manager → Engineer → QA 的固定順序工作,每個角色輸出結構化移交包:任務與驗收標準、已確認的事實與約束,以及檔案路徑等產物引用。角色把訊息發布至共享訊息池,只讀取自己訂閱的類型。這讓傳送者與接收者解耦,但控制流仍由 SOP 固定,因此 MetaGPT 並非完全去中心化。 @@ -592,7 +592,7 @@ A2A 的定位可以和第四章的 MCP 對照理解:MCP 解決的是 Agent 與 ### 史丹福 AI 小鎮:生成式 Agent 的社會模擬 -![圖 10-12 AI 小鎮架構](images/fig10-12.svg) +![圖 10-10 AI 小鎮架構](images/fig10-10.svg) 2023 年,史丹福大學和 Google 研究團隊發表了具有里程碑意義的論文《Generative Agents: Interactive Simulacra of Human Behavior》,提出了「生成式 Agent」的概念。核心創新在於不再侷限於讓 Agent 完成預定義的任務,而是賦予 Agent 接近人類的記憶、反思和規劃能力,使它們能夠在開放的社會環境中自主生活、社交和發展。 @@ -708,7 +708,7 @@ Pinchwork 和 RentAHuman 共同代表了**基於市場機制的協調方式**— > > > -> ![圖 10-13 語音狼人殺 Agent 系統](images/fig10-13.svg) +> ![圖 10-11 語音狼人殺 Agent 系統](images/fig10-11.svg) > > diff --git a/book-zhtw/images/fig10-10.svg b/book-zhtw/images/fig10-10.svg index c68600d77..218d60819 100644 --- a/book-zhtw/images/fig10-10.svg +++ b/book-zhtw/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -需求分析 - -輸出: 結構化需求文件 -spec.json -完成後移交 → - - -Agent B -架構設計 - -輸出: 技術設計文件 -design.md -完成後移交 → - - -Agent C -程式碼實現 - -輸出: 原始碼 -src/*.py -完成後移交 → - - -Agent D -測試驗證 - -輸出: 測試報告 -test_report.md -完成後移交 → - -Handoff 傳遞內容(Agent A → Agent B 示例) -觸發條件: -A 完成需求文件 → is_complete=True -目標 Agent: -target="architect" (Agent B) -傳遞內容: -files=["spec.json"] + summary="電商系統: 3個微服務, REST API" -移交後狀態: -status="退出" (釋放資源, 不保持待命) - -去中心化優勢 -✓ 無需中心 Manager 理解所有角色 -✓ 清晰職責邊界,介面解耦 -✓ 完成即退出,釋放常駐資源 - -去中心化侷限 -✗ 缺乏全域性最佳化視野 -✗ 異常處理困難(無中心協調) -✗ 流程固定,難以動態調整 + +Isabella Rodriguez +Hobbs 咖啡館店主 +熱情好客,樂於社交 + +記憶流 Memory Stream +[08:30] Hobbs 咖啡館開門營業 +importance: 4 recency: 0.9 +[09:15] 顧客 Klaus 來店裡買咖啡 +importance: 5 recency: 0.85 +[10:00] 決定辦一場情人節派對 +importance: 9 recency: 0.8 +[11:30] 邀請顧客 Maria 來派對 +importance: 8 recency: 0.7 +[14:00] 請 Maria 幫忙佈置場地 +importance: 7 recency: 0.6 + +反思 Reflection +"誰是 Hobbs 的常客?" +→ Maria、Klaus、Tom(常來) +"我該邀請誰來派對?" +→ 熟客與好友都邀請 +"派對籌備到哪一步了?" +→ 已邀數人, 待佈置場地 +"誰能幫我佈置咖啡館?" +→ Maria(好友, 樂意幫忙) + +計劃與行動 Planning +08:00 起床 + 早餐 +09:00 Hobbs 開店營業 +12:00 邊營業邊邀請顧客 +14:00 與 Maria 佈置場地 +16:00 備好茶點與座位 +← 動態調整 +18:00 在 Hobbs 舉辦情人節派對 + + +檢索 + + +驅動 + +湧現行為(25 個 Agent · 2 天虛擬時間) +▸ 自發社交 +多次偶遇 → 友誼形成 → 主動約見 +▸ 資訊傳播 +Isabella 的情人節派對邀請擴散到多個 Agent +▸ 選舉傳播 +Sam 競選市長的訊息在 Agent 間擴散 +▸ 關係記憶 +記住過往交談(如攝影專案)並延續話題 +所有行為均非預程式設計 — 記憶 + 反思 + 社交常識推理的湧現結果 \ No newline at end of file diff --git a/book-zhtw/images/fig10-11.svg b/book-zhtw/images/fig10-11.svg index 737897b6d..c1caa5857 100644 --- a/book-zhtw/images/fig10-11.svg +++ b/book-zhtw/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Product Manager -輸入: 使用者需求描述 - -產出: -功能列表 + 優先順序 -使用者故事 (5 條) -驗收標準 - -docs/PRD.md - - - -Architect -輸入: PRD.md - -產出: -技術棧: FastAPI+React -API 規範 (OpenAPI) -資料庫 Schema - -docs/design.md - - - -Project Manager -輸入: design.md - -產出: -任務清單 + 分工 -檔案級分配 -模組依賴順序 - -docs/tasks.md - - - -Engineer ×3 -輸入: tasks.md + design.md - -產出: -模組 A: 使用者服務 -模組 B: 訂單服務 -模組 C: 支付服務 - -src/*.py - - - -QA Engineer -輸入: src/ + PRD.md - -產出: -單元測試 (pytest) -整合測試 (API) -Bug 報告 → Engineer - -docs/test_report.md - -Bug 修復 - - -共享專案目錄 -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT 核心設計 -▸ 標準化文件 -每個角色輸出明確格式 — 下游只需理解格式,不需理解上游思考過程 -▸ 介面解耦 -改進 Product Mgr(換更強模型)只要輸出符合 PRD 格式,下游零修改 -▸ 無 Manager -控制權沿 DAG 自然流動:Product Mgr→Architect→Project Mgr→Engineer→QA -▸ 異常通道 -QA 測試失敗 → Bug 報告按模組路由回 Engineer → 迭代修復 + +法官(程式碼驅動) +遊戲狀態 · 階段控制 · 資訊分發 +Night → Day → Vote → Settle + +🐺 狼人 1 +可見: 同伴身份 +策略: 偽裝村民 +夜晚: 選擇目標 + + +互知 + +🐺 狼人 2 +可見: 同伴身份 +策略: 跟票保護 +夜晚: 協商目標 + + +互知 + +🔮 預言家 +可見: 驗人結果 +策略: 擇機跳出 +夜晚: 查驗 1 人 + + +驗人結果 + +🧪 女巫 +可見: 死亡/救治 +策略: 保藥/解藥 +夜晚: 救/毒 1 人 + + +👤 村民 ×2 +可見: 僅公開資訊 +策略: 邏輯推理 +白天: 分析發言 + + +資訊許可權控制:法官按角色過濾上下文 +狼人: +所有狼人身份 + 夜晚商議 + 公開發言 +預言家: +驗人結果(僅自己驗的) + 公開發言 +女巫: +當晚死亡者 + 解藥/毒藥狀態 + 公開發言 +村民: +僅公開發言 + 投票記錄(零私有資訊) + +實時語音互動(ASR + LLM + TTS) +白天討論 +法官管理發言順序 +按座位依次發言 +投票階段 +收集所有玩家投票 +統計票數公佈結果 +夜晚階段 +法官依次喚醒角色 +私密語音通道 +真人玩家 +隨機分配角色 +語音表達投票/發言 \ No newline at end of file diff --git a/book-zhtw/images/fig10-12.svg b/book-zhtw/images/fig10-12.svg deleted file mode 100644 index 218d60819..000000000 --- a/book-zhtw/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs 咖啡館店主 -熱情好客,樂於社交 - -記憶流 Memory Stream -[08:30] Hobbs 咖啡館開門營業 -importance: 4 recency: 0.9 -[09:15] 顧客 Klaus 來店裡買咖啡 -importance: 5 recency: 0.85 -[10:00] 決定辦一場情人節派對 -importance: 9 recency: 0.8 -[11:30] 邀請顧客 Maria 來派對 -importance: 8 recency: 0.7 -[14:00] 請 Maria 幫忙佈置場地 -importance: 7 recency: 0.6 - -反思 Reflection -"誰是 Hobbs 的常客?" -→ Maria、Klaus、Tom(常來) -"我該邀請誰來派對?" -→ 熟客與好友都邀請 -"派對籌備到哪一步了?" -→ 已邀數人, 待佈置場地 -"誰能幫我佈置咖啡館?" -→ Maria(好友, 樂意幫忙) - -計劃與行動 Planning -08:00 起床 + 早餐 -09:00 Hobbs 開店營業 -12:00 邊營業邊邀請顧客 -14:00 與 Maria 佈置場地 -16:00 備好茶點與座位 -← 動態調整 -18:00 在 Hobbs 舉辦情人節派對 - - -檢索 - - -驅動 - -湧現行為(25 個 Agent · 2 天虛擬時間) -▸ 自發社交 -多次偶遇 → 友誼形成 → 主動約見 -▸ 資訊傳播 -Isabella 的情人節派對邀請擴散到多個 Agent -▸ 選舉傳播 -Sam 競選市長的訊息在 Agent 間擴散 -▸ 關係記憶 -記住過往交談(如攝影專案)並延續話題 -所有行為均非預程式設計 — 記憶 + 反思 + 社交常識推理的湧現結果 - \ No newline at end of file diff --git a/book-zhtw/images/fig10-13.svg b/book-zhtw/images/fig10-13.svg deleted file mode 100644 index c1caa5857..000000000 --- a/book-zhtw/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -法官(程式碼驅動) -遊戲狀態 · 階段控制 · 資訊分發 -Night → Day → Vote → Settle - -🐺 狼人 1 -可見: 同伴身份 -策略: 偽裝村民 -夜晚: 選擇目標 - - -互知 - -🐺 狼人 2 -可見: 同伴身份 -策略: 跟票保護 -夜晚: 協商目標 - - -互知 - -🔮 預言家 -可見: 驗人結果 -策略: 擇機跳出 -夜晚: 查驗 1 人 - - -驗人結果 - -🧪 女巫 -可見: 死亡/救治 -策略: 保藥/解藥 -夜晚: 救/毒 1 人 - - -👤 村民 ×2 -可見: 僅公開資訊 -策略: 邏輯推理 -白天: 分析發言 - - -資訊許可權控制:法官按角色過濾上下文 -狼人: -所有狼人身份 + 夜晚商議 + 公開發言 -預言家: -驗人結果(僅自己驗的) + 公開發言 -女巫: -當晚死亡者 + 解藥/毒藥狀態 + 公開發言 -村民: -僅公開發言 + 投票記錄(零私有資訊) - -實時語音互動(ASR + LLM + TTS) -白天討論 -法官管理發言順序 -按座位依次發言 -投票階段 -收集所有玩家投票 -統計票數公佈結果 -夜晚階段 -法官依次喚醒角色 -私密語音通道 -真人玩家 -隨機分配角色 -語音表達投票/發言 - \ No newline at end of file diff --git a/book-zhtw/images/fig10-2.svg b/book-zhtw/images/fig10-2.svg index 53beafcd0..c3bc52bdb 100644 --- a/book-zhtw/images/fig10-2.svg +++ b/book-zhtw/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ 同一上下文連續流動 — 對話歷史在階段間完整保留 ▼ - -階段 1 -需求分析師 - -系統提示詞 -"你的職責是充分理解需求。 -不要急於實現,在這個階段 -你的任務是提問和確認。" - -工具集 -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -觸發轉換 -complete_req_analysis() - - -階段 2 -軟體工程師 - -系統提示詞 -"根據已確認的需求編寫 -高質量 Python 程式碼。遵循 -模組化、錯誤處理最佳實踐。" - -工具集 -write_file(path, content) -read_file(path) -execute_code(code) - -觸發轉換 -submit_for_review() - - -階段 3 -程式碼審查員 - -系統提示詞 -"從多個維度評估程式碼質量: -功能正確性、程式碼規範、 -安全性。採用批判性思維。" - -工具集 -run_linter(file) -run_tests(file) -analyze_complexity(file) -角色轉換:更新系統提示詞 + 工具集,對話歷史和狀態連續保留 - \ No newline at end of file + + +Agent A + +Agent B + + + +虛擬檔案系統 / +統一介面:read_file · write_file · list_dir + + + +使用者 +上傳 / 下載 + + + + + + + +上傳 / 下載 + + + + + +掛載 mount + + + + +Agent 專屬工作區 +/scratch/<id> +Scratchpad + +私有 · 僅該 Agent +隨例項銷燬 +讀寫 · 無需併發控制 +每個 Agent 各一份 + + + +多 Agent 共享空間 +/workspace/shared +Shared Workspace + +使用者可見 · 持久化 +讀寫 · 需併發控制 +樂觀鎖 · worktree + + + +外部掛載資源 +/mnt/gdrive · /mnt/notion +經介面卡 adapter + +受外部授權約束 +多為只讀 · 寫需謹慎 +延遲高 · 一致性弱 + + + +系統內建資源 +/skills +Skills · 模板 · 手冊 + +全域性共享 · 只讀 +跨會話穩定 +漸進式披露 + + + +外部資料來源 +Google Drive · Notion + + diff --git a/book-zhtw/images/fig10-3.svg b/book-zhtw/images/fig10-3.svg index c3bc52bdb..5d790cd2b 100644 --- a/book-zhtw/images/fig10-3.svg +++ b/book-zhtw/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -虛擬檔案系統 / -統一介面:read_file · write_file · list_dir - - - -使用者 -上傳 / 下載 - - - - - - - -上傳 / 下載 - - - - - -掛載 mount - - - - -Agent 專屬工作區 -/scratch/<id> -Scratchpad - -私有 · 僅該 Agent -隨例項銷燬 -讀寫 · 無需併發控制 -每個 Agent 各一份 - - - -多 Agent 共享空間 -/workspace/shared -Shared Workspace - -使用者可見 · 持久化 -讀寫 · 需併發控制 -樂觀鎖 · worktree - - - -外部掛載資源 -/mnt/gdrive · /mnt/notion -經介面卡 adapter - -受外部授權約束 -多為只讀 · 寫需謹慎 -延遲高 · 一致性弱 - - - -系統內建資源 -/skills -Skills · 模板 · 手冊 - -全域性共享 · 只讀 -跨會話穩定 -漸進式披露 - - - -外部資料來源 -Google Drive · Notion - - + +Proposer Agent +輸入: 論文擴充套件摘要 (2000 字) + +--- +theme: academic +--- +# Transformer 注意力機制 + +## 核心思想 +- 自注意力計算 Q·K^T/√d +- 多頭注意力並行處理 +理解內容結構 → 分解為幻燈片頁面 + +Reviewer Agent + +① Slidev 渲染 → PDF/PNG +② Vision LLM 多維度評估 + +結構化反饋: +頁碼 問題型別 嚴重度 +P3 內容過密 高 +P7 字型過小 中 +P11 配色不協調 低 +渲染 + 視覺分析 → 可執行改進建議 + +Slidev 程式碼 + +結構化反饋 + +迭代改進過程 + +Round 1 +12 頁初稿 +5 個問題 + + +Round 2 +14 頁(拆分密集頁) +2 個問題 + + +Round 3 +14 頁(字型修正) +0 個問題 ✓ + +為何不用單 Agent? +單 Agent: 渲染圖 ×N 輪 → 上下文爆炸 +(1080p 截圖 = 數千 token × 14 頁 × 5 輪) +雙 Agent: Reviewer 僅看當前版本 +Proposer 僅累積文字反饋 → 上下文乾淨 + \ No newline at end of file diff --git a/book-zhtw/images/fig10-4.svg b/book-zhtw/images/fig10-4.svg index 5d790cd2b..4e5a7a8a5 100644 --- a/book-zhtw/images/fig10-4.svg +++ b/book-zhtw/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -輸入: 論文擴充套件摘要 (2000 字) - ---- -theme: academic ---- -# Transformer 注意力機制 - -## 核心思想 -- 自注意力計算 Q·K^T/√d -- 多頭注意力並行處理 -理解內容結構 → 分解為幻燈片頁面 - -Reviewer Agent - -① Slidev 渲染 → PDF/PNG -② Vision LLM 多維度評估 - -結構化反饋: -頁碼 問題型別 嚴重度 -P3 內容過密 高 -P7 字型過小 中 -P11 配色不協調 低 -渲染 + 視覺分析 → 可執行改進建議 - -Slidev 程式碼 - -結構化反饋 - -迭代改進過程 - -Round 1 -12 頁初稿 -5 個問題 - - -Round 2 -14 頁(拆分密集頁) -2 個問題 - - -Round 3 -14 頁(字型修正) -0 個問題 ✓ - -為何不用單 Agent? -單 Agent: 渲染圖 ×N 輪 → 上下文爆炸 -(1080p 截圖 = 數千 token × 14 頁 × 5 輪) -雙 Agent: Reviewer 僅看當前版本 -Proposer 僅累積文字反饋 → 上下文乾淨 + +Manager Agent +任務理解 → 分解 → 排程 → 綜合 +工具集: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +角色: 資料收集 +搜尋技術文件 +提取關鍵資訊 + +Step 1 + + + +Sub-Agent B +角色: 分析處理 +對比分析資料 +生成統計報告 + +Step 2 + + + +Sub-Agent C +角色: 報告生成 +撰寫最終報告 +格式化輸出 + +Step 3 + + +順序執行流 +Manager 呼叫 A +→ A 返回資料 +→ Manager 傳給 B +→ B 返回分析 +→ Manager 傳給 C +→ C 返回報告 +Manager 視角:呼叫 Agent = 呼叫工具(發請求 → 獲響應) \ No newline at end of file diff --git a/book-zhtw/images/fig10-5.svg b/book-zhtw/images/fig10-5.svg index 4e5a7a8a5..6ad3453f6 100644 --- a/book-zhtw/images/fig10-5.svg +++ b/book-zhtw/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -任務理解 → 分解 → 排程 → 綜合 -工具集: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -角色: 資料收集 -搜尋技術文件 -提取關鍵資訊 - -Step 1 - - - -Sub-Agent B -角色: 分析處理 -對比分析資料 -生成統計報告 - -Step 2 - - - -Sub-Agent C -角色: 報告生成 -撰寫最終報告 -格式化輸出 - -Step 3 - - -順序執行流 -Manager 呼叫 A -→ A 返回資料 -→ Manager 傳給 B -→ B 返回分析 -→ Manager 傳給 C -→ C 返回報告 -Manager 視角:呼叫 Agent = 呼叫工具(發請求 → 獲響應) + +Manager Agent +任務規劃 · 進度監控 · 異常處理 · 結果綜合 + +Glossary Agent +術語對照表 +接收全書 → 識別專業術語 +搜尋專業詞典 + 翻譯規範 +輸出: glossary.json + +{"attention": "注意力", + "transformer": "Transformer", + "backprop": "反向傳播"} + + +Translation Agent ×N +章節翻譯 +輸入: 章節 + 術語表 + 指南 +術語嚴格按表翻譯 +輸出: chapter{n}_zh.md + +"...注意力機制透過計算 + Query·Key^T 的相似度..." + + +Proofreading Agent +全文審校 +掃描驗證術語一致性 +檢查流暢性和可讀性 +輸出: review_report.md + +P3: "注意力"→"關注"不一致 +P8: 長句建議拆分 + + +術語表 + +譯文 + +共享檔案系統 +glossary.json +術語對照表 +chapter{1..10}_zh.md +章節譯文 +review_report.md +審校報告 +translation_guide.md +翻譯指南 + +上下文隔離優勢 +Glossary: 僅看術語 | Translation: 僅看當前章節+術語表 | Manager: 僅維護檔案索引 \ No newline at end of file diff --git a/book-zhtw/images/fig10-6.svg b/book-zhtw/images/fig10-6.svg index 6ad3453f6..3243b331e 100644 --- a/book-zhtw/images/fig10-6.svg +++ b/book-zhtw/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Manager Agent -任務規劃 · 進度監控 · 異常處理 · 結果綜合 - -Glossary Agent -術語對照表 -接收全書 → 識別專業術語 -搜尋專業詞典 + 翻譯規範 -輸出: glossary.json - -{"attention": "注意力", - "transformer": "Transformer", - "backprop": "反向傳播"} - - -Translation Agent ×N -章節翻譯 -輸入: 章節 + 術語表 + 指南 -術語嚴格按表翻譯 -輸出: chapter{n}_zh.md - -"...注意力機制透過計算 - Query·Key^T 的相似度..." - - -Proofreading Agent -全文審校 -掃描驗證術語一致性 -檢查流暢性和可讀性 -輸出: review_report.md - -P3: "注意力"→"關注"不一致 -P8: 長句建議拆分 - - -術語表 - -譯文 - -共享檔案系統 -glossary.json -術語對照表 -chapter{1..10}_zh.md -章節譯文 -review_report.md -審校報告 -translation_guide.md -翻譯指南 - -上下文隔離優勢 -Glossary: 僅看術語 | Translation: 僅看當前章節+術語表 | Manager: 僅維護檔案索引 +並行排程 · 實時監控 · 結果彙總 + +訊息匯流排(Message Bus) + + +Agent 1 +資料採集 +執行中 ◎ +獨立上下文 + + +Agent 2 +內容分析 +執行中 ◎ +獨立上下文 + + +Agent 3 +圖表生成 +已完成 ✓ +獨立上下文 + + +Agent 4 +格式校驗 +等待中 ○ +獨立上下文 + + +訊息匯流排通訊示例 +Manager → Agent 1 +{"type":"start","task":"採集 arxiv 論文","params":{"query":"LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg 已生成"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book-zhtw/images/fig10-7.svg b/book-zhtw/images/fig10-7.svg index 3243b331e..80d123620 100644 --- a/book-zhtw/images/fig10-7.svg +++ b/book-zhtw/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -並行排程 · 實時監控 · 結果彙總 - -訊息匯流排(Message Bus) - - -Agent 1 -資料採集 -執行中 ◎ -獨立上下文 - - -Agent 2 -內容分析 -執行中 ◎ -獨立上下文 - - -Agent 3 -圖表生成 -已完成 ✓ -獨立上下文 - - -Agent 4 -格式校驗 -等待中 ○ -獨立上下文 - - -訊息匯流排通訊示例 -Manager → Agent 1 -{"type":"start","task":"採集 arxiv 論文","params":{"query":"LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg 已生成"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · 實時語音通話 + +使用者語音 +麥克風輸入 + + +VAD + ASR +Silero VAD → STT 轉錄 + + +LLM 推理 +理解意圖 + 提取資訊 + + +TTS 合成 +生成語音回覆 → 播放 + +Computer Agent +Python · 瀏覽器自動化 + +螢幕截圖 +瀏覽器當前頁面 + + +Vision LLM +理解頁面結構 + 表單欄位 + + +動作規劃 +定位欄位 → 規劃輸入序列 + + +執行操作 +點選 / 輸入 / 提交 + +WebSocket 雙向通訊 (ws://localhost:8849) + + + +實時雙向訊息流(邊打電話邊用電腦) +Phone → Computer +[FROM_PHONE_AGENT] 使用者說姓名是張三 +Computer → Phone +[FROM_COMPUTER_AGENT] 已填寫姓名,需要證件號 +Phone → Computer +[FROM_PHONE_AGENT] 證件號 310101199001011234 +Computer → Phone +[FROM_COMPUTER_AGENT] 表單已提交,註冊成功 +關鍵:兩個 Agent 獨立 ReAct 迴圈並行執行,互不阻塞 \ No newline at end of file diff --git a/book-zhtw/images/fig10-8.svg b/book-zhtw/images/fig10-8.svg index 80d123620..e813ad8f0 100644 --- a/book-zhtw/images/fig10-8.svg +++ b/book-zhtw/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · 實時語音通話 - -使用者語音 -麥克風輸入 - - -VAD + ASR -Silero VAD → STT 轉錄 - - -LLM 推理 -理解意圖 + 提取資訊 - - -TTS 合成 -生成語音回覆 → 播放 - -Computer Agent -Python · 瀏覽器自動化 - -螢幕截圖 -瀏覽器當前頁面 - - -Vision LLM -理解頁面結構 + 表單欄位 - - -動作規劃 -定位欄位 → 規劃輸入序列 - - -執行操作 -點選 / 輸入 / 提交 - -WebSocket 雙向通訊 (ws://localhost:8849) - - - -實時雙向訊息流(邊打電話邊用電腦) -Phone → Computer -[FROM_PHONE_AGENT] 使用者說姓名是張三 -Computer → Phone -[FROM_COMPUTER_AGENT] 已填寫姓名,需要證件號 -Phone → Computer -[FROM_PHONE_AGENT] 證件號 310101199001011234 -Computer → Phone -[FROM_COMPUTER_AGENT] 表單已提交,註冊成功 -關鍵:兩個 Agent 獨立 ReAct 迴圈並行執行,互不阻塞 + +Manager Agent +動態建立 · 實時監控 · 級聯終止 + +Agent 1 +cs.edu.cn +教師名錄搜尋 +搜尋中... ◎ + + +Agent 2 +math.edu.cn +教師名錄搜尋 +未找到 ✗ + + +Agent 3 +phys.edu.cn +教師名錄搜尋 +找到! ✓ + + +Agent 4 +chem.edu.cn +教師名錄搜尋 +已終止 ⊘ + + +Agent 5 … 10 +…(共 10 個) +教師名錄搜尋 +已終止 ⊘ + + +級聯終止時序 +t=0s +啟動 10 個 Agent +並行搜尋"張偉" + +t=12s +Agent 2 完成 +未找到 → 退出 + +t=18s +Agent 3 找到! +傳送 target_found + +t=18.1s +Manager 廣播 terminate +給其餘執行中的 Agent + +t=19s +全部確認終止 +彙總結果返回 + +找到結果 +姓名: 張偉 學院: 物理學院 +職位: 教授 方向: 量子計算 +郵箱: zhangwei@phys.edu.cn + +效能對比 +序列: 10 個網站 × 30s = ~5 分鐘 +並行: 18 秒找到 + 1 秒終止 = 19 秒 +加速比: ~15×(含級聯終止最佳化) \ No newline at end of file diff --git a/book-zhtw/images/fig10-9.svg b/book-zhtw/images/fig10-9.svg index e813ad8f0..737897b6d 100644 --- a/book-zhtw/images/fig10-9.svg +++ b/book-zhtw/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Manager Agent -動態建立 · 實時監控 · 級聯終止 - -Agent 1 -cs.edu.cn -教師名錄搜尋 -搜尋中... ◎ - - -Agent 2 -math.edu.cn -教師名錄搜尋 -未找到 ✗ - - -Agent 3 -phys.edu.cn -教師名錄搜尋 -找到! ✓ - - -Agent 4 -chem.edu.cn -教師名錄搜尋 -已終止 ⊘ - - -Agent 5 … 10 -…(共 10 個) -教師名錄搜尋 -已終止 ⊘ - - -級聯終止時序 -t=0s -啟動 10 個 Agent -並行搜尋"張偉" - -t=12s -Agent 2 完成 -未找到 → 退出 - -t=18s -Agent 3 找到! -傳送 target_found - -t=18.1s -Manager 廣播 terminate -給其餘執行中的 Agent - -t=19s -全部確認終止 -彙總結果返回 - -找到結果 -姓名: 張偉 學院: 物理學院 -職位: 教授 方向: 量子計算 -郵箱: zhangwei@phys.edu.cn - -效能對比 -序列: 10 個網站 × 30s = ~5 分鐘 -並行: 18 秒找到 + 1 秒終止 = 19 秒 -加速比: ~15×(含級聯終止最佳化) + +Product Manager +輸入: 使用者需求描述 + +產出: +功能列表 + 優先順序 +使用者故事 (5 條) +驗收標準 + +docs/PRD.md + + + +Architect +輸入: PRD.md + +產出: +技術棧: FastAPI+React +API 規範 (OpenAPI) +資料庫 Schema + +docs/design.md + + + +Project Manager +輸入: design.md + +產出: +任務清單 + 分工 +檔案級分配 +模組依賴順序 + +docs/tasks.md + + + +Engineer ×3 +輸入: tasks.md + design.md + +產出: +模組 A: 使用者服務 +模組 B: 訂單服務 +模組 C: 支付服務 + +src/*.py + + + +QA Engineer +輸入: src/ + PRD.md + +產出: +單元測試 (pytest) +整合測試 (API) +Bug 報告 → Engineer + +docs/test_report.md + +Bug 修復 + + +共享專案目錄 +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT 核心設計 +▸ 標準化文件 +每個角色輸出明確格式 — 下游只需理解格式,不需理解上游思考過程 +▸ 介面解耦 +改進 Product Mgr(換更強模型)只要輸出符合 PRD 格式,下游零修改 +▸ 無 Manager +控制權沿 DAG 自然流動:Product Mgr→Architect→Project Mgr→Engineer→QA +▸ 異常通道 +QA 測試失敗 → Bug 報告按模組路由回 Engineer → 迭代修復 \ No newline at end of file diff --git a/book-zhtw/images/fig10-sequential-handoff.svg b/book-zhtw/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..c68600d77 --- /dev/null +++ b/book-zhtw/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +需求分析 + +輸出: 結構化需求文件 +spec.json +完成後移交 → + + +Agent B +架構設計 + +輸出: 技術設計文件 +design.md +完成後移交 → + + +Agent C +程式碼實現 + +輸出: 原始碼 +src/*.py +完成後移交 → + + +Agent D +測試驗證 + +輸出: 測試報告 +test_report.md +完成後移交 → + +Handoff 傳遞內容(Agent A → Agent B 示例) +觸發條件: +A 完成需求文件 → is_complete=True +目標 Agent: +target="architect" (Agent B) +傳遞內容: +files=["spec.json"] + summary="電商系統: 3個微服務, REST API" +移交後狀態: +status="退出" (釋放資源, 不保持待命) + +去中心化優勢 +✓ 無需中心 Manager 理解所有角色 +✓ 清晰職責邊界,介面解耦 +✓ 完成即退出,釋放常駐資源 + +去中心化侷限 +✗ 缺乏全域性最佳化視野 +✗ 異常處理困難(無中心協調) +✗ 流程固定,難以動態調整 + \ No newline at end of file diff --git a/book-zhtw/images/fig10-stage-switching.svg b/book-zhtw/images/fig10-stage-switching.svg new file mode 100644 index 000000000..53beafcd0 --- /dev/null +++ b/book-zhtw/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ 同一上下文連續流動 — 對話歷史在階段間完整保留 ▼ + +階段 1 +需求分析師 + +系統提示詞 +"你的職責是充分理解需求。 +不要急於實現,在這個階段 +你的任務是提問和確認。" + +工具集 +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +觸發轉換 +complete_req_analysis() + + +階段 2 +軟體工程師 + +系統提示詞 +"根據已確認的需求編寫 +高質量 Python 程式碼。遵循 +模組化、錯誤處理最佳實踐。" + +工具集 +write_file(path, content) +read_file(path) +execute_code(code) + +觸發轉換 +submit_for_review() + + +階段 3 +程式碼審查員 + +系統提示詞 +"從多個維度評估程式碼質量: +功能正確性、程式碼規範、 +安全性。採用批判性思維。" + +工具集 +run_linter(file) +run_tests(file) +analyze_complexity(file) +角色轉換:更新系統提示詞 + 工具集,對話歷史和狀態連續保留 + \ No newline at end of file diff --git a/book-zhtw/images/fig8-1.svg b/book-zhtw/images/fig8-1.svg index 27f50ded0..5b5c4f918 100644 --- a/book-zhtw/images/fig8-1.svg +++ b/book-zhtw/images/fig8-1.svg @@ -1,22 +1,54 @@ - - - -完成任務 -產生原始經驗 - -提煉經驗 -總結·壓縮·結構化 - - -存入外部系統 -知識庫/工具,可檢索 - - -檢索複用 -下次任務呼叫 - - - - -經驗持續沉澱,跨會話複用 - \ No newline at end of file + + + + + + + + + 持續進化:從執行經驗到新版本 Agent + + + 執行任務 + 使用者、環境與工具互動 + + + 記錄軌跡 + 動作、結果與回饋 + + + 形成訊號 + 結果·過程·品質 + + + 產生候選更新 + + + + + 知識 + 指令 + 程序 + 參數 + + + 驗證與發布 + 迴歸、灰度與回溯 + + + + + + + + 新的 Agent 進入下一輪執行 + 只有改變後續行為且通過驗證的更新,才構成持續進化 + + diff --git a/book/chapter10.md b/book/chapter10.md index 96644cb13..24516dd2c 100644 --- a/book/chapter10.md +++ b/book/chapter10.md @@ -138,10 +138,10 @@ **四、系统内置资源(Built-in System Resources)**。系统预置、对所有 Agent 只读共享的资源包,典型代表是第二章、第四章介绍的 **Skills**——以文件形式组织的知识文档与脚本,挂载于 `/skills` 等路径,按渐进式披露(先索引、后按需展开)取用;此外还包括参考手册、模板库与共享工具定义。该层全局共享、只读、跨会话稳定,可被所有 Agent 并发读取而无需并发控制。 -图10-3 呈现了这四类区域统一挂载于同一目录树的结构:Agent 通过统一接口访问整棵树,用户从共享空间上传与下载文件,外部数据源经适配器挂载,系统内置资源则以只读方式提供。 +图10-2 呈现了这四类区域统一挂载于同一目录树的结构:Agent 通过统一接口访问整棵树,用户从共享空间上传与下载文件,外部数据源经适配器挂载,系统内置资源则以只读方式提供。 -![图10-3 Agent 虚拟文件系统的四类区域挂载结构](images/fig10-3.svg) +![图10-2 Agent 虚拟文件系统的四类区域挂载结构](images/fig10-2.svg) 表10-4 从可见性、生命周期、读写权限与并发控制四个维度对比这四类区域,可作为文件系统布局设计的检查表。 @@ -231,7 +231,7 @@ LoopX 决策 → Agent 执行 → 独立验证器证明 → LoopX 提交 #### 提议者-审核者范式 -![图10-4 提议者-审核者循环](images/fig10-4.svg) +![图10-3 提议者-审核者循环](images/fig10-3.svg) 提议者-审核者是最经典的对等协作范式。第五章已经在 PPT 生成、视频编辑和日志可视化三个实验中详细介绍了这一范式的设计原则和实战应用:Proposer Agent 负责生成代码,审核者 Agent 渲染执行结果并用 Vision LLM 评估质量、给出结构化改进建议,两者反复迭代直到效果达标。 @@ -317,7 +317,7 @@ return summarize_failures(workers) **顺序协调形态。** -![图10-5 Manager 顺序协调](images/fig10-5.svg) +![图10-4 Manager 顺序协调](images/fig10-4.svg) Manager 按顺序依次调用专门 Agent,每个 Agent 完成后返回结果,Manager 再决定下一步。控制流是线性的,简单明了,适合子任务之间有清晰先后依赖的场景。 @@ -346,14 +346,14 @@ Manager 按顺序依次调用专门 Agent,每个 Agent 完成后返回结果 > 4. 对比单 Agent vs 管理者模式在翻译质量、执行效率、资源消耗方面的差异 > > -> ![图10-6 书籍翻译 Agent 架构](images/fig10-6.svg) +> ![图10-5 书籍翻译 Agent 架构](images/fig10-5.svg) > > **并行协调形态。** -![图10-7 Manager 并行协调](images/fig10-7.svg) +![图10-6 Manager 并行协调](images/fig10-6.svg) 当多个子任务可以并行执行时,顺序模式就显得效率低下了。并行协调让多个 Agent 同时工作,大幅提升吞吐量。Manager Agent 不仅要规划并行任务,还要实时监控所有运行中的 Agent,处理通信协调,在 Agent 成功或失败时做出全局决策。这通常需要**消息总线**(Message Bus)作为基础设施——可以把它理解为一个 “公共公告板”,Agent 可以往上面贴消息(发布),也可以关注自己感兴趣的消息类型(订阅),实现异步通信、互不阻塞。 @@ -392,7 +392,7 @@ Manager 按顺序依次调用专门 Agent,每个 Agent 完成后返回结果 > 4. 记录消息时序、自主启动决策、延迟、成功率和资源消耗,并比较两种模式。 > > -> ![图10-8 Phone 与 Computer 双 Agent 架构](images/fig10-8.svg) +> ![图10-7 Phone 与 Computer 双 Agent 架构](images/fig10-7.svg) > > > **实验 10-4 ★★★:同时从多个网站搜集信息的 Agent** @@ -424,7 +424,7 @@ Manager 按顺序依次调用专门 Agent,每个 Agent 完成后返回结果 > 6. 记录和对比并行执行与串行执行的时间差异,验证并行化带来的性能提升 > > -> ![图10-9 并行 Web Scraping 架构](images/fig10-9.svg) +> ![图10-8 并行 Web Scraping 架构](images/fig10-8.svg) > > @@ -441,7 +441,7 @@ Manager 按顺序依次调用专门 Agent,每个 Agent 完成后返回结果 **MetaGPT:SOP 驱动的软件公司模拟。** -![图10-11 MetaGPT 多 Agent 协作网络](images/fig10-11.svg) +![图10-9 MetaGPT 多 Agent 协作网络](images/fig10-9.svg) MetaGPT 的核心洞察是:人类软件公司积累的**标准作业程序**(SOP,Standard Operating Procedure)本身就是被反复验证过的协作协议——把 SOP 编码进多 Agent 系统,让每个角色像流水线上的专业工种一样产出标准化交付物,交付物天然构成了角色间的通信接口。 @@ -565,7 +565,7 @@ Andrej Karpathy 曾说,“你可以外包你的思考,但不能外包你的 ### 斯坦福 AI 小镇:生成式 Agent 的社会模拟 -![图10-12 AI 小镇架构](images/fig10-12.svg) +![图10-10 AI 小镇架构](images/fig10-10.svg) 2023 年,斯坦福大学和 Google 研究团队发表了具有里程碑意义的论文《Generative Agents: Interactive Simulacra of Human Behavior》,提出了“生成式 Agent”的概念。核心创新在于不再局限于让 Agent 完成预定义的任务,而是赋予 Agent 接近人类的记忆、反思和规划能力,使它们能够在开放的社会环境中自主生活、社交和发展。 @@ -681,7 +681,7 @@ Pinchwork 和 RentAHuman 共同代表了**基于市场机制的协调方式**— > - 游戏结束时能正确判断胜负 > > -> ![图10-13 语音狼人杀 Agent 系统](images/fig10-13.svg) +> ![图10-11 语音狼人杀 Agent 系统](images/fig10-11.svg) > > diff --git a/book/chapter5.md b/book/chapter5.md index 046563a20..b5b48b1d8 100644 --- a/book/chapter5.md +++ b/book/chapter5.md @@ -273,6 +273,8 @@ Coding Agent 面临的根本挑战是代码库通常很大,但模型上下文 文件编辑的难点不在于操作本身,而在于如何让 LLM 以高效又可靠的方式告诉系统 “改哪里、怎么改”。图5-4 对比了五种文件编辑方案,展示人类语言表达与机器精确执行之间的根本张力。 +![图5-4 五种文件编辑方案对比](images/fig5-4.svg) + **差异描述 + Apply Model**:模型不是直接指定如何编辑文件,而是生成一份变更描述——可以是类似 git diff(即 `git diff` 命令输出的那种“删了哪几行、加了哪几行”的格式)的差异文本,也可以是带省略标记的代码骨架(用“此处保持不变”之类的注释跳过未修改部分)。这份描述随后交给专门的“应用模型”(Apply Model)——通常是另一个更小、更快的 LLM——负责与原文件合并、产出完整的新文件。这种分离关注点的设计让主模型专注高层代码逻辑、应用模型专注底层文本操作。朴素实现的脆弱性在于合并环节:变更描述与文件实际代码有微小出入时需判断是否同一位置,存在多个相似代码片段时可能合并到错误的地方。Cursor 是这条路线的代表,但近期由于基模能力的提升,也不再使用这条路线了。 **旧字符串到新字符串**(Old String → New String):Claude Code、Codex 和今天 Cursor 采用的方案。模型提供 old string(要被替换的原文)和 new string(替换后的新文本),框架执行简单的字符串查找替换。优势是可预测性和透明性——old string 在文件中存在且唯一则成功,否则失败,不存在模棱两可。代价是删除大段代码时需完整输出所有原始内容,一个字符的偏差就会匹配失败;同一代码出现多次时需提供更长的上下文来消除歧义。 diff --git a/book/chapter7.md b/book/chapter7.md index 9647e6d1a..c30b03cd5 100644 --- a/book/chapter7.md +++ b/book/chapter7.md @@ -522,7 +522,7 @@ RL 的本质是“试错学习”,而试错必须有个**试错的场地**— 多轮任务一旦接入外部工具,动作就不再只是“移动或回答”,而是搜索、执行代码、修改文件、查询数据库和组合多个 API。工具调用因此把信用分配、环境工程和安全约束同时推到了前台。 -![图7-16 工具调用 RL 奖励循环](images/fig7-18.svg) +![图7-16 工具调用 RL 奖励循环](images/fig7-16.svg) Search-R1[^ch7-25]代表检索增强路线:模型自主决定何时搜索、搜索什么,并利用返回结果继续推理。ReTool 则把代码解释器嵌入思考循环,模型需要学会何时执行代码、如何读取反馈、如何根据报错修正。AWorld-train 提供 MCP 多工具沙盒,进一步引入工具选择、依赖管理、状态重置和可重放性问题。 @@ -542,7 +542,7 @@ for token in trajectory: > **实验 7-14 ★★★:ReTool——代码解释器增强数学解题** > -> ![图7-17 ReTool 交织文本-代码思考与沙盒执行反馈循环](images/fig7-19.svg) +> ![图7-17 ReTool 交织文本-代码思考与沙盒执行反馈循环](images/fig7-17.svg) > > ReTool 在 SFT 预热后,用交织的文本思考、代码执行和解释器反馈进行 PPO 训练。它展示了工具反馈如何改变思考策略:模型逐渐学会主动执行、读取错误并自我修正。训练数据来自 DAPO-Math-17k,但优化算法仍是标准 PPO[^ch7-26][^ch7-27]。 > @@ -550,7 +550,7 @@ for token in trajectory: > > **实验 7-15 ★★★:AWorld-train——在沙盒中学习使用工具** > -> ![图7-18 AWorld-train MCP 沙盒训练架构与工具生态](images/fig7-20.svg) +> ![图7-18 AWorld-train MCP 沙盒训练架构与工具生态](images/fig7-18.svg) > > AWorld-train 使用 MCP 服务器沙盒,提供 Web、文档、多媒体、代码和知识检索等工具。这个开放式实验的重点不是刷新 GAIA 指标,而是跑通可重置、可重放的多工具训练链路,并观察工具调用成功率和组合策略是否随训练改善。 diff --git a/book/images/fig10-10.svg b/book/images/fig10-10.svg index 78a6674a2..015333cb8 100644 --- a/book/images/fig10-10.svg +++ b/book/images/fig10-10.svg @@ -1,55 +1,56 @@ - + - -Agent A -需求分析 - -输出: 结构化需求文档 -spec.json -完成后移交 → - - -Agent B -架构设计 - -输出: 技术设计文档 -design.md -完成后移交 → - - -Agent C -代码实现 - -输出: 源代码 -src/*.py -完成后移交 → - - -Agent D -测试验证 - -输出: 测试报告 -test_report.md -完成后移交 → - -Handoff 传递内容(Agent A → Agent B 示例) -触发条件: -A 完成需求文档 → is_complete=True -目标 Agent: -target="architect" (Agent B) -传递内容: -files=["spec.json"] + summary="电商系统: 3个微服务, REST API" -移交后状态: -status="退出" (释放资源, 不保持待命) - -去中心化优势 -✓ 无需中心 Manager 理解所有角色 -✓ 清晰职责边界,接口解耦 -✓ 完成即退出,释放常驻资源 - -去中心化局限 -✗ 缺乏全局优化视野 -✗ 异常处理困难(无中心协调) -✗ 流程固定,难以动态调整 + +Isabella Rodriguez +Hobbs 咖啡馆店主 +热情好客,乐于社交 + +记忆流 Memory Stream +[08:30] Hobbs 咖啡馆开门营业 +importance: 4 recency: 0.9 +[09:15] 顾客 Klaus 来店里买咖啡 +importance: 5 recency: 0.85 +[10:00] 决定办一场情人节派对 +importance: 9 recency: 0.8 +[11:30] 邀请顾客 Maria 来派对 +importance: 8 recency: 0.7 +[14:00] 请 Maria 帮忙布置场地 +importance: 7 recency: 0.6 + +反思 Reflection +"谁是 Hobbs 的常客?" +→ Maria、Klaus、Tom(常来) +"我该邀请谁来派对?" +→ 熟客与好友都邀请 +"派对筹备到哪一步了?" +→ 已邀数人, 待布置场地 +"谁能帮我布置咖啡馆?" +→ Maria(好友, 乐意帮忙) + +计划与行动 Planning +08:00 起床 + 早餐 +09:00 Hobbs 开店营业 +12:00 边营业边邀请顾客 +14:00 与 Maria 布置场地 +16:00 备好茶点与座位 +← 动态调整 +18:00 在 Hobbs 举办情人节派对 + + +检索 + + +驱动 + +涌现行为(25 个 Agent · 2 天虚拟时间) +▸ 自发社交 +多次偶遇 → 友谊形成 → 主动约见 +▸ 信息传播 +Isabella 的情人节派对邀请扩散到多个 Agent +▸ 选举传播 +Sam 竞选市长的消息在 Agent 间扩散 +▸ 关系记忆 +记住过往交谈(如摄影项目)并延续话题 +所有行为均非预编程 — 记忆 + 反思 + 社交常识推理的涌现结果 \ No newline at end of file diff --git a/book/images/fig10-11.svg b/book/images/fig10-11.svg index cda3e420c..5a29ebf57 100644 --- a/book/images/fig10-11.svg +++ b/book/images/fig10-11.svg @@ -1,79 +1,68 @@ - + - -Product Manager -输入: 用户需求描述 - -产出: -功能列表 + 优先级 -用户故事 (5 条) -验收标准 - -docs/PRD.md - - - -Architect -输入: PRD.md - -产出: -技术栈: FastAPI+React -API 规范 (OpenAPI) -数据库 Schema - -docs/design.md - - - -Project Manager -输入: design.md - -产出: -任务清单 + 分工 -文件级分配 -模块依赖顺序 - -docs/tasks.md - - - -Engineer ×3 -输入: tasks.md + design.md - -产出: -模块 A: 用户服务 -模块 B: 订单服务 -模块 C: 支付服务 - -src/*.py - - - -QA Engineer -输入: src/ + PRD.md - -产出: -单元测试 (pytest) -集成测试 (API) -Bug 报告 → Engineer - -docs/test_report.md - -Bug 修复 - - -共享项目目录 -docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md - - -MetaGPT 核心设计 -▸ 标准化文档 -每个角色输出明确格式 — 下游只需理解格式,不需理解上游思考过程 -▸ 接口解耦 -改进 Product Mgr(换更强模型)只要输出符合 PRD 格式,下游零修改 -▸ 无 Manager -控制权沿 DAG 自然流动:Product Mgr→Architect→Project Mgr→Engineer→QA -▸ 异常通道 -QA 测试失败 → Bug 报告按模块路由回 Engineer → 迭代修复 + +法官(代码驱动) +游戏状态 · 阶段控制 · 信息分发 +Night → Day → Vote → Settle + +🐺 狼人 1 +可见: 同伴身份 +策略: 伪装村民 +夜晚: 选择目标 + + +互知 + +🐺 狼人 2 +可见: 同伴身份 +策略: 跟票保护 +夜晚: 协商目标 + + +互知 + +🔮 预言家 +可见: 验人结果 +策略: 择机跳出 +夜晚: 查验 1 人 + + +验人结果 + +🧪 女巫 +可见: 死亡/救治 +策略: 保药/解药 +夜晚: 救/毒 1 人 + + +👤 村民 ×2 +可见: 仅公开信息 +策略: 逻辑推理 +白天: 分析发言 + + +信息权限控制:法官按角色过滤上下文 +狼人: +所有狼人身份 + 夜晚商议 + 公开发言 +预言家: +验人结果(仅自己验的) + 公开发言 +女巫: +当晚死亡者 + 解药/毒药状态 + 公开发言 +村民: +仅公开发言 + 投票记录(零私有信息) + +实时语音交互(ASR + LLM + TTS) +白天讨论 +法官管理发言顺序 +按座位依次发言 +投票阶段 +收集所有玩家投票 +统计票数公布结果 +夜晚阶段 +法官依次唤醒角色 +私密语音通道 +真人玩家 +随机分配角色 +语音表达投票/发言 \ No newline at end of file diff --git a/book/images/fig10-12.svg b/book/images/fig10-12.svg deleted file mode 100644 index 015333cb8..000000000 --- a/book/images/fig10-12.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Isabella Rodriguez -Hobbs 咖啡馆店主 -热情好客,乐于社交 - -记忆流 Memory Stream -[08:30] Hobbs 咖啡馆开门营业 -importance: 4 recency: 0.9 -[09:15] 顾客 Klaus 来店里买咖啡 -importance: 5 recency: 0.85 -[10:00] 决定办一场情人节派对 -importance: 9 recency: 0.8 -[11:30] 邀请顾客 Maria 来派对 -importance: 8 recency: 0.7 -[14:00] 请 Maria 帮忙布置场地 -importance: 7 recency: 0.6 - -反思 Reflection -"谁是 Hobbs 的常客?" -→ Maria、Klaus、Tom(常来) -"我该邀请谁来派对?" -→ 熟客与好友都邀请 -"派对筹备到哪一步了?" -→ 已邀数人, 待布置场地 -"谁能帮我布置咖啡馆?" -→ Maria(好友, 乐意帮忙) - -计划与行动 Planning -08:00 起床 + 早餐 -09:00 Hobbs 开店营业 -12:00 边营业边邀请顾客 -14:00 与 Maria 布置场地 -16:00 备好茶点与座位 -← 动态调整 -18:00 在 Hobbs 举办情人节派对 - - -检索 - - -驱动 - -涌现行为(25 个 Agent · 2 天虚拟时间) -▸ 自发社交 -多次偶遇 → 友谊形成 → 主动约见 -▸ 信息传播 -Isabella 的情人节派对邀请扩散到多个 Agent -▸ 选举传播 -Sam 竞选市长的消息在 Agent 间扩散 -▸ 关系记忆 -记住过往交谈(如摄影项目)并延续话题 -所有行为均非预编程 — 记忆 + 反思 + 社交常识推理的涌现结果 - \ No newline at end of file diff --git a/book/images/fig10-13.svg b/book/images/fig10-13.svg deleted file mode 100644 index 5a29ebf57..000000000 --- a/book/images/fig10-13.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - -法官(代码驱动) -游戏状态 · 阶段控制 · 信息分发 -Night → Day → Vote → Settle - -🐺 狼人 1 -可见: 同伴身份 -策略: 伪装村民 -夜晚: 选择目标 - - -互知 - -🐺 狼人 2 -可见: 同伴身份 -策略: 跟票保护 -夜晚: 协商目标 - - -互知 - -🔮 预言家 -可见: 验人结果 -策略: 择机跳出 -夜晚: 查验 1 人 - - -验人结果 - -🧪 女巫 -可见: 死亡/救治 -策略: 保药/解药 -夜晚: 救/毒 1 人 - - -👤 村民 ×2 -可见: 仅公开信息 -策略: 逻辑推理 -白天: 分析发言 - - -信息权限控制:法官按角色过滤上下文 -狼人: -所有狼人身份 + 夜晚商议 + 公开发言 -预言家: -验人结果(仅自己验的) + 公开发言 -女巫: -当晚死亡者 + 解药/毒药状态 + 公开发言 -村民: -仅公开发言 + 投票记录(零私有信息) - -实时语音交互(ASR + LLM + TTS) -白天讨论 -法官管理发言顺序 -按座位依次发言 -投票阶段 -收集所有玩家投票 -统计票数公布结果 -夜晚阶段 -法官依次唤醒角色 -私密语音通道 -真人玩家 -随机分配角色 -语音表达投票/发言 - \ No newline at end of file diff --git a/book/images/fig10-2.svg b/book/images/fig10-2.svg index cd9853100..abe2fec17 100644 --- a/book/images/fig10-2.svg +++ b/book/images/fig10-2.svg @@ -1,54 +1,81 @@ - + - -▼ 同一上下文连续流动 — 对话历史在阶段间完整保留 ▼ - -阶段 1 -需求分析师 - -系统提示词 -"你的职责是充分理解需求。 -不要急于实现,在这个阶段 -你的任务是提问和确认。" - -工具集 -ask_clarifying_question(q) -save_requirement(k, v) -complete_req_analysis() - -触发转换 -complete_req_analysis() - - -阶段 2 -软件工程师 - -系统提示词 -"根据已确认的需求编写 -高质量 Python 代码。遵循 -模块化、错误处理最佳实践。" - -工具集 -write_file(path, content) -read_file(path) -execute_code(code) - -触发转换 -submit_for_review() - - -阶段 3 -代码审查员 - -系统提示词 -"从多个维度评估代码质量: -功能正确性、代码规范、 -安全性。采用批判性思维。" - -工具集 -run_linter(file) -run_tests(file) -analyze_complexity(file) -角色转换:更新系统提示词 + 工具集,对话历史和状态连续保留 - \ No newline at end of file + + +Agent A + +Agent B + + + +虚拟文件系统 / +统一接口:read_file · write_file · list_dir + + + +用户 +上传 / 下载 + + + + + + + +上传 / 下载 + + + + + +挂载 mount + + + + +Agent 专属工作区 +/scratch/<id> +Scratchpad + +私有 · 仅该 Agent +随实例销毁 +读写 · 无需并发控制 +每个 Agent 各一份 + + + +多 Agent 共享空间 +/workspace/shared +Shared Workspace + +用户可见 · 持久化 +读写 · 需并发控制 +乐观锁 · worktree + + + +外部挂载资源 +/mnt/gdrive · /mnt/notion +经适配器 adapter + +受外部授权约束 +多为只读 · 写需谨慎 +延迟高 · 一致性弱 + + + +系统内置资源 +/skills +Skills · 模板 · 手册 + +全局共享 · 只读 +跨会话稳定 +渐进式披露 + + + +外部数据源 +Google Drive · Notion + + diff --git a/book/images/fig10-3.svg b/book/images/fig10-3.svg index abe2fec17..675ae2549 100644 --- a/book/images/fig10-3.svg +++ b/book/images/fig10-3.svg @@ -1,81 +1,55 @@ - + - - -Agent A - -Agent B - - - -虚拟文件系统 / -统一接口:read_file · write_file · list_dir - - - -用户 -上传 / 下载 - - - - - - - -上传 / 下载 - - - - - -挂载 mount - - - - -Agent 专属工作区 -/scratch/<id> -Scratchpad - -私有 · 仅该 Agent -随实例销毁 -读写 · 无需并发控制 -每个 Agent 各一份 - - - -多 Agent 共享空间 -/workspace/shared -Shared Workspace - -用户可见 · 持久化 -读写 · 需并发控制 -乐观锁 · worktree - - - -外部挂载资源 -/mnt/gdrive · /mnt/notion -经适配器 adapter - -受外部授权约束 -多为只读 · 写需谨慎 -延迟高 · 一致性弱 - - - -系统内置资源 -/skills -Skills · 模板 · 手册 - -全局共享 · 只读 -跨会话稳定 -渐进式披露 - - - -外部数据源 -Google Drive · Notion - - + +Proposer Agent +输入: 论文扩展摘要 (2000 字) + +--- +theme: academic +--- +# Transformer 注意力机制 + +## 核心思想 +- 自注意力计算 Q·K^T/√d +- 多头注意力并行处理 +理解内容结构 → 分解为幻灯片页面 + +Reviewer Agent + +① Slidev 渲染 → PDF/PNG +② Vision LLM 多维度评估 + +结构化反馈: +页码 问题类型 严重度 +P3 内容过密 高 +P7 字体过小 中 +P11 配色不协调 低 +渲染 + 视觉分析 → 可执行改进建议 + +Slidev 代码 + +结构化反馈 + +迭代改进过程 + +Round 1 +12 页初稿 +5 个问题 + + +Round 2 +14 页(拆分密集页) +2 个问题 + + +Round 3 +14 页(字体修正) +0 个问题 ✓ + +为何不用单 Agent? +单 Agent: 渲染图 ×N 轮 → 上下文爆炸 +(1080p 截图 = 数千 token × 14 页 × 5 轮) +双 Agent: Reviewer 仅看当前版本 +Proposer 仅累积文本反馈 → 上下文干净 + \ No newline at end of file diff --git a/book/images/fig10-4.svg b/book/images/fig10-4.svg index 675ae2549..05efd28e9 100644 --- a/book/images/fig10-4.svg +++ b/book/images/fig10-4.svg @@ -1,55 +1,44 @@ - + - -Proposer Agent -输入: 论文扩展摘要 (2000 字) - ---- -theme: academic ---- -# Transformer 注意力机制 - -## 核心思想 -- 自注意力计算 Q·K^T/√d -- 多头注意力并行处理 -理解内容结构 → 分解为幻灯片页面 - -Reviewer Agent - -① Slidev 渲染 → PDF/PNG -② Vision LLM 多维度评估 - -结构化反馈: -页码 问题类型 严重度 -P3 内容过密 高 -P7 字体过小 中 -P11 配色不协调 低 -渲染 + 视觉分析 → 可执行改进建议 - -Slidev 代码 - -结构化反馈 - -迭代改进过程 - -Round 1 -12 页初稿 -5 个问题 - - -Round 2 -14 页(拆分密集页) -2 个问题 - - -Round 3 -14 页(字体修正) -0 个问题 ✓ - -为何不用单 Agent? -单 Agent: 渲染图 ×N 轮 → 上下文爆炸 -(1080p 截图 = 数千 token × 14 页 × 5 轮) -双 Agent: Reviewer 仅看当前版本 -Proposer 仅累积文本反馈 → 上下文干净 + +Manager Agent +任务理解 → 分解 → 调度 → 综合 +工具集: [call_agent_A, call_agent_B, +call_agent_C, search, write_file] + +Sub-Agent A +角色: 数据收集 +搜索技术文档 +提取关键信息 + +Step 1 + + + +Sub-Agent B +角色: 分析处理 +对比分析数据 +生成统计报告 + +Step 2 + + + +Sub-Agent C +角色: 报告生成 +撰写最终报告 +格式化输出 + +Step 3 + + +顺序执行流 +Manager 调用 A +→ A 返回数据 +→ Manager 传给 B +→ B 返回分析 +→ Manager 传给 C +→ C 返回报告 +Manager 视角:调用 Agent = 调用工具(发请求 → 获响应) \ No newline at end of file diff --git a/book/images/fig10-5.svg b/book/images/fig10-5.svg index 05efd28e9..8a62bbcd8 100644 --- a/book/images/fig10-5.svg +++ b/book/images/fig10-5.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -任务理解 → 分解 → 调度 → 综合 -工具集: [call_agent_A, call_agent_B, -call_agent_C, search, write_file] - -Sub-Agent A -角色: 数据收集 -搜索技术文档 -提取关键信息 - -Step 1 - - - -Sub-Agent B -角色: 分析处理 -对比分析数据 -生成统计报告 - -Step 2 - - - -Sub-Agent C -角色: 报告生成 -撰写最终报告 -格式化输出 - -Step 3 - - -顺序执行流 -Manager 调用 A -→ A 返回数据 -→ Manager 传给 B -→ B 返回分析 -→ Manager 传给 C -→ C 返回报告 -Manager 视角:调用 Agent = 调用工具(发请求 → 获响应) + +Manager Agent +任务规划 · 进度监控 · 异常处理 · 结果综合 + +Glossary Agent +术语对照表 +接收全书 → 识别专业术语 +搜索专业词典 + 翻译规范 +输出: glossary.json + +{"attention": "注意力", + "transformer": "Transformer", + "backprop": "反向传播"} + + +Translation Agent ×N +章节翻译 +输入: 章节 + 术语表 + 指南 +术语严格按表翻译 +输出: chapter{n}_zh.md + +"...注意力机制通过计算 + Query·Key^T 的相似度..." + + +Proofreading Agent +全文审校 +扫描验证术语一致性 +检查流畅性和可读性 +输出: review_report.md + +P3: "注意力"→"关注"不一致 +P8: 长句建议拆分 + + +术语表 + +译文 + +共享文件系统 +glossary.json +术语对照表 +chapter{1..10}_zh.md +章节译文 +review_report.md +审校报告 +translation_guide.md +翻译指南 + +上下文隔离优势 +Glossary: 仅看术语 | Translation: 仅看当前章节+术语表 | Manager: 仅维护文件索引 \ No newline at end of file diff --git a/book/images/fig10-6.svg b/book/images/fig10-6.svg index 8a62bbcd8..e5bb64358 100644 --- a/book/images/fig10-6.svg +++ b/book/images/fig10-6.svg @@ -1,55 +1,44 @@ - - + + Manager Agent -任务规划 · 进度监控 · 异常处理 · 结果综合 - -Glossary Agent -术语对照表 -接收全书 → 识别专业术语 -搜索专业词典 + 翻译规范 -输出: glossary.json - -{"attention": "注意力", - "transformer": "Transformer", - "backprop": "反向传播"} - - -Translation Agent ×N -章节翻译 -输入: 章节 + 术语表 + 指南 -术语严格按表翻译 -输出: chapter{n}_zh.md - -"...注意力机制通过计算 - Query·Key^T 的相似度..." - - -Proofreading Agent -全文审校 -扫描验证术语一致性 -检查流畅性和可读性 -输出: review_report.md - -P3: "注意力"→"关注"不一致 -P8: 长句建议拆分 - - -术语表 - -译文 - -共享文件系统 -glossary.json -术语对照表 -chapter{1..10}_zh.md -章节译文 -review_report.md -审校报告 -translation_guide.md -翻译指南 - -上下文隔离优势 -Glossary: 仅看术语 | Translation: 仅看当前章节+术语表 | Manager: 仅维护文件索引 +并行调度 · 实时监控 · 结果汇总 + +消息总线(Message Bus) + + +Agent 1 +数据采集 +运行中 ◎ +独立上下文 + + +Agent 2 +内容分析 +运行中 ◎ +独立上下文 + + +Agent 3 +图表生成 +已完成 ✓ +独立上下文 + + +Agent 4 +格式校验 +等待中 ○ +独立上下文 + + +消息总线通信示例 +Manager → Agent 1 +{"type":"start","task":"采集 arxiv 论文","params":{"query":"LLM agent"}} +Agent 3 → Manager +{"type":"completed","agent_id":"3","result":"charts/fig1.svg 已生成"} +Agent 1 → Agent 2 +{"type":"data_ready","source":"agent_1","file":"raw_data.json"} +Manager → Agent 4 +{"type":"start","depends_on":["agent_2","agent_3"]} \ No newline at end of file diff --git a/book/images/fig10-7.svg b/book/images/fig10-7.svg index e5bb64358..9b4e2019e 100644 --- a/book/images/fig10-7.svg +++ b/book/images/fig10-7.svg @@ -1,44 +1,55 @@ - - + + - -Manager Agent -并行调度 · 实时监控 · 结果汇总 - -消息总线(Message Bus) - - -Agent 1 -数据采集 -运行中 ◎ -独立上下文 - - -Agent 2 -内容分析 -运行中 ◎ -独立上下文 - - -Agent 3 -图表生成 -已完成 ✓ -独立上下文 - - -Agent 4 -格式校验 -等待中 ○ -独立上下文 - - -消息总线通信示例 -Manager → Agent 1 -{"type":"start","task":"采集 arxiv 论文","params":{"query":"LLM agent"}} -Agent 3 → Manager -{"type":"completed","agent_id":"3","result":"charts/fig1.svg 已生成"} -Agent 1 → Agent 2 -{"type":"data_ready","source":"agent_1","file":"raw_data.json"} -Manager → Agent 4 -{"type":"start","depends_on":["agent_2","agent_3"]} + +Phone Agent +Node.js · 实时语音通话 + +用户语音 +麦克风输入 + + +VAD + ASR +Silero VAD → STT 转录 + + +LLM 推理 +理解意图 + 提取信息 + + +TTS 合成 +生成语音回复 → 播放 + +Computer Agent +Python · 浏览器自动化 + +屏幕截图 +浏览器当前页面 + + +Vision LLM +理解页面结构 + 表单字段 + + +动作规划 +定位字段 → 规划输入序列 + + +执行操作 +点击 / 输入 / 提交 + +WebSocket 双向通信 (ws://localhost:8849) + + + +实时双向消息流(边打电话边用电脑) +Phone → Computer +[FROM_PHONE_AGENT] 用户说姓名是张三 +Computer → Phone +[FROM_COMPUTER_AGENT] 已填写姓名,需要证件号 +Phone → Computer +[FROM_PHONE_AGENT] 证件号 310101199001011234 +Computer → Phone +[FROM_COMPUTER_AGENT] 表单已提交,注册成功 +关键:两个 Agent 独立 ReAct 循环并行运行,互不阻塞 \ No newline at end of file diff --git a/book/images/fig10-8.svg b/book/images/fig10-8.svg index 9b4e2019e..8eedd365a 100644 --- a/book/images/fig10-8.svg +++ b/book/images/fig10-8.svg @@ -1,55 +1,68 @@ - - + + - -Phone Agent -Node.js · 实时语音通话 - -用户语音 -麦克风输入 - - -VAD + ASR -Silero VAD → STT 转录 - - -LLM 推理 -理解意图 + 提取信息 - - -TTS 合成 -生成语音回复 → 播放 - -Computer Agent -Python · 浏览器自动化 - -屏幕截图 -浏览器当前页面 - - -Vision LLM -理解页面结构 + 表单字段 - - -动作规划 -定位字段 → 规划输入序列 - - -执行操作 -点击 / 输入 / 提交 - -WebSocket 双向通信 (ws://localhost:8849) - - - -实时双向消息流(边打电话边用电脑) -Phone → Computer -[FROM_PHONE_AGENT] 用户说姓名是张三 -Computer → Phone -[FROM_COMPUTER_AGENT] 已填写姓名,需要证件号 -Phone → Computer -[FROM_PHONE_AGENT] 证件号 310101199001011234 -Computer → Phone -[FROM_COMPUTER_AGENT] 表单已提交,注册成功 -关键:两个 Agent 独立 ReAct 循环并行运行,互不阻塞 + +Manager Agent +动态创建 · 实时监控 · 级联终止 + +Agent 1 +cs.edu.cn +教师名录搜索 +搜索中... ◎ + + +Agent 2 +math.edu.cn +教师名录搜索 +未找到 ✗ + + +Agent 3 +phys.edu.cn +教师名录搜索 +找到! ✓ + + +Agent 4 +chem.edu.cn +教师名录搜索 +已终止 ⊘ + + +Agent 5 … 10 +…(共 10 个) +教师名录搜索 +已终止 ⊘ + + +级联终止时序 +t=0s +启动 10 个 Agent +并行搜索"张伟" + +t=12s +Agent 2 完成 +未找到 → 退出 + +t=18s +Agent 3 找到! +发送 target_found + +t=18.1s +Manager 广播 terminate +给其余运行中的 Agent + +t=19s +全部确认终止 +汇总结果返回 + +找到结果 +姓名: 张伟 学院: 物理学院 +职位: 教授 方向: 量子计算 +邮箱: zhangwei@phys.edu.cn + +性能对比 +串行: 10 个网站 × 30s = ~5 分钟 +并行: 18 秒找到 + 1 秒终止 = 19 秒 +加速比: ~15×(含级联终止优化) \ No newline at end of file diff --git a/book/images/fig10-9.svg b/book/images/fig10-9.svg index 8eedd365a..cda3e420c 100644 --- a/book/images/fig10-9.svg +++ b/book/images/fig10-9.svg @@ -1,68 +1,79 @@ - + - -Manager Agent -动态创建 · 实时监控 · 级联终止 - -Agent 1 -cs.edu.cn -教师名录搜索 -搜索中... ◎ - - -Agent 2 -math.edu.cn -教师名录搜索 -未找到 ✗ - - -Agent 3 -phys.edu.cn -教师名录搜索 -找到! ✓ - - -Agent 4 -chem.edu.cn -教师名录搜索 -已终止 ⊘ - - -Agent 5 … 10 -…(共 10 个) -教师名录搜索 -已终止 ⊘ - - -级联终止时序 -t=0s -启动 10 个 Agent -并行搜索"张伟" - -t=12s -Agent 2 完成 -未找到 → 退出 - -t=18s -Agent 3 找到! -发送 target_found - -t=18.1s -Manager 广播 terminate -给其余运行中的 Agent - -t=19s -全部确认终止 -汇总结果返回 - -找到结果 -姓名: 张伟 学院: 物理学院 -职位: 教授 方向: 量子计算 -邮箱: zhangwei@phys.edu.cn - -性能对比 -串行: 10 个网站 × 30s = ~5 分钟 -并行: 18 秒找到 + 1 秒终止 = 19 秒 -加速比: ~15×(含级联终止优化) + +Product Manager +输入: 用户需求描述 + +产出: +功能列表 + 优先级 +用户故事 (5 条) +验收标准 + +docs/PRD.md + + + +Architect +输入: PRD.md + +产出: +技术栈: FastAPI+React +API 规范 (OpenAPI) +数据库 Schema + +docs/design.md + + + +Project Manager +输入: design.md + +产出: +任务清单 + 分工 +文件级分配 +模块依赖顺序 + +docs/tasks.md + + + +Engineer ×3 +输入: tasks.md + design.md + +产出: +模块 A: 用户服务 +模块 B: 订单服务 +模块 C: 支付服务 + +src/*.py + + + +QA Engineer +输入: src/ + PRD.md + +产出: +单元测试 (pytest) +集成测试 (API) +Bug 报告 → Engineer + +docs/test_report.md + +Bug 修复 + + +共享项目目录 +docs/PRD.md docs/design.md docs/tasks.md src/*.py docs/test_report.md + + +MetaGPT 核心设计 +▸ 标准化文档 +每个角色输出明确格式 — 下游只需理解格式,不需理解上游思考过程 +▸ 接口解耦 +改进 Product Mgr(换更强模型)只要输出符合 PRD 格式,下游零修改 +▸ 无 Manager +控制权沿 DAG 自然流动:Product Mgr→Architect→Project Mgr→Engineer→QA +▸ 异常通道 +QA 测试失败 → Bug 报告按模块路由回 Engineer → 迭代修复 \ No newline at end of file diff --git a/book/images/fig10-sequential-handoff.svg b/book/images/fig10-sequential-handoff.svg new file mode 100644 index 000000000..78a6674a2 --- /dev/null +++ b/book/images/fig10-sequential-handoff.svg @@ -0,0 +1,55 @@ + + + + +Agent A +需求分析 + +输出: 结构化需求文档 +spec.json +完成后移交 → + + +Agent B +架构设计 + +输出: 技术设计文档 +design.md +完成后移交 → + + +Agent C +代码实现 + +输出: 源代码 +src/*.py +完成后移交 → + + +Agent D +测试验证 + +输出: 测试报告 +test_report.md +完成后移交 → + +Handoff 传递内容(Agent A → Agent B 示例) +触发条件: +A 完成需求文档 → is_complete=True +目标 Agent: +target="architect" (Agent B) +传递内容: +files=["spec.json"] + summary="电商系统: 3个微服务, REST API" +移交后状态: +status="退出" (释放资源, 不保持待命) + +去中心化优势 +✓ 无需中心 Manager 理解所有角色 +✓ 清晰职责边界,接口解耦 +✓ 完成即退出,释放常驻资源 + +去中心化局限 +✗ 缺乏全局优化视野 +✗ 异常处理困难(无中心协调) +✗ 流程固定,难以动态调整 + \ No newline at end of file diff --git a/book/images/fig10-stage-switching.svg b/book/images/fig10-stage-switching.svg new file mode 100644 index 000000000..cd9853100 --- /dev/null +++ b/book/images/fig10-stage-switching.svg @@ -0,0 +1,54 @@ + + + + +▼ 同一上下文连续流动 — 对话历史在阶段间完整保留 ▼ + +阶段 1 +需求分析师 + +系统提示词 +"你的职责是充分理解需求。 +不要急于实现,在这个阶段 +你的任务是提问和确认。" + +工具集 +ask_clarifying_question(q) +save_requirement(k, v) +complete_req_analysis() + +触发转换 +complete_req_analysis() + + +阶段 2 +软件工程师 + +系统提示词 +"根据已确认的需求编写 +高质量 Python 代码。遵循 +模块化、错误处理最佳实践。" + +工具集 +write_file(path, content) +read_file(path) +execute_code(code) + +触发转换 +submit_for_review() + + +阶段 3 +代码审查员 + +系统提示词 +"从多个维度评估代码质量: +功能正确性、代码规范、 +安全性。采用批判性思维。" + +工具集 +run_linter(file) +run_tests(file) +analyze_complexity(file) +角色转换:更新系统提示词 + 工具集,对话历史和状态连续保留 + \ No newline at end of file diff --git a/book/images/fig7-16.svg b/book/images/fig7-16.svg index 93e6d6bd9..9e886dcc1 100644 --- a/book/images/fig7-16.svg +++ b/book/images/fig7-16.svg @@ -1,809 +1,32 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -稀疏 -密集 - - - -二元奖励 - -GAIA: 精确匹配 → 0 / 1 -SWE-Bench: 测试通过 → 0 / 1 -信用分配困难: 10步中 -哪步导致失败? - - - -里程碑奖励 - -τ²-bench 多维验证: - DB状态 ✓ (+0.4) - 关键词确认 ✓ (+0.3) - 流程合规 ✓ (+0.3) - - - -过程奖励 - -每步骤即时反馈: - 身份验证 → +0.1 - 查询信息 → +0.1 - 用户确认 → +0.2 - - - -密集连续 - -AndroidWorld 部分得分: - 正确点击 → +0.05 - 字段填写 → +0.1 - 最终状态 → +0.5 - -Pine AI 案例: binary reward 需100次试错 才偶然成功 -根因: model-free RL 只看 reward=0,无法从 observation 中学习 - -权衡:密集奖励更易学习,但标注成本高且可能过度约束创新性 -实践:过程奖励与结果奖励协同使用 + +策略模型 πθ +生成 action: +思考/搜索/代码/回答 + +工具执行 +API 调用 / 代码沙箱 + +结果解析 +成功/失败/错误信息 + +奖励计算 +正确: +1 +错误: −1 + + + + + +策略梯度更新 + +工具使用 RL 的三层挑战 +第一层:单工具掌握 +何时调用 + 如何调用 + 错误处理 +第二层:多工具选择 +搜索 / 代码 / 文档解析 三选一 +第三层:工具链编排 +依赖管理 + 互斥约束 + 成本优化 \ No newline at end of file diff --git a/book/images/fig7-17.svg b/book/images/fig7-17.svg index 8130c873a..b2efc3b0e 100644 --- a/book/images/fig7-17.svg +++ b/book/images/fig7-17.svg @@ -1,57 +1,54 @@ - + - -任务: Xfinity套餐变更 | 瑕疵: 遗漏账单地址 + 误报套餐名称 - -标量 - - - 7.2 分 - -───────── -无诊断能力 -不知道哪里 -做得好/差 - - -半标量 - -优: 找到正确电话 -优: 成功完成变更 -缺: 遗漏账单地址 -缺: 套餐名称错误 -───────── -综合: 6.5 分 -(有依据但粗粒度) - - -向量 - -信息查询准确 9/10 -信息收集完整 6/10 -沟通流畅度 8/10 -沟通准确性 7/10 -用户沟通准确性10/10 -整体任务完成度 8/10 -───────── -精确定位短板 ↑ - - -生成式 - -视角1: 工具使用准确 -视角2: 信息收集遗漏 -视角3: 套餐名转述 - 错误→建议直接复述 -视角4: 未说明信息用途 -视角5: 未验证客服身份 -→ 6-7种分析视角 - -信息量递增 → - -DeepSeek 实验: 生成式 8次评估产生 6-7种分析视角 -综合多角度诊断后显著改进(示意)— 从一次失败中学到改进方向 - -生成式奖励:将环境丰富反馈转化为可学习知识,无需数百次试错 + +文本思考₁ +"需要求解方程 x²+2x-8=0 +先用 sympy 求解..." + + +代码生成₁ +<code> +from sympy import * +x=symbols("x") +solve(x**2+2*x-8,x) +</code> + + +沙箱反馈₁ +<interpreter> +[-4, 2] +</interpreter> + + +文本思考₂ +"解为 x=-4 或 x=2 +验证:2²+2×2-8=0 ✓" + + +最终答案 +\boxed{-4, 2} + +SandboxFusion +128 并行 worker +Python 沙箱执行 +sympy/numpy/scipy +超时控制 + 内存限制 + + +代码 + + +结果 + +PPO 训练循环 +基础模型: Qwen2.5-32B +SFT 冷启动: ~1 小时 +RL 训练: ~9 天 / 400 步 +每步: 32题 × 16候选 = 512 +平均 7-9 轮交互/响应 +AIME 2024 准确率: + SFT 基线: 25% + 110 步后: 52% + 400 步后: 67% \ No newline at end of file diff --git a/book/images/fig7-18.svg b/book/images/fig7-18.svg index 9e886dcc1..151e8c509 100644 --- a/book/images/fig7-18.svg +++ b/book/images/fig7-18.svg @@ -1,32 +1,73 @@ - + - -策略模型 πθ -生成 action: -思考/搜索/代码/回答 - -工具执行 -API 调用 / 代码沙箱 - -结果解析 -成功/失败/错误信息 - -奖励计算 -正确: +1 -错误: −1 - - - - - -策略梯度更新 - -工具使用 RL 的三层挑战 -第一层:单工具掌握 -何时调用 + 如何调用 + 错误处理 -第二层:多工具选择 -搜索 / 代码 / 文档解析 三选一 -第三层:工具链编排 -依赖管理 + 互斥约束 + 成本优化 + +① 环境配置 +MCP Server 沙盒 +26 个服务器 +126 个工具函数 + +② Agent 构建 +AgentLoop 决策 +系统提示 + 工具 +多轮对话 (≤32轮) + +③ 适配器层 +VeRL 接口统一 +Rollout 收集 +奖励计算 + +④ 训练框架 +GRPO / PPO +策略梯度更新 +131K 上下文 + + + + +MCP 工具生态(GAIA 评测环境) + +Web 交互 (3) +Google 搜索 +智能浏览器 +Playwright + +文档处理 (4) +CSV/DOCX +PPTX/PDF +结构化提取 + +多媒体 (3) +音频转写 +OCR 识别 +视频摘要 + +代码执行 (3) +终端命令 +E2B 沙箱 +文件管理 + +Excel (1) +29 个操作 +公式/图表 +数据透视 + +知识检索 (3) +Wikipedia +ArXiv 论文 +Wayback + +分布式 Rollout 架构 +数据收集 +14.6× 加速 +(7天→12小时) +模型 +Qwen3-4B(本实验) +8×A100 集群 +训练配置 +batch=32 · 16 resp/prompt +GRPO · lr=1e-6 +评测 +GAIA benchmark +参考: 大模型约 32% \ No newline at end of file diff --git a/book/images/fig7-19.svg b/book/images/fig7-19.svg deleted file mode 100644 index b2efc3b0e..000000000 --- a/book/images/fig7-19.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - -文本思考₁ -"需要求解方程 x²+2x-8=0 -先用 sympy 求解..." - - -代码生成₁ -<code> -from sympy import * -x=symbols("x") -solve(x**2+2*x-8,x) -</code> - - -沙箱反馈₁ -<interpreter> -[-4, 2] -</interpreter> - - -文本思考₂ -"解为 x=-4 或 x=2 -验证:2²+2×2-8=0 ✓" - - -最终答案 -\boxed{-4, 2} - -SandboxFusion -128 并行 worker -Python 沙箱执行 -sympy/numpy/scipy -超时控制 + 内存限制 - - -代码 - - -结果 - -PPO 训练循环 -基础模型: Qwen2.5-32B -SFT 冷启动: ~1 小时 -RL 训练: ~9 天 / 400 步 -每步: 32题 × 16候选 = 512 -平均 7-9 轮交互/响应 -AIME 2024 准确率: - SFT 基线: 25% - 110 步后: 52% - 400 步后: 67% - \ No newline at end of file diff --git a/book/images/fig7-20.svg b/book/images/fig7-20.svg deleted file mode 100644 index 151e8c509..000000000 --- a/book/images/fig7-20.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - -① 环境配置 -MCP Server 沙盒 -26 个服务器 -126 个工具函数 - -② Agent 构建 -AgentLoop 决策 -系统提示 + 工具 -多轮对话 (≤32轮) - -③ 适配器层 -VeRL 接口统一 -Rollout 收集 -奖励计算 - -④ 训练框架 -GRPO / PPO -策略梯度更新 -131K 上下文 - - - - -MCP 工具生态(GAIA 评测环境) - -Web 交互 (3) -Google 搜索 -智能浏览器 -Playwright - -文档处理 (4) -CSV/DOCX -PPTX/PDF -结构化提取 - -多媒体 (3) -音频转写 -OCR 识别 -视频摘要 - -代码执行 (3) -终端命令 -E2B 沙箱 -文件管理 - -Excel (1) -29 个操作 -公式/图表 -数据透视 - -知识检索 (3) -Wikipedia -ArXiv 论文 -Wayback - -分布式 Rollout 架构 -数据收集 -14.6× 加速 -(7天→12小时) -模型 -Qwen3-4B(本实验) -8×A100 集群 -训练配置 -batch=32 · 16 resp/prompt -GRPO · lr=1e-6 -评测 -GAIA benchmark -参考: 大模型约 32% - \ No newline at end of file diff --git a/book/images/fig7-reward-density.svg b/book/images/fig7-reward-density.svg new file mode 100644 index 000000000..93e6d6bd9 --- /dev/null +++ b/book/images/fig7-reward-density.svg @@ -0,0 +1,809 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +稀疏 +密集 + + + +二元奖励 + +GAIA: 精确匹配 → 0 / 1 +SWE-Bench: 测试通过 → 0 / 1 +信用分配困难: 10步中 +哪步导致失败? + + + +里程碑奖励 + +τ²-bench 多维验证: + DB状态 ✓ (+0.4) + 关键词确认 ✓ (+0.3) + 流程合规 ✓ (+0.3) + + + +过程奖励 + +每步骤即时反馈: + 身份验证 → +0.1 + 查询信息 → +0.1 + 用户确认 → +0.2 + + + +密集连续 + +AndroidWorld 部分得分: + 正确点击 → +0.05 + 字段填写 → +0.1 + 最终状态 → +0.5 + +Pine AI 案例: binary reward 需100次试错 才偶然成功 +根因: model-free RL 只看 reward=0,无法从 observation 中学习 + +权衡:密集奖励更易学习,但标注成本高且可能过度约束创新性 +实践:过程奖励与结果奖励协同使用 + \ No newline at end of file diff --git a/book/images/fig7-reward-paradigms.svg b/book/images/fig7-reward-paradigms.svg new file mode 100644 index 000000000..8130c873a --- /dev/null +++ b/book/images/fig7-reward-paradigms.svg @@ -0,0 +1,57 @@ + + + + +任务: Xfinity套餐变更 | 瑕疵: 遗漏账单地址 + 误报套餐名称 + +标量 + + + 7.2 分 + +───────── +无诊断能力 +不知道哪里 +做得好/差 + + +半标量 + +优: 找到正确电话 +优: 成功完成变更 +缺: 遗漏账单地址 +缺: 套餐名称错误 +───────── +综合: 6.5 分 +(有依据但粗粒度) + + +向量 + +信息查询准确 9/10 +信息收集完整 6/10 +沟通流畅度 8/10 +沟通准确性 7/10 +用户沟通准确性10/10 +整体任务完成度 8/10 +───────── +精确定位短板 ↑ + + +生成式 + +视角1: 工具使用准确 +视角2: 信息收集遗漏 +视角3: 套餐名转述 + 错误→建议直接复述 +视角4: 未说明信息用途 +视角5: 未验证客服身份 +→ 6-7种分析视角 + +信息量递增 → + +DeepSeek 实验: 生成式 8次评估产生 6-7种分析视角 +综合多角度诊断后显著改进(示意)— 从一次失败中学到改进方向 + +生成式奖励:将环境丰富反馈转化为可学习知识,无需数百次试错 + \ No newline at end of file From 9f1ab08680cf7388b5379a2f95b1065e8070fba7 Mon Sep 17 00:00:00 2001 From: Bojie Li Date: Thu, 13 Aug 2026 11:02:03 +0800 Subject: [PATCH 02/13] fix(figures): rebuild the stale chapter 8 artwork in 11 editions Commit 04c0ed70 replaced all five Chinese chapter-8 figures when the chapter was reorganized around continual evolution. Only book-ko, added afterwards, picked them up; every other edition still shipped the pre-reorganization artwork, so the captions described the new chapter while the pictures showed the old one. In book-en, book-ar and book-zhtw fig8-3 was additionally still untranslated Simplified Chinese, and book-es/ja/tr carried a further two-figure offset whose fig8-3/fig8-4 showed chapter-4 material. Rebuilds fig8-1..fig8-5 for all 11 affected editions from the current Chinese geometry, translating text nodes only so the drawings stay identical, and drops the orphaned fig8-6/fig8-7 left in book-es, book-ja and book-tr. Co-Authored-By: Claude Opus 5 (1M context) --- book-ar/images/fig8-2.svg | 92 +++++++++++++++++++++++++----------- book-ar/images/fig8-3.svg | 64 ++++++++++++++++--------- book-ar/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-ar/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-en/images/fig8-2.svg | 92 +++++++++++++++++++++++++----------- book-en/images/fig8-3.svg | 64 ++++++++++++++++--------- book-en/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-en/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-es/images/fig8-2.svg | 93 ++++++++++++++++++++++++++----------- book-es/images/fig8-3.svg | 61 ++++++++++++++++-------- book-es/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-es/images/fig8-5.svg | 76 +++++++++++++++++++----------- book-es/images/fig8-6.svg | 23 --------- book-es/images/fig8-7.svg | 31 ------------- book-hu/images/fig8-2.svg | 92 +++++++++++++++++++++++++----------- book-hu/images/fig8-3.svg | 64 ++++++++++++++++--------- book-hu/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-hu/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-id/images/fig8-2.svg | 93 ++++++++++++++++++++++++++----------- book-id/images/fig8-3.svg | 65 +++++++++++++++++--------- book-id/images/fig8-4.svg | 71 ++++++++++++++++++++-------- book-id/images/fig8-5.svg | 75 +++++++++++++++++++----------- book-ja/images/fig8-2.svg | 91 ++++++++++++++++++++++++++---------- book-ja/images/fig8-3.svg | 60 +++++++++++++++++------- book-ja/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-ja/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-ja/images/fig8-6.svg | 22 --------- book-ja/images/fig8-7.svg | 30 ------------ book-ru/images/fig8-2.svg | 92 +++++++++++++++++++++++++----------- book-ru/images/fig8-3.svg | 64 ++++++++++++++++--------- book-ru/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-ru/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-ta/images/fig8-2.svg | 92 +++++++++++++++++++++++++----------- book-ta/images/fig8-3.svg | 64 ++++++++++++++++--------- book-ta/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-ta/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-tr/images/fig8-2.svg | 91 ++++++++++++++++++++++++++---------- book-tr/images/fig8-3.svg | 60 +++++++++++++++++------- book-tr/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-tr/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-tr/images/fig8-6.svg | 22 --------- book-tr/images/fig8-7.svg | 30 ------------ book-vi/images/fig8-2.svg | 88 ++++++++++++++++++++++++++--------- book-vi/images/fig8-3.svg | 64 ++++++++++++++++--------- book-vi/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-vi/images/fig8-5.svg | 74 ++++++++++++++++++----------- book-zhtw/images/fig8-2.svg | 88 ++++++++++++++++++++++++++--------- book-zhtw/images/fig8-3.svg | 64 ++++++++++++++++--------- book-zhtw/images/fig8-4.svg | 70 +++++++++++++++++++++------- book-zhtw/images/fig8-5.svg | 74 ++++++++++++++++++----------- 50 files changed, 2288 insertions(+), 1156 deletions(-) delete mode 100644 book-es/images/fig8-6.svg delete mode 100644 book-es/images/fig8-7.svg delete mode 100644 book-ja/images/fig8-6.svg delete mode 100644 book-ja/images/fig8-7.svg delete mode 100644 book-tr/images/fig8-6.svg delete mode 100644 book-tr/images/fig8-7.svg diff --git a/book-ar/images/fig8-2.svg b/book-ar/images/fig8-2.svg index 8583ddd54..ba1e29250 100644 --- a/book-ar/images/fig8-2.svg +++ b/book-ar/images/fig8-2.svg @@ -1,26 +1,66 @@ - - - -مسار ناجح -عملية الإكمال -مهمة - -ملخص الاستراتيجية -صقل في -ملخص المعرفة - - -المعرفة -قاعدة التلخيص -بناء الفهرس الدلالي - - -حقن الاسترجاع -يستخدم الوكيل متى -اتخاذ القرارات - - - - -إعادة استخدام الخبرة التاريخية لمهام مماثلة - \ No newline at end of file + + + + + + + + + + تحقق ثلاثي الطبقات من المسارات: اجعل الأدلة من البيئة الحقيقية + + + + مدقق النتائج + الاختبارات والمبالغ والحالة النهائية للطلب + + + مدقق العملية + السياسات والصلاحيات والإجراءات والالتزامات + + + LLM Rubric + الطبيعية والإيجاز والحلول المتوافقة + + + + تقييم منظَّم للمسار + + + نتيجة المهمة + نجاح أو نجاح جزئي أو فشل + + تقييم حسب الأبعاد + قيّم كل بند لا الإجمالي فقط + + موضع الدليل + حدد دور الحوار وحالة الأداة + + وسوم الفشل + احفظ نوع المشكلة لتشخيص لاحق + + + يسمح برفض التقييم عند نقص الأدلة + + + + إشارة تشخيصية قابلة للتعلم + تحفظ موضع النجاح والفشل + توضح الدليل ونوع المشكلة + تسليم اختيار هدف التحديث إلى وحدة مستقلة + + + + + + + diff --git a/book-ar/images/fig8-3.svg b/book-ar/images/fig8-3.svg index 9a4891d87..ee43058a8 100644 --- a/book-ar/images/fig8-3.svg +++ b/book-ar/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① 需求识别 -现有工具不足 - -② 工具搜索 -开放世界查找 - - -③ 代码封装 -生成并封装 - - -④ 工具注册 -纳入库可复用 - - - - -新工具注册后可被后续任务复用,持续扩展能力边界 - \ No newline at end of file + + + + + طريقة تمثيل القدرة تحدد موضع تحديثها الأساسي + + + المعرفة + الحقائق والخبرة والاستثناءات + Markdown / قاعدة المعرفة + + + التعليمات + مبادئ حكم يمكن صياغتها لغويًا + Prompt / Skill + + + البرامج + مسارات حتمية وقيود صارمة + الأدوات / سير العمل / Harness + + + المعاملات + إدراك عالي الأبعاد وسياسة ضمنية + SFT / التقطير / RL + + + + سهل التحديث وقابل للتتبع + مستوعَب وبكلفة استدلال منخفضة + ليست سلّمًا أحادي الاتجاه بل أربعة حوامل متكاملة + + + السؤال الأول: هل يمكن التعبير عن القدرة كاملةً بالحقائق أو قواعد اللغة أو البرامج؟ + الاستقرار والتكلفة وتواتر التحديث تحدد طريقة النشر، لا إمكانية المعاملة + diff --git a/book-ar/images/fig8-4.svg b/book-ar/images/fig8-4.svg index c59544ccb..21127f917 100644 --- a/book-ar/images/fig8-4.svg +++ b/book-ar/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -课程生成器 -提出渐进式新任务 - -迭代提示机制 -生成并调试技能代码 - - -技能库 -存储可复用技能 - - - - -技能积累后解锁更难的任务(开放世界探索) - \ No newline at end of file + + + + + + تحويل الخبرة إلى معرفة: المسارات دليل، والوثيقة هي وحدة إعادة الاستخدام + + + المسار الخام + الإجراءات والنتائج والبيئة + دليل غير قابل للتغيير + + + تقييم مفرد + نجاح، فشل، وسوم + يحفظ موضع الدليل + + + مقارنة عبر المسارات + تجميع المهام المتشابهة + مقابلة النجاح بالفشل + استخراج القواسم المشتركة والحدود + + + وثيقة Markdown + سيناريوهات التطبيق والاستراتيجية + الاستثناءات والمناطقالمحظورة والمصادر + الإصدار ووقت التحقق + + + الاسترجاع والتطبيق + التحميل عند الحاجةللمهام الجديدة + يواصل توليد التغذية الراجعة + + + + + + + + الأدلة الجديدة تنقّح المعرفة القديمة أو تقيّدها أو تلغيها + + + يشارك بنية الاستخراج والاسترجاع مع الفصل الثالث؛ ويضيف هذا الفصل تقييم المسارات وحلقة تحسين السلوك + diff --git a/book-ar/images/fig8-5.svg b/book-ar/images/fig8-5.svg index 5864f714d..f66616869 100644 --- a/book-ar/images/fig8-5.svg +++ b/book-ar/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① 搜索 -开放网络找工具 - -② 评估 -判断是否合适 - - -③ 测试 -验证可用性 - - -④ 封装 -包成标准工具 - - -⑤ 复用 -纳入工具库 - - - - -新工具沉淀后供后续任务复用 - \ No newline at end of file + + + + + + التنفيذ المباشر والتطور خارج الخدمة: النسخة الرسمية لا تُعدَّل أثناء التشغيل + + + حلقة التنفيذ المباشر + + + + الوكيل المستقر + يعالج مهام حقيقية + يسجل المساراتوالتغذية الراجعة + + + + حلقة التطور خارج الخدمة + + + + + التجميع والتشخيصابحث عن السببالجذري المشترك + تعديل مرشحالمعرفة · التعليمات· البرامج · المعاملات + الانحدار والتحقق الأمنيالحفاظ على القدرات السابقة + الإطلاق التدريجيوالمراقبة والتراجعالترقية إلى نسخة مستقرة جديدة + + + + + + سجل خبرة مُصدَّربالإصدارات + + + + + نسخة جديدة اجتازت التحقق + + جذر الثقة: الصلاحيات والتدقيق والتحقق والتراجع لا تعدّلها حلقة التطور العادية + diff --git a/book-en/images/fig8-2.svg b/book-en/images/fig8-2.svg index 5ec467282..52f5efb59 100644 --- a/book-en/images/fig8-2.svg +++ b/book-en/images/fig8-2.svg @@ -1,26 +1,66 @@ - - - -Successful trajectory -Process of completing -task - -Strategy summary -Refine into -knowledge summary - - -Knowledge -summary base -Build semantic index - - -Retrieval injection -Agent uses when -making decisions - - - - -Reuse historical experience for similar tasks - \ No newline at end of file + + + + + + + + + + Three-layer trajectory verification: keep evidence coming from the real environment + + + + Outcome verifier + Tests, amounts, final order state + + + Process verifier + Policy, permissions, actions, commitments + + + LLM Rubric + Naturalness, concision, compliant workarounds + + + + Structured trajectory evaluation + + + Task outcome + Success, partial success or failure + + Per-dimension scoring + Score each item, not just a total + + Evidence location + Mark the turn and the tool state + + Failure labels + Keep the problem type for later diagnosis + + + Allow refusal to score when evidence is thin + + + + Learnable diagnostic signal + Keeps where success and failure happened + States the evidence and the problem type + Hand off to a separate module to pick what to update + + + + + + + diff --git a/book-en/images/fig8-3.svg b/book-en/images/fig8-3.svg index 9a4891d87..715be90bc 100644 --- a/book-en/images/fig8-3.svg +++ b/book-en/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① 需求识别 -现有工具不足 - -② 工具搜索 -开放世界查找 - - -③ 代码封装 -生成并封装 - - -④ 工具注册 -纳入库可复用 - - - - -新工具注册后可被后续任务复用,持续扩展能力边界 - \ No newline at end of file + + + + + How a capability is represented decides where it is mainly updated + + + Knowledge + Facts, experience, exceptions + Markdown / knowledge base + + + Instructions + Judgment principles you can put into words + Prompt / Skill + + + Programs + Deterministic flows and hard constraints + Tools / Workflow / Harness + + + Parameters + High-dimensional perception and implicit policy + SFT / Distillation / RL + + + + Easy to update, traceable + Internalized, low inference cost + Not a one-way ladder but four complementary carriers + + + First question: can the capability be fully expressed as facts, language rules or programs? + Stability, cost and update frequency decide the deployment, not whether it can be parameterized + diff --git a/book-en/images/fig8-4.svg b/book-en/images/fig8-4.svg index c59544ccb..79438f794 100644 --- a/book-en/images/fig8-4.svg +++ b/book-en/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -课程生成器 -提出渐进式新任务 - -迭代提示机制 -生成并调试技能代码 - - -技能库 -存储可复用技能 - - - - -技能积累后解锁更难的任务(开放世界探索) - \ No newline at end of file + + + + + + Turning experience into knowledge: raw trajectories are evidence, documents are the reusable unit + + + Raw trajectory + Actions, outcomes, environment + Immutable evidence + + + Single evaluation + Success, failure, labels + Keeps the evidence location + + + Cross-trajectory comparison + Aggregate similar tasks + Contrast success against failure + Extract commonalities and boundaries + + + Markdown document + Applicable scenarios and strategy + Exceptions, no-go zones, sources + Version and verification time + + + Retrieval and use + Load on demand for new tasks + Keeps producing feedback + + + + + + + + New evidence revises, narrows or retires old knowledge + + + Shares the extraction and retrieval stack with Chapter 3; this chapter adds trajectory evaluation and the behavior-improvement loop + diff --git a/book-en/images/fig8-5.svg b/book-en/images/fig8-5.svg index 5864f714d..2ed7e2dcd 100644 --- a/book-en/images/fig8-5.svg +++ b/book-en/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① 搜索 -开放网络找工具 - -② 评估 -判断是否合适 - - -③ 测试 -验证可用性 - - -④ 封装 -包成标准工具 - - -⑤ 复用 -纳入工具库 - - - - -新工具沉淀后供后续任务复用 - \ No newline at end of file + + + + + + Online execution and offline evolution: the released version is never rewritten while running + + + Online execution loop + + + + Stable Agent + Handles real tasks + Records trajectoriesand feedback + + + + Offline evolution loop + + + + + Aggregate and diagnoseFind the shared root cause + Candidate changeKnowledge · Instructions· Programs · Parameters + Regression and safety checksPreserve existing capability + Canary, monitoring, rollbackPromote to the new stable version + + + + + + Versioned experience log + + + + + A verified new version + + Root of trust: permissions, audit, verification and rollback are not modified by the ordinary evolution loop + diff --git a/book-es/images/fig8-2.svg b/book-es/images/fig8-2.svg index bfe0dcc6c..b47e1412e 100644 --- a/book-es/images/fig8-2.svg +++ b/book-es/images/fig8-2.svg @@ -1,27 +1,66 @@ - - - -Traza exitosa -Proceso de -finalización de tarea - -Resumen de estrategia -Destilar en síntesis de -conocimiento - - -Base de síntesis de -conoc. -Crear índice semántico - - -Inyección en -recuperación -El Agente lo usa al tomar -decisiones - - - - -Reutilizar experiencia pasada para tareas similares - \ No newline at end of file + + + + + + + + + + Verificación de trayectorias en tres capas: que la evidencia venga del entorno real + + + + Verificador de resultados + Pruebas, importes, estado final del pedido + + + Verificador de proceso + Políticas, permisos, acciones y compromisos + + + LLM Rubric + Naturalidad, concisión, alternativas conformes + + + + Evaluación estructurada de trayectorias + + + Resultado de la tarea + Éxito, éxito parcial o fallo + + Puntuación por dimensión + Puntuar cada ítem, no solo el total + + Ubicación de la evidencia + Indicar el turno y el estado de la herramienta + + Etiquetas de fallo + Conservar el tipo de problema para diagnosticar después + + + Permitir no puntuar cuando falta evidencia + + + + Señal de diagnóstico aprendible + Conserva dónde ocurrió el éxito y el fallo + Indica la evidencia y el tipo de problema + Pasar a un módulo aparte que elija qué actualizar + + + + + + + diff --git a/book-es/images/fig8-3.svg b/book-es/images/fig8-3.svg index 3168d6cf4..11218ee7e 100644 --- a/book-es/images/fig8-3.svg +++ b/book-es/images/fig8-3.svg @@ -1,19 +1,42 @@ - - - -Consulta del usuario -"Depurar este archivo" - - -Capa 1: Búsqueda semántica a nivel de servidor -Cientos de servidores MCP → recuperar los mejores K servidores - - -Capa 2: Búsqueda semántica a nivel de herramienta -Coincidir solo entre herramientas de los mejores K servidores → mejores N -herramientas - - -Herramienta seleccionada -Reduce drásticamente el espacio de candidatos y reduce el costo de selección - \ No newline at end of file + + + + + Cómo se representa una capacidad decide dónde se actualiza + + + Conocimiento + Hechos, experiencia, excepciones + Markdown / base de conocimiento + + + Instrucciones + Principios de juicio expresables en palabras + Prompt / Skill + + + Programas + Flujos deterministas y restricciones fuertes + Herramientas / Flujo / Harness + + + Parámetros + Percepción de alta dimensión y política implícita + SFT / Destilación / RL + + + + Fácil de actualizar y trazable + Interiorizado, bajo coste de inferencia + No es una escalera de un solo sentido sino cuatro soportes complementarios + + + Primera pregunta: ¿puede expresarse por completo como hechos, reglas o programas? + La estabilidad, el coste y la frecuencia deciden el despliegue, no si puede parametrizarse + diff --git a/book-es/images/fig8-4.svg b/book-es/images/fig8-4.svg index 821c14500..d71d293f2 100644 --- a/book-es/images/fig8-4.svg +++ b/book-es/images/fig8-4.svg @@ -1,18 +1,52 @@ - - -Ingenuo: todas las herramientas en el prompt del sistema - -Prompt del sistema + todas las def. de herramientas -Cualquier cambio en herramientas → invalida toda la caché KV - -Recomputado en cada ronda, alto costo -Optimizado: def. de herramientas cargadas bajo demanda - -Prompt del sistema estable (prefijo de acierto de caché) - -Def. de herramientas agregadas bajo demanda (parte variable) - -Traza de conversación -El prefijo estable no cambia → la caché KV se reutiliza continuamente - - \ No newline at end of file + + + + + + De la experiencia al conocimiento: las trayectorias son evidencia, los documentos son la unidad reutilizable + + + Trayectoria original + Acciones, resultados, entorno + Evidencia inmutable + + + Evaluación puntual + Éxito, fallo, etiquetas + Conserva la ubicación de la evidencia + + + Comparación entre trayectorias + Agrupar tareas similares + Contrastar éxito y fallo + Extraer patrones comunes y límites + + + Documento Markdown + Escenarios aplicables y estrategia + Excepciones, zonas vedadas y fuentes + Versión y fecha de validación + + + Recuperación y uso + Cargar bajo demandaen tareas nuevas + Sigue generandoretroalimentación + + + + + + + + La nueva evidencia revisa, acota o retira el conocimiento antiguo + + + Comparte la infraestructura de extracción y recuperación del capítulo 3; aquí se añade la evaluación de trayectorias y el ciclo de mejora + diff --git a/book-es/images/fig8-5.svg b/book-es/images/fig8-5.svg index cb8b7310b..bbd9d9db7 100644 --- a/book-es/images/fig8-5.svg +++ b/book-es/images/fig8-5.svg @@ -1,28 +1,48 @@ - - - -① Identificación de -necesidad -Herramientas actuales -insuficientes - -② Búsqueda de -herramientas -Búsqueda en el mundo -abierto - - -③ Encapsulación -de código -Generar y encapsular - - -④ Registro de -herramientas -Agregar a librería, reutilizar - - - - -Las nuevas herramientas registradas se reutilizan en tareas posteriores, expandiendo continuamente sus capacidades - \ No newline at end of file + + + + + + Ejecución en línea y evolución fuera de línea: la versión publicada nunca se reescribe en caliente + + + Bucle de ejecución en línea + + + + Agent estable + Atiende tareas reales + Registra trayectoriasy retroalimentación + + + + Bucle de evolución fuera de línea + + + + + Agregar y diagnosticarBuscar la causa raíz común + Cambio candidatoConocimiento · Instrucciones· Programas · Parámetros + Regresión y verificaciónde seguridadConservar lascapacidades previas + Despliegue gradual,monitoreo y reversiónPromover a nueva versión estable + + + + + + Registro deexperiencia versionado + + + + + Una nueva versión validada + + Raíz de confianza: permisos, auditoría, validación y reversión no los modifica el ciclo de evolución ordinario + diff --git a/book-es/images/fig8-6.svg b/book-es/images/fig8-6.svg deleted file mode 100644 index 081b4f88f..000000000 --- a/book-es/images/fig8-6.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - -Generador de plan de -estudio -Proponer nuevas tareas -progresivas - -Mecanismo de prompt -iterativo -Generar código de habilidad -y depurar - - -Librería de habilidades -Almacenar habilidades -reutilizables - - - - -La acumulación de habilidades desbloquea tareas más difíciles (exploración en mundo abierto) - \ No newline at end of file diff --git a/book-es/images/fig8-7.svg b/book-es/images/fig8-7.svg deleted file mode 100644 index d1e5f1a34..000000000 --- a/book-es/images/fig8-7.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - -① Buscar -Encontrar herramienta -en la web abierta - -② Evaluar -Determinar -idoneidad - - -③ Probar -Verificar -usabilidad - - -④ Empaquetar -Envolver en -herramienta estándar - - -⑤ Reutilizar -Agregar a la librería -de herramientas - - - - -Las nuevas herramientas se acumulan para ser reutilizadas en tareas posteriores - \ No newline at end of file diff --git a/book-hu/images/fig8-2.svg b/book-hu/images/fig8-2.svg index f287af15f..1aba364f9 100644 --- a/book-hu/images/fig8-2.svg +++ b/book-hu/images/fig8-2.svg @@ -1,26 +1,66 @@ - - - -sikeres trajektória -folyamat befejezés -feladat - -Stratégia-összegzés -finomítás → -tudás összegzés - - -tudás -összegzés alap -Build Szemantikai index - - -Visszakeresett tudás beillesztése -Az ágens használja -döntéshozatalkor - - - - -Korábbi tapasztalat újrahasználása hasonló feladatokhoz - \ No newline at end of file + + + + + + + + + + Háromrétegű trajektória-ellenőrzés: a bizonyíték valós környezetből jöjjön + + + + Eredmény-ellenőrző + Tesztek, összegek, a rendelés végállapota + + + Folyamat-ellenőrző + Szabályok, jogosultságok, műveletek, vállalások + + + LLM Rubric + Természetesség, tömörség, szabályos kerülőút + + + + Strukturált trajektória-értékelés + + + A feladat eredménye + Siker, részleges siker vagy kudarc + + Dimenziónkénti pontozás + Tételenként pontozz, ne csak összesítve + + A bizonyíték helye + Jelöld a kört és az eszköz állapotát + + Hibacímkék + Őrizd meg a hibatípust későbbi diagnózishoz + + + Kevés bizonyítéknál megtagadható a pontozás + + + + Tanulható diagnosztikai jel + Megőrzi a siker és a kudarc helyét + Megadja a bizonyítékot és a hibatípust + Külön modul válassza ki a frissítendő elemet + + + + + + + diff --git a/book-hu/images/fig8-3.svg b/book-hu/images/fig8-3.svg index ccb1dbfd7..29ad013f5 100644 --- a/book-hu/images/fig8-3.svg +++ b/book-hu/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① Igény felismerése -A meglévő eszközök nem elegendők - -② Eszközkeresés -Keresés a nyílt világban - - -③ Kód becsomagolása -Létrehozás és becsomagolás - - -④ Eszköz regisztrálása -Tárolás későbbi használatra - - - - -A regisztrált eszközt a későbbi feladatok használhatják, folyamatosan bővítve a képességeket - \ No newline at end of file + + + + + A képesség ábrázolásmódja dönti el, hol frissül + + + Tudás + Tények, tapasztalat, kivételek + Markdown / tudásbázis + + + Utasítások + Szavakba önthető ítéleti elvek + Prompt / Skill + + + Programok + Determinisztikus folyamatok és kemény korlátok + Eszközök / Munkafolyamat / Harness + + + Paraméterek + Nagy dimenziós észlelés és rejtett stratégia + SFT / Desztilláció / RL + + + + Könnyen frissíthető, nyomon követhető + Beépült, alacsony következtetési költség + Nem egyirányú létra, hanem négy egymást kiegészítő hordozó + + + Első kérdés: kifejezhető-e a képesség teljesen tényekkel, nyelvi szabályokkal vagy programmal? + A telepítést a stabilitás, a költség és a frissítési gyakoriság dönti el, nem a paraméterezhetőség + diff --git a/book-hu/images/fig8-4.svg b/book-hu/images/fig8-4.svg index 949cd68e8..c95cd20e2 100644 --- a/book-hu/images/fig8-4.svg +++ b/book-hu/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -Tantervgenerátor -Egyre nehezebb új feladatokat javasol - -Iteratív promptmechanizmus -Készségkód létrehozása és hibakeresése - - -Készségtár -Újrahasználható készségek tárolása - - - - -A felhalmozott készségek nehezebb feladatokat nyitnak meg (nyílt világ feltárása) - \ No newline at end of file + + + + + + Tapasztalatból tudás: a nyers trajektória a bizonyíték, a dokumentum az újrahasznosítható egység + + + Nyers trajektória + Műveletek, eredmények, környezet + Változtathatatlan bizonyíték + + + Egyszeri értékelés + Siker, kudarc, címkék + Megőrzi a bizonyíték helyét + + + Trajektóriák közötti összevetés + Hasonló feladatok összevonása + Siker és kudarc szembeállítása + Közös vonások és határok kinyerése + + + Markdown dokumentum + Alkalmazási helyzetek és stratégia + Kivételek, tiltott zónák, források + Verzió és ellenőrzés ideje + + + Visszakeresés és alkalmazás + Új feladatnál igény szerint tölts be + További visszajelzést termel + + + + + + + + Az új bizonyíték javítja, szűkíti vagy nyugdíjazza a régi tudást + + + A 3. fejezet kinyerő és kereső rétegét használja; ez a fejezet a trajektória-értékeléssel és a viselkedésjavító hurokkal egészíti ki + diff --git a/book-hu/images/fig8-5.svg b/book-hu/images/fig8-5.svg index 62bf0e23b..2ee8782dc 100644 --- a/book-hu/images/fig8-5.svg +++ b/book-hu/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① Keresés -Eszköz keresése a nyílt weben - -② Kiértékelés -Alkalmasság megítélése - - -③ Tesztelés -Használhatóság ellenőrzése - - -④ Csomagolás -Szabványos eszközzé alakítás - - -⑤ Újrafelhasználás -Felvétel az eszköztárba - - - - -Az új eszköz a későbbi feladatokban újrafelhasználható - \ No newline at end of file + + + + + + Online futás és offline fejlődés: a kiadott verziót futás közben nem írjuk át + + + Online futási hurok + + + + Stabil Agent + Valós feladatokat kezel + Trajektóriát ésvisszajelzést rögzít + + + + Offline fejlődési hurok + + + + + Összesítés és diagnózisKözös gyökérok keresése + Jelölt módosításTudás · Utasítás ·Program · Paraméter + Regressziós ésbiztonsági ellenőrzésMeglévő képesség megőrzése + Fokozatos kiadás,felügyelet, visszaállításElőléptetés új stabil verzióvá + + + + + + Verziózott tapasztalatnapló + + + + + Ellenőrzött új verzió + + Bizalmi gyökér: a jogosultságokat, auditot, ellenőrzést és visszaállítást a szokásos fejlődési hurok nem módosítja + diff --git a/book-id/images/fig8-2.svg b/book-id/images/fig8-2.svg index 3a0ccd36d..58e14adae 100644 --- a/book-id/images/fig8-2.svg +++ b/book-id/images/fig8-2.svg @@ -1,27 +1,66 @@ - - - - -Trajektori yang berhasil -Proses penyelesaian -tugas - -Ringkasan strategi -Saring menjadi -ringkasan pengetahuan - - -Basis ringkasan -pengetahuan -Bangun indeks semantik - - -Injeksi retrieval -Agent gunakan saat -mengambil keputusan - - - - -Gunakan kembali pengalaman historis untuk tugas serupa - \ No newline at end of file + + + + + + + + + + Verifikasi trajektori tiga lapis: biarkan bukti datang dari lingkungan nyata + + + + Verifikator hasil + Tes, jumlah, status akhir pesanan + + + Verifikator proses + Kebijakan, izin, aksi, dan komitmen + + + LLM Rubric + Alami, ringkas, solusi yang tetap patuh + + + + Evaluasi trajektori terstruktur + + + Hasil tugas + Berhasil, berhasil sebagian, atau gagal + + Penilaian per dimensi + Nilai tiap butir, bukan hanya totalnya + + Lokasi bukti + Tandai giliran dan status alat + + Label kegagalan + Simpan jenis masalah untuk diagnosis lanjutan + + + Boleh menolak menilai bila bukti kurang + + + + Sinyal diagnostik yang dapat dipelajari + Menyimpan letak keberhasilan dan kegagalan + Menyatakan bukti dan jenis masalah + Serahkan pemilihan objek pembaruan ke modul terpisah + + + + + + + diff --git a/book-id/images/fig8-3.svg b/book-id/images/fig8-3.svg index dd5ec7b0d..713fc788c 100644 --- a/book-id/images/fig8-3.svg +++ b/book-id/images/fig8-3.svg @@ -1,23 +1,42 @@ - - - - -① Identifikasi Kebutuhan -Tool saat ini tidak memadai - -② Pencarian Tool -Cari di dunia terbuka - - -③ Enkapsulasi Kode -Hasilkan dan enkapsulasi - - -④ Registrasi Tool -Masukkan ke pustaka untuk digunakan kembali - - - - -Tool yang baru diregistrasi dapat digunakan kembali pada tugas berikutnya, terus memperluas batas kemampuan - \ No newline at end of file + + + + + Cara sebuah kemampuan direpresentasikan menentukan di mana ia diperbarui + + + Pengetahuan + Fakta, pengalaman, pengecualian + Markdown / basis pengetahuan + + + Instruksi + Prinsip penilaian yang bisa dibahasakan + Prompt / Skill + + + Program + Alur deterministik dan batasan ketat + Alat / Alur kerja / Harness + + + Parameter + Persepsi berdimensi tinggi dan kebijakan implisit + SFT / Distilasi / RL + + + + Mudah diperbarui, dapat dilacak + Terinternalisasi, biaya inferensi rendah + Bukan tangga satu arah, melainkan empat pengusung yang saling melengkapi + + + Pertanyaan pertama: bisakah kemampuan itu dinyatakan penuh sebagai fakta, aturan bahasa, atau program? + Stabilitas, biaya, dan frekuensi pembaruan menentukan penerapannya, bukan bisa tidaknya diparameterkan + diff --git a/book-id/images/fig8-4.svg b/book-id/images/fig8-4.svg index 0fd97e719..2f2812abe 100644 --- a/book-id/images/fig8-4.svg +++ b/book-id/images/fig8-4.svg @@ -1,19 +1,52 @@ - - - - -Pembuat Kurikulum -Usulkan tugas baru yang progresif - -Mekanisme Prompt Iteratif -Hasilkan dan debug kode keahlian - - -Pustaka Keahlian -Simpan keahlian yang dapat digunakan kembali - - - - -Buka tugas yang lebih sulit setelah mengakumulasi keahlian (eksplorasi dunia terbuka) - \ No newline at end of file + + + + + + Mengubah pengalaman jadi pengetahuan: trajektori adalah bukti, dokumen adalah unit pakai ulang + + + Trajektori mentah + Aksi, hasil, lingkungan + Bukti yang tak berubah + + + Evaluasi tunggal + Berhasil, gagal, label + Menyimpan letak bukti + + + Perbandingan antar trajektori + Kumpulkan tugas sejenis + Bandingkan berhasil dan gagal + Tarik kesamaan dan batasnya + + + Dokumen Markdown + Skenario penerapan dan strategi + Pengecualian, area terlarang, sumber + Versi dan waktu verifikasi + + + Ambil dan terapkan + Muat sesuaikebutuhan tugas baru + Terus menghasilkan umpan balik + + + + + + + + Bukti baru merevisi, membatasi, atau memensiunkan pengetahuan lama + + + Berbagi infrastruktur ekstraksi dan pencarian dengan Bab 3; bab ini menambah evaluasi trajektori dan lingkar perbaikan perilaku + diff --git a/book-id/images/fig8-5.svg b/book-id/images/fig8-5.svg index e28decac1..c5659d80d 100644 --- a/book-id/images/fig8-5.svg +++ b/book-id/images/fig8-5.svg @@ -1,27 +1,48 @@ - - - - -① Pencarian -Cari Tool di jaringan terbuka - -② Evaluasi -Tentukan apakah sesuai - - -③ Pengujian -Verifikasi ketersediaan - - -④ Enkapsulasi -Bungkus menjadi Tool standar - - -⑤ Penggunaan Kembali -Masukkan ke pustaka Tool - - - - -Tool baru yang terakumulasi tersedia untuk digunakan kembali pada tugas berikutnya - \ No newline at end of file + + + + + + Eksekusi daring dan evolusi luring: versi rilis tidak ditulis ulang saat berjalan + + + Lingkar eksekusi daring + + + + Agent versi stabil + Menangani tugas nyata + Mencatat trajektoridan umpan balik + + + + Lingkar evolusi luring + + + + + Agregasi dan diagnosisCari akar masalah bersama + Perubahan kandidatPengetahuan · Instruksi· Program · Parameter + Regresi dan verifikasi keamananPertahankan kemampuan lama + Rilis bertahap, pemantauan, rollbackNaikkan jadi versi stabil baru + + + + + + Log pengalaman berversi + + + + + Versi baru yang lolos verifikasi + + Akar kepercayaan: izin, audit, verifikasi, dan rollback tidak diubah oleh lingkar evolusi biasa + diff --git a/book-ja/images/fig8-2.svg b/book-ja/images/fig8-2.svg index 02d98d039..61b1df4de 100644 --- a/book-ja/images/fig8-2.svg +++ b/book-ja/images/fig8-2.svg @@ -1,25 +1,66 @@ - - - -成功した軌跡 -タスク完了のプロセ - - -方策の要約 -知識の要約へ精製 - - -知識要約ベース -意味的インデックス -を構築 - - -検索による注入 -Agent が意思決定時 -に使用 - - - - -類似タスクで過去の経験を再利用 - \ No newline at end of file + + + + + + + + + + 3 層の軌跡検証:証拠はできるだけ実環境から得る + + + + 結果検証器 + テスト・金額・注文の最終状態 + + + 過程検証器 + ポリシー・権限・行動・約束 + + + LLM Rubric + 自然さ・簡潔さ・規則に沿った回避策 + + + + 構造化された軌跡評価 + + + タスクの結果 + 成功・部分的成功・失敗 + + 次元ごとの評価 + 総点だけでなく項目ごとに採点 + + 証拠の位置 + 対話ターンとツール状態を明示 + + 失敗ラベル + 問題の型を残し後の診断に使う + + + 証拠が不足なら採点を拒否できる + + + + 学習可能な診断信号 + 成功と失敗の位置を保持 + 証拠と問題の型を示す + 更新対象の選択は別モジュールに渡す + + + + + + + diff --git a/book-ja/images/fig8-3.svg b/book-ja/images/fig8-3.svg index dc53948af..c36e988a1 100644 --- a/book-ja/images/fig8-3.svg +++ b/book-ja/images/fig8-3.svg @@ -1,18 +1,42 @@ - - - -ユーザークエリ -「このファイルをデバッグして」 - - -レイヤー1: サーバーレベルの意味検索 -数百の MCP サーバー → 関連する Top-K サーバーを想起 - - -レイヤー2: ツールレベルの意味検索 -Top-K サーバーのツール内でのみマッチ → Top-N ツール - - -選択されたツール -候補範囲を大幅に絞り込み、選択コストを削減 - \ No newline at end of file + + + + + 能力の表現形式が主な更新場所を決める + + + 知識 + 事実・経験・例外 + Markdown / 知識ベース + + + 指示 + 言語化できる判断原則 + Prompt / Skill + + + プログラム + 決定的な手順と強い制約 + ツール / ワークフロー / Harness + + + パラメータ + 高次元の知覚と暗黙の方策 + SFT / 蒸留 / RL + + + + 更新しやすく追跡できる + 内在化され推論コストが低い + 一方向の階段ではなく四つの補完的な担い手 + + + 最初の判断:その能力は事実・言語規則・プログラムで完全に表せるか? + 安定性・コスト・更新頻度が配置を決める。パラメータ化の可否ではない + diff --git a/book-ja/images/fig8-4.svg b/book-ja/images/fig8-4.svg index cb6e2d8f0..ba905b458 100644 --- a/book-ja/images/fig8-4.svg +++ b/book-ja/images/fig8-4.svg @@ -1,18 +1,52 @@ - - -素朴な方式: 全ツール定義をシステムプロンプトに配置 - -システムプロンプト + 全ツール定義 -ツールの変更 → KV キャッシュ全体が無効化 - -毎ラウンド再計算、高コスト -最適化方式: ツール定義をオンデマンドで読み込み - -安定したシステムプロンプト(キャッシュヒットする接頭辞) - -オンデマンドで追加されるツール定義(変化する部分) - -会話の軌跡 -安定した接頭辞は不変 → KV Cache を継続的に再利用 - - \ No newline at end of file + + + + + + 経験の知識化:生の軌跡は証拠、知識文書こそ再利用の単位 + + + 生の軌跡 + 行動・結果・環境 + 不変の証拠 + + + 単発の評価 + 成功・失敗・ラベル + 証拠の位置を保持 + + + 軌跡をまたいだ比較 + 同種のタスクを集約 + 成功と失敗を対照 + 共通点と境界を抽出 + + + Markdown 文書 + 適用場面と方針 + 例外・禁止領域・出典 + バージョンと検証日時 + + + 検索して活用 + 新しいタスクで必要に応じ読み込む + フィードバックを生み続ける + + + + + + + + 新しい証拠は旧知識を改訂・限定・淘汰する + + + 第3章の抽出・検索基盤を共用し、本章では軌跡評価と行動改善の閉ループを追加する + diff --git a/book-ja/images/fig8-5.svg b/book-ja/images/fig8-5.svg index ed6058122..23d69d5b4 100644 --- a/book-ja/images/fig8-5.svg +++ b/book-ja/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① ニーズの特定 -既存ツールでは不十 - - -② ツール検索 -オープンワールド検 - - - -③ コードのカプ -セル化 -生成してカプセル化 - - -④ ツールの登録 -ライブラリに組み込 -み再利用 - - - - -新たに登録されたツールは後続のタスクで再利用され、能力の境界を継続的に拡張する - \ No newline at end of file + + + + + + オンライン実行とオフライン進化:正式版は稼働中に書き換えない + + + オンライン実行ループ + + + + 安定版 Agent + 実タスクを処理 + 軌跡とフィードバックを記録 + + + + オフライン進化ループ + + + + + 集約と診断共通の根本原因を探す + 変更候補知識・指示・プログラム・パラメータ + 回帰と安全性の検証既存能力を保持 + 段階公開・監視・ロールバック新しい安定版に昇格 + + + + + + バージョン管理された経験ログ + + + + + 検証を通過した新バージョン + + 信頼の基点:権限・監査・検証・ロールバックは通常の進化ループでは変更しない + diff --git a/book-ja/images/fig8-6.svg b/book-ja/images/fig8-6.svg deleted file mode 100644 index ab981e6df..000000000 --- a/book-ja/images/fig8-6.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - -カリキュラム生成器 -段階的に新しいタスク -を提案 - -反復的プロンプティン -グ機構 -スキルコードを生成しデバッ - - - -スキルライブラリ -再利用可能なスキル -を保存 - - - - -スキルの蓄積がより難しいタスクを解放(オープンワールド探索) - \ No newline at end of file diff --git a/book-ja/images/fig8-7.svg b/book-ja/images/fig8-7.svg deleted file mode 100644 index b2c4b4a2e..000000000 --- a/book-ja/images/fig8-7.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - -① 検索 -オープンなネットワ -ークでツールを探す - -② 評価 -適合性を判断 - - -③ テスト -使用可能かを検 - - - -④ パッケージ - -標準ツールへ包む - - -⑤ 再利用 -ツールライブラ -リに組み込む - - - - -新しいツールは蓄積され後続のタスクで再利用される - \ No newline at end of file diff --git a/book-ru/images/fig8-2.svg b/book-ru/images/fig8-2.svg index 15ca0ec49..42a9455dc 100644 --- a/book-ru/images/fig8-2.svg +++ b/book-ru/images/fig8-2.svg @@ -1,26 +1,66 @@ - - - -Успешная траектория -Процесс выполнения -задача - -Стратегическое резюме -Уточнить в -сводка знаний - - -Знания -база резюме -Построить семантический индекс - - -Внедрение результата поиска -Агент использует когда -принятие решений - - - - -Повторное использование прошлого опыта для похожих задач - \ No newline at end of file + + + + + + + + + + Трёхслойная проверка траекторий: доказательства — из реальной среды + + + + Верификатор результата + Тесты, суммы, конечный статус заказа + + + Верификатор процесса + Политики, права, действия, обязательства + + + LLM Rubric + Естественность, краткость, допустимые обходы + + + + Структурная оценка траектории + + + Результат задачи + Успех, частичный успех или провал + + Оценка по измерениям + Оценивать по пунктам, а не только итог + + Место доказательства + Указать ход диалога и состояние инструмента + + Метки сбоев + Сохранять тип проблемы для диагностики + + + При нехватке доказательств можно не оценивать + + + + Обучаемый диагностический сигнал + Сохраняет место успеха и провала + Указывает доказательства и тип проблемы + Передать выбор объектаобновления отдельному модулю + + + + + + + diff --git a/book-ru/images/fig8-3.svg b/book-ru/images/fig8-3.svg index b09502c0b..69f042f73 100644 --- a/book-ru/images/fig8-3.svg +++ b/book-ru/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① Выявление потребности -Инструментов не хватает - -② Поиск инструмента -Поиск в открытом мире - - -③ Упаковка в код -Генерация и упаковка - - -④ Регистрация инструмента -В библиотеку для повтор. использования - - - - -После регистрации инструмент доступен новым задачам, расширяя возможности - \ No newline at end of file + + + + + Форма представления способности определяет место обновления + + + Знания + Факты, опыт, исключения + Markdown / база знаний + + + Инструкции + Принципы суждения, выразимые словами + Prompt / Skill + + + Программы + Детерминированные процессыи жёсткие ограничения + Инструменты / Workflow / Harness + + + Параметры + Многомерное восприятиеи неявная политика + SFT / Дистилляция / RL + + + + Легко обновлять, прослеживаемо + Усвоено, низкая стоимость вывода + Не односторонняя лестница, а четыре взаимодополняющих носителя + + + Главный вопрос: выразима ли способность фактами, правилами языка или программой? + Способ развёртывания задают стабильность, стоимость и частота обновлений, а не параметризуемость + diff --git a/book-ru/images/fig8-4.svg b/book-ru/images/fig8-4.svg index c726e7ef4..82636b72a 100644 --- a/book-ru/images/fig8-4.svg +++ b/book-ru/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -Генератор задач -Ставит всё более сложные задачи - -Итеративные подсказки -Генерация и отладка кода навыка - - -Библиотека навыков -Хранит переиспользуемые навыки - - - - -Навыки открывают более трудные задачи (открытый мир) - \ No newline at end of file + + + + + + Опыт в знание: траектории — доказательство, документ — единица переиспользования + + + Исходная траектория + Действия, результаты, среда + Неизменяемое доказательство + + + Разовая оценка + Успех, провал, метки + Сохраняет местодоказательства + + + Сравнение между траекториями + Объединить схожие задачи + Сопоставить успех и провал + Выделить общее и границы + + + Документ Markdown + Сценарии применения и стратегия + Исключения, запреты, источники + Версия и время проверки + + + Поиск и применение + Загружать помере надобности + Продолжает даватьобратную связь + + + + + + + + Новые доказательства правят, сужают или отменяют старое знание + + + Использует инфраструктуру извлечения и поиска из главы 3;здесь добавлены оценка траекторий и цикл улучшения поведения + diff --git a/book-ru/images/fig8-5.svg b/book-ru/images/fig8-5.svg index 423b4a702..a83c092e3 100644 --- a/book-ru/images/fig8-5.svg +++ b/book-ru/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① Поиск -Поиск инструмента в сети - -② Оценка -Оценка пригодности - - -③ Тестирование -Проверка работоспособности - - -④ Упаковка -В стандартный инструмент - - -⑤ Повтор. использование -В библиотеку инструментов - - - - -Накопленные инструменты доступны новым задачам - \ No newline at end of file + + + + + + Онлайн-исполнение и офлайн-эволюция: рабочая версия не переписывается на ходу + + + Цикл онлайн-исполнения + + + + Стабильный Agent + Решает реальные задачи + Пишет траектории и отклики + + + + Цикл офлайн-эволюции + + + + + Агрегация и диагностикаНайти общую первопричину + Кандидат на изменениеЗнания · Инструкции ·Программы · Параметры + Регрессия и проверкабезопасностиСохранить прежниевозможности + Канареечный выпуск,мониторинг, откатПовысить до нового стабильного + + + + + + Версионированныйжурнал опыта + + + + + Проверенная новая версия + + Корень доверия: права, аудит, проверка и откат не меняются обычным циклом эволюции + diff --git a/book-ta/images/fig8-2.svg b/book-ta/images/fig8-2.svg index 5ec467282..ece6e8167 100644 --- a/book-ta/images/fig8-2.svg +++ b/book-ta/images/fig8-2.svg @@ -1,26 +1,66 @@ - - - -Successful trajectory -Process of completing -task - -Strategy summary -Refine into -knowledge summary - - -Knowledge -summary base -Build semantic index - - -Retrieval injection -Agent uses when -making decisions - - - - -Reuse historical experience for similar tasks - \ No newline at end of file + + + + + + + + + + மூன்று அடுக்கு பாதை சரிபார்ப்பு: சான்று நிஜச் சூழலிலிருந்து வரட்டும் + + + + முடிவு சரிபார்ப்பான் + சோதனைகள், தொகைகள், ஆர்டரின் இறுதி நிலை + + + செயல்முறை சரிபார்ப்பான் + கொள்கை, அனுமதி, செயல்கள், உறுதிமொழிகள் + + + LLM Rubric + இயல்பு, சுருக்கம், விதிக்கு உட்பட்ட மாற்று வழி + + + + கட்டமைக்கப்பட்ட பாதை மதிப்பீடு + + + பணி முடிவு + வெற்றி, பகுதி வெற்றி அல்லது தோல்வி + + பரிமாண வாரியான மதிப்பீடு + மொத்தம் மட்டுமல்ல, ஒவ்வொன்றுக்கும் மதிப்பெண் + + சான்றின் இடம் + உரையாடல் சுற்றையும் கருவி நிலையையும் குறி + + தோல்விச் சிட்டைகள் + பிந்தைய கண்டறிதலுக்கு சிக்கல் வகையை வைத்திரு + + + சான்று போதாதபோது மதிப்பிட மறுக்கலாம் + + + + கற்கக்கூடிய கண்டறிதல் சமிக்ஞை + வெற்றி தோல்வியின் இடத்தைத் தக்கவைக்கும் + சான்றையும் சிக்கல் வகையையும் கூறும் + புதுப்பிக்கும் இலக்கைத் தனிதொகுதி தேர்வு செய்யட்டும் + + + + + + + diff --git a/book-ta/images/fig8-3.svg b/book-ta/images/fig8-3.svg index 9a4891d87..02849a7d4 100644 --- a/book-ta/images/fig8-3.svg +++ b/book-ta/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① 需求识别 -现有工具不足 - -② 工具搜索 -开放世界查找 - - -③ 代码封装 -生成并封装 - - -④ 工具注册 -纳入库可复用 - - - - -新工具注册后可被后续任务复用,持续扩展能力边界 - \ No newline at end of file + + + + + ஒரு திறன் எப்படி பிரதிநிதித்துவப்படுகிறதோ அது எங்கு புதுப்பிக்கப்படும் என்பதைத் தீர்மானிக்கும் + + + அறிவு + உண்மைகள், அனுபவம், விதிவிலக்குகள் + Markdown / அறிவுத் தளம் + + + அறிவுறுத்தல்கள் + சொற்களில் வடிக்கக்கூடியதீர்ப்புக் கோட்பாடுகள் + Prompt / Skill + + + நிரல்கள் + நிர்ணய ஓட்டங்களும்கடும் கட்டுப்பாடுகளும் + கருவிகள் / பணிஓட்டம் / Harness + + + அளபுருக்கள் + உயர்பரிமாண உணர்வும் மறைமுகக் கொள்கையும் + SFT / வடித்தல் / RL + + + + எளிதில் புதுப்பிக்கலாம், தடமறியலாம் + உள்வாங்கப்பட்டது, குறைந்த அனுமான செலவு + ஒருவழிப் படிக்கட்டு அல்ல, நான்கு நிரப்பு ஊடகங்கள் + + + முதல் கேள்வி: அத்திறனை உண்மைகள், மொழி விதிகள் அல்லது நிரல்களால் முழுமையாகச் சொல்ல முடியுமா? + நிலைத்தன்மை, செலவு, புதுப்பிப்பு அடர்த்தி பயன்பாட்டை முடிவு செய்யும்; அளபுருவாக்கம் அல்ல + diff --git a/book-ta/images/fig8-4.svg b/book-ta/images/fig8-4.svg index c59544ccb..3267dcb0a 100644 --- a/book-ta/images/fig8-4.svg +++ b/book-ta/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -课程生成器 -提出渐进式新任务 - -迭代提示机制 -生成并调试技能代码 - - -技能库 -存储可复用技能 - - - - -技能积累后解锁更难的任务(开放世界探索) - \ No newline at end of file + + + + + + அனுபவத்தை அறிவாக்குதல்: பாதைகள் சான்று, ஆவணமே மறுபயன்பாட்டு அலகு + + + மூலப் பாதை + செயல்கள், முடிவுகள், சூழல் + மாறாத சான்று + + + ஒற்றை மதிப்பீடு + வெற்றி, தோல்வி, சிட்டைகள் + சான்றின் இடத்தைத்தக்கவைக்கும் + + + பாதைகளுக்கிடையே ஒப்பீடு + ஒத்த பணிகளைத் திரட்டு + வெற்றியையும்தோல்வியையும் ஒப்பிடு + பொதுத்தன்மையையும்எல்லைகளையும் பிரித்தெடு + + + Markdown ஆவணம் + பொருந்தும் சூழல்களும் உத்தியும் + விதிவிலக்குகள்,தடைப்பகுதிகள், மூலங்கள் + பதிப்பும் சரிபார்ப்பு நேரமும் + + + மீட்டெடுத்துப்பயன்படுத்து + புதிய பணிகளுக்குத்தேவைக்கேற்ப ஏற்று + தொடர்ந்துபின்னூட்டம் தரும் + + + + + + + + புதிய சான்று பழைய அறிவைத் திருத்தும், வரையறுக்கும் அல்லது நீக்கும் + + + மூன்றாம் அத்தியாயத்தின் பிரித்தெடுப்பு மற்றும் மீட்டெடுப்புக் கட்டமைப்பைப் பகிர்கிறது;இவ்வத்தியாயம் பாதை மதிப்பீட்டையும் நடத்தை மேம்பாட்டு வளையத்தையும் சேர்க்கிறது + diff --git a/book-ta/images/fig8-5.svg b/book-ta/images/fig8-5.svg index 5864f714d..9f03e373e 100644 --- a/book-ta/images/fig8-5.svg +++ b/book-ta/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① 搜索 -开放网络找工具 - -② 评估 -判断是否合适 - - -③ 测试 -验证可用性 - - -④ 封装 -包成标准工具 - - -⑤ 复用 -纳入工具库 - - - - -新工具沉淀后供后续任务复用 - \ No newline at end of file + + + + + + நேரடி இயக்கமும் தனித்த பரிணாமமும்: வெளியிட்ட பதிப்பு இயங்கும்போது மாற்றப்படாது + + + நேரடி இயக்க வளையம் + + + + நிலையான Agent + நிஜப் பணிகளைக் கையாளும் + பாதைகளையும் பின்னூட்டத்தையும்பதிவு செய்யும் + + + + தனித்த பரிணாம வளையம் + + + + + திரட்டலும் கண்டறிதலும்பொது மூல காரணத்தைத் தேடு + வேட்பாளர் மாற்றம்அறிவு · அறிவுறுத்தல்· நிரல் · அளபுரு + பின்னடைவு மற்றும்பாதுகாப்புச் சரிபார்ப்புபழைய திறனைத் தக்கவை + படிப்படியான வெளியீடு,கண்காணிப்பு, பின்வாங்கல்புதிய நிலைப் பதிப்பாக உயர்த்து + + + + + + பதிப்பிடப்பட்டஅனுபவப் பதிவேடு + + + + + சரிபார்ப்பில்தேறிய புதிய பதிப்பு + + நம்பிக்கை மூலம்: அனுமதி, தணிக்கை, சரிபார்ப்பு, பின்வாங்கல் ஆகியவை சாதாரண பரிணாம வளையத்தால் மாற்றப்படுவதில்லை + diff --git a/book-tr/images/fig8-2.svg b/book-tr/images/fig8-2.svg index 7ed207338..6ea554d0b 100644 --- a/book-tr/images/fig8-2.svg +++ b/book-tr/images/fig8-2.svg @@ -1,25 +1,66 @@ - - - -Başarılı izlence -Görevi tamamlama -süreci - -Strateji özeti -Bilgi özetine damıt - - -Bilgi özeti tabanı -Anlamsal indeks -oluştur - - -Erişim enjeksiyonu -Ajan karar verirken -kullanır - - - - -Benzer görevler için geçmiş deneyimi yeniden kullan - \ No newline at end of file + + + + + + + + + + Üç katmanlı trajectory doğrulama: kanıt gerçek ortamdan gelsin + + + + Sonuç doğrulayıcı + Testler, tutarlar, siparişin son durumu + + + Süreç doğrulayıcı + Politika, izinler, eylemler ve taahhütler + + + LLM Rubric + Doğallık, özlük, kurallara uygun çözümler + + + + Yapılandırılmış trajectory değerlendirmesi + + + Görev sonucu + Başarı, kısmi başarı veya başarısızlık + + Boyut bazlı puanlama + Sadece toplam değil, her madde puanlanır + + Kanıtın konumu + Tur ve araç durumunu işaretle + + Hata etiketleri + Sorun türünü sonraki teşhis için sakla + + + Kanıt yetersizse puanlamayı reddedebilir + + + + Öğrenilebilir teşhis sinyali + Başarı ve başarısızlığın yerini korur + Kanıtı ve sorun türünü belirtir + Neyin güncelleneceğini ayrı bir modül seçsin + + + + + + + diff --git a/book-tr/images/fig8-3.svg b/book-tr/images/fig8-3.svg index d7165a178..2599a5e29 100644 --- a/book-tr/images/fig8-3.svg +++ b/book-tr/images/fig8-3.svg @@ -1,18 +1,42 @@ - - - -Kullanıcı sorgusu -"Bu dosyayı hata ayıkla" - - -Katman 1: Sunucu düzeyi anlamsal arama -Yüzlerce MCP sunucusu → en iyi K sunucuyu getir - - -Katman 2: Araç düzeyi anlamsal arama -Yalnızca en iyi K sunucunun araçları arasında eşleştir → en iyi N araç - - -Seçilen araç -Aday kapsamını belirgin şekilde daraltır, seçim maliyetini azaltır - \ No newline at end of file + + + + + Bir yeteneğin temsil biçimi, nerede güncelleneceğini belirler + + + Bilgi + Olgular, deneyim, istisnalar + Markdown / bilgi tabanı + + + Talimatlar + Dile dökülebilen karar ilkeleri + Prompt / Skill + + + Programlar + Belirlenimci akışlar ve sıkı kısıtlar + Araçlar / İş akışı / Harness + + + Parametreler + Yüksek boyutlu algı ve örtük politika + SFT / Damıtma / RL + + + + Güncellemesi kolay, izlenebilir + İçselleşmiş, düşük çıkarım maliyeti + Tek yönlü bir merdiven değil, dört tamamlayıcı taşıyıcı + + + İlk soru: yetenek olgular, dil kuralları ya da programlarla tam ifade edilebilir mi? + Dağıtımı kararlılık, maliyet ve güncelleme sıklığı belirler; parametrelenebilirlik değil + diff --git a/book-tr/images/fig8-4.svg b/book-tr/images/fig8-4.svg index d6e8a6d79..e1ad9526a 100644 --- a/book-tr/images/fig8-4.svg +++ b/book-tr/images/fig8-4.svg @@ -1,18 +1,52 @@ - - -Naif: sistem isteminde tüm araç tanımları - -Sistem istemi + tüm araç tanımları -Herhangi bir araç değişikliği → tüm KV önbelleği geçersiz olur - -Her turda yeniden hesaplanır, maliyet yüksek -Optimize: araç tanımları istendiğinde yüklenir - -Kararlı sistem istemi (önbellek isabet öneki) - -İstendiğinde eklenen araç tanımları (değişen kısım) - -Konuşma izlencesi -Kararlı önek değişmez → KV Cache sürekli yeniden kullanılır - - \ No newline at end of file + + + + + + Deneyimi bilgiye çevirmek: ham trajectory kanıttır, belge yeniden kullanım birimidir + + + Ham trajectory + Eylemler, sonuçlar, ortam + Değiştirilemez kanıt + + + Tek seferlik değerlendirme + Başarı, başarısızlık, etiketler + Kanıtın konumunu korur + + + Trajectory'ler arası karşılaştırma + Benzer görevleri topla + Başarı ile başarısızlığı karşılaştır + Ortaklıkları ve sınırları çıkar + + + Markdown belgesi + Uygulama senaryoları ve strateji + İstisnalar, yasak alanlar, kaynaklar + Sürüm ve doğrulama zamanı + + + Getir ve kullan + Yeni görevlerde gerektikçe yükle + Geri bildirim üretmeyi sürdürür + + + + + + + + Yeni kanıt eski bilgiyi düzeltir, sınırlar ya da emekliye ayırır + + + Çıkarım ve getirme altyapısını 3. bölümle paylaşır; bu bölüm trajectory değerlendirmesi ve davranış iyileştirme döngüsünü ekler + diff --git a/book-tr/images/fig8-5.svg b/book-tr/images/fig8-5.svg index 2406bd4d2..3d05cedb8 100644 --- a/book-tr/images/fig8-5.svg +++ b/book-tr/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① Gereksinim -Tespiti -Mevcut araçlar yetersiz - -② Araç Arama -Açık dünya -araması - - -③ Kod -Kapsülleme -Üret ve kapsülle - - -④ Araç Kaydı -Kütüphaneye ekle, -yeniden kullan - - - - -Yeni kaydedilen araçlar sonraki görevlerde yeniden kullanılabilir, yetenek sınırları sürekli genişler - \ No newline at end of file + + + + + + Çevrimiçi yürütme ve çevrimdışı evrim: yayındaki sürüm çalışırken değiştirilmez + + + Çevrimiçi yürütme döngüsü + + + + Kararlı Agent + Gerçek görevleri işler + Trajectory ve geribildirim kaydeder + + + + Çevrimdışı evrim döngüsü + + + + + Topla ve teşhis etOrtak kök nedeni bul + Aday değişiklikBilgi · Talimat ·Program · Parametre + Regresyon vegüvenlik doğrulamasıMevcut yeteneği koru + Kademeli yayın, izleme, geri almaYeni kararlı sürüme yükselt + + + + + + Sürümlenmiş deneyim günlüğü + + + + + Doğrulamayı geçen yeni sürüm + + Güven kökü: izinler, denetim, doğrulama ve geri alma sıradan evrim döngüsüyle değiştirilmez + diff --git a/book-tr/images/fig8-6.svg b/book-tr/images/fig8-6.svg deleted file mode 100644 index 884e37e8f..000000000 --- a/book-tr/images/fig8-6.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - -Müfredat Üreteci -Kademeli yeni -görevler öner - -Yinelemeli İstem -Mekanizması -Beceri kodu üret ve hata -ayıkla - - -Beceri Kütüphanesi -Yeniden kullanılabilir -becerileri sakla - - - - -Beceri birikimi daha zor görevlerin kilidini açar (açık dünya keşfi) - \ No newline at end of file diff --git a/book-tr/images/fig8-7.svg b/book-tr/images/fig8-7.svg deleted file mode 100644 index 5d0acd28d..000000000 --- a/book-tr/images/fig8-7.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - -① Ara -Açık ağda araç -bul - -② Değerlendir -Uygunluğu belirle - - -③ Test Et -Kullanılabilirliği -doğrula - - -④ Paketle -Standart araca -sar - - -⑤ Yeniden Kullan -Araç kütüphanesine -ekle - - - - -Yeni araçlar sonraki görevlerde yeniden kullanılmak üzere biriktirilir - \ No newline at end of file diff --git a/book-vi/images/fig8-2.svg b/book-vi/images/fig8-2.svg index 00f745a3d..893d72814 100644 --- a/book-vi/images/fig8-2.svg +++ b/book-vi/images/fig8-2.svg @@ -1,22 +1,66 @@ - - - -trajectorythành công -quá trình hoànthành nhiệm vụ - -Tóm tắt chiếnlược -Chắt lọc thànhnhững bản tóm tắtkiến ​​thức - - -Cơ sở tóm tắtkiến ​​thức -Xây dựng chỉ mụcngữ nghĩa - - -Lấy lại mũi tiêm -Agent được sử dụngkhi đưa ra quyếtđịnh - - - - -Tái sử dụng kinh nghiệm lịch sử cho các nhiệm vụ tương tự - \ No newline at end of file + + + + + + + + + + Kiểm chứng quỹ đạo ba lớp: để bằng chứng đến từ môi trường thật + + + + Bộ kiểm chứng kết quả + Kiểm thử, số tiền, trạng thái cuối của đơn hàng + + + Bộ kiểm chứng quá trình + Chính sách, quyền, hành động và cam kết + + + LLM Rubric + Tự nhiên, súc tích, lách đúng quy định + + + + Đánh giá quỹ đạo có cấu trúc + + + Kết quả tác vụ + Thành công, thành công một phần hoặc thất bại + + Chấm điểm theo từng chiều + Chấm từng mục, không chỉ tổng điểm + + Vị trí bằng chứng + Ghi rõ lượt hội thoại và trạng thái công cụ + + Nhãn thất bại + Giữ loại vấn đề để chẩn đoán về sau + + + Cho phép từ chối chấm khi thiếu bằng chứng + + + + Tín hiệu chẩn đoán học được + Giữ vị trí xảy ra thành công và thất bại + Nêu rõ bằng chứng và loại vấn đề + Giao cho module riêng chọn đối tượng cập nhật + + + + + + + diff --git a/book-vi/images/fig8-3.svg b/book-vi/images/fig8-3.svg index 9a4891d87..95d682386 100644 --- a/book-vi/images/fig8-3.svg +++ b/book-vi/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① 需求识别 -现有工具不足 - -② 工具搜索 -开放世界查找 - - -③ 代码封装 -生成并封装 - - -④ 工具注册 -纳入库可复用 - - - - -新工具注册后可被后续任务复用,持续扩展能力边界 - \ No newline at end of file + + + + + Cách biểu diễn năng lực quyết định nơi cập nhật chính + + + Tri thức + Sự kiện, kinh nghiệm, ngoại lệ + Markdown / cơ sở tri thức + + + Chỉ dẫn + Nguyên tắc phán đoán diễn đạt được bằng lời + Prompt / Skill + + + Chương trình + Quy trình tất định và ràng buộc chặt + Công cụ / Luồng việc / Harness + + + Tham số + Tri giác nhiều chiều và chính sách ẩn + SFT / Chưng cất / RL + + + + Dễ cập nhật, truy vết được + Nội hóa, chi phí suy luận thấp + Không phải bậc thang một chiều mà là bốn vật mang bổ trợ nhau + + + Câu hỏi đầu tiên: năng lực có diễn đạt trọn vẹn bằng sự kiện, quy tắc hay chương trình không? + Độ ổn định, chi phí và tần suất cập nhật quyết định cách triển khai, không phải khả năng tham số hóa + diff --git a/book-vi/images/fig8-4.svg b/book-vi/images/fig8-4.svg index c59544ccb..85691ac5b 100644 --- a/book-vi/images/fig8-4.svg +++ b/book-vi/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -课程生成器 -提出渐进式新任务 - -迭代提示机制 -生成并调试技能代码 - - -技能库 -存储可复用技能 - - - - -技能积累后解锁更难的任务(开放世界探索) - \ No newline at end of file + + + + + + Biến kinh nghiệm thành tri thức: quỹ đạo là bằng chứng, tài liệu mới là đơn vị tái dùng + + + Quỹ đạo gốc + Hành động, kết quả, môi trường + Bằng chứng bất biến + + + Đánh giá đơn lẻ + Thành công, thất bại, nhãn + Giữ vị trí bằng chứng + + + So sánh giữa các quỹ đạo + Gộp các tác vụ cùng loại + Đối chiếu thành công với thất bại + Rút ra điểm chung và ranh giới + + + Tài liệu Markdown + Bối cảnh áp dụng và chiến lược + Ngoại lệ, vùng cấm và nguồn + Phiên bản và thời điểm kiểm chứng + + + Truy hồi và áp dụng + Nạp theo nhu cầu cho tác vụ mới + Tiếp tục sinh phản hồi + + + + + + + + Bằng chứng mới sửa đổi, thu hẹp hoặc loại bỏ tri thức cũ + + + Dùng chung hạ tầng trích xuất và truy hồi với chương 3; chương này thêm đánh giá quỹ đạo và vòng cải thiện hành vi + diff --git a/book-vi/images/fig8-5.svg b/book-vi/images/fig8-5.svg index 5864f714d..d53753d3d 100644 --- a/book-vi/images/fig8-5.svg +++ b/book-vi/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① 搜索 -开放网络找工具 - -② 评估 -判断是否合适 - - -③ 测试 -验证可用性 - - -④ 封装 -包成标准工具 - - -⑤ 复用 -纳入工具库 - - - - -新工具沉淀后供后续任务复用 - \ No newline at end of file + + + + + + Thực thi trực tuyến và tiến hóa ngoại tuyến: bản chính thức không bị sửa khi đang chạy + + + Vòng thực thi trực tuyến + + + + Agent bản ổn định + Xử lý tác vụ thật + Ghi quỹ đạo và phản hồi + + + + Vòng tiến hóa ngoại tuyến + + + + + Tổng hợp và chẩn đoánTìm nguyên nhân gốc chung + Thay đổi ứng viênTri thức · Chỉ dẫn ·Chương trình · Tham số + Kiểm thử hồi quy và an toànGiữ lại năng lực cũ + Phát hành dần, giám sát, quay luiThăng lên bản ổn định mới + + + + + + Nhật ký kinhnghiệm có phiên bản + + + + + Phiên bản mới đã kiểm chứng + + Gốc tin cậy: quyền, kiểm toán, kiểm chứng và quay lui không do vòng tiến hóa thường sửa đổi + diff --git a/book-zhtw/images/fig8-2.svg b/book-zhtw/images/fig8-2.svg index a9f912c6f..24bca5629 100644 --- a/book-zhtw/images/fig8-2.svg +++ b/book-zhtw/images/fig8-2.svg @@ -1,22 +1,66 @@ - - - -成功軌跡 -完成任務的過程 - -策略總結 -提煉為知識摘要 - - -知識摘要庫 -建立語義索引 - - -檢索注入 -Agent 決策時取用 - - - - -相似任務複用歷史經驗 - \ No newline at end of file + + + + + + + + + + 三層軌跡驗證:盡量讓證據來自真實環境 + + + + 結果驗證器 + 測試、金額、訂單最終狀態 + + + 過程驗證器 + 政策、權限、動作與承諾 + + + LLM Rubric + 自然、簡潔、合規變通 + + + + 結構化軌跡評價 + + + 任務結果 + 成功、部分成功或失敗 + + 維度評價 + 逐項評分,而不是只給總分 + + 證據位置 + 標明對話輪次與工具狀態 + + 失敗標籤 + 保留問題類型,支援後續診斷 + + + 證據不足時,允許拒絕評分 + + + + 可學習的診斷訊號 + 保留成功與失敗的位置 + 說明證據與問題類型 + 交給獨立模組選擇更新對象 + + + + + + + diff --git a/book-zhtw/images/fig8-3.svg b/book-zhtw/images/fig8-3.svg index 9a4891d87..e62cb5f6f 100644 --- a/book-zhtw/images/fig8-3.svg +++ b/book-zhtw/images/fig8-3.svg @@ -1,22 +1,42 @@ - - - -① 需求识别 -现有工具不足 - -② 工具搜索 -开放世界查找 - - -③ 代码封装 -生成并封装 - - -④ 工具注册 -纳入库可复用 - - - - -新工具注册后可被后续任务复用,持续扩展能力边界 - \ No newline at end of file + + + + + 能力的表示性質決定主要更新位置 + + + 知識 + 事實、經驗與例外 + Markdown / 知識庫 + + + 指令 + 可語言化的判斷原則 + Prompt / Skill + + + 程序 + 確定性流程與強約束 + 工具 / 工作流 / Harness + + + 參數 + 高維感知與隱式策略 + SFT / 蒸餾 / RL + + + + 易更新、可追溯 + 內化、低推理開銷 + 不是單向階梯,而是四種互補載體 + + + 首要判斷:能力能否被事實、語言規則或程序完整表達? + 穩定性、成本與更新頻率決定具體部署方式,而非能力能否參數化 + diff --git a/book-zhtw/images/fig8-4.svg b/book-zhtw/images/fig8-4.svg index c59544ccb..ec6a90b3d 100644 --- a/book-zhtw/images/fig8-4.svg +++ b/book-zhtw/images/fig8-4.svg @@ -1,18 +1,52 @@ - - - -课程生成器 -提出渐进式新任务 - -迭代提示机制 -生成并调试技能代码 - - -技能库 -存储可复用技能 - - - - -技能积累后解锁更难的任务(开放世界探索) - \ No newline at end of file + + + + + + 經驗知識化:原始軌跡是證據,知識文件才是複用單元 + + + 原始軌跡 + 動作、結果、環境 + 不可變證據 + + + 單次評價 + 成功、失敗、標籤 + 保留證據位置 + + + 跨軌跡比較 + 聚合同類任務 + 對照成功與失敗 + 提取共性與邊界 + + + Markdown 文件 + 適用場景與策略 + 例外、禁區與來源 + 版本與驗證時間 + + + 檢索應用 + 新任務按需載入 + 繼續產生回饋 + + + + + + + + 新證據用於修訂、限定或淘汰舊知識 + + + 與第三章共用抽取和檢索基礎設施;本章新增軌跡評價與行為改進閉環 + diff --git a/book-zhtw/images/fig8-5.svg b/book-zhtw/images/fig8-5.svg index 5864f714d..5f526fd34 100644 --- a/book-zhtw/images/fig8-5.svg +++ b/book-zhtw/images/fig8-5.svg @@ -1,26 +1,48 @@ - - - -① 搜索 -开放网络找工具 - -② 评估 -判断是否合适 - - -③ 测试 -验证可用性 - - -④ 封装 -包成标准工具 - - -⑤ 复用 -纳入工具库 - - - - -新工具沉淀后供后续任务复用 - \ No newline at end of file + + + + + + 線上執行與離線進化:正式版本不在執行中直接改寫 + + + 線上執行迴圈 + + + + 穩定版 Agent + 處理真實任務 + 記錄軌跡與回饋 + + + + 離線進化迴圈 + + + + + 聚合與診斷尋找共同根因 + 候選修改知識·指令·程序·參數 + 迴歸與安全驗證保留舊能力 + 灰度、監控與回溯晉升為新穩定版 + + + + + + 版本化經驗日誌 + + + + + 通過驗證的新版本 + + 可信根:權限、稽核、驗證與回溯機制不由普通進化流程自行修改 + From 158ccf760f4fe7a85eba734fc0930bc9f6710b89 Mon Sep 17 00:00:00 2001 From: Bojie Li Date: Thu, 13 Aug 2026 11:08:58 +0800 Subject: [PATCH 03/13] fix(figures): rebuild wrong and stale chapter 3 artwork in 8 editions Eight editions still carried chapter-3 figures from an earlier revision, two of which showed the wrong drawing entirely: - fig3-2 ("four memory strategies") rendered the RAG query flow, i.e. the artwork belonging to fig3-5. - fig3-4 ("multi-type memory architecture") rendered the HNSW index structure from fig3-7. - fig3-1 showed the retired RAG-fundamentals map instead of the chapter knowledge map (fixed for book-en in #816, never carried across). - fig3-11 showed the retired GraphRAG walkthrough built on the x86 SSE/AVX instruction set -- a CPU diagram in a knowledge-graph section. In book-hu it instead showed fig3-14's contextual retrieval. - fig3-12 was an earlier revision of the agentic vs. non-agentic comparison. All five are regenerated for ar, es, hu, id, ja, ru, ta and tr from the current book-en geometry, translating text nodes only, so every edition now matches the Chinese drawing exactly. Co-Authored-By: Claude Opus 5 (1M context) --- book-ar/images/fig3-1.svg | 76 +++++++++++----------------------- book-ar/images/fig3-11.svg | 64 ++++++++++++++-------------- book-ar/images/fig3-12.svg | 82 ++++++++++++++---------------------- book-ar/images/fig3-2.svg | 76 +++++++++++++++++++--------------- book-ar/images/fig3-4.svg | 80 ++++++++++++++--------------------- book-es/images/fig3-1.svg | 78 +++++++++++----------------------- book-es/images/fig3-11.svg | 64 ++++++++++++++-------------- book-es/images/fig3-12.svg | 79 ++++++++++++++--------------------- book-es/images/fig3-2.svg | 77 ++++++++++++++++++---------------- book-es/images/fig3-4.svg | 80 ++++++++++++++--------------------- book-hu/images/fig3-1.svg | 76 +++++++++++----------------------- book-hu/images/fig3-11.svg | 66 ++++++++++++++--------------- book-hu/images/fig3-12.svg | 82 ++++++++++++++---------------------- book-hu/images/fig3-2.svg | 76 +++++++++++++++++++--------------- book-hu/images/fig3-4.svg | 80 ++++++++++++++--------------------- book-id/images/fig3-1.svg | 79 ++++++++++++----------------------- book-id/images/fig3-11.svg | 67 ++++++++++++++---------------- book-id/images/fig3-12.svg | 85 ++++++++++++++------------------------ book-id/images/fig3-2.svg | 79 +++++++++++++++++++---------------- book-id/images/fig3-4.svg | 83 ++++++++++++++----------------------- book-ja/images/fig3-1.svg | 79 ++++++++++++----------------------- book-ja/images/fig3-11.svg | 64 ++++++++++++++-------------- book-ja/images/fig3-12.svg | 78 ++++++++++++++-------------------- book-ja/images/fig3-2.svg | 79 +++++++++++++++++++---------------- book-ja/images/fig3-4.svg | 82 ++++++++++++++---------------------- book-ru/images/fig3-1.svg | 76 +++++++++++----------------------- book-ru/images/fig3-11.svg | 64 ++++++++++++++-------------- book-ru/images/fig3-12.svg | 82 ++++++++++++++---------------------- book-ru/images/fig3-2.svg | 76 +++++++++++++++++++--------------- book-ru/images/fig3-4.svg | 80 ++++++++++++++--------------------- book-ta/images/fig3-1.svg | 76 +++++++++++----------------------- book-ta/images/fig3-11.svg | 64 ++++++++++++++-------------- book-ta/images/fig3-12.svg | 82 ++++++++++++++---------------------- book-ta/images/fig3-2.svg | 76 +++++++++++++++++++--------------- book-ta/images/fig3-4.svg | 80 ++++++++++++++--------------------- book-tr/images/fig3-1.svg | 74 +++++++++++---------------------- book-tr/images/fig3-11.svg | 64 ++++++++++++++-------------- book-tr/images/fig3-12.svg | 80 ++++++++++++++--------------------- book-tr/images/fig3-2.svg | 77 ++++++++++++++++++---------------- book-tr/images/fig3-4.svg | 80 ++++++++++++++--------------------- 40 files changed, 1281 insertions(+), 1761 deletions(-) diff --git a/book-ar/images/fig3-1.svg b/book-ar/images/fig3-1.svg index c93560f96..68fef00d8 100644 --- a/book-ar/images/fig3-1.svg +++ b/book-ar/images/fig3-1.svg @@ -1,52 +1,26 @@ - + - -أساسيات RAG - -التضمين الكثيف -Word2Vec → BGE-M3 - -متناثر -التضمين -تي إف-جيش الدفاع الإسرائيلي/BM25 - -الاسترجاع الهجين + -إعادة الترتيب -استرجاع برجين + تشفير متقاطع - -متعدد الوسائط -استخراج -أصلي / نص / أداة - - -التعلم من المعرفة الموجودة - -رابتور -مؤشر التسلسل الهرمي للشجرة - -الرسم البيانيRAG -الرسم البياني لعلاقة الكيان - -وكيل RAG - الاسترجاع كأداة - -الاسترجاع المدرك للسياق -ملخص البادئة -تعزيز - - -التعلم من الاستكشاف المستقل - -ما بعد التدريب - RL → ذاكرة العضلات - -التعلم في السياق -الاستدلال في وقت الاسترجاع الناعم - -التعلم الخارجي -قاعدة المعرفة + الأداة -جيل - -الدرس المرير: البحث + التعلم = الطريقة العامة - - \ No newline at end of file + +ذاكرة المستخدم (المقياس الفردي) + +قاعدة المعرفة (المقياس الجماعي) + +· تدرج الذاكرة · تقييم ثلاثي المستويات +· أربع صيغ تخزين +· الأنواع المعرفية: عرضية · دلالية · إجرائية +· أطر الذاكرة: Mem0 · Memobase +· الضغط والدمج · تصنيف الخصوصية + +· تقطيع المستندات · استخراج متعدد الوسائط +· تضمينات كثيفة/متفرقة · استرجاع هجين +· فهرسة منظمة: RAPTOR · GraphRAG +· نموذج نظام الملفات · RAG وكيلي +· استرجاع سياقي · استخراج معرفي عميق + + + +الأساس المشترك: تقنيات الاسترجاع +تقطيع المستندات · تضمينات متجهية/بالكلمات · استرجاع هجين · إعادة ترتيب +يلتقي المساران في النهاية في «معمارية ذاكرة ثنائية الطبقة»: +تُبقي بطاقات JSON المتقدمة النظرة العامة حاضرة، ويجلب الاسترجاع السياقي التفاصيل عند الطلب. + diff --git a/book-ar/images/fig3-11.svg b/book-ar/images/fig3-11.svg index 14737e673..9a853688e 100644 --- a/book-ar/images/fig3-11.svg +++ b/book-ar/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -المجتمع: مجموعة تعليمات SSE - -إنتل - -SSE - -AVX - -ريج XMM - -إضافة - -ريج YMM - -عمليات FP - -التنمية - -التنمية - -الاستخدام - - -يحتوي على - -الاستخدام - -تنفيذ - - -العملية + +المستخدم + +د. تشانغ-A +القسم: طب الأسنان + +مستشفى رِنْآي لطب الفم + +العنوان +طريق XX، منطقة شوهوي + +د. تشانغ-B +القسم: أمراض القلب + +مستشفى هواشان +مركز القلب والأوعية + +طبيب أسناني + +طبيب قلبي + +يعمل في + +العنوان + +يعمل في +· استدلال متعدد القفزات: «عنوان المستشفى الذي يعمل فيه طبيب أسناني» يتبع +المستخدم ← د. تشانغ-A ← مستشفى رِنْآي ← العنوان. +· فك التباس الكيانات: حوافّ العلاقات تميّز عقدتَي «د. تشانغ». +كل حافة ثلاثية: موضوع – علاقة – مفعول. diff --git a/book-ar/images/fig3-12.svg b/book-ar/images/fig3-12.svg index a2420dab5..e1721b3a2 100644 --- a/book-ar/images/fig3-12.svg +++ b/book-ar/images/fig3-12.svg @@ -1,52 +1,32 @@ - + - -غير وكيل RAG - -الاستعلام: "كيفية الحكم على التسبب في خطورة -الإصابة بالإهمال أثناء السكر -ومع إدانة سابقة بالسرقة؟" - -استرجاع واحد: -"الحكم على التسبب في إصابة خطيرة -الإهمال" - - -نتيجة الاسترجاع: تم العثور على الأحكام الأساسية فقط -لإصابة الإهمال - (سياق غير كامل) - - -الجيل المباشر: مفقود "سكران" -والعوامل المؤثرة "الإدانة السابقة". - -تمريرة واحدة · معلومات غير كاملة - - -وكيل RAG (رد فعل) - -الفكر: بحاجة إلى أن تتحلل إلى 3 -أسئلة فرعية - -بحث ①: "الحكم على التسبب في إصابة خطيرة من قبل -الإهمال" -البحث ②: "المسؤولية الجنائية عن السكر" -البحث ③: "تأثير الإدانة السابقة بالسرقة" - - -ملاحظة: وجدت أحكام أساسية ولكن -الحلقة المفقودة بين "الإدانة السابقة" -و"إصابة بسبب الإهمال" - - -البحث ④: "العودة إلى الجرائم المختلفة -التفسير القضائي" - - -التوليف: إجابة كاملة بما في ذلك الكل -الأحكام القانونية وتحليل الأحكام - - -التكرار -التكرار المتعدد الجولة · معلومات كاملة - \ No newline at end of file + +RAG غير وكيلي +خطوة مسبقة ثابتة واسترجاع لمرة واحدة + +استعلام المستخدم + + +الاسترجاع (مرة واحدة) + + +توليد الإجابة مباشرة + +RAG وكيلي +استرجاع تكراري بقيادة ReAct + +تفكير: حلّل الحاجة وحدّد الكلمات المفتاحية + + +فعل: استدعِ أداة الاسترجاع + + +ملاحظة: هل المعلومات كافية؟ + + + +لا + + +نعم ← ركّب الإجابة + diff --git a/book-ar/images/fig3-2.svg b/book-ar/images/fig3-2.svg index 041c4d154..7ef3b05d2 100644 --- a/book-ar/images/fig3-2.svg +++ b/book-ar/images/fig3-2.svg @@ -1,35 +1,43 @@ - + - -① استعلام المستخدم -"كم سنة للقتل العمد؟" - - -② الاسترجاع -استرجاع كثيف + BM25 -→ قطع النص Top-K - - -③ زيادة -الاستعلام + النتائج المستردة -→ إنشاء موجّه كامل - - -④ إنشاء -يقوم LLM بتجميع السياق -→ توليد الاستجابة - -مثال لتدفق البيانات - -قطع النص المستردة -المادة 232 من قانون العقوبات: من قتل غيره عمداً، عوقب بالإعدام. -السجن المؤبد أو السجن لمدة محددة لا تقل عن عشر سنوات... - -موجّه المعزز -أجب عن السؤال استنادا إلى الأحكام القانونية التالية: -[المادة 232 من قانون العقوبات...] س: ما عقوبة القتل العمد؟ - -الاستجابة المولدة -ووفقاً للمادة 232 من القانون الجنائي، يعاقب على جريمة القتل العمد بالإعدام، أو السجن المؤبد، أو السجن لمدة محددة لا تقل عن عشر سنوات؛ -وإذا كانت الظروف بسيطة، تكون العقوبة السجن لمدة محددة لا تقل عن ثلاث سنوات ولا تزيد على عشر سنوات. - \ No newline at end of file + +ملاحظات بسيطة + +«بريد المستخدم: + john@x.com" +✓ حقيقة ذرية · O(1) +✓ كلفة إضافية ضئيلة جدًا +✗ تضيع العلاقات + +ملاحظات موسّعة + +«في TechCorp، +يقود مهندس أول +فريقًا من خمسة أفراد.» +✓ سرد كامل +✓ مكتملة دلاليًا +✗ زائدة · صعبة التحديث +✗ يصعب استرجاع النص الطويل + +بطاقات JSON + +work.position + .title = … +(فئة ← مفتاح-قيمة) +✓ بنية ثلاثية المستويات +✓ تدعم التحديث الجزئي +✗ تصنيف جامد + +بطاقات JSON متقدمة + ++ backstory ++ person ++ relationship +✓ فك الالتباس · إدارة المعرفة +✓ مع المصادر والعلاقات +✗ مكلفة في التوليد والصيانة + +البساطة +قوة التعبير +تقل البساطة وتزداد قوة التعبير + diff --git a/book-ar/images/fig3-4.svg b/book-ar/images/fig3-4.svg index 0569db47f..813f7f201 100644 --- a/book-ar/images/fig3-4.svg +++ b/book-ar/images/fig3-4.svg @@ -1,51 +1,31 @@ - + - -الطبقة الثانية (اتصالات متفرقة · طويلة المدى) - - - - - - -الطبقة 1 (كثافة متوسطة) - - - - - - - - - - - - -الطبقة 0 (كثيفة · جميع العقد) - - - - - - - - - - - - - - - - - - - -يبدأ البحث من المستوى الأعلى - -صقل طبقة بعد طبقة إلى الأسفل - -يدعم التحديثات المتزايدة · استدعاء عالية - -تعقيد الاستعلام O(log N). - \ No newline at end of file + +الذاكرة العاملة +مساحة العمل النشطة +حالة المهمة الحالية + +الذاكرة العرضية +عرضية +تسلسلات أحداث مع بيانات وصفية + +الذاكرة الدلالية +دلالية +معرفة عامة مجردة + +الذاكرة الإجرائية +إجرائية +مسارات سلوك قابلة لإعادة الاستخدام + + + + + + + +نقل انتقائي + +التنشيط والتحميل +الذاكرة طويلة المدى (عبر الجلسات) +تفاعل ديناميكي بين الذاكرة العاملة والذاكرة طويلة المدى: يُكتب المهم انتقائيًا وتُنشَّط الذكريات ذات الصلة عند الحاجة. + diff --git a/book-es/images/fig3-1.svg b/book-es/images/fig3-1.svg index adaea1651..4fa57b651 100644 --- a/book-es/images/fig3-1.svg +++ b/book-es/images/fig3-1.svg @@ -1,54 +1,26 @@ - + - -Fundamentos de RAG - -Incrustación -densa -Word2Vec → BGE-M3 - -Incrustación -dispersa -TF-IDF / BM25 - -Búsqueda híbrida -+ Reclasificación -Dos torres + Cross-Encoder - -Inferencia -multimodal -Nativo / Texto / Herramienta - - -Aprendizaje desde Conocimiento Existente - -RAPTOR -Ín. Jerárquico Árbol - -GraphRAG - Grafo Entidad-Relación - -RAG agéntico -Búsqueda como -Herramienta - -Búsqueda Consciente de -Ctx -Enriquecimiento por Prefijo - - -Aprendizaje por Exploración Autónoma - -Posentrenamiento -RL → Memoria Muscular - -Aprendizaje en Contexto - Inferencia Suave - -Aprendizaje Externalizado -Base Conocimiento + -Herramientas - -Lección Clave: Búsqueda + Aprendizaje = Método General - - \ No newline at end of file + +Memoria del usuario (escala individual) + +Base de conocimiento (escala colectiva) + +· Jerarquía de memoria · Evaluación en tres niveles +· Cuatro formatos de almacenamiento +· Tipos cognitivos: episódica · semántica · procedimental +· Marcos de memoria: Mem0 · Memobase +· Compresión y consolidación · Niveles de privacidad + +· Fragmentación de documentos · Extracción multimodal +· Embeddings densos/dispersos · Recuperación híbrida +· Indexación estructurada: RAPTOR · GraphRAG +· Paradigma de sistema de archivos · RAG agéntico +· Recuperación contextual · Extracción profunda de conocimiento + + + +Base común: técnicas de recuperación +Fragmentación · Embeddings vectoriales/por palabra clave · Recuperación híbrida · Reordenación +Ambas líneas convergen en una «arquitectura de memoria de doble capa»: +Las tarjetas JSON avanzadas mantienen el resumen residente; la recuperación contextual trae el detalle a demanda. + diff --git a/book-es/images/fig3-11.svg b/book-es/images/fig3-11.svg index 87c2aa13a..a25f4fd17 100644 --- a/book-es/images/fig3-11.svg +++ b/book-es/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -Comunidad: Conjunto instrucciones SSE - -Intel - -SSE - -AVX - -Reg. XMM - -ADDPS - -Reg. YMM - -Ops FP - -Desarrollo - -Desarrollo - -Uso - - -Incluye - -Uso - -Ejecución - - -Operación + +Usuario + +Dra. Zhang-A +Servicio: Odontología + +Hospital Odontológico Renai + +Dirección +Calle XX, distrito de Xuhui + +Dra. Zhang-B +Servicio: Cardiología + +Hospital Huashan +Centro cardiovascular + +Mi dentista + +Mi cardióloga + +Trabaja en + +Dirección + +Trabaja en +· Razonamiento multisalto: «dirección del hospital donde trabaja mi dentista» sigue +Usuario → Dra. Zhang-A → Hospital Odontológico Renai → Dirección. +· Desambiguación: las aristas de relación distinguen los dos nodos «Dra. Zhang». +Cada arista es una tripleta sujeto–relación–objeto. diff --git a/book-es/images/fig3-12.svg b/book-es/images/fig3-12.svg index 3414d8a74..4320d8807 100644 --- a/book-es/images/fig3-12.svg +++ b/book-es/images/fig3-12.svg @@ -1,49 +1,32 @@ - + - -RAG No Agéntico - -Consulta: "¿Pena por lesiones graves -negligentes -si el acusado tiene antecedentes de robo?" - -Búsqueda única: -"Sanción por lesiones graves negligentes" - - -Resultado: Solo artículos básicos hallados -(falta contexto relevante) - - -Generación directa: Faltan factores de -"alcohol" y "antecedentes" - -Paso único · Información incompleta - - -RAG Agéntico (ReAct) - -Pensamiento: Descomponer en 3 -subpreguntas - -Búsqueda ①: "Sanción lesiones graves negligentes" -Búsqueda ②: "Responsabilidad penal por embriaguez" -Búsqueda ③: "Efecto de antecedentes por robo" - - -Observación: Normas básicas halladas pero -falta -conexión entre "antecedentes" y "lesiones" - - -Búsqueda ④: "Interpretación judicial de -reincidencia en distintos delitos" - - -Síntesis: Respuesta completa con todas las -normas aplicables y análisis penal - - -Iteración -Iteración multirronda · Información completa - \ No newline at end of file + +RAG no agéntico +Paso previo fijo, recuperación única + +Consulta del usuario + + +Recuperación (una vez) + + +Generación directa de la respuesta + +RAG agéntico +Guiado por ReAct, recuperación iterativa + +Pensar: analizar la necesidad y fijar palabras clave + + +Actuar: llamar a la herramienta de recuperación + + +Observar: ¿basta la información? + + + +No + + +Sí → sintetizar la respuesta + diff --git a/book-es/images/fig3-2.svg b/book-es/images/fig3-2.svg index ca26cc8b5..5ba81e7b0 100644 --- a/book-es/images/fig3-2.svg +++ b/book-es/images/fig3-2.svg @@ -1,36 +1,43 @@ - + - -① Consulta -Usuario -"¿Pena por homicidio intencional?" - - -② Búsqueda -Búsqueda densa + BM25 -→ Top K fragmentos - - -③ Aumentación -Consulta + Resultados -→ Construir prompt final - - -④ Generación -LLM sintetiza contexto -→ Generar respuesta - -Ejemplo de flujo de datos - -Fragmentos recuperados -Código Penal Art 232: El que intencionalmente matare a otro, -será castigado con pena de prisión de 10 a 25 años... - -Prompt aumentante -Responde la pregunta basándote en el código penal: -[Código Penal Art 232...] P: ¿Pena por homicidio intencional? - -Respuesta generada -Según el Código Penal Art 232, el homicidio intencional se castiga con prisión de 10 a 25 años; -en circunstancias atenuantes, la pena puede reducirse de 3 a 10 años. - \ No newline at end of file + +Notas simples + +«Correo del usuario: + john@x.com" +✓ Hecho atómico · O(1) +✓ Coste mínimo +✗ Se pierden las relaciones + +Notas enriquecidas + +«En TechCorp, +un ingeniero sénior dirige +un equipo de cinco.» +✓ Narrativa completa +✓ Semánticamente completa +✗ Redundante · difícil de actualizar +✗ El texto largo es difícil de recuperar + +Tarjetas JSON + +work.position + .title = … +(categoría → clave-valor) +✓ Estructura de tres niveles +✓ Admite actualizaciones parciales +✗ Clasificación rígida + +Tarjetas JSON avanzadas + ++ backstory ++ person ++ relationship +✓ Desambiguación · gestión del conocimiento +✓ Con fuentes y relaciones +✗ Costosas de generar y mantener + +Simplicidad +Expresividad +Menos simplicidad, más expresividad + diff --git a/book-es/images/fig3-4.svg b/book-es/images/fig3-4.svg index 5458cedb5..26bae7698 100644 --- a/book-es/images/fig3-4.svg +++ b/book-es/images/fig3-4.svg @@ -1,51 +1,31 @@ - + - -Capa 2 (dispersa · conexiones de larga distancia) - - - - - - -Capa 1 (densidad media) - - - - - - - - - - - - -Capa 0 (densa · todos los nodos) - - - - - - - - - - - - - - - - - - - -La búsqueda comienza en capa superior - -Se refina capa por capa hacia abajo - -Admite actualizaciones incrementales · Alto recall - -Complejidad de consulta O(log N) - \ No newline at end of file + +Memoria de trabajo +Espacio activo +Estado de la tarea actual + +Memoria episódica +Episódica +secuencias de eventos con metadatos + +Memoria semántica +Semántica +conocimiento general abstraído + +Memoria procedimental +Procedimental +flujos de conducta reutilizables + + + + + + + +Transferencia selectiva + +Activación y carga +Memoria a largo plazo (entre sesiones) +Interacción dinámica entre memoria de trabajo y memoria a largo plazo: lo importante se escribe de forma selectiva y los recuerdos relevantes se activan bajo demanda. + diff --git a/book-hu/images/fig3-1.svg b/book-hu/images/fig3-1.svg index f8e762c95..d76260bcf 100644 --- a/book-hu/images/fig3-1.svg +++ b/book-hu/images/fig3-1.svg @@ -1,52 +1,26 @@ - + - -RAG-alapok - -sűrű beágyazás -Word2Vec → BGE-M3 - -ritka -beágyazás -TF-IDF / BM25 - -hibrid Visszakeresés + -Reranking -kettő-tower Visszakeresés + kereszt-kódoló - -multimodális -kinyerés -natív / szöveg / eszköz - - -Tanulás meglévő tudásból - -RAPTOR -fa hierarchikus index - -GraphRAG -Entity Relation Graph - -Agentic RAG - Visszakeresés eszközként - -Kontextustudatos Visszakeresés -előtag összegzés -Enhancement - - -Tanulás autonóm felfedezésből - -Utótréning - RL → izommemória - -Kontextuson belüli tanulás -következtetés-idő Soft Visszakeresés - -Külsővé tett tanulás -Tudásbázis + eszköz -generálás - -A keserű lecke: Keresés + tanulás = általános módszer - - \ No newline at end of file + +Felhasználói memória (egyéni lépték) + +Tudásbázis (közösségi lépték) + +· Memóriahierarchia · Háromszintű értékelés +· Négy tárolási formátum +· Kognitív típusok: epizodikus · szemantikus · procedurális +· Memória-keretrendszerek: Mem0 · Memobase +· Tömörítés és konszolidáció · Adatvédelmi besorolás + +· Dokumentumdarabolás · Multimodális kinyerés +· Sűrű/ritka beágyazások · Hibrid keresés +· Strukturált indexelés: RAPTOR · GraphRAG +· Fájlrendszer-szemlélet · Ágenses RAG +· Kontextusfüggő keresés · Mély tudáskinyerés + + + +Közös alap: keresési technikák +Darabolás · Vektor/kulcsszó beágyazás · Hibrid keresés · Újrarangsorolás +A két szál végül a „kétrétegű memóriaarchitektúrában” fut össze: +A fejlett JSON-kártyák bent tartják az áttekintést; a kontextusfüggő keresés igény szerint hozza a részleteket. + diff --git a/book-hu/images/fig3-11.svg b/book-hu/images/fig3-11.svg index a4548cfbf..908286f16 100644 --- a/book-hu/images/fig3-11.svg +++ b/book-hu/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -Hagyományos darabolás (kontextus nélkül) - -A vállalat második negyedéves bevétele 3%-kal nőtt, -főként az új termékvonalaknak köszönhetően. -kérdés: "ki "a company"? melyik year? -→ Visszakeresés matches revenue adatok sok irrelevant companies - -Kontextustudatos darabolás - -[ACME Vállalat, 2025. II. negyedéves eredményjelentés · fő teljesítménymutatók] - -A vállalat második negyedéves bevétele 3%-kal nőtt, -főként az új termékvonalaknak köszönhetően. -→ pontos egyezés ACME + Q2 + revenue growth - - -Indexelési szakasz: az LLM kontextuselőtagot generál - -Eredeti dokumentum - - -Darabolás - - -LLM generál előtag -(Prompt-gyorsítótárazás) - - -előtag + eredeti szöveg -→ index -Hatás: a sikertelen visszakeresés aránya ↓49% (+BM25), ↓67% (+újrarangsorolás) — Anthropic-adatok - \ No newline at end of file + +Felhasználó + +Dr. Zhang-A +Osztály: fogászat + +Renai Fogászati Kórház + +Cím +XX út, Xuhui kerület + +Dr. Zhang-B +Osztály: kardiológia + +Huashan Kórház +Kardiovaszkuláris központ + +A fogorvosom + +A kardiológusom + +Munkahelye + +Cím + +Munkahelye +· Többugrásos következtetés: „a fogorvosom kórházának címe” ezt az utat járja be +Felhasználó → Dr. Zhang-A → Renai Fogászati Kórház → Cím. +· Entitás-egyértelműsítés: a kapcsolati élek elkülönítik a két „Dr. Zhang” csomópontot. +Minden él egy alany–reláció–tárgy hármas. + diff --git a/book-hu/images/fig3-12.svg b/book-hu/images/fig3-12.svg index 4b684ddba..b3c20ea1b 100644 --- a/book-hu/images/fig3-12.svg +++ b/book-hu/images/fig3-12.svg @@ -1,52 +1,32 @@ - + - -Non-Agentic RAG - -lekérdezés: "hogyan → mondat céljára causing serious -sérülés által gondatlanság while drunk -és és a előző theft conviction?" - -egyetlen Visszakeresés: -"Büntetéskiszabás súlyos sérülés okozásáért által -gondatlanság" - - -Visszakeresés eredmény: csak megtalálva alapvető rendelkezések -céljára negligent sérülés - (Hiányos kontextus) - - -Közvetlen generálás: hiányzik az „ittas” tényező -és "Korábbi elítélés" influencing factors - -Egyetlen menet · hiányos információ - - -Agentic RAG (ReAct) - -gondolat: szükséges → decompose → 3 -sub-kérdések - -keresés ①: "Büntetéskiszabás súlyos sérülés okozásáért által -gondatlanság" -keresés ②: "Criminal liability céljára drunkenness" -keresés ③: "Impact előző theft conviction" - - -Megfigyelés: megtalálva alapvető rendelkezések de -hiányzó link between "Korábbi elítélés" -és "negligent sérülés" - - -keresés ④: "Recidivism eltérő crimes -judicial interpretation" - - -szintézis: teljes válasz including minden -legal rendelkezések és Büntetéskiszabási elemzés - - -iteráció -Többkörös iteráció · teljes információ - \ No newline at end of file + +Nem ágenses RAG +Rögzített előlépés, egyszeri keresés + +Felhasználói kérdés + + +Keresés (egyszeri) + + +Közvetlen válaszgenerálás + +Ágenses RAG +ReAct-vezérelt, iteratív keresés + +Gondolkodás: igény elemzése, kulcsszavak + + +Cselekvés: keresőeszköz hívása + + +Megfigyelés: elég az információ? + + + +Nem + + +Igen → válasz összeállítása + diff --git a/book-hu/images/fig3-2.svg b/book-hu/images/fig3-2.svg index d95a275bb..80083f01f 100644 --- a/book-hu/images/fig3-2.svg +++ b/book-hu/images/fig3-2.svg @@ -1,35 +1,43 @@ - + - -① Felhasználói lekérdezés -"Hány év jár szándékos emberölésért?" - - -② Visszakeresés -sűrű Visszakeresés + BM25 -→ Top-K szöveg Chunks - - -③ Augment -lekérdezés + Retrieved eredmények -→ A teljes prompt összeállítása - - -④ generálás -LLM synthesizes kontextus -→ generálás válasz - -példa Adatfolyam - -Retrieved szöveg chunks -Article 232 of the Criminal Law: Whoever intentionally kills another shall be sentenced to death, -life imprisonment or fixed-term imprisonment of not less than ten years... - -Kiegészített prompt -Válaszoljon a kérdésre az alábbi jogszabályok alapján: -[Article 232 of the Criminal Law...] Q: What is the sentence for intentional homicide? - -generált válasz -According to Article 232 of the Criminal Law, the crime of intentional homicide is punishable by death, life imprisonment, or fixed-term imprisonment of not less than ten years; -if the circumstances are minor, the sentence is fixed-term imprisonment of not less than three years but not more than ten years. - \ No newline at end of file + +Egyszerű jegyzetek + +„Felhasználó e-mailje: + john@x.com" +✓ Atomi tény · O(1) +✓ Rendkívül kicsi többletköltség +✗ Az összefüggés elvész + +Bővített jegyzetek + +„A TechCorpnál +egy vezető mérnök irányít +egy ötfős csapatot.” +✓ Teljes elbeszélés +✓ Szemantikailag teljes +✗ Redundáns · nehéz frissíteni +✗ A hosszú szöveget nehéz visszakeresni + +JSON-kártyák + +work.position + .title = … +(kategória → kulcs-érték) +✓ Háromszintű szerkezet +✓ Támogatja a részleges frissítést +✗ Merev osztályozás + +Fejlett JSON-kártyák + ++ backstory ++ person ++ relationship +✓ Egyértelműsítés · tudásmenedzsment +✓ Forrásokkal és kapcsolatokkal +✗ Drága előállítani és karbantartani + +Egyszerűség +Kifejezőerő +Csökkenő egyszerűség, növekvő kifejezőerő + diff --git a/book-hu/images/fig3-4.svg b/book-hu/images/fig3-4.svg index eb0052259..38a9c3ab7 100644 --- a/book-hu/images/fig3-4.svg +++ b/book-hu/images/fig3-4.svg @@ -1,51 +1,31 @@ - + - -2. réteg (ritka · nagy hatótávolságú kapcsolatok) - - - - - - -réteg 1 (medium density) - - - - - - - - - - - - -réteg 0 (sűrű · minden nodes) - - - - - - - - - - - - - - - - - - - -A keresés a legfelső szintről indul - -finomítás réteg által réteg lefelé - -támogat inkrementális updates · magas visszahívás - -O(napló N) lekérdezés összetettség - \ No newline at end of file + +Munkamemória +Aktív munkaterület +Aktuális feladatállapot + +Epizodikus memória +Epizodikus +eseménysorok metaadatokkal + +Szemantikus memória +Szemantikus +absztrahált általános tudás + +Procedurális memória +Procedurális +újrahasznosítható viselkedésfolyamok + + + + + + + +Szelektív átvitel + +Aktiválás és betöltés +Hosszú távú memória (munkameneteken át) +A munkamemória és a hosszú távú memória dinamikus kölcsönhatása: a fontos információ szelektíven íródik ki, a releváns emlékek igény szerint aktiválódnak. + diff --git a/book-id/images/fig3-1.svg b/book-id/images/fig3-1.svg index 5008513b4..c7a3b551d 100644 --- a/book-id/images/fig3-1.svg +++ b/book-id/images/fig3-1.svg @@ -1,53 +1,26 @@ - - - - -Dasar RAG - -Dense Embedding -Word2Vec → BGE-M3 - -Sparse -Embedding -TF-IDF / BM25 - -Hybrid Retrieval + -Reranking -Two-tower Retrieval + Cross-Encoder - -Multimodal -Ekstraksi -Native / Text / Tool - - -Belajar dari Pengetahuan yang Ada - -RAPTOR -Indeks Hierarkis Pohon - -GraphRAG -Grafik Relasi Entitas - -Agentic RAG - Retrieval as Tool - -Context-Aware Retrieval -Ringkasan Awalan -Peningkatan - - -Belajar dari Eksplorasi Otonom - -Post-training - RL → Muscle Memory - -In-Context Learning -Soft Retrieval Waktu Inferensi - -Externalized Learning -Knowledge Base + Tool -Generation - -Bitter Lesson: Search + Learning = Metode Umum - - \ No newline at end of file + + + +Memori pengguna (skala individu) + +Basis pengetahuan (skala kelompok) + +· Hierarki memori · Evaluasi tiga tingkat +· Empat format penyimpanan +· Tipe kognitif: episodik · semantik · prosedural +· Kerangka memori: Mem0 · Memobase +· Kompresi dan konsolidasi · Pemeringkatan privasi + +· Pemenggalan dokumen · Ekstraksi multimodal +· Embedding padat/jarang · Pencarian hibrida +· Pengindeksan terstruktur: RAPTOR · GraphRAG +· Paradigma sistem berkas · RAG agentik +· Pencarian kontekstual · Ekstraksi pengetahuan mendalam + + + +Fondasi bersama: teknik pencarian +Pemenggalan dokumen · Embedding vektor/kata kunci · Pencarian hibrida · Pemeringkatan ulang +Kedua alur akhirnya bertemu dalam “arsitektur memori dua lapis”: +Kartu JSON lanjutan menjaga ikhtisar tetap tersedia; pencarian kontekstual mengambil detail sesuai kebutuhan. + diff --git a/book-id/images/fig3-11.svg b/book-id/images/fig3-11.svg index 8cedc97a9..32c163521 100644 --- a/book-id/images/fig3-11.svg +++ b/book-id/images/fig3-11.svg @@ -1,36 +1,33 @@ - - - - -Komunitas: set instruksi SSE - -Intel - -SSE - -AVX - -XMM reg - -ADDPS - -YMM reg - -FP ops - -Pengembangan - -Pengembangan - -Penggunaan - - -Berisi - -Penggunaan - -Eksekusi - - -Operasi + + + +Pengguna + +dr. Zhang-A +Departemen: Kedokteran gigi + +RS Gigi dan Mulut Renai + +Alamat +Jalan XX, Distrik Xuhui + +dr. Zhang-B +Departemen: Kardiologi + +RS Huashan +Pusat kardiovaskular + +Dokter gigi saya + +Kardiolog saya + +Bekerja di + +Alamat + +Bekerja di +· Penalaran multi-lompat: “alamat rumah sakit tempat dokter gigi saya bekerja” menelusuri +Pengguna → dr. Zhang-A → RS Gigi dan Mulut Renai → Alamat. +· Disambiguasi entitas: sisi relasi membedakan dua simpul “dr. Zhang”. +Setiap sisi adalah triplet subjek–relasi–objek. diff --git a/book-id/images/fig3-12.svg b/book-id/images/fig3-12.svg index 56130cfe3..663ac5ebf 100644 --- a/book-id/images/fig3-12.svg +++ b/book-id/images/fig3-12.svg @@ -1,53 +1,32 @@ - - - - -RAG Non-Agentic - -Query: "Bagaimana hukuman untuk menyebabkan cedera serius -karena kelalaian saat mabuk -dan memiliki hukuman pencurian sebelumnya?" - -Retrieval tunggal: -"Hukuman karena menyebabkan cedera serius karena -kelalaian" - - -Hasil retrieval: Hanya menemukan ketentuan dasar -untuk cedera akibat kelalaian - (incomplete context) - - -Generasi langsung: Kehilangan "mabuk" -dan faktor pengaruh "hukuman sebelumnya" - -Single pass · Informasi tidak lengkap - - -Agentic RAG (ReAct) - -Thought: Perlu menguraikan menjadi 3 -sub-pertanyaan - -Search ①: "Hukuman karena menyebabkan cedera serius karena -kelalaian" -Search ②: "Tanggung jawab pidana karena mabuk" -Search ③: "Dampak hukuman pencurian sebelumnya" - - -Observation: Menemukan ketentuan dasar tetapi -kehilangan hubungan antara "hukuman sebelumnya" -dan "cedera akibat kelalaian" - - -Search ④: "Interpretasi yudisial residivisme -berbagai kejahatan" - - -Synthesis: Jawaban lengkap termasuk semua -ketentuan hukum dan analisis hukuman - - -Iterasi -Iterasi multi-putaran · Informasi lengkap - \ No newline at end of file + + + +RAG non-agentik +Langkah awal tetap, pencarian sekali + +Kueri pengguna + + +Pencarian (sekali) + + +Langsung menghasilkan jawaban + +RAG agentik +Digerakkan ReAct, pencarian iteratif + +Pikir: analisis kebutuhan, tentukan kata kunci + + +Tindak: panggil alat pencarian + + +Amati: apakah informasinya cukup? + + + +Tidak + + +Ya → susun jawaban + diff --git a/book-id/images/fig3-2.svg b/book-id/images/fig3-2.svg index 8ace9e5d7..f65ba4fbe 100644 --- a/book-id/images/fig3-2.svg +++ b/book-id/images/fig3-2.svg @@ -1,36 +1,43 @@ - - - - -① Kueri Pengguna -"Berapa tahun hukuman untuk pembunuhan disengaja?" - - -② Pengambilan -Dense Retrieval + BM25 -→ K Potongan Teks Teratas - - -③ Augmentasi -Kueri + Hasil Pengambilan -→ Susun Prompt Lengkap - - -④ Pembangkitan -LLM menyintesis konteks -→ Hasilkan respons - -Contoh aliran data - -Potongan teks yang diambil -Pasal 232 Hukum Pidana: Barang siapa dengan sengaja membunuh orang lain diancam hukuman mati, -penjara seumur hidup atau penjara sementara paling singkat sepuluh tahun... - -Prompt yang Diaugmentasi -Jawab pertanyaan berdasarkan ketentuan hukum berikut: -[Pasal 232 Hukum Pidana...] T: Apa hukuman untuk pembunuhan disengaja? - -Respons yang Dihasilkan -Menurut Pasal 232 Hukum Pidana, kejahatan pembunuhan disengaja diancam hukuman mati, penjara seumur hidup, atau penjara sementara paling singkat sepuluh tahun; -jika situasinya ringan, hukumannya adalah penjara sementara paling singkat tiga tahun namun tidak lebih dari sepuluh tahun. - \ No newline at end of file + + + +Catatan sederhana + +“Surel pengguna: + john@x.com" +✓ Fakta atomik · O(1) +✓ Overhead sangat rendah +✗ Keterkaitan hilang + +Catatan diperkaya + +“Di TechCorp, +seorang insinyur senior memimpin +tim beranggotakan lima orang.” +✓ Narasi utuh +✓ Lengkap secara semantik +✗ Berulang · sulit diperbarui +✗ Teks panjang sulit dicari + +Kartu JSON + +work.position + .title = … +(kategori → kunci-nilai) +✓ Struktur tiga tingkat +✓ Mendukung pembaruan sebagian +✗ Klasifikasi kaku + +Kartu JSON lanjutan + ++ backstory ++ person ++ relationship +✓ Disambiguasi · manajemen pengetahuan +✓ Dengan sumber dan relasi +✗ Mahal dibuat dan dirawat + +Kesederhanaan +Daya ungkap +Kesederhanaan menurun, daya ungkap meningkat + diff --git a/book-id/images/fig3-4.svg b/book-id/images/fig3-4.svg index 8b20d5d39..935ebcedd 100644 --- a/book-id/images/fig3-4.svg +++ b/book-id/images/fig3-4.svg @@ -1,52 +1,31 @@ - - - - -Lapisan 2 (jarang · koneksi jarak jauh) - - - - - - -Lapisan 1 (kepadatan sedang) - - - - - - - - - - - - -Lapisan 0 (padat · semua node) - - - - - - - - - - - - - - - - - - - -Pencarian dimulai dari tingkat atas - -Perhalus lapis demi lapis ke bawah - -Mendukung pembaruan inkremental · Recall tinggi - -Kompleksitas kueri O(log N) - \ No newline at end of file + + + +Memori kerja +Ruang kerja aktif +Status tugas saat ini + +Memori episodik +Episodik +urutan peristiwa dengan metadata + +Memori semantik +Semantik +pengetahuan umum yang diabstraksi + +Memori prosedural +Prosedural +alur perilaku yang dapat dipakai ulang + + + + + + + +Transfer selektif + +Aktivasi dan pemuatan +Memori jangka panjang (lintas sesi) +Interaksi dinamis antara memori kerja dan memori jangka panjang: informasi penting ditulis secara selektif, dan memori relevan diaktifkan sesuai kebutuhan. + diff --git a/book-ja/images/fig3-1.svg b/book-ja/images/fig3-1.svg index 9bf109043..5aba2cd73 100644 --- a/book-ja/images/fig3-1.svg +++ b/book-ja/images/fig3-1.svg @@ -1,53 +1,26 @@ - - - -RAG の基礎 - -密ベクトル埋め込 - -Word2Vec → BGE-M3 - -疎ベクトル埋め込 - -TF-IDF / BM25 - -ハイブリッド検索 -+リランキング -二塔検索 + Cross-Encoder - -マルチモーダル抽 - -ネイティブ / テキスト / ツール - - -既存の知識から学ぶ - -RAPTOR -木構造の階層インデック - - -GraphRAG -エンティティ関係グラフ - -エージェント化 RAG - ツールとしての検索 - -コンテキスト対応検索 -プレフィックス要約によ -る強化 - - -自律的な探索から学ぶ - -ポストトレーニング - RL → マッスルメモリ - -インコンテキスト学習 - 推論時のソフト検索 - -外部化学習 -知識ベース+ツール生成 - -Bitter Lesson:探索+学習=汎用的な手法 - - \ No newline at end of file + + + +ユーザー記憶(個人スケール) + +知識ベース(集団スケール) + +・記憶の階層 ・三層の評価 +・四つの保存形式 +・認知型:エピソード ・意味 ・手続き +・記憶フレームワーク:Mem0 ・Memobase +・圧縮と整理 ・プライバシー等級 + +・文書のチャンク化 ・マルチモーダル抽出 +・密/疎な埋め込み ・ハイブリッド検索 +・構造化インデックス:RAPTOR ・GraphRAG +・ファイルシステム的発想 ・エージェント的 RAG +・文脈を踏まえた検索 ・深い知識抽出 + + + +共通の基盤:検索技術 +文書チャンク化 ・ベクトル/キーワード埋め込み ・ハイブリッド検索 ・再ランキング +二つの流れは最終的に「二層記憶アーキテクチャ」へ収束する: +高度な JSON カードが概要を常駐させ、文脈検索が詳細を必要に応じて取得する。 + diff --git a/book-ja/images/fig3-11.svg b/book-ja/images/fig3-11.svg index bcf750a38..f9661265f 100644 --- a/book-ja/images/fig3-11.svg +++ b/book-ja/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -コミュニティ:SSE 命令セット - -Intel - -SSE - -AVX - -XMMレジスタ - -ADDPS - -YMMレジスタ - -FP演算 - -開発 - -開発 - -使用 - - -含む - -使用 - -実行 - - -演算 + +ユーザー + +張医師-A +診療科:歯科 + +仁愛口腔病院 + +住所 +徐匯区 XX 路 + +張医師-B +診療科:循環器内科 + +華山病院 +心血管センター + +私の歯科医 + +私の循環器医 + +勤務先 + +住所 + +勤務先 +・マルチホップ推論:「私の歯科医が勤める病院の住所」は次をたどる +ユーザー → 張医師-A → 仁愛口腔病院 → 住所。 +・実体の曖昧性解消:関係の辺が二つの「張医師」ノードを区別する。 +各辺は主語–関係–目的語のトリプルである。 diff --git a/book-ja/images/fig3-12.svg b/book-ja/images/fig3-12.svg index 36e4e2f90..8b9609c08 100644 --- a/book-ja/images/fig3-12.svg +++ b/book-ja/images/fig3-12.svg @@ -1,48 +1,32 @@ - + - -非エージェント型 RAG - -クエリ:「飲酒状態で過失により重傷を負わ -せ、 -かつ窃盗の前科がある場合の量刑は?」 - -単一の検索: -「過失により重傷を負わせた場合の量刑」 - - -検索結果:過失傷害の基本的な条文のみを発 - -(コンテキストが不完全) - - -直接生成:「飲酒」と「前科」という -影響要因が欠落 - -単一パス・不完全な情報 - - -エージェント化 RAG(ReAct) - -思考:3つのサブ質問に分解する必要がある - -検索①:「過失により重傷を負わせた場合の量刑」 -検索②:「飲酒に対する刑事責任」 -検索③:「窃盗の前科の影響」 - - -観察:基本的な条文は見つかったが -「前科」と「過失傷害」の関連が欠けている - - -検索④:「異なる罪種の累犯 -司法解釈」 - - -統合:すべての法律の条文と量刑分析を -含む完全な回答 - - -反復 -複数回の反復・完全な情報 - \ No newline at end of file + +非エージェント的 RAG +固定の前処理・一度きりの検索 + +ユーザーの問い合わせ + + +検索(一度のみ) + + +そのまま回答を生成 + +エージェント的 RAG +ReAct 主導の反復的な検索 + +思考:要求を分析しキーワードを決める + + +行動:検索ツールを呼ぶ + + +観察:情報は十分か? + + + +いいえ + + +はい → 回答を統合 + diff --git a/book-ja/images/fig3-2.svg b/book-ja/images/fig3-2.svg index 74a3f63fd..48f0eaf9a 100644 --- a/book-ja/images/fig3-2.svg +++ b/book-ja/images/fig3-2.svg @@ -1,36 +1,43 @@ - - - -① ユーザークエ - -「故意殺人は何年の刑になるか?」 - - -② 検索 -密検索 + BM25 -→ 上位 K 件のテキストチャンク - - -③ 拡張 -クエリ+検索結果 -→ 完全なプロンプトを構築 - - -④ 生成 -LLM がコンテキストを統合 -→ 回答を生成 - -データフローの例 - -検索されたテキストチャンク -刑法第232条:故意に他人を殺害した者は、死刑、 -無期懲役または10年以上の有期懲役に処する…… - -拡張されたプロンプト -以下の法律の条文に基づいて質問に答えてください: -[刑法第232条……] Q:故意殺人の量刑は? - -生成された回答 -刑法第232条によると、故意殺人罪は死刑、無期懲役または10年以上の有期懲役に処せられる。 -情状が軽い場合は、3年以上10年以下の有期懲役に処せられる。 - \ No newline at end of file + + + +シンプルなメモ + +「ユーザーのメール: + john@x.com" +✓ 原子的な事実・O(1) +✓ オーバーヘッドが極めて小さい +✗ 関連性が失われる + +拡張されたメモ + +「TechCorp では、 +シニアエンジニアが +5 人のチームを率いる。」 +✓ 物語として完結 +✓ 意味的に完全 +✗ 冗長・更新が難しい +✗ 長文は検索しにくい + +JSON カード + +work.position + .title = … +(分類 → キーと値) +✓ 三層構造 +✓ 部分更新に対応 +✗ 分類が硬直的 + +高度な JSON カード + ++ backstory ++ person ++ relationship +✓ 曖昧性の解消・知識管理 +✓ 出典と関係を保持 +✗ 生成と保守のコストが高い + +単純さ +表現力 +単純さは下がり、表現力は上がる + diff --git a/book-ja/images/fig3-4.svg b/book-ja/images/fig3-4.svg index 7ad62cee8..27de2d41b 100644 --- a/book-ja/images/fig3-4.svg +++ b/book-ja/images/fig3-4.svg @@ -1,51 +1,31 @@ - - - -レイヤー2(疎・長距離接続) - - - - - - -レイヤー1(中密度) - - - - - - - - - - - - -レイヤー0(密・全ノード) - - - - - - - - - - - - - - - - - - - -最上位レイヤーから探索を開始 - -下位レイヤーへ段階的に絞り込む - -増分更新に対応・高い再現率 - -O(log N) のクエリ計算量 - \ No newline at end of file + + + +作業記憶 +アクティブな作業領域 +現在のタスク状態 + +エピソード記憶 +エピソード +メタデータ付きの出来事の系列 + +意味記憶 +意味 +抽象化された一般知識 + +手続き記憶 +手続き +再利用できる行動の流れ + + + + + + + +選択的な転送 + +活性化と読み込み +長期記憶(セッションをまたぐ) +作業記憶と長期記憶の動的なやり取り:重要な情報は選択的に書き込まれ、関連する記憶は必要に応じて活性化される。 + diff --git a/book-ru/images/fig3-1.svg b/book-ru/images/fig3-1.svg index 57a8df549..93ad72e0f 100644 --- a/book-ru/images/fig3-1.svg +++ b/book-ru/images/fig3-1.svg @@ -1,52 +1,26 @@ - + - -Основы RAG - -Плотный эмбеддинг -Word2Vec → BGE-M3 - -Разреженный -Эмбеддинг -TF-IDF / BM25 - -Гибридный поиск + -Реранкинг -Двухбашенный поиск + Cross-Encoder - -Мультимодальность -Извлечение -Нативный / Текст / Инструмент - - -Обучение на существующих знаниях - -RAPTOR -Древовидный иерархический индекс - -GraphRAG -Граф отношений сущностей - -Агентный RAG - Извлечение как инструмент - -Контекстно-зависимый поиск -Резюме префикса -Улучшение - - -Обучение через автономное исследование - -Постобучение - RL → мышечная память - -Обучение в контексте -Мягкий поиск во время вывода - -Экстернализованное обучение -База знаний + инструмент -Генерация - -Горький урок: Поиск + Обучение = Общий метод - - \ No newline at end of file + +Память пользователя (индивидуальный масштаб) + +База знаний (групповой масштаб) + +· Иерархия памяти · Трёхуровневая оценка +· Четыре формата хранения +· Когнитивные типы: эпизодическая · семантическая · процедурная +· Фреймворки памяти: Mem0 · Memobase +· Сжатие и консолидация · Уровни приватности + +· Чанкинг документов · Мультимодальное извлечение +· Плотные/разреженные эмбеддинги · Гибридный поиск +· Структурная индексация: RAPTOR · GraphRAG +· Парадигма файловой системы · Агентный RAG +· Контекстный поиск · Глубокое извлечение знаний + + + +Общая основа: техники поиска +Чанкинг · Векторные/ключевые эмбеддинги · Гибридный поиск · Переранжирование +Обе линии сходятся в «двухслойной архитектуре памяти»: +Продвинутые JSON-карточки держат обзор в памяти, а контекстный поиск подтягивает детали по требованию. + diff --git a/book-ru/images/fig3-11.svg b/book-ru/images/fig3-11.svg index 1d57e5989..4f1400bf0 100644 --- a/book-ru/images/fig3-11.svg +++ b/book-ru/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -Сообщество: набор инструкций SSE - -Intel - -SSE - -AVX - -Регистр XMM - -ADDPS - -Регистр YMM - -FP-операции - -Разработка - -Разработка - -Использование - - -Содержит - -Использование - -Выполнить - - -Операция + +Пользователь + +Д-р Чжан-A +Отделение: стоматология + +Стоматологическаябольница Жэньай + +Адрес +Улица XX, район Сюйхуэй + +Д-р Чжан-B +Отделение: кардиология + +Больница Хуашань +Сердечно-сосудистый центр + +Мой стоматолог + +Мой кардиолог + +Работает в + +Адрес + +Работает в +· Многошаговый вывод: «адрес больницы, где работает мой стоматолог» идёт по пути +Пользователь → д-р Чжан-A → больница Жэньай → Адрес. +· Разрешение неоднозначности: рёбра связей различают два узла «д-р Чжан». +Каждое ребро — тройка субъект–отношение–объект. diff --git a/book-ru/images/fig3-12.svg b/book-ru/images/fig3-12.svg index 7ecd6e67d..ece1b7bbe 100644 --- a/book-ru/images/fig3-12.svg +++ b/book-ru/images/fig3-12.svg @@ -1,52 +1,32 @@ - + - -Неагентный RAG - -Запрос: "Как назначить наказание за причинение серьёзного -причинение вреда по неосторожности в состоянии опьянения -и с предыдущей судимостью за кражу?» - -Единичный поиск: -"Приговор за причинение тяжкого вреда -небрежность" - - -Результат поиска: найдены только базовые положения -за причинение вреда по неосторожности - (неполный контекст) - - -Прямая генерация: пропущено «пьяный» -и факторы влияния «предыдущая судимость» - -Один проход · Неполная информация - - -Агентный RAG (ReAct) - -Мысль: нужно разбить на 3 -подвопросы - -Поиск ①: "Приговор за причинение тяжкого вреда путём -небрежность" -Поиск ②: "Уголовная ответственность за опьянение" -Поиск ③: "Влияние предыдущей судимости за кражу" - - -Наблюдение: найдены базовые припасы, но -недостающая связь между «предыдущим приговором» -и «причинение вреда по неосторожности» - - -Поиск ④: "Рецидив разных преступлений -"судебное толкование" - - -Синтез: полный ответ, включающий всё -правовые нормы и анализ назначения наказания - - -Итерация -Многораундовая итерация · Полная информация - \ No newline at end of file + +Неагентный RAG +Фиксированный шаг, однократный поиск + +Запрос пользователя + + +Поиск (однократный) + + +Прямая генерация ответа + +Агентный RAG +Итеративный поиск под управлением ReAct + +Мысль: разобрать запрос, выбрать ключевые слова + + +Действие: вызвать инструмент поиска + + +Наблюдение: информации достаточно? + + + +Нет + + +Да → синтезировать ответ + diff --git a/book-ru/images/fig3-2.svg b/book-ru/images/fig3-2.svg index 49438fe92..b9ff8882a 100644 --- a/book-ru/images/fig3-2.svg +++ b/book-ru/images/fig3-2.svg @@ -1,35 +1,43 @@ - + - -① Запрос пользователя -"Сколько лет за умышленное убийство?" - - -② Поиск (Retrieval) -Плотный поиск + BM25 -→ Top-K текстовых фрагментов - - -③ Дополнение (Augment) -Запрос + извлечённые результаты -→ Построить полный промпт - - -④ Генерация -LLM синтезирует контекст -→ Сгенерировать ответ - -Пример потока данных - -Извлечённые текстовые фрагменты -Статья 232 Уголовного кодекса: Умышленное убийство другого лица наказывается смертной казнью, -пожизненное лишение свободы или лишение свободы на срок не менее десяти лет... - -Расширенный промпт -Ответьте на вопрос на основе следующих правовых норм: -[Статья 232 Уголовного кодекса...] В: Какое наказание за умышленное убийство? - -Сгенерированный ответ -Согласно статье 232 Уголовного кодекса, преступление умышленного убийства наказывается смертной казнью, пожизненным заключением или лишением свободы на срок не менее десяти лет; -если обстоятельства незначительны, наказание — лишение свободы на срок от трёх до десяти лет. - \ No newline at end of file + +Простые заметки + +«Почта пользователя: + john@x.com" +✓ Атомарный факт · O(1) +✓ Крайне низкие накладные расходы +✗ Теряются связи + +Расширенные заметки + +«В TechCorp +старший инженер руководит +командой из пяти человек.» +✓ Целостное повествование +✓ Семантически полно +✗ Избыточно · трудно обновлять +✗ Длинный текст плохо ищется + +JSON-карточки + +work.position + .title = … +(категория → ключ-значение) +✓ Трёхуровневая структура +✓ Поддерживает частичные обновления +✗ Жёсткая классификация + +Продвинутые JSON-карточки + ++ backstory ++ person ++ relationship +✓ Снятие неоднозначности· управление знаниями +✓ С источниками и связями +✗ Дорого создавать и поддерживать + +Простота +Выразительность +Простота падает, выразительность растёт + diff --git a/book-ru/images/fig3-4.svg b/book-ru/images/fig3-4.svg index fe592d321..0ba30193a 100644 --- a/book-ru/images/fig3-4.svg +++ b/book-ru/images/fig3-4.svg @@ -1,51 +1,31 @@ - + - -Слой 2 (разреженный · дальние связи) - - - - - - -Слой 1 (средняя плотность) - - - - - - - - - - - - -Слой 0 (плотный · все узлы) - - - - - - - - - - - - - - - - - - - -Поиск начинается с верхнего уровня - -Уточнение слой за слоем сверху вниз - -Поддерживает инкрементальные обновления · Высокая полнота - -Сложность запроса O(log N) - \ No newline at end of file + +Рабочая память +Активное пространство +Состояние текущей задачи + +Эпизодическая память +Эпизодическая +последовательностисобытий с метаданными + +Семантическая память +Семантическая +обобщённые общие знания + +Процедурная память +Процедурная +переиспользуемые схемы поведения + + + + + + + +Избирательный перенос + +Активация и загрузка +Долговременная память (между сессиями) +Динамическое взаимодействие рабочей и долговременной памяти: важное записывается избирательно, а нужные воспоминания активируются по требованию. + diff --git a/book-ta/images/fig3-1.svg b/book-ta/images/fig3-1.svg index 58ecd0ccd..a62b28703 100644 --- a/book-ta/images/fig3-1.svg +++ b/book-ta/images/fig3-1.svg @@ -1,52 +1,26 @@ - + - -RAG Basics - -Dense Embedding -Word2Vec → BGE-M3 - -Sparse -Embedding -TF-IDF / BM25 - -Hybrid Retrieval + -Reranking -Two-tower Retrieval + Cross-Encoder - -Multimodal -Extraction -Native / Text / Tool - - -Learning from Existing Knowledge - -RAPTOR -Tree Hierarchical Index - -GraphRAG -Entity Relation Graph - -Agentic RAG - Retrieval as Tool - -Context-Aware Retrieval -Prefix Summary -Enhancement - - -Learning from Autonomous Exploration - -Post-training - RL → Muscle Memory - -In-Context Learning -Inference-time Soft Retrieval - -Externalized Learning -Knowledge Base + Tool -Generation - -Bitter Lesson: Search + Learning = General Method - - \ No newline at end of file + +பயனர் நினைவகம் (தனிநபர் அளவு) + +அறிவுத் தளம் (குழு அளவு) + +· நினைவக படிநிலை · மூன்று நிலை மதிப்பீடு +· நான்கு சேமிப்பு வடிவங்கள் +· அறிவாற்றல் வகைகள்: நிகழ்வு · பொருண்மை · நடைமுறை +· நினைவக கட்டமைப்புகள்: Mem0 · Memobase +· சுருக்கமும் ஒருங்கிணைப்பும் · தனியுரிமை தரப்படுத்தல் + +· ஆவணத் துண்டாக்கம் · பன்முக பிரித்தெடுப்பு +· அடர்/அரிய உட்பொதிப்புகள் · கலப்பு மீட்டெடுப்பு +· கட்டமைப்பு அட்டவணைப்படுத்தல்: RAPTOR · GraphRAG +· கோப்பு அமைப்பு அணுகுமுறை · ஏஜெண்டிக் RAG +· சூழல்சார் மீட்டெடுப்பு · ஆழ்ந்த அறிவுப் பிரித்தெடுப்பு + + + +பொதுவான அடித்தளம்: மீட்டெடுப்பு நுட்பங்கள் +ஆவணத் துண்டாக்கம் · வெக்டர்/முக்கியச்சொல் உட்பொதிப்பு · கலப்பு மீட்டெடுப்பு · மறுதரவரிசை +இரு இழைகளும் இறுதியில் “இரட்டை அடுக்கு நினைவக கட்டமைப்பில்” ஒன்றிணைகின்றன: +மேம்பட்ட JSON அட்டைகள் மேலோட்டத்தை நிலைநிறுத்துகின்றன; சூழல்சார் மீட்டெடுப்பு விவரங்களைத் தேவைக்கேற்ப கொணரும். + diff --git a/book-ta/images/fig3-11.svg b/book-ta/images/fig3-11.svg index 7737fd6ab..ee3354384 100644 --- a/book-ta/images/fig3-11.svg +++ b/book-ta/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -Community: SSE instruction set - -Intel - -SSE - -AVX - -XMM registers - -ADDPS - -YMM registers - -Floating-point operations - -Development - -Development - -Usage - - -Contains instructions - -Usage - -Execute - - -Operation + +பயனர் + +டாக்டர் ஜாங்-A +துறை: பல் மருத்துவம் + +ரென்ஆய் வாய் மருத்துவமனை + +முகவரி +XX சாலை, சூஹுய் மாவட்டம் + +டாக்டர் ஜாங்-B +துறை: இதயவியல் + +ஹுவாஷான் மருத்துவமனை +இருதய நாள மையம் + +என் பல் மருத்துவர் + +என் இதய மருத்துவர் + +பணியிடம் + +முகவரி + +பணியிடம் +· பல்படி பகுத்தறிவு: “என் பல் மருத்துவர் பணிபுரியும் மருத்துவமனையின் முகவரி” இப்பாதையைப் பின்பற்றும் +பயனர் → டாக்டர் ஜாங்-A → ரென்ஆய் வாய் மருத்துவமனை → முகவரி. +· பொருள் தெளிவாக்கம்: உறவு விளிம்புகள் இரு “டாக்டர் ஜாங்” முனைகளை வேறுபடுத்தும். +ஒவ்வொரு விளிம்பும் எழுவாய்–உறவு–செயப்படுபொருள் மூவணி. diff --git a/book-ta/images/fig3-12.svg b/book-ta/images/fig3-12.svg index 528fd2c45..ae3d79c37 100644 --- a/book-ta/images/fig3-12.svg +++ b/book-ta/images/fig3-12.svg @@ -1,52 +1,32 @@ - + - -Non-Agentic RAG - -Query: "How to sentence for causing serious -injury by negligence while drunk -and with a previous theft conviction?" - -Single retrieval: -"Sentencing for causing serious injury by -negligence" - - -Retrieval result: Only found basic provisions -for negligent injury - (incomplete context) - - -Direct generation: Missing "drunk" -and "previous conviction" influencing factors - -Single pass · Incomplete information - - -Agentic RAG (ReAct) - -Thought: Need to decompose into 3 -sub-questions - -Search ①: "Sentencing for causing serious injury by -negligence" -Search ②: "Criminal liability for drunkenness" -Search ③: "Impact of previous theft conviction" - - -Observation: Found basic provisions but -missing link between "previous conviction" -and "negligent injury" - - -Search ④: "Recidivism different crimes -judicial interpretation" - - -Synthesis: Complete answer including all -legal provisions and sentencing analysis - - -Iteration -Multi-round iteration · Complete information - \ No newline at end of file + +ஏஜெண்ட் அல்லாத RAG +நிலையான முன்படி, ஒரே முறை மீட்டெடுப்பு + +பயனர் வினவல் + + +மீட்டெடுப்பு (ஒரு முறை) + + +நேரடியாக பதில் உருவாக்கம் + +ஏஜெண்டிக் RAG +ReAct வழிநடத்தும் மீள் மீட்டெடுப்பு + +சிந்தி: தேவையை ஆய்ந்து முக்கியச் சொற்களை நிர்ணயி + + +செயல்படு: மீட்டெடுப்புக் கருவியை அழை + + +கவனி: தகவல் போதுமா? + + + +இல்லை + + +ஆம் → பதிலைத் தொகு + diff --git a/book-ta/images/fig3-2.svg b/book-ta/images/fig3-2.svg index 4a5a8d289..10a2a3703 100644 --- a/book-ta/images/fig3-2.svg +++ b/book-ta/images/fig3-2.svg @@ -1,35 +1,43 @@ - + - -① User Query -"How many years for intentional homicide?" - - -② Retrieval -Dense Retrieval + BM25 -→ Top-K Text Chunks - - -③ Augment -Query + Retrieved Results -→ Construct Full Prompt - - -④ Generate -LLM synthesizes context -→ Generate response - -Example data flow - -Retrieved text chunks -Article 232 of the Criminal Law: Whoever intentionally kills another shall be sentenced to death, -life imprisonment or fixed-term imprisonment of not less than ten years... - -Augmented Prompt -Answer the question based on the following legal provisions: -[Article 232 of the Criminal Law...] Q: What is the sentence for intentional homicide? - -Generated response -According to Article 232 of the Criminal Law, the crime of intentional homicide is punishable by death, life imprisonment, or fixed-term imprisonment of not less than ten years; -if the circumstances are minor, the sentence is fixed-term imprisonment of not less than three years but not more than ten years. - \ No newline at end of file + +எளிய குறிப்புகள் + +“பயனர் மின்னஞ்சல்: + john@x.com" +✓ அணு உண்மை · O(1) +✓ மிகக் குறைந்த கூடுதல் செலவு +✗ தொடர்பு இழக்கப்படுகிறது + +விரிவாக்கப்பட்ட குறிப்புகள் + +“TechCorp நிறுவனத்தில், +ஒரு மூத்த பொறியாளர் +ஐந்து பேர் குழுவைவழிநடத்துகிறார்.” +✓ முழுமையான விவரிப்பு +✓ பொருண்மையில் முழுமை +✗ மிகைபடும் · புதுப்பிப்பது கடினம் +✗ நீண்ட உரையை மீட்டெடுப்பது கடினம் + +JSON அட்டைகள் + +work.position + .title = … +(வகை → திறவுகோல்-மதிப்பு) +✓ மூன்று நிலை அமைப்பு +✓ பகுதி புதுப்பிப்பை ஆதரிக்கும் +✗ இறுக்கமான வகைப்பாடு + +மேம்பட்ட JSON அட்டைகள் + ++ backstory ++ person ++ relationship +✓ தெளிவாக்கம் · அறிவு மேலாண்மை +✓ மூலங்கள் மற்றும் உறவுகளுடன் +✗ உருவாக்கவும் பராமரிக்கவும் விலை உயர்ந்தது + +எளிமை +வெளிப்பாட்டுத்திறன் +எளிமை குறைய, வெளிப்பாட்டுத் திறன் கூடும் + diff --git a/book-ta/images/fig3-4.svg b/book-ta/images/fig3-4.svg index 69e2f000c..3a36349da 100644 --- a/book-ta/images/fig3-4.svg +++ b/book-ta/images/fig3-4.svg @@ -1,51 +1,31 @@ - + - -Layer 2 (sparse · long-range connections) - - - - - - -Layer 1 (medium density) - - - - - - - - - - - - -Layer 0 (dense · all nodes) - - - - - - - - - - - - - - - - - - - -Search starts from the top level - -Refine layer by layer downward - -Supports incremental updates · High recall - -O(log N) query complexity - \ No newline at end of file + +செயல் நினைவகம் +செயலில் உள்ள பணியிடம் +தற்போதைய பணி நிலை + +நிகழ்வு நினைவகம் +நிகழ்வு +மேனிலைத் தரவுடன் நிகழ்வு வரிசைகள் + +பொருண்மை நினைவகம் +பொருண்மை +சுருக்கப்பட்ட பொது அறிவு + +நடைமுறை நினைவகம் +நடைமுறை +மறுபயன்பாட்டு நடத்தை ஓட்டங்கள் + + + + + + + +தேர்ந்தெடுத்த இடமாற்றம் + +செயல்படுத்தலும் ஏற்றலும் +நீண்டகால நினைவகம் (அமர்வுகளுக்கிடையே) +செயல் நினைவகத்திற்கும் நீண்டகால நினைவகத்திற்கும் இடையிலான இயங்கு தொடர்பு: முக்கியத் தகவல்தேர்ந்தெடுத்து எழுதப்படுகிறது, தொடர்புடைய நினைவுகள் தேவைக்கேற்ப செயல்படுத்தப்படுகின்றன. + diff --git a/book-tr/images/fig3-1.svg b/book-tr/images/fig3-1.svg index cf64924c5..166e4a469 100644 --- a/book-tr/images/fig3-1.svg +++ b/book-tr/images/fig3-1.svg @@ -1,50 +1,26 @@ - + - -RAG Temelleri - -Yoğun Gömme -Word2Vec → BGE-M3 - -Seyrek Gömme -TF-IDF / BM25 - -Hibrit Erişim + -Yeniden Sıralama -İki Kuleli Erişim + Cross-Encoder - -Çok Modlu -Çıkarım -Yerel / Metin / Araç - - -Mevcut Bilgiden Öğrenme - -RAPTOR -Ağaç Hiyerarşik İndeks - -GraphRAG -Varlık İlişki Grafiği - -Agentic RAG -Araç Olarak Erişim - -Bağlam Duyarlı Erişim -Önek Özet -Zenginleştirme - - -Özerk Keşiften Öğrenme - -Eğitim sonrası - RL → Kas Hafızası - -Bağlam İçi Öğrenme -Çıkarım Anı Yumuşak Erişim - -Dışsallaştırılmış Öğrenme - Bilgi Tabanı + Araç Üretimi - -Acı Ders: Arama + Öğrenme = Genel Yöntem - - \ No newline at end of file + +Kullanıcı belleği (bireysel ölçek) + +Bilgi tabanı (topluluk ölçeği) + +· Bellek hiyerarşisi · Üç düzeyli değerlendirme +· Dört saklama biçimi +· Bilişsel türler: epizodik · anlamsal · işlemsel +· Bellek çerçeveleri: Mem0 · Memobase +· Sıkıştırma ve birleştirme · Gizlilik derecelendirmesi + +· Belge parçalama · Çok kipli çıkarım +· Yoğun/seyrek gömmeler · Melez getirme +· Yapılandırılmış indeksleme: RAPTOR · GraphRAG +· Dosya sistemi yaklaşımı · Agentic RAG +· Bağlamsal getirme · Derin bilgi çıkarımı + + + +Ortak temel: getirme teknikleri +Belge parçalama · Vektör/anahtar sözcük gömmeleri · Melez getirme · Yeniden sıralama +İki hat sonunda bir “çift katmanlı bellek mimarisi”nde buluşur: +Gelişmiş JSON kartları özeti bellekte tutar; bağlamsal getirme ayrıntıyı gerektikçe çeker. + diff --git a/book-tr/images/fig3-11.svg b/book-tr/images/fig3-11.svg index 7bd4fca92..640c2736c 100644 --- a/book-tr/images/fig3-11.svg +++ b/book-tr/images/fig3-11.svg @@ -1,35 +1,33 @@ - + - -Topluluk: SSE komut kümesi - -Intel - -SSE - -AVX - -XMM kaydı - -ADDPS - -YMM kaydı - -FP işlemleri - -Geliştirme - -Geliştirme - -Kullanım - - -İçerir - -Kullanım - -Yürütme - - -İşlem + +Kullanıcı + +Dr. Zhang-A +Bölüm: Diş hekimliği + +Renai Ağız ve Diş Hastanesi + +Adres +XX Caddesi, Xuhui ilçesi + +Dr. Zhang-B +Bölüm: Kardiyoloji + +Huashan Hastanesi +Kardiyovasküler merkez + +Diş hekimim + +Kardiyoloğum + +Çalıştığı yer + +Adres + +Çalıştığı yer +· Çok adımlı akıl yürütme: “diş hekimimin çalıştığı hastanenin adresi” şu yolu izler +Kullanıcı → Dr. Zhang-A → Renai Ağız ve Diş Hastanesi → Adres. +· Varlık ayrıştırma: ilişki kenarları iki “Dr. Zhang” düğümünü ayırır. +Her kenar bir özne–ilişki–nesne üçlüsüdür. diff --git a/book-tr/images/fig3-12.svg b/book-tr/images/fig3-12.svg index 6798b5b0a..cdf58c040 100644 --- a/book-tr/images/fig3-12.svg +++ b/book-tr/images/fig3-12.svg @@ -1,50 +1,32 @@ - + - -Ajan Olmayan RAG - -Sorgu: "Alkollüyken ihmalle ağır yaralamanın -cezası, -sanığın daha önce hırsızlık sabıkası varsa?" - -Tek erişim: -"İhmalle ağır yaralamanın -cezalandırılması" - - -Erişim sonucu: Sadece ihmalle yaralama için -temel hükümler bulundu (eksik bağlam) - - -Doğrudan üretim: "Alkollü" ve -"önceki sabıka" etkileyen faktörler eksik - -Tek geçiş · Eksik bilgi - - -Agentic RAG (ReAct) - -Düşünce: 3 alt soruya ayrıştırmak -gerekiyor - -Arama ①: "İhmalle ağır yaralamanın cezalandırılması" -Arama ②: "Alkollülük halinde cezai sorumluluk" -Arama ③: "Önceki hırsızlık sabıkasının etkisi" - - -Gözlem: Temel hükümler bulundu ancak -"önceki sabıka" ile "ihmalle yaralama" arası -bağlantı eksik - - -Arama ④: "Farklı suç türlerinde tekerrür -yargısal yorum" - - -Sentez: Tüm yasal hükümleri ve ceza -analizini içeren tam yanıt - - -Yineleme -Çok turlu yineleme · Eksiksiz bilgi - \ No newline at end of file + +Agentic olmayan RAG +Sabit ön adım, tek seferlik getirme + +Kullanıcı sorgusu + + +Getirme (tek sefer) + + +Doğrudan yanıt üretimi + +Agentic RAG +ReAct güdümlü, yinelemeli getirme + +Düşün: ihtiyacı çözümle, anahtar sözcükleri belirle + + +Eyle: getirme aracını çağır + + +Gözle: bilgi yeterli mi? + + + +Hayır + + +Evet → yanıtı sentezle + diff --git a/book-tr/images/fig3-2.svg b/book-tr/images/fig3-2.svg index 98edaf06b..7a591697d 100644 --- a/book-tr/images/fig3-2.svg +++ b/book-tr/images/fig3-2.svg @@ -1,36 +1,43 @@ - + - -① Kullanıcı -Sorgusu -"Kasten adam öldürmenin cezası kaç yıl?" - - -② Erişim -Yoğun Erişim + BM25 -→ En İyi K Metin Parçası - - -③ Zenginleştirme -Sorgu + Erişilen Sonuçlar -→ Tam İstemi Oluştur - - -④ Üretim -LLM bağlamı sentezler -→ Yanıt üret - -Örnek veri akışı - -Erişilen metin parçaları -Ceza Kanunu Madde 232: Kasten başkasını öldüren kişi ölüm cezası, -ömür boyu hapis veya on yıldan az olmamak üzere hapis cezasına çarptırılır... - -Zenginleştirilmiş İstem -Aşağıdaki yasal hükümlere göre soruyu yanıtla: -[Ceza Kanunu Madde 232...] S: Kasten adam öldürmenin cezası nedir? - -Üretilen yanıt -Ceza Kanunu Madde 232'ye göre kasten adam öldürme suçu ölüm, ömür boyu hapis veya on yıldan az olmamak üzere hapis cezasıyla cezalandırılır; -hafifletici durumlarda ceza üç yıldan az on yıldan fazla olmamak üzere hapis cezasıdır. - \ No newline at end of file + +Basit notlar + +“Kullanıcı e-postası: + john@x.com" +✓ Atomik olgu · O(1) +✓ Çok düşük ek yük +✗ İlişkiler kaybolur + +Zenginleştirilmiş notlar + +“TechCorp’ta +kıdemli bir mühendis +beş kişilik ekibi yönetir.” +✓ Bütün bir anlatı +✓ Anlamsal olarak eksiksiz +✗ Fazlalıklı · güncellemesi zor +✗ Uzun metni getirmek zor + +JSON kartları + +work.position + .title = … +(kategori → anahtar-değer) +✓ Üç düzeyli yapı +✓ Kısmi güncellemeyi destekler +✗ Katı sınıflandırma + +Gelişmiş JSON kartları + ++ backstory ++ person ++ relationship +✓ Belirsizlik giderme · bilgi yönetimi +✓ Kaynak ve ilişkilerle +✗ Üretmesi ve bakımı pahalı + +Yalınlık +İfade gücü +Yalınlık azalır, ifade gücü artar + diff --git a/book-tr/images/fig3-4.svg b/book-tr/images/fig3-4.svg index f2e113925..c80388f3b 100644 --- a/book-tr/images/fig3-4.svg +++ b/book-tr/images/fig3-4.svg @@ -1,51 +1,31 @@ - + - -Katman 2 (seyrek · uzun mesafe bağlantılar) - - - - - - -Katman 1 (orta yoğunluk) - - - - - - - - - - - - -Katman 0 (yoğun · tüm düğümler) - - - - - - - - - - - - - - - - - - - -Arama üst katmandan başlar - -Katman katman aşağı doğru inceltilir - -Artımlı güncellemeleri destekler · Yüksek geri çağırma - -O(log N) sorgu karmaşıklığı - \ No newline at end of file + +Çalışma belleği +Etkin çalışma alanı +Geçerli görev durumu + +Epizodik bellek +Epizodik +üstveriyle birlikte olay dizileri + +Anlamsal bellek +Anlamsal +soyutlanmış genel bilgi + +İşlemsel bellek +İşlemsel +yeniden kullanılabilir davranış akışları + + + + + + + +Seçici aktarım + +Etkinleştirme ve yükleme +Uzun süreli bellek (oturumlar arası) +Çalışma belleği ile uzun süreli bellek arasında dinamik etkileşim: önemli bilgi seçilerek yazılır, ilgili anılar gerektiğinde etkinleştirilir. + From 81113514d49b92dfbaf284c31be5b3671e320338 Mon Sep 17 00:00:00 2001 From: Bojie Li Date: Thu, 13 Aug 2026 11:12:11 +0800 Subject: [PATCH 04/13] fix(figures): align chapter 9 caption numbering and rebuild fig4-9 Every edition captioned fig9-7 as "9-6", duplicating the number already used by fig9-6, so all later captions ran one behind their file and the chapter ended with fig9-12 labelled 9-11. Captions are now renumbered to match their filenames, and the fig9-11/fig9-12 embeds (VLA, Sim2Real) are dropped to match the Chinese chapter, which removed them in #730. The files stay on disk; the course slides link fig9-11 directly. Also rebuilds fig4-9 from the Chinese for the six editions that shipped it untranslated or, in book-es and book-tr, showing a duplicate of fig4-8, and switches book-hu to the shared fig2-7.png attention heat map that the other twelve editions use. Co-Authored-By: Claude Opus 5 (1M context) --- book-ar/chapter9.ar.md | 13 ++---- book-ar/images/fig4-9.svg | 34 +++++++-------- book-en/chapter9.md | 13 ++---- book-en/images/fig4-9.svg | 32 +++++++------- book-es/chapter9.es.md | 12 ++---- book-es/images/fig4-9.svg | 84 +++++++++++++++---------------------- book-hu/chapter2.md | 2 +- book-hu/chapter9.md | 12 ++---- book-hu/images/fig2-7.png | Bin 0 -> 2578612 bytes book-hu/images/fig2-7.svg | 40 ------------------ book-id/chapter9.md | 13 ++---- book-ja/chapter9.ja.md | 14 ++----- book-ko/chapter9.ko.md | 13 ++---- book-ru/chapter9.md | 14 ++----- book-ta/chapter9.ta.md | 13 ++---- book-ta/images/fig4-9.svg | 32 +++++++------- book-tr/chapter9.tr.md | 14 ++----- book-tr/images/fig4-9.svg | 84 +++++++++++++++---------------------- book-vi/chapter9.vi.md | 14 ++----- book-vi/images/fig4-9.svg | 32 +++++++------- book-zhtw/chapter9.zhtw.md | 14 ++----- 21 files changed, 180 insertions(+), 319 deletions(-) create mode 100644 book-hu/images/fig2-7.png delete mode 100644 book-hu/images/fig2-7.svg diff --git a/book-ar/chapter9.ar.md b/book-ar/chapter9.ar.md index 40ecda9af..bfca094a3 100644 --- a/book-ar/chapter9.ar.md +++ b/book-ar/chapter9.ar.md @@ -172,7 +172,7 @@ else: rollback_if_possible_or_replan() ``` -![الشكل 9-6: حلقة الإدراك والتفكير والتصرف الخاصة بوكيل استخدام الحاسوب](images/fig9-7.svg) +![الشكل 9-7: حلقة الإدراك والتفكير والتصرف الخاصة بوكيل استخدام الحاسوب](images/fig9-7.svg) هناك ثلاثة أبعاد تصميم رئيسية في هذه الحلقة: **مساحة العمل** (ما هي العمليات التي يمكن للوكيل تنفيذها)، و**الأساس المرئي** (كيفية العثور على العنصر المستهدف في لقطة الشاشة)، و**هندسة النموذج** (كيفية إنشاء الإجراء الصحيح من لقطة الشاشة). @@ -180,7 +180,7 @@ else: يحدد Anthropic ثلاثة أنواع من الأدوات التي تشكل قدرة تفاعل كاملة (الشكل 9-8): -![الشكل 9-7: مساحة عمل استخدام الكمبيوتر](images/fig9-8.svg) +![الشكل 9-8: مساحة عمل استخدام الكمبيوتر](images/fig9-8.svg) **أداة تشغيل واجهة المستخدم الرسومية** (أداة `computer`): تتضمن عمليات الماوس النقل (`mouse_move`)، والنقر باليسار/اليمين/الوسطى، والنقر المزدوج أو النقر الثلاثي، والسحب (`left_click_drag`)، وإجراءات الضغط/التحرير الأكثر دقة (`left_mouse_down` و`left_mouse_up`). يدعم التمرير (`scroll`) أربعة اتجاهات ويمكن دمجه مع مفاتيح التعديل. تتضمن عمليات لوحة المفاتيح كتابة حرف بحرف (`type`، مع فاصل زمني قدره 12 مللي ثانية بين الأحرف لمحاكاة الكتابة الحقيقية)، ومجموعات المفاتيح (`key`، على سبيل المثال، `Ctrl+C`)، والإمساك بالمفتاح (`hold_key`). تتضمن إجراءات الإدراك التقاط لقطة شاشة واسترداد موضع المؤشر (`cursor_position`) والانتظار (`wait`). @@ -227,7 +227,7 @@ Elements: يحتاج النموذج فقط إلى إخراج معرف، ويقوم النظام تلقائيًا بالنقر فوق مركز العنصر المقابل. لا يحفظ هذا النهج الرموز المميزة لأنه لا يزال يتعين إرسال جميع بيانات التعليقات التوضيحية إلى النموذج، ولكنه يوفر توطينًا دقيقًا ومستقرًا مع تجنب الاكتشافات المفقودة والإيجابيات الخاطئة التي يمكن أن تقدمها نماذج التجزئة. -![الشكل 9-8: مجموعة العلامات مقابل فهرسة العناصر الهيكلية (تنفيذ استخدام المتصفح)](images/fig9-9.svg) +![الشكل 9-9: مجموعة العلامات مقابل فهرسة العناصر الهيكلية (تنفيذ استخدام المتصفح)](images/fig9-9.svg) **توقع الإحداثيات النقية.** @@ -236,7 +236,7 @@ Elements: في مخططات التنبؤ بالإحداثيات، يعتمد فهم النموذج للإحداثيات بشكل كبير على الدقة المستخدمة أثناء التدريب (الشكل 9-10). تم تدريب Claude باستخدام XGA (1024×768)، WXGA (1280×800)، وFWXGA (1366×768). إذا لم تتطابق دقة لقطة الشاشة المدخلة، فستتغير الإحداثيات المتوقعة للنموذج بشكل منهجي - مثل قياس المسافة على خريطة صغيرة ثم تطبيقها مباشرة على خريطة كبيرة. لذلك، يجب تنفيذ آلية قياس إحداثيات ثنائية الاتجاه في طبقة الأداة، ويجب تحديد دقة الهدف **بناءً على نسبة العرض إلى الارتفاع** لتجنب التمدد غير المنتظم الذي يشوه الصورة وبالتالي يؤدي إلى تحيز الحكم المنسق. على سبيل المثال، إذا كانت دقة الشاشة الفعلية هي 2560×1440 (16:9)، فإن الهدف الأكثر ملاءمة بين الخيارات الثلاثة المدعومة لـ Claude هو FWXGA (1366×768)، الذي يتمتع بنسبة عرض إلى ارتفاع أقرب إلى 16:9. تم تغيير حجم لقطة الشاشة بشكل متناسب إلى 1366 × 768 وإدخالها في النموذج؛ بعد أن يقوم النموذج بإخراج إحداثيات النقر (683، 384)، يتم تعيينها عكسيًا للإحداثيات الحقيقية (683×2560/1366، 384×1440/768) ≈ (1280، 720). على العكس من ذلك، إذا تم تمديد صورة 16:9 بالقوة إلى 1024×768 4:3، فسيتم ضغط الصورة أفقيًا، مما يتسبب في تحول الإحداثيات المتوقعة للنموذج بشكل منهجي. -![الشكل 9-9: مطابقة الدقة وقياس الإحداثيات ثنائي الاتجاه](images/fig9-10.svg) +![الشكل 9-10: مطابقة الدقة وقياس الإحداثيات ثنائي الاتجاه](images/fig9-10.svg) يمكن تلخيص الاختيار من بين المسارات الثلاثة على النحو التالي: **عند توفر المعلومات المنظمة، قم بإعطاء الأولوية لفهرسة DOM/accessibility-tree** للحصول على أدق تحديد للموقع وأكثره ثباتًا. **عندما لا يكون متاحًا**—في برامج سطح المكتب الأصلية مثل Photoshop أو الواجهات المعروضة على قماش/WebGL أو الألعاب —**استخدم إما التعليقات التوضيحية المرئية (مسار SoM الأصلي) أو التنبؤ الإحداثي**. يعمل التعليق التوضيحي المرئي على تحويل تحديد الموقع إلى مشكلة متعددة الاختيارات، مما يجعلها أكثر ملاءمة للنماذج ذات الأغراض العامة دون تدريب متخصص. يلغي التنبؤ الإحداثي خطوة التعليق التوضيحي ويكون أكثر مباشرة للنماذج المدربة خصيصًا على توطين واجهة المستخدم الرسومية. لا يزال كلا النهجين يواجهان صعوبة في التعامل مع العناصر الصغيرة والواجهات الكثيفة. @@ -345,9 +345,6 @@ Elements: في طبقة التنفيذ للبنية المكونة من طبقتين، تركز ثلاثة نماذج تمثيلية — RT-2، وOpenVLA، وπ₀ — على التحكم في VLA، أي إخراج إجراءات الروبوت في الوقت الفعلي استنادًا إلى صور الكاميرا وتعليمات اللغة (الشكل 9-11). إنهم يتبعون طريقتين مختلفتين لتمثيل العمل: رموز العمل المنفصلة وتوليد المسار المستمر. -![الشكل 9-10: بنية VLA (الرؤية-اللغة-الإجراء)](images/fig9-11.svg) - - **RT-2 وOpenVLA: مسار رمز الإجراء المنفصل.** كان **RT-2** رائدًا في هذا الطريق: فهو يضبط بشكل مباشر نموذج لغة الرؤية واسع النطاق، ويفصل تصرفات الروبوت المستمرة إلى رموز مميزة ويخرجها بشكل انحداري واحدًا تلو الآخر، مثل إنشاء نص. إنه يعزز قدرة التعميم للنموذج المُدرب مسبقًا لتحسين النقل من دون أمثلة إلى كائنات وتعليمات جديدة. **OpenVLA** يتبع مخطط تمثيل الإجراء الخاص بـ RT-2، مما يوحد نموذج اللغة ومشفر الرؤية في بنية واحدة. يأخذ الصور والتعليمات النصية كرموز عمل للإدخال والمخرجات. يتم التدريب على مرحلتين: أولاً، التدريب المسبق على مجموعة البيانات واسعة النطاق عبر الأنظمة الأساسية Open X-Embodiment (التي تغطي عروض التلاعب في العالم الحقيقي من أكثر من 20 منصة روبوت) لتعلم المعرفة العامة بالتلاعب (أنماط الحركة مثل "الفهم" و"المكان" شائعة عبر الروبوتات المختلفة)؛ ثانيًا، الضبط الدقيق باستخدام كمية صغيرة من البيانات لمنصة معينة. ولأن تمثيلات أفعالهم متشابهة، فإن الاختلاف العملي الذي تم التأكيد عليه هنا يكمن في الانفتاح والاختيارات الهندسية: يعد RT-2 وبياناته التدريبية داخلية بالنسبة إلى Google، في حين أن OpenVLA مفتوح المصدر بالكامل - وهو نموذج أساسي مفتوح المصدر (Llama 2 بالإضافة إلى أداة تشفير الرؤية) مقترنًا بمجموعات البيانات العامة، مما يجعل حزمة OpenVLA قابلة للتكرار والتوسيع من قبل المجتمع الأوسع. @@ -377,8 +374,6 @@ for action in chunk: لقد أوضح قسم المحاكاة في الفصل السادس بالفعل من أين تأتي فجوة المحاكاة إلى الحقيقية وكيف تتصدى لها التوزيع العشوائي للنطاق، لذلك لن نكرر ذلك هنا. باختصار: لا يمكن للمحاكاة أبدًا إعادة إنتاج فيزياء العالم الحقيقي، والمرئيات، والأجهزة بشكل مثالي، لذا فإن التدريب يقوم بترتيب هذه المعلمات بشكل عشوائي على نطاق واسع، مما يجبر السياسة على تعلم تمثيل قوي لتلك الاختلافات (الشكل 9-11). ما يلي هو كيف يستقر هذا المبدأ على ذراع آلية حقيقية. -![الشكل 9-11: فجوة Sim2Real والتوزيع العشوائي للمجال](images/fig9-12.svg) - وقد حقق هذا النهج العديد من النجاحات الملحوظة. حقق مشروع Dactyl الخاص بـ OpenAI إعادة توجيه المكعب باليد، واستخدم العمل اللاحق التوزيع العشوائي للمجال التلقائي (ADR) لحل مكعب روبيك بيد واحدة. أظهر ANYmal رباعي الأرجل من ETH Zurich حركة قوية على التضاريس الخارجية الصعبة مثل الثلج والحصى. ما يضيفه هذا الفصل هما الخطوتان الهندسيتان اللتان لا يمكنك تخطيهما عند نقل التوزيع العشوائي للمجال إلى روبوت حقيقي. الأول هو **معايرة نطاق التوزيع العشوائي**: لا يمكن ضبط النطاق بناءً على حدس. ضيقة جدًا، وتفتقد التنوع في العالم الحقيقي؛ على نطاق أوسع مما ينبغي، ويصبح التدريب أكثر صعوبة وينتج سياسة دون المستوى الأمثل "تتعامل مع كل شيء، ولا تتقن أي شيء". من الناحية العملية، يتم أولاً قياس توزيع المعلمات الرئيسية (معامل الاحتكاك، وتأخير استجابة المحرك) ومعايرتها من بيانات واقعية وأخذ عينات منها ضمن هذا النطاق؛ إذا انخفض أداء سياسة المحاكاة المدربة بشكل ملحوظ على الروبوت الحقيقي، فسيتم توسيع النطاق خطوة بخطوة حتى تتقارب فجوة المحاكاة إلى الواقع إلى شيء مقبول. والثاني هو **المحاذاة المرئية**: معايرة وضعية الكاميرا بدقة بين المحاكاة والواقع (محاذاة البيئة)، وربط صور خلفية العالم الحقيقي بشكل عشوائي في العرض المحاكى (استبدال خلفية الشاشة الخضراء) بحيث تبدو المحاكاة قدر الإمكان مثل ما يراه الروبوت الحقيقي. توضح التجربة 9-9 كلتا الخطوتين. diff --git a/book-ar/images/fig4-9.svg b/book-ar/images/fig4-9.svg index 25f0dd63b..b3feb0d25 100644 --- a/book-ar/images/fig4-9.svg +++ b/book-ar/images/fig4-9.svg @@ -1,35 +1,35 @@ -المنتج المعتمد (المنتج المعتمد، KV Cache متوفر) +بادئة ثابتة (متطابقة بايتًا ببايت، وتظل ذاكرة KV تُصيب) -موجّه النظام +System Prompt -البحث عن: web_search، code_interpreter، tool_search +تعريفات الأدوات الأساسية: web_search, code_interpreter, tool_search -轨迹(只增不改,新内容追加在末尾) +المسار (إضافة فقط؛ الجديد يُلحق في النهاية) -المستخدم: 查询 NVDA 股价 +User: استعلام عن سعر سهم NVDA -المساعد:tool_search_call(股价) +Assistant: tool_search_call(سعر السهم) -tool_search_output → احصل على مخطط get_stock_quote +tool_search_output ← حقن مخطط get_stock_quote كاملًا -المساعد: الحصول على get_stock_quote → نتيجة الأداة +Assistant: استدعاء get_stock_quote ← Tool Result -المستخدم: 分析 GitHub 仓库的贡献者 +User: تحليل المساهمين في مستودع GitHub -مساعد:tool_search_call(GitHub) +Assistant: tool_search_call(GitHub) -tool_search_output → اختر مخطط قائمة المساهمين +tool_search_output ← حقن list_contributors وما يتصل بها -المساعد: ← نتيجة الأداة ← 回复 +Assistant: استدعاء ← Tool Result ← رد -…… 本轮最新内容 +… أحدث محتوى في هذه الجولة -首次出现:الملء المسبق 一次(缓存写入) -此后作为普通历史命中缓存 -不得移除/重排已加载工具 -否则缓存从变动点起失效 +أول ظهور: prefill مرة واحدة (كتابة في الذاكرة) +بعدها يصبح تاريخًا عاديًا يُصيب الذاكرة +لا تُزل الأدوات المحمَّلة ولا تُعِد ترتيبها +وإلا بطلت الذاكرة اعتبارًا من نقطة التغيير \ No newline at end of file diff --git a/book-en/chapter9.md b/book-en/chapter9.md index 0da987bcb..ab1d6a4d0 100644 --- a/book-en/chapter9.md +++ b/book-en/chapter9.md @@ -235,7 +235,7 @@ else: rollback_if_possible_or_replan() ``` -![Figure 9-6: Computer Use Agent's Perceive-Think-Act Loop](images/fig9-7.svg) +![Figure 9-7: Computer Use Agent's Perceive-Think-Act Loop](images/fig9-7.svg) There are three key design dimensions in this loop: **Action Space** (what operations the Agent can perform), **Visual Grounding** (how to find the target element in the screenshot), and **Model Architecture** (how to generate the correct action from the screenshot). @@ -243,7 +243,7 @@ There are three key design dimensions in this loop: **Action Space** (what opera Anthropic defines three types of tools that constitute a complete interaction capability (Figure 9-7): -![Figure 9-7: Computer Use Action Space](images/fig9-8.svg) +![Figure 9-8: Computer Use Action Space](images/fig9-8.svg) **GUI Operation Tool** (`computer` tool): Mouse operations include moving (`mouse_move`), left/right/middle clicks, double-clicking or triple-clicking, dragging (`left_click_drag`), and more precise press/release actions (`left_mouse_down` and `left_mouse_up`). Scrolling (`scroll`) supports four directions and can be combined with modifier keys. Keyboard operations include typing character by character (`type`, with a 12ms interval between characters to simulate real typing), key combinations (`key`, e.g., `Ctrl+C`), and holding a key (`hold_key`). Perception actions include taking a screenshot, retrieving the cursor position (`cursor_position`), and waiting (`wait`). @@ -290,7 +290,7 @@ Elements: The model only needs to output an ID, and the system automatically clicks the center of the corresponding element. This approach does not save tokens because all annotation data must still be sent to the model, but it provides accurate, stable localization while avoiding the missed detections and false positives that segmentation models can introduce. -![Figure 9-8: Set-of-Mark vs. Structured Element Indexing (browser-use implementation)](images/fig9-9.svg) +![Figure 9-9: Set-of-Mark vs. Structured Element Indexing (browser-use implementation)](images/fig9-9.svg) **Pure Coordinate Prediction.** @@ -299,7 +299,7 @@ The third route skips annotation and asks the model to output coordinates direct In coordinate prediction schemes, the model's understanding of coordinates is highly dependent on the resolution used during training (Figure 9-9). Claude was trained using XGA (1024×768), WXGA (1280×800), and FWXGA (1366×768). If the input screenshot resolution does not match, the model's predicted coordinates will systematically shift—like measuring a distance on a small map and then applying it directly to a large map. Therefore, a bidirectional coordinate scaling mechanism must be implemented at the tool layer, and the target resolution must be **selected based on the aspect ratio** to avoid non-uniform stretching that distorts the image and consequently biases coordinate judgment. For example, if the actual screen resolution is 2560×1440 (16:9), the most suitable target among Claude's three supported options is FWXGA (1366×768), which has an aspect ratio closest to 16:9. The screenshot is proportionally scaled to 1366×768 and fed to the model; after the model outputs the click coordinates (683, 384), they are inversely mapped to the real coordinates (683×2560/1366, 384×1440/768) ≈ (1280, 720). Conversely, if a 16:9 image is forcibly stretched into the 4:3 1024×768, the image will be horizontally compressed, causing the model's predicted coordinates to systematically shift. -![Figure 9-9: Resolution Matching and Bidirectional Coordinate Scaling](images/fig9-10.svg) +![Figure 9-10: Resolution Matching and Bidirectional Coordinate Scaling](images/fig9-10.svg) The choice among the three routes can be summarized as follows: **when structured information is available, prioritize DOM/accessibility-tree indexing** for the most accurate and stable localization. **When it is unavailable**—in native desktop software such as Photoshop, canvas/WebGL-rendered interfaces, or games—**use either visual annotation (the original SoM route) or coordinate prediction**. Visual annotation turns localization into a multiple-choice problem, making it friendlier to general-purpose models without specialized training. Coordinate prediction eliminates the annotation step and is more direct for models trained specifically on GUI localization. Both approaches still struggle with small elements and dense interfaces. @@ -409,9 +409,6 @@ General-purpose VLMs already possess decent embodied reasoning capabilities. Goo In the execution layer of the two-layer architecture, three representative models—RT-2, OpenVLA, and π₀—all focus on VLA control, i.e., outputting robot actions in real time based on camera images and language instructions (Figure 9-10). They follow two different approaches to action representation: discrete action tokens and continuous trajectory generation. -![Figure 9-10: VLA Architecture (Vision-Language-Action)](images/fig9-11.svg) - - **RT-2 and OpenVLA: The Discrete Action Token Route.** **RT-2** pioneered this route: it directly fine-tunes a large-scale vision-language model, discretizing the robot's continuous actions into tokens and outputting them autoregressively one by one, like generating text. It leverages the generalization ability of the pre-trained model to improve zero-shot transfer to new objects and instructions. **OpenVLA** follows RT-2's action representation scheme, unifying the language model and vision encoder in a single architecture. It takes images and text instructions as input and outputs action tokens. Training is done in two stages: first, pre-training on the large-scale cross-platform dataset Open X-Embodiment (covering real-world manipulation demonstrations from over 20 robot platforms) to learn general manipulation knowledge (action patterns like "grasp" and "place" are common across different robots); second, fine-tuning with a small amount of data for a specific platform. Because their action representations are similar, the practical difference emphasized here lies in openness and engineering choices: RT-2 and its training data are internal to Google, while OpenVLA is fully open-source—an open-source backbone model (Llama 2 plus a vision encoder) paired with public datasets, making the OpenVLA stack reproducible and extensible by the wider community. @@ -428,8 +425,6 @@ The true divide in action representation is not between RT-2 and OpenVLA, but be Chapter 6's simulation section already explained where the sim-to-real gap comes from and how domain randomization counters it, so we won't repeat that here. In a nutshell: simulation can never perfectly reproduce real-world physics, visuals, and hardware, so training randomizes those parameters over a wide range, forcing the policy to learn a representation robust to those variations (Figure 9-11). What follows is how that principle lands on a real robotic arm. -![Figure 9-11: Sim2Real Gap and Domain Randomization](images/fig9-12.svg) - This approach has produced several notable successes. OpenAI's Dactyl project achieved in-hand cube reorientation, and subsequent work used Automatic Domain Randomization (ADR) to solve a Rubik's Cube with one hand. ETH Zurich's ANYmal quadruped has demonstrated robust locomotion over difficult outdoor terrain such as snow and gravel. What this chapter adds are the two engineering steps you cannot skip when taking domain randomization to a real robot. The first is **calibrating the randomization range**: the range cannot be set on a hunch. Too narrow, and it misses real-world variation; too wide, and training gets harder and yields a suboptimal policy that "handles everything, masters nothing." In practice, the distribution of key parameters (friction coefficient, motor response delay) is first **measured and calibrated** from real-world data and sampled within that range; if the sim-trained policy's performance drops noticeably on the real robot, the range is widened step by step until the sim-to-real gap converges to something acceptable. The second is **visual alignment**: precisely calibrating camera pose between simulation and reality (environment alignment), and randomly splicing real-world background images into the simulated render (greenscreen background replacement) so that the simulation looks as much as possible like what the real robot sees. The paired experiments below illustrate these principles. diff --git a/book-en/images/fig4-9.svg b/book-en/images/fig4-9.svg index 8d1d789f5..8a5794115 100644 --- a/book-en/images/fig4-9.svg +++ b/book-en/images/fig4-9.svg @@ -1,35 +1,35 @@ -静态前缀(字节级不变,KV Cache 持续命中) +Static prefix (byte-identical, keeps hitting the KV cache) System Prompt -核心工具定义:web_search, code_interpreter, tool_search +Core tool definitions: web_search, code_interpreter, tool_search -轨迹(只增不改,新内容追加在末尾) +Trajectory (append-only; new content goes on the end) -User:查询 NVDA 股价 +User: look up the NVDA share price -Assistant:tool_search_call(股价) +Assistant: tool_search_call(share price) -tool_search_output → 注入 get_stock_quote 完整 schema +tool_search_output → inject the full get_stock_quote schema -Assistant:调用 get_stock_quote → Tool Result +Assistant: call get_stock_quote → Tool Result -User:分析 GitHub 仓库的贡献者 +User: analyze the contributors of a GitHub repo -Assistant:tool_search_call(GitHub) +Assistant: tool_search_call(GitHub) -tool_search_output → 注入 list_contributors 等 schema +tool_search_output → inject list_contributors and related schemas -Assistant:调用 → Tool Result → 回复 +Assistant: call → Tool Result → reply -…… 本轮最新内容 +… latest content of this round -首次出现:prefill 一次(缓存写入) -此后作为普通历史命中缓存 -不得移除/重排已加载工具 -否则缓存从变动点起失效 +First appearance: prefill once (cache write) +After that it is ordinary history and hits the cache +Never remove or reorder tools already loaded +Otherwise the cache is invalid from the change onward \ No newline at end of file diff --git a/book-es/chapter9.es.md b/book-es/chapter9.es.md index 596d6f325..fcfa7104f 100644 --- a/book-es/chapter9.es.md +++ b/book-es/chapter9.es.md @@ -171,7 +171,7 @@ else: rollback_if_possible_or_replan() ``` -![Figura 9-6: Bucle Percibir-Pensar-Actuar de Agentes Computer Use](images/fig9-7.svg) +![Figura 9-7: Bucle Percibir-Pensar-Actuar de Agentes Computer Use](images/fig9-7.svg) Existen tres dimensiones de diseño clave en este bucle: el **espacio de acciones** (qué operaciones puede ejecutar el Agente), el **grounding visual** (cómo encontrar el elemento objetivo en la captura de pantalla) y la **arquitectura del modelo** (cómo generar la acción correcta a partir de la captura de pantalla). @@ -179,7 +179,7 @@ Existen tres dimensiones de diseño clave en este bucle: el **espacio de accione Anthropic define tres categorías de herramientas que constituyen la capacidad de interacción completa (Figura 9-7): -![Figura 9-7: Espacio de acciones de Computer Use](images/fig9-8.svg) +![Figura 9-8: Espacio de acciones de Computer Use](images/fig9-8.svg) **Herramientas de operación de GUI** (`computer tool`): Las operaciones de ratón incluyen movimiento (`mouse_move`), clic con botón izquierdo/derecho/central, doble clic/triple clic, arrastre (`left_click_drag`), así como presionar/soltar con mayor precisión (`left_mouse_down/up`). El desplazamiento (`scroll`) admite cuatro direcciones y se puede combinar con teclas modificadoras. Las operaciones de teclado incluyen escritura carácter por carácter (`type`, simulando la escritura real con un intervalo de 12 ms entre caracteres), combinaciones de teclas (`key`, como Ctrl+C) y pulsación prolongada (`hold_key`). Acciones de percepción: captura de pantalla (`screenshot`), obtención de la posición del cursor (`cursor_position`) y espera (`wait`). @@ -224,7 +224,7 @@ Elements: El modelo solo necesita emitir un número de ID, y el sistema ejecuta automáticamente el clic utilizando las coordenadas centrales de dicho elemento. Este tipo de solución no ahorra tokens (porque toda la información de anotación debe enviarse al modelo), pero la localización es precisa y estable, evitando además las omisiones y falsas detecciones que los modelos de segmentación podrían introducir. -![Figura 9-8: Set-of-Mark vs indexación de elementos estructurados (implementación browser-use)](images/fig9-9.svg) +![Figura 9-9: Set-of-Mark vs indexación de elementos estructurados (implementación browser-use)](images/fig9-9.svg) **Predicción directa de coordenadas.** @@ -232,7 +232,7 @@ La tercera ruta no realiza ninguna anotación y permite que el modelo emita las En la solución de predicción de coordenadas, la comprensión de las coordenadas por parte del modelo depende en gran medida de la resolución utilizada durante el entrenamiento (Figura 9-9). El entrenamiento de Claude utiliza XGA (1024x768), WXGA (1280x800) y FWXGA (1366x768); si la resolución de la captura de pantalla de entrada no coincide, las coordenadas predichas por el modelo se desviarán sistemáticamente, como si se midiera una distancia en un mapa pequeño y se aplicara directamente a un mapa grande. Por lo tanto, es necesario implementar un mecanismo de escalado bidireccional de coordenadas en la capa de herramientas, debiendo **seleccionar la resolución objetivo según la relación de aspecto de ancho y alto**, evitando que un estiramiento no proporcional deforme la imagen e introduzca desvíos en el juicio de coordenadas. Por ejemplo, si la resolución real de la pantalla es de 2560×1440 (16:9), se debe seleccionar entre las tres opciones admitidas por Claude aquella cuya relación de aspecto sea más cercana a 16:9: FWXGA (1366×768) es la más adecuada. Al tomar la captura de pantalla, la pantalla se escala proporcionalmente a 1366×768 para enviarla al modelo; tras emitir el modelo las coordenadas de clic (683, 384), se mapean de forma inversa a las coordenadas reales (683×2560/1366, 384×1440/768) ≈ (1280, 720). Por el contrario, si se fuerza el estiramiento de 16:9 a 1024×768 (4:3), la imagen se aplastará horizontalmente y las coordenadas predichas por el modelo sufrirán una desviación sistemática. -![Figura 9-9: Coincidencia de resolución y escalado bidireccional de coordenadas](images/fig9-10.svg) +![Figura 9-10: Coincidencia de resolución y escalado bidireccional de coordenadas](images/fig9-10.svg) La lógica de elección entre las tres rutas se puede resumir de la siguiente manera: **cuando la información estructurada esté disponible, se priorizará el uso del índice DOM/Accessibility Tree**, ya que la localización es la más precisa y estable; **cuando no esté disponible** (software de escritorio nativo como Photoshop, interfaces renderizadas en Canvas/WebGL, juegos), **se puede utilizar tanto la anotación visual (ruta SoM original) como la predicción de coordenadas**. La anotación visual convierte la localización en una pregunta de opción múltiple, siendo más amigable para modelos generales no entrenados específicamente; la predicción de coordenadas omite el paso de anotación y es más directa para modelos entrenados en localización de GUI. La precisión de ambas en elementos pequeños e interfaces densas aún presenta brechas. @@ -340,8 +340,6 @@ Los VLM generales ya poseen una capacidad notable de pensamiento embrollado. **G En la capa de ejecución de la arquitectura de dos capas, tres modelos representativos (RT-2, OpenVLA y π₀) se enfocan en el control VLA, es decir, emitir las acciones del robot en tiempo real basándose en las imágenes de las cámaras y las instrucciones de lenguaje (Figura 9-10). Pertenecen a dos rutas en cuanto a la representación de las acciones: tokens de acción discretos y generación de trayectorias continuas. -![Figura 9-10: Arquitectura VLA (Vision-Language-Action)](images/fig9-11.svg) - **RT-2 y OpenVLA: Ruta de tokens de acción discretos.** **RT-2** fue el pionero de esta ruta: realiza un ajuste fino directo sobre grandes modelos de visión-lenguaje, discretizando las acciones continuas del robot en tokens que se emiten de forma autorregresiva uno a uno como si fuera generación de texto, aprovechando la capacidad de generalización del modelo preentrenado para mejorar la transferencia zero-shot a nuevos objetos e instrucciones. **OpenVLA** sigue el esquema de representación de acciones de RT-2, unificando el modelo de lenguaje y el codificador visual en una sola arquitectura, recibiendo imágenes e instrucciones de texto para emitir tokens de acción. El entrenamiento consta de dos etapas: primero se realiza un preentrenamiento en el dataset multiplataforma a gran escala Open X-Embodiment (que abarca demostraciones de manipulación real en más de 20 plataformas robóticas) para aprender conocimientos generales de manipulación (los patrones de acción como "agarrar" y "colocar" son comunes entre diferentes robots), y luego se realiza un ajuste fino con pocos datos para plataformas específicas. Puesto que la representación de acciones es idéntica en esencia, la verdadera diferencia entre ambos reside en la apertura y las elecciones de ingeniería: RT-2 y sus datos de entrenamiento son internos de Google, mientras que OpenVLA es completamente de código abierto (modelo backbone de código abierto Llama 2 más codificador visual combinado con datasets públicos), lo que permite a toda la comunidad reproducir y mejorar sobre su base por primera vez. @@ -371,8 +369,6 @@ for action in chunk: En la sección de entornos de simulación del Capítulo 6 se explicaron los orígenes de la brecha entre simulación y realidad (sim-to-real gap) y el principio de la aleatorización de dominio (domain randomization) para hacerle frente, por lo que no se repetirá aquí; en una frase: dado que la simulación no puede restaurar completamente las características físicas, visuales y de hardware reales, se alteran aleatoriamente estos parámetros en un amplio rango durante el entrenamiento, forzando a la política a aprender un conjunto de representaciones generales estables ante diversos cambios (Figura 9-11). A continuación solo examinaremos cómo se aterriza este principio en brazos robóticos reales. -![Figura 9-11: Brecha Sim2Real y Aleatorización de Dominio](images/fig9-12.svg) - Existen numerosos casos de éxito en esta ruta: la manipulación diestra de manos mecánicas de OpenAI (el proyecto Dactyl logró la reorientación de cubos dentro de la mano, y su trabajo posterior logró resolver el cubo de Rubik con una mano mediante aleatorización automática de dominio ADR) y ANYmal de ETH Zurich (caminata robusta de robots cuadrúpedos sobre nieve, grava y otros terrenos complejos en exteriores) pertenecen a esta categoría. Lo que realmente debe aportar este capítulo son los dos pasos de ingeniería ineludibles al aterrizar la aleatorización de dominio en máquinas reales. El primero es la **calibración del rango de aleatorización**: el rango no se puede fijar al azar; si es demasiado estrecho no cubrirá los cambios reales, y si es demasiado amplio aumentará la dificultad de entrenamiento, aprendiendo políticas subóptimas que "pueden lidiar con todo pero no son expertas en nada". En la práctica, se suele **medir y calibrar la distribución** de parámetros clave a partir de datos del entorno real (como la distribución real del coeficiente de fricción y la latencia de respuesta de los motores), muestreando dentro de ese rango; si la política entrenada en simulación cae notablemente en la máquina real, se amplía gradualmente el rango de aleatorización hasta que la brecha sim-to-real converja a un nivel aceptable. El segundo es el **alineamiento visual**: calibrar con precisión la pose de la cámara en simulación y en la realidad (alineamiento de entorno), y reemplazar aleatoriamente fondos fotografiados en el entorno real dentro del renderizado de simulación (reemplazo de fondo greenscreen), haciendo que la imagen de simulación se asemeje lo más posible a lo que ve la máquina real (estos dos pasos se demostrarán concretamente en el Experimento 9-9). diff --git a/book-es/images/fig4-9.svg b/book-es/images/fig4-9.svg index d8aa53362..e0b40a5be 100644 --- a/book-es/images/fig4-9.svg +++ b/book-es/images/fig4-9.svg @@ -1,53 +1,35 @@ - + -Enfoque ingenuo (la caché se invalida) - -Prompt del sistema -Eres un asistente de IA... -+ Esquemas de todas las herramientas -~50K tokens - -Mensaje del usuario -Consultar precio de acción NVDA - -Asistente -tool_call: ... - -¡Cada vez que se carga una herramienta → se invalida la caché! -Enfoque optimizado (estabilidad de caché) - -Prompt del sistema (fijo) -Eres un asistente de IA... -Rol + Reglas + Herramientas básicas -~2K tokens | KV Cache - -Barra estado Agente (ligera) -Herramientas disps: web_search, get_weather... -~200 tokens - -User: discover_tools -"Necesito revisar precio de acciones" - -Resultado herramienta -Devolver esquema de get_stock_quote -Definición de herramienta aquí - -Mensaje del usuario -Consultar precio de acción NVDA - -Barra estado Agente (actualizada) -+get_stock_quote añadido -~220 tokens - -Prompt sistema no cambia → KV Cache se reutiliza totalmente - -Dimensión de comparación -Enfoque ingenuo -Enfoque optimizado -Tasa acierto de caché -~0% (se invalida en cada cambio) -~95% (solo cambia ligeramente la pista) -Latencia primer token -Alta (recálculo 50K tokens cada vez) -Baja (cómputo incremental ~200 tokens) + +Prefijo estático (idéntico byte a byte, la caché KV sigue acertando) + +System Prompt + +Definiciones de herramientas base: web_search, code_interpreter, tool_search + +Trayectoria (solo se añade; lo nuevo va al final) + +User: consultar la cotización de NVDA + +Assistant: tool_search_call(cotización) + +tool_search_output → inyectar el schema completo de get_stock_quote + +Assistant: llamar a get_stock_quote → Tool Result + +User: analizar los colaboradores de un repositorio de GitHub + +Assistant: tool_search_call(GitHub) + +tool_search_output → inyectar list_contributors y schemas afines + +Assistant: llamar → Tool Result → responder + +… contenido más reciente de esta ronda + + +Primera aparición: un prefill (escritura en caché) +Después es historial normal y acierta en caché +No elimines ni reordenes herramientas ya cargadas +Si no, la caché se invalida desde el punto de cambio \ No newline at end of file diff --git a/book-hu/chapter2.md b/book-hu/chapter2.md index 10abc5bb7..c58b1b818 100644 --- a/book-hu/chapter2.md +++ b/book-hu/chapter2.md @@ -482,7 +482,7 @@ Ez az egy időbélyegsor minden kérésnél az időbélyeg helyétől kezdve elt > A figyelmi mechanizmus alapvető megértésével most megfigyelhetjük egy valódi modell figyelmi eloszlását a `attention_visualization` kísérleten keresztül. > > -> ![2-7. ábra: Figyelmi hőtérkép](images/fig2-7.svg) +> ![2-7. ábra: Figyelmi hőtérkép](images/fig2-7.png) > > > A figyelmi hőtérkép több kulcsfontosságú mintázatot tár fel: diff --git a/book-hu/chapter9.md b/book-hu/chapter9.md index 88acb58db..4e459c175 100644 --- a/book-hu/chapter9.md +++ b/book-hu/chapter9.md @@ -173,7 +173,7 @@ else: rollback_if_possible_or_replan() ``` -![9-6. ábra: Computer Use ügynök Érzékel-Gondolkodj-Cselekedj ciklusa](images/fig9-7.svg) +![9-7. ábra: Computer Use ügynök Érzékel-Gondolkodj-Cselekedj ciklusa](images/fig9-7.svg) Ebben a ciklusban három kulcsfontosságú tervezési dimenzió van: "Cselekvési Tér" (milyen műveleteket végezhet az ügynök), "Vizuális Helymeghatározás" (hogyan találja meg a cél elemet a képernyőképen), és "Modell Architektúra" (hogyan generálja a helyes cselekvést a képernyőképből). @@ -181,7 +181,7 @@ Ebben a ciklusban három kulcsfontosságú tervezési dimenzió van: "Cselekvés Az Anthropic három eszköztípust határoz meg, amelyek teljes interakciós képességet alkotnak (9-7. ábra): -![9-7. ábra: Computer Use cselekvési tér](images/fig9-8.svg) +![9-8. ábra: Computer Use cselekvési tér](images/fig9-8.svg) "GUI Kezelő Eszköz" (`computer` eszköz): Egérműveletek: mozgatás (`mouse_move`), bal/jobb/középső kattintás, dupla- vagy háromszoros kattintás, húzás (`left_click_drag`), és pontosabb lenyomás/elengedés műveletek (`left_mouse_down` és `left_mouse_up`). Görgetés (`scroll`) négy irányt támogat, és kombinálható módosító billentyűkkel. Billentyűzetműveletek: karakterenkénti gépelés (`type`, 12 ms intervallummal a karakterek között a valódi gépelés szimulálására), billentyűkombinációk (`key`, pl. `Ctrl+C`), és billentyű lenyomva tartása (`hold_key`). Érzékelési műveletek: képernyőkép készítése, kurzorpozíció lekérése (`cursor_position`), várakozás (`wait`). @@ -227,7 +227,7 @@ Elemek: A modellnek csak egy azonosítót kell kiadnia, és a rendszer automatikusan rákattint a megfelelő elem középpontjára. Ez a megközelítés nem takarít meg tokeneket, mert minden annotációs adatot el kell küldeni a modellnek, de pontos, stabil lokalizációt biztosít, elkerülve a szegmentációs modellek által bevezethető kihagyásokat és téves pozitívumokat. -![9-8. ábra: Set-of-Mark vs. Strukturált Elemindexálás (browser-use implementáció)](images/fig9-9.svg) +![9-9. ábra: Set-of-Mark vs. Strukturált Elemindexálás (browser-use implementáció)](images/fig9-9.svg) "Tiszta Koordináta Előrejelzés." @@ -235,7 +235,7 @@ A harmadik út kihagyja az annotációt, és megkéri a modellt, hogy közvetlen A koordináta-előrejelzési sémákban a modell koordináta-megértése nagymértékben függ a tanítás során használt felbontástól (9-9. ábra). A Claude-ot XGA (1024×768), WXGA (1280×800) és FWXGA (1366×768) felbontásokon tanították. Ha a bemeneti képernyőkép felbontása nem egyezik, a modell által előrejelzett koordináták szisztematikusan eltolódnak — mintha egy távolságot egy kis térképen mérnénk meg, majd közvetlenül egy nagy térképre alkalmaznánk. Ezért egy kétirányú koordináta-skálázó mechanizmust kell implementálni az eszköz rétegben, és a célfelbontást "a képarány alapján kell kiválasztani", hogy elkerüljük az egyenlőtlen nyújtást, amely torzítja a képet, és ezáltal torzítja a koordináta-ítéletet. Például, ha a tényleges képernyőfelbontás 2560×1440 (16:9), a Claude három támogatott opciója közül a legmegfelelőbb cél az FWXGA (1366×768), amelynek képaránya a legközelebb van a 16:9-hez. A képernyőképet arányosan 1366×768-ra skálázzák és táplálják a modellbe; miután a modell kiadja a kattintási koordinátákat (683, 384), azokat visszafejtik a valós koordinátákra (683×2560/1366, 384×1440/768) ≈ (1280, 720). Ezzel szemben, ha egy 16:9-es képet erőszakosan 4:3-as 1024×768-ra nyújtanak, a kép vízszintesen összenyomódik, ami a modell által előrejelzett koordináták szisztematikus eltolódását okozza. -![9-9. ábra: Felbontás-illesztés és kétirányú koordináta-skálázás](images/fig9-10.svg) +![9-10. ábra: Felbontás-illesztés és kétirányú koordináta-skálázás](images/fig9-10.svg) A három út közötti választás a következőképpen foglalható össze: **ha strukturált információ áll rendelkezésre, részesítsük előnyben a DOM/akadálymentesítési fa indexálást** a legpontosabb és legstabilabb lokalizáció érdekében. "Ha nem áll rendelkezésre" — natív asztali szoftverekben, például Photoshop, canvas/WebGL renderelt felületek vagy játékok esetén — **használjunk vizuális annotációt (az eredeti SoM utat) vagy koordináta előrejelzést**. A vizuális annotáció többválasztásos problémává alakítja a lokalizációt, ami barátságosabbá teszi az általános célú modellek számára specializált tanítás nélkül. A koordináta előrejelzés kiküszöböli az annotációs lépést, és közvetlenebb a kifejezetten GUI lokalizációra tanított modellek számára. Mindkét megközelítés továbbra is küzd a kis elemekkel és a sűrű felületekkel. @@ -339,8 +339,6 @@ Az általános célú VLM-ek már rendelkeznek elfogadható megtestesült érvel A kétrétegű architektúra végrehajtási rétegében három reprezentatív modell — RT-2, OpenVLA és π₀ — mind a VLA vezérlésre összpontosít, azaz robotcselekvések valós idejű kiadására kamera képek és nyelvi utasítások alapján (9-10. ábra). Két különböző megközelítést követnek a cselekvés reprezentációjában: diszkrét cselekvési tokenek és folytonos pályagenerálás. -![9-10. ábra: VLA Architektúra (Vision-Language-Action)](images/fig9-11.svg) - **RT-2 és OpenVLA: A Diszkrét Cselekvési Token Út.** Az "RT-2" volt az úttörő ezen az úton: közvetlenül finomhangol egy nagyméretű látás-nyelvi modellt, a robot folytonos cselekvéseit tokenekké diszkretizálva, és autoregresszíven, egyenként adva ki őket, mint a szöveggenerálásnál. Kihasználja az előtanított modell általánosítási képességét a nullszoros átvitel javítására új tárgyakra és utasításokra. Az "OpenVLA" az RT-2 cselekvés-reprezentációs sémáját követi, egyesítve a nyelvi modellt és a látás kódolót egyetlen architektúrában. Képeket és szöveges utasításokat vesz bemenetként, és cselekvési tokeneket ad ki. A tanítás két szakaszban történik: először előtanítás a nagyméretű, platformokon átívelő Open X-Embodiment adatkészleten (amely több mint 20 robotplatform valós manipulációs demonstrációit fedi le) az általános manipulációs tudás megtanulására (a "megfogás" és "elhelyezés" akcióminták közösek a különböző robotoknál); másodszor, finomhangolás egy kis mennyiségű adattal egy adott platformhoz. Mivel cselekvés-reprezentációik hasonlóak, a gyakorlati különbség, amelyet itt hangsúlyoznunk kell, a nyitottságban és a mérnöki döntésekben rejlik: az RT-2 és tanítási adatai a Google belső anyagai, míg az OpenVLA teljesen nyílt forráskódú — egy nyílt forráskódú törzsmodell (Llama 2 plusz egy látás kódoló) nyilvános adatkészletekkel párosítva, így az OpenVLA verem reprodukálható és bővíthető a szélesebb közösség által. @@ -357,8 +355,6 @@ A valódi megosztottság a cselekvés reprezentációjában nem az RT-2 és az O A 6. fejezet szimulációs szakasza már elmagyarázta, honnan származik a szimuláció-valóság (sim-to-real) rés, és hogyan küzd ellene a domén randomizáció, így nem ismételjük meg itt. Röviden: a szimuláció soha nem képes tökéletesen reprodukálni a valós fizikát, vizuális elemeket és hardvert, ezért a tanítás széles tartományban randomizálja ezeket a paramétereket, kényszerítve a politikát, hogy megtanuljon egy, ezekre a változatokra robusztus reprezentációt (9-11. ábra). A következőkben azt nézzük meg, hogy ez az elv hogyan valósul meg egy valódi robotkaron. -![9-11. ábra: Sim2Real rés és Domén Randomizáció](images/fig9-12.svg) - Ez a megközelítés számos figyelemre méltó sikert produkált. Az OpenAI Dactyl projektje elérte a kocka kézben történő átforgatását, és egy későbbi munka az Automatikus Domén Randomizációt (ADR) használva egy Rubik-kockát oldott meg egy kézzel. Az ETH Zürich ANYmal négylábúja robusztus járást mutatott be nehéz külső terepen, például havon és kavicson. Amit ez a fejezet hozzáad, az a két mérnöki lépés, amelyet nem lehet kihagyni a domén randomizáció valódi robotra vitelénél. Az első a "randomizációs tartomány kalibrálása": a tartományt nem lehet tippre beállítani. Túl szűk, és kihagyja a valós változatosságot; túl széles, és a tanítás nehezebbé válik, és egy szuboptimális politikát eredményez, amely "mindent kezel, semmit sem sajátít el". A gyakorlatban a kulcsparaméterek (súrlódási együttható, motor válaszkésleltetés) eloszlását először a valós adatokból "mérik és kalibrálják", és ezen a tartományon belül mintavételeznek; ha a szimulációban tanított politika teljesítménye észrevehetően csökken a valódi roboton, a tartományt lépésről lépésre szélesítik, amíg a sim-to-real rés elfogadhatóvá nem válik. A második a "vizuális illesztés": a kamera pozíciójának pontos kalibrálása a szimuláció és a valóság között (környezeti illesztés), és valós háttérképek véletlenszerű beillesztése a szimulált renderbe (zöldvászon háttércsere), hogy a szimuláció a lehető legjobban hasonlítson arra, amit a valódi robot lát. A 9-9. kísérlet mindkét lépést bemutatja. diff --git a/book-hu/images/fig2-7.png b/book-hu/images/fig2-7.png new file mode 100644 index 0000000000000000000000000000000000000000..3cbb27b4a689af0c2c0f8e21965875ef26d02ee0 GIT binary patch literal 2578612 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 z

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ˆt||XT_Z}1Qms6s$C}dXy~_!NGM29 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

gkZynLGYq9Sgy_(cth`dYUuOb9CAG~#+r_J zm0_~psTiBL_445a_`t?kgPGxh1fV5T3A1tMPu(G|^R|(W=|kJz;*eH%cc!rw+Oqml z7$BiFF9FvVk>rl=s2um6Ko6k-a+;7YA^gV}_sn8LuP3@BUm5H#8YvCmgUh5Dfe5+@mu5#q(FsY%Juvam%+eZ^!ykNJ9MFl$I zru&9*Pu96OzuH;y@fuU^%0b5 zQKHAId1F1puldyyd(Iu&p>*t@Q&yK%N9L3=Y1o;j$^qc|br;(NMMV3{oz) z7UeDNwM?q2+F7rn2(NCIKd*}BRdn+E%^LaT=Dwbptn~uT%p{)mX!2I6GXu4qw>|aW z)TI1SJRCK+wwZ@_SP##jF=_1+$Sl|{yHc0fFX~ecpBP9ow5wr3>@m-{3->yrK2uVv zuX!e^TfIk@xECwt^EX_}dQq6qF0 z#i8(x|0rB%6b~fpoqLFhL~(#$0Iu)yT0^~7);Y&3 zikufB^nKKXG-@?tg)*fXHQy7TUYox>8{yZ~#^qa$1Dvl0dF1xnJ;sgYr#8NrX#3I^fTzz|smBfWqzSU!of1LIw&d)n zr1_rU3z}=Gkj<{)@(~(Wi<>KUWxZ(MT2=8#1NI2;M3bv__V{Y^-y;vaal7L1grEQi z{Uh>&fQ{!X$uBf?G#>om4!|UuMkW*dD-wS-8p1 zKams)Nbvg6p3^z50kET~;v$;UFa~s^F0msH`gn}SBh)xh*B+Fv*5J)9;5oSg&zYem zv!|R5$q*$HHv-1U6p3(7J16sP@c?!Z?f)iYu<@XChIBN`6B8*$18@Vhc{IXs*uH~# zG(Mr&RbHoH`UV_&`d((Cgei9!c|PMFscvt&3A7ewP99bD6zs{1Wim%8e8*tM6xj znPV4Aym4z{mQ-~f2bk|yCdsA?EmWrwFkI z*w1AGN=}`F*2W|u@8}meZ5s7)B2OE9W^EJ1h`K!F4o3dNk(L?b*GVEM4~_gTW%xm3 zdVX?nZb9U+kHjfywfEFsW4-5CGg zR?_S(02LyWR{naDDOYX*NkN3PqbxL*x=KeybF%r~K+8fk%K-9lWRZovKb1XVrD*!& z(AgdBx)DEXf1(0F`H>@)iUe)n+=cI{J5EgeT^X#(sAl5dXh6ZI8uHT9 zzSHjX2CdnuH{_#bzSHhmxUiJeZxM+}j)=TS6{S~xwC5`xHMv_%%tn+{FE5F4TOaU! z5YV70f|RjWD!2R(6`&;YB8upX(nF(rgVPT#TCnmTjbgTk^pl-qLRxgYZVLUyLAac; zRe}bCldDcU4QqJ)SwSmK07hr@*oo|wTzjdmIq71Bn}1rxVK+un79*u#)5i^650NAN z3~W0zFF63My8o;R)o+KpS?2wXG|zJJ6mc%1Zk1aCnD)(4^Yu`ieMCwT9RB=knzjG!L^|FuE9~d)S`$) ze+!zHqLJjHCI30dfWEI*cVE*vuz?U-ZU&7yv8lq6Qt$<|>O-U2HzFXY`5NfpbXi$b z^AnvxIx>DvyZg^*olke49J-X)YQ9_TdC&Pni4f|g>R|sy&y4>O=*u`^s!iamHb2Xg zZ?QI$)V8vGce<8&JOx@+u#%##qvQx83X~5vLulADn9KafN1gH zC`AmGaip?rlzk1qA2B%BB}pEcD((SWGF^~m5elAnRSg+ zJd2pq#E{?OZWB}CZtLxuNh}{IzT7d|;wtW}wzEg1f>zOA@7FYN_BJIV?s&CzqN1#J zF?Z45UaRAps7>6BnOg>!pYX!1LtG*=#3|BBk-mq{cjt1&Cr9s2F3E5X&Vt+b>?0?- z$wsVC>o0~{0h&>wmp;AMA1WY|t+3eJZ`*2Fqc>t=2M*WfA7Is16bg6Eq5>s8p#N73 z(BJKOt>9+4@N%^QN;`LbzHQhZdH0EII$FD?WjQ?kaJdnF?znu5MIZey1BziXKNw-) z`VZYG=hlBa&v&O?r5#l|cAGN+ZmFdU5xYH0h?=dvu2Gu`5=(3f7uCINd~>xsX^v#`Ru zUc)@qvm5_`P07gt{KH`I*6Fh*p@_S)xH${u;193D*~adynQAH)I^FXvbbhxD-gSu} zr6|mdAK)A@+3^)yGq&$shfh5VyJ#CW70SNbKh&PPcgLlMtH@LED3{M7gSw&OkEJAg zz@e@f#QJQ_T{#3T6N-`eCaegFBQ;L|OP9s2hJ%LA+##dDb>XR^@5 zcTs{5*E%GLE>`$UVp$_eS)i12b4wlMZtk|%TzzW_P1&LwTT`wPI!aqVZ%>XNSyB|F zu6fqCbq@tS)%Vp($XA>fJ2B}evX?%(Tnivkrt`E|IOYz3aDx<_WE0AAh+ia|4xT<6OR30J36K0E{X z-9a=U`K$HY$xJ?s#b$C-e3uM*vHmNnTK;^)5_JBznM6<1A7GMBdT@K-6xgsDClQR@ zUhz~+50P*s4B1yK_+;Y1Hom@yr zovc+RO8g4j&Wys1xC#%5624ra@dp)5gk9PA{oE8^Mp~G<<;lsWmIT}t0Y5(0-Y3av z4Z0#1`nB8Os@?8BKi7`M?{2vV%DdTr9JjMX;&D$2Km6J|@FyY1mnE0Gy;h0aLmKVC z-r3h!_=~%}B_%IMrR4|lTca*q<~j0L=UqO3P7^&?61p!>hK~Z?kpdh0fdutYME-Kr zc4X&Ldap3c+Qr+Pc`0+vLu(+N#|FxTDZnlXoc`K%xR~|qq;(kmsXtI}?85#v_ zD`V88V|Q?iG+NxPt1`nFl6-foVB>grhxuYb)hyNyECUD}6EK4E`dpq0I)HllS`xZ78;R zD1MD%DxzQxwR?oGZo7=pwe7z#j_hVX!Bt3@D^;Ny~ z^3A*eNb-D*E#VNKc?mCKLSD)wry)yxc|rba*Cg#FV`f|P+`g4Vwg8FoXnm74@wod9 z>Ys4Y080f@q{lLl0${05em|-0bumWm#*U~^|P=*d_XAn?sfhIcu)z4PgXAN zyJel>IY%fV59KIr1u2N&?~9%1QIq}MVV$y88w&4(uMlaZed*!hednAGZS`Scew?GY z6tvPlM|-C8<;>UN7+j^iu%jMR|FyTxkdlcmSu>`ZZ0xv|-&M?vIQaLLENSDEfU~k@&+#E=Ao*(v3Z%pw<|N4t;4hvu_Ia!&o76rKGN2kBe!+n57{^}nZ+6aW#bO)!2 z23_yXA2q`JKXrFMUaE;6I98Dpnro7zalbjgKe!Fo?jE*InEQ*Az;sgC2A!nW(6P-E z<%NcH0|%MzQ29v{u-j`~WpzCA=i7qp=YLZGyN$+J7bQFl3za3SZ376Gfw%8hjyhbh zX2Wr`hZ)bde2VBsv99EdTGVbh&*e7V6xN(InIsWFJnu+I(z*DcD)q*g?#{L9@S_3! ze-#tHe4XK;63rL;#{Ea0rkLz{>H3w?ZUrl*YSO`RtI)L@*G#;GDUvY1f2RK&@F?Ro zk6Oo@_s51M%IZF&4KWGrhqvZYpSG+S1rm*4{{Y5*k-Z4Pr2G4Pw#sP&Y=Hy&3gFL( zlH~8!ZD_|D7t2u>E^Pcd$PK6d8U)X6qArHc@~8(m z6*R$iMprMUggzQ$wOT)dxB7GPI^L27oix{^5Agwa>DJcW!LaD_ZI3O;uUzagT+HyP z=HcXGiiZ|b6Lq!i?hq%ougbYn)W2~!LI-TLf7s=NV&8)@HQKfD+dsvY%@^WtgKv=q zm2tpXzHWIn(G~`K)Q+Ua`2*-QUA4R!m7gxgpxt;AapCa*VY<|O31~4ibAPXPn}*A+ z-oEk7i+$yP$_ptP54)Mo5um;fI`M1Y_Wz3T$-=y_*UHQ7O2u2259yM$2*hM{UY=^Z z7lHwoa)e9trDD99?(d&DwaR4MC!yZ?!N;@h#j*dvp>dcqb;af3t1iji1as?BOpx+&8x^9ZlJiTuf zLV+yr^_)_N(k>h&A|R`BG4yz8Xh z)LoKDPm=QNzEw`>T#_M{ayioy5&)kU6?!V|I7jxpyvp;*_o!fAE zi`*(gp50EDyM_JlxJ~1cH)zv)m+lwzxbmh9<^VR>}H22?JUyKKLT=bepO*#HkT%*^X*f6Xp%(q+4c@)SYrrGOf{3)cTzaPAZ zupgXX4M655xH#FuiruJV+niokF1h-6T&K{O)P{%FB>jHy)$(+7&9Kva>1x}u=U|5m zzjsJRp_Kq+4TNC>Q*op}Eh?9T&Rhr&N4w=pvzM;?zIy-0XtiG;GpjfTg{#Jfn*o`0 z--=;4L$RjHhWa+hT1ZKdk*=&HT9bRD=32-7Er0dO-CdTKfA6&Z{hT}WcKFTycw>9I zX)hwTS`-JpG!~g^T008?)MHkq(Rj})R|efJ6~M{POmz~73*_&+nYd-wso^QSy|kg;#KxcY4O+xVG!kI(OL^b%jf zbc*BXYu1&8pFUt&XG5R>5$RuEVB{a)CFcxZItE`KFoGHYW{ofKWbJo%3H?^BInIu>^So>C;~tHHclr5L$fCHRcq0q z8{yVvt&N)3cK)-G9X@zL&du&pKA% z^<8odu$3zSTqgnf`SEqtdsfTXS%urx3T}jH=iO;8cdJ-|HSuVFeA>70Ql?-39AD)p zH2M{AOADM9wYe)>FhekPF@)jjFMO?#a&0N>dLd{9!(5t5kf91QpvI#3kdwFA&JF@h`pwZfFu(hs zKT$fLTF&E7H17jayWM_Q-jF|lkiTGnW18c`wni+*DK|qVZ`bDwtK!cTItZX4mswYc zmVY=-N7h9Vowalc1PqEADfIMd9>G61g7T}PMD`EhMTMyf=SY)bi6Z35$^1*dpAX;# z^P{FBp}Bmv6f~dJs;lB1%Dz|!0yDce!z zjF0&~Oz$toOuVB+`_rl7{tSb?nwfkT#G*uUd$Ms9FaUNv-GwtyX9K&NGZB6J4BLZr zmRS6U>lWL$5)+Rf&_PdjJeYs=cHQh7j{G=GN!b{70bt3e2uStZIePcavKn!x4oOFd zt%9b@HVoV2;<$!h>8ob8iqY)pN0vv2or{0}2O0I74zbUWlb6108`vHgFg!6z{%+|l z@+q9&aIf4?u2yHDGZCdi8+y8k-zH}4zIPni9A995vSezF`3yKsf!Lk;WrbL1=T*Hq z$n!2S(P)UTAfVISx(xu|065d<{Dt4$K@7Fu$8>g@r?R%pGzWP#RBdi_T6boVUIGzq zBnjqvMS5@>J<)Bsu1Xh-{BZVlfVBI1aV}~qxVs}o@A5?AY*9sG*~6f^oYu4!y23@0 z4LGcB4W7_jJJuDen}6|K!Bu!r6xr=cdb6HJUZ^*qWmZOF_8-Q<*HbZfJCkicb6c*YBjv_SBku%`#{oDoW_T!lIc@>!s(A(A!1) z*-HkDH5*tV^gJZ6!FN!i9hsAd(&TZQAyv%_J<69udjs{KPm7k0hlcd1(2V(Xe;Z}e zGm_&`emQ9A=|@MM%vR5!!0-#>q@PQ9OW=sN3JRuz(iKl&#_j1YjyKJT9|L;j&ku4^ ze**C8k?-ZtMHvfkxMlNC`1IG`6~Hyg>%#TpZdn2-D(sHeJ@&6pjQS2%YP2D}%-7e9ki+RjOfwhUrMYs`aEjaY`WU#Q5&U+-QVLi@m$?zT21|U=0m=3vEi~o^m^BS_U+mB*nC!|=+yoiT_BLF zyMoI%|9=tqKY%(BBj>!VjYBM$Q&QC3omRVAj2YqP|s-wIodw;1h0^E#D6&jAGfX0 zi0w4$Uipq7imMVkgR)?}*>oNnwg3L& zw(YCILfO1fLi^k!G9PgtG`a8~hg!oXp_8Odq74@HX@wkQ;`ZFb&yoAMO{`6#R7}au z^m$U_n#_Y7=&M&(X=OxY59j88J|Oi$7;WfmYUj&>S3->v67gD|-HIf9Y}%l8wS zAN$j@*u%Mmwo`k|%gp6YqN!#~^W27w*b>HVqK(+V76e6Zz+DDsR7-AN0ZfTLiuA>k zGqdJsVfyQU<|c`t$r;@x=OsEZrzxMj&>0}6s>gxa-G`ei(+yYuIo^8_(mTg_o^M_) zBj@{tW`52lC++R@g}qmu|B8TE;2 z@Yfn+^TMVPRzww3XDN<P$0!xCejfrfMTh9pV09wF!Ilu z#OO@bU%JFDs7R*BydTexQ&Gb~xL3_lE`KMC8-^$GmKd6W7|iG(0ogP#23h*z^+BMM zYZ?V8m8c}fDkS3cbFB?#&`0Gj8Hq>!o8WFI6{I+1Okfyiodf@}I6Ine7(bbCiDY@ob=EMBWtK#&|LG&>E};Pk4vElQH%1EUMf=OgXXGzpp}Vu&sL9B$Ys=1#_u~n~ zbEa}W$`htlYdO@uNfO~ZH9Gt9ESl$|$QM)wB1r)L+%X!Vx9?Z;93EqJY*i(o0z$)b z=h$q0NoVG5%sxzgM&``sd?3?=`#EaDTkYIs__XF81~DqH;>~pu2-@Mghsco$x8$4K zUcRAvv?X0#J&kgSAF7fpPK~0R)inJy)reHC3FH#)MGJE#L<<0qsTiFf+t!MY4Bk?u z&L;x1r|SOe-k}h72c}AY*)G~|u*xi8Y_S6f>R+#+Q^|!g03A3~!QBO@<574^n^iw% zEsh7x-9&mFgi9GgJ>2de000Bom016&M4;(;ATk7f!F~xLNN6gRD6P+3>xezcSDENv zm;+bez#8sBqx6*MzAbFber2#GQT69MFE_6?7xVqXw~wF@Hm^3OXWbsV@iY2eMJeYi zU9z4q!S|7%=``OTcq@o#&Um1zx_iP0`5itfRB#=hBox%`CTt(H+jr*@Wp=#$(dXn^=;+%g!`|tHO4CM4U#wwTr zkgiuoKq`K35Kp8I6n_f5AL$wcd0!IMhvU5I|al#}8UdL|GY*E#97(5(Rwy_8+$5osg-iTsEM5 zZs4_F98o5t_{a476yBu|Pl}08wT$5^C|(|jBb=Umw2@mWAlJOD zM>TZpu~tPH`QJd3PaRj~niM zEPOOWcr=^d2NC%_n|$X3nY?w_4g%ai&;Q$}Oy2R8np~v4@RN0j(9su97E2btu4YbV z40b(c=drt}<6}o+zJX`FhZ2=rE=Ytv$ow@(mw!dP7KKM`AmGfsfeC ze9`>nJoeYd*_5Ef_4kl1=!sLl1dWTXUl0)&r_gxgHj4o&VcUMMjX4$hY3E74j@z^i zjlbZB*gA9q`(?JMde|eErgoI zQjIH3;A9fU3Gpy|xKrcSW_XYM3dOJaEL_Ex#;t%V*q$iUJ!rjOOc>DNc6-BO@%f() zzB1i9{>lUaJnW)w!XNNCdqV!E`?RIV)gfkGemPB*?%Vgss_*%ARedS8IDd9@sVHpa zijFX1hOx4_Li z1)jAD%`ng0upQ6ZsXB1OjAY$1ezZ=SXUFC_w`5Q^pufq%l`$(`6jAW)abd96djfZQo8~_IX74*JQ-G?K`cU zie<44?dEeYGd2s>LLbOW16Z9*ZLSiPX3~AM)_~6)*GfIEwQh>5h6CBr)gUZ2>B*Jk zmz5wI5jS885zzdwOH8C^O=-W4fa#46rlErzjnv!ZNPVii(iJR|LBfP=QIvI0B+1XO zgcIW4GX}e|KJ;mYQ_>Qg&ODp>5_=(yNINy`JXBa z)xvGL)Mj8`27XBUHQUG!zI!P?>x@W`*rbsw3fDeD(0Z*mdqZcA67^DKb}s+~f9k`w1F!@7F1` z1#76~xnsUEM=@47{JWL*8zPP7jJY7SsAylOo_CJ-c9`1OJI>F_XIzw4JRzWvMKw~^FoC>}YR8XC zo{okG;O;&)O}a0>gMRV_Lc|;qysnl_0uh~hPEyX@A?-41V2>cPU@vX>^^QOqfZEJ< zYLb6jAsydn3M7ZlYgb~rTM~GEL~vhzC>Og&yfdWH) z`ZbFmHO`^M4Z05$|6EAFiFlYL6u<)OR&Y}{h6f5z+9j*KwCpf&OjexDCSlC?wh*V0 zV>pmybCoo)71r+JpH(Yje*A53lz?J-_eX?ku#)YYimwlHw6uWc!koO=y7?~sX)TL? z3bJ=SUu?~X8Gc&nuKjW!B(W5P9){+)U=6n+MWdi+dqI9>0?`ic83jPa#OMpPXOU_J znTNbPNp6O?yEKyL!Sf$>+@NiY^dBSur2H-{A_A>jujS9$rS-@*c{p=n_@VG5_t=SW zVx+G;!EYatWGH9tu&&4#p_l%`l_pkTe%yJ95L(!PyV!Z{!wxy<_g#VS>c+J_$(W~A zqwbl+glrHP*lyB=dD9s&cll#{l}1I~X34eHIH<++I*N2%ySsfM{FCSo zx7d{oF8UwNDia*bvp&#oRYV|LDSpik_eq3&QSnAGzIl@c5(c6T#x>iHX!l5M_l9CSpw12`Af@>?7PORZCBQFb$i>V9)1$dcjw|9J8KqOHiB+88g5f4uEmw2i{&tl--lv-q>|U2s+C~_TkH${y2h#e>2b&Y^ zHwO>;DhuLCHh;QgesIQz#}*kP)X2)44MCw-hg#6mIvXT6oph8$sF@mf62~-5g4Qye^kV z3Yi$mW;X{`4(%>!XErPn;nwxTN)7Y!(i*z~wO~~0Ty@uYL$<@>C(o)C($rwG?hlk` z;WN9h^}`c9uVV~0GxlfC{Suol*6DzJbbT&t2Y9Nrf3X=uv8t9Y+5ZtHXM`?Rp1r|? zb9OhMq-Gq#f<0&7>Gf5f$jm)|JW!9HVS>f+eRrT>|K?p$Z$O;0n4cWUGF5=pNpj&8 zMfmKhTSrIQ;L^?npU0VCV>Xa;0f7Xl^mwBVU|BoRg|jhrJ=;VlxL0H8%k1+n=go2G zSl14T)o4YZn?+z7Zw^DDJ1s5XkkvU46Kw6g;KKW?S2@+XXFUF=z5bFKMnz9jjrY9b zbDDIvOLxXlPF`XiYTW(H2R1JWJ59JgE-mowg67wEvnSE2g55;&3cJBtPqVFeZw_vQ zSZ}Uhc)o4Uf`2I4P{N7KnGm!dFWzSK1$v2qB(D~~W0Di(IAX|HpP&A~*DG09CJV6W zG+1QK+_;f|23wjztuvH0U3<$lCPucrX~~k^A7OyU@ z-GsIMRO{VKT>Bl+PWA~}AR=MKr96v9s}7UohBoY0b84e%^>q~2@WlG=p~mcmo@@O6{ZRZR=2JTBshG|J6(;q5~Ie)oI~gj?O4)G@(vAp2rDPW z=riz>Lir+03BYn~}%B?oH)mg@J=aJbs1Pu*vNI1DqPo@Z!zkxGwi7$?gY{Swp=( zjl)Ubz$>R%XhVU&$PwO8_}*8SIgTP0Uu~qyO0ero(5&xRot^WBZQk~QO;`lJd^q#| zSGyF`79)bzo%e%cGX2ShFSxvZie;mv@$S+ZjFw8wn5L8F&(@wYv!K>qnHnH6`9G_v zf4^DIt#XU@W>2SI2{#}?pWz{o3@Hd~)P#!cmV#ejIFI4J2ywb<@wgxgPu!C@<*e@+?rPO1C2|h)8A{)OzS> zq`e#KVRA?)HYFgP6x`mF3# z5V9Pl_%tric6#G&P{eY{pG>0QAIhVist{4hz)&Jd4!C&l4lw`zya{`)-~=#O4FJUcL*KyxM+I^|rbPrX~DsB=f!w;l z0Me+&A*Vb{vlo0p1Jr~>i$I}#E%ptDLTy%v3P}pM0-ai?+85OhvCyGPbM$0A{)!2F z+nUfAHVmiUiy^XLH|L*uM91T5HLk7`pO=W|X)Q1_n+zh7gR&_>q(MWLTbn|VdW*!l z8!xg5K)zvZSCk^MdzY_Aa8a(j)LCy|KyxvCo9$g!TKM+tUGV%m+u*=C#?w||S_b$B z-jWpsO$Y8Ylfo3|5MLSUy)0oHPF5%MNlE9g!+~aO*I2#B+F9QmG0j$O3RRxh=L@$$$Jw`m zDYR<(If}fZyQJ@0`hsOAB%8czA*k)eonRt_*n@dQ`oLz5z7rXU?*@>CnRrjo-oaq1 zhyJ#oqPta4B;l6PtZ(2Upu(#)d~xsM9=eJd(JAO`Pjbjmm0^%cqyu6g(bY_s2}EY0 z2WC@@eKcH%4m5N<5=16l?P`<>Jq-uSZ%X_oeR?3TN`XFz^R|Rr24!7bvi|RQ4TfkE z{xOy6FVWC_#^I?MQ!d0S*rR#a$7Ncc$-+e!{oLe7KG`>SG5ky07$0ldhRyF37;&5* zZR*VoIo-QRWBvl$yRZd~`+Y9VdP7^t+we?S`sxa>VoyG*@!wj?^i^-gZ&Opn(?Cib zQe|mpG;d`1q|7y1!&{_VTZ1jq;5j>-Jhg7}d+UH&ld?w{IYxx59i5@9;3qtRGxBsVk_?dhJ3<+hlcwVi71wn9-?PKf1JuBcG~} zxX0eQvY2)Fk%VPtX#T`rK!ff2{C44LfV4)UfNil*o0wVONQ2Cbn*NY)h=+>o*OJlp z&$%_EqV>6fjb3bs0uPOblHmxR{@;HoV($Uxv!@7oswEuimtrba9ONT%1V91~uNa4i z3&zlaeOCu4qoMtro4hvU7%A|Hb}gQYKP3HR3|i*Tg89mmLPUkTc-p_*ZZ-=Zjzk61 z0MVKbG=p_dH^pll4eY=`Fz%}!`a3Mf`H~u3C3fG^%v0WsW4@b09V%)?mF+1nMV8Mx z#GR^eg36rAQ+I<0v~2fq1m0H~P^nmsb_`LXFCYEb-? z3&;FlimM&TA=)P9KgX5cfJ_7t35FyRr8c)3IA)%_wE{OSgo&!YN*s7~kc-vP{Z^{u z`c>p(xl9&`AUW^5H_<>hRxZj$CwXha3{Fcmj$ksXT}f6$N?`mk_1<-XQBEKi?1-e(9;%1#a0FfCDG#;BF}~68W^X&*|Foe4?GB}dYaXE% zaUH153=|C|z|pzt|4ZTDO%O-u*Gpm2WOT3Ms#mLuj%q}$PwzJeWh2SPM}b7rL}fKA zcK)7~%ApM~(W*=uJps71CCm{-Kqk&s7=m*EWh7@O&gHDO!l~6f|CN|4ee* zap}+OnJT0McW@{pvb}qR;uT#b`OmBT$c$d>e-+3(Ci{l@13(oI=+@G{VPL8SMg|6VpV1{jP=9>%V_z6GfI&a z;y+7~3H&YJ=?CxmG(LT+-J5e(SoZaGk*&KxFYKA;q>X3(d3%YTy4fH>%TAc-YEY`f znya_@^71SUmIwK+$6=fG8k$6~|yF?a+yP`Lq|Jsps)NvH9lkE|t{v_WL6u zg*AVEpFLDW_VxZ&jM)q?RqnJdS_qV|?Bd;&Biq@prM$nh>Wg4HkRAALUhFAJD#1!*8}Iaxr$`?2M(O34X;nfDne+se#CDQZWwOwZQ8AixfkOZ?G#+)23$r(0 zR&O%36MZaFTP1>fRP{t1Efg?Ab9Xn@Tm~9X27GM&1T^NZ{3sQ&!z5v#+k@ee%wMRU zRbfBsNM0`AMMz(rPk$2kk&QrKcwd1cG;X{`Gt;m@dw$mRQ~MCVl-WkJk-2Zj*yGIV8QpSU{S}@NXn2FT~PAYThL$RxX8~6YDl<%CgV_1|<_&+A61x+IbMn zF_$1F@Xkt%bej-$w5(JN5O>ERt-Qm!nms^tl zMqt=xXBH}Q!|UZh9SngcR`~TgBSRPERZuCw{Im$qUOoH1LtyK|@W?;*0nS=ztfQJqNmS;> z9tsb*B}iAp5V~fq>o;H=xLgENBByaEjI#EZ((2db7ubFVvKraAH6re+bw{k?wdp-* z_cz)_FEV({Vp(a_6&OKfjV8*DbK(k3zG_kK<_htWveWE8n>_h;%zixqwXC4 zcI&kjIF3gYUzIT+>XB>6nGuVN`2ga)&!%$-8(*h+jsrzJ9K`%k9~UG0WsnJv((66V z@nLa%6``Pp)X;YlD_zcEa{l~gm50I28UDcT=a{gciY)D36w#{x%%G@Wf3oOX7z$Rt zTjktA1(GM6_hUD2ENm_ff0TWBM^h&LAIsKio@)e;ZafWHn5{W^=XFI=rY_XcB~bjU z4{IjPUUBJ#z`YCc!w$8`c#qG=>_=bupb`AKzlG?^M(`PxtrF7jyp8a!`Qy5779)|U zri~G`NS?J)up)wesHilQp+`Q0D;2G=>OC_yR4V_H(25)mK++vmF~)@mIl;ue+$5*n zE6qEJ&Q=*@Z4|pXLxd^@KK-}0W&*ws=UtUtyJgtdD z7HjISzo!p$is++g=$v4|ofRD4BJQ|s<>k`MHX3>|Es!TfuAeU`05RDo>-~f1x8(n9 ztnIwFB*4E4#Ygk>EKh@pj9tWZEV+m%EaTNlyUvAKQ%3}Nnt$j573UA=jA46zcz3a% z&*?5-LLdl&iTI7z_M@d99n#|Icm;$h%reH67{mkg@=*?G3x47F&#H=M(EI7v5SU;E z2+kWRX0bLEl})qPSQ>sU?g`AOIuL>=$%Oc^EZlQ`X&(&~$b({r74Sr4;|lJ76+fOk zonu|QU_ZT)e(e;_a7I(uo+}=lmf+L|Ii@3AA1m0c(Th zKPjzPcKeM`sBf}n*X9mV!vvat1c5h;!hyC9E=d_sXWea?!Qdd&s>3@K*)Zq#5(egrb7;a(W?d6W0Nrfzc*i4x>E?M}t(?^1XGwf^D{T5#Q07y0WedtFa|S{Hpr z*+no|N*7A|^GsxVC=x~AJ#N*}{hng=XNQQBR(*HeQ%~QGnBT$y5$cUq#0oNlMvjDn6D$boN-utvPhhiRR{0j zr%t%=3d=41T_|2{A1D7UicF>9pgqr(ATxLQE?yS`-j7s7 zNB2cIY7-hyPy+kDpJGgwf>L=-=?_|897h*46U%Pc&TvsGaEbD>te&PGww5;J9!l;_ zQ}~NfO2$gvx|)S8cKx0QPb8zrQ9kib9$A%DX+O-m3HXk~!tMg;fU79C3@*Zg46~Rt za-xpY+JL?G&!F3CN9()vYc|9 zcILOTutgSTQy*L2Le=)9pFwDoo;l`s3JCG+kDqx{^Y#@<^WW|o?>6HImc&11uT^Hq zpqo_V&>GV>k=YIV2HLV_p^2ev;3%NteZF$bTfp^x`cApe*w|oq+-H`HP=PSNwa_1C z`Z0C?e)E!Aitg;-HFj7e-|znVrzYS4VuvH>V_X$DWS3qkcP~Er*&5$Sx9Gze@C5Dz z|3*##*5G=sMsoIkJL+mY8VLpS``ltB;Y0|wF&s^I%E}!%M4Y=G1ZdYeN)1>dIhY1q zzl^bHsl-9MJ|_!gKL+usdlsSq}S!&m> zWw_(r`09o=V^TuKZ<)N;){oaaS*i9y$Ofqxj{$$KQ@=mKIZb)MVEX-HB9Z*lHijsj zE(M6?RnK!L1&)wbDvrfp`aOvRWWyA{e-Z}^1d&4%A`)cTAGE!?odG6-*D33>46e!Q zTm2FoOtU2C!cCL#ijsBNcS#X|#%X-}Y@ZMIFvr<(MW-nXr9ht+7yWM}`~L$`(t(#X z^=Z_~0ymM!2nl`^xw)i@K;pEWs@GUhSO+V!=1&q7bg!2 znl8`i{Kv0dwRden`o{f9I*8$weRe{#**^HtN_+FP?)yZ}I<<;l5@x#_6F58n7LMTl z@Fp8vzo#Ck?5cLR=Qc>!v-ix0?uLjeRgVlb9x%>UbBCViQN^-56@(=#{_LyKTqkCx z>P=0(k#ihA7l-v2ee6gdovwIk4}D@p2P*THOy;`-qV2uh3BPt7K^VyJEYh%S%1apC zK`hMrY@m zB)T{K?7Uhg-reD^zN0PZvswR$WMs>yBK^5vH+7h5ck#g_9hdG*=l=4vQftepje%d* zw;W`4rYy-oy$#ED!UV1Tol=%|&Q+kCe#ZtEBhu~>$xLh%?C1V>o|NC`0YtLtlno`X zHZSg2YVH`~xOaaZye+Sd@^2#fdgjA=aeitH`QVo|6F{F0ap`)ye(u0HIKnb@=EKV& zvJbz^G??bmtvU2!bu^Lg{Rb`bpaAuiMsXzWn^|#NZraQ2VEi-h7$m*uNE0gInmYSd z>TbPr^UKmK9vzKjiS_MpVwBl;)^p%a>~c#PSgj*#p4R#8GC9UA{a~y1F%lb034Fsp zAF4qDP$kCuGGN?-YX|8q;9%>@&dM;y?#*4_X(Rd!rgUfgq|D|XgBO5Fo9lfI zY*a9_fT^ci_-(|aKca6Lta~@bKz3}D%hgFmYSA3&Z)VS2jQWAd{~Q}~jMCQ1%S+m$ z3Zc<^vFs>sSaB(Eb~ z?^H8B_~bVtzOs}BdDCTi!9jsl!U?WpEK1LPsGbiWFJ`GW*Biv4KO$aKaP-qS`d5_>A~(}_ z$3SJil0UvfM2lvXaP2I7W-7e;(!F#du88qKpWne#M2n3Q)g}d*0Ae)aA!M?iD-;iy zyQs2P- zVR=<0;_iP}WWtA&qh^xvjT?r3EV`Ve$=z~Lw;>2M(FG}QzN=q`1v<5B5H?!1%~0-h z8E3z4E3@Dd`J}8Mu4)}k202ET&SGJ?lcOeijby+b;Fs_y_rq_7r&5EW-*{XBt*)jh z!|ej{eK^eh2xk7hEoZVxt_jHajVmdQT2#}h5Q3~!s^ya|_A!m6020ppB3FVYo2~Jz zOrprNSsj>A;g|?CN+8V5U+mYDn&h0)Uy17%1S+MIP&H%&-bU{GZ#HS@8r55! zt5R0Fy`=EDX^+VgBj!J7=~me|3$s}_;XL#icZlhD4hGBFHIjH<_~82Okj1+fcZzJ> z{Y+<$_mhayDJ2vl9!+hBU+sTi3SOB0!1I zPbJ3Ho;fiSOPA2cZnabQwBkFeiqE;o?YzUm`vjUA|I! zGr0Mzo?=>5xj))IbKnohM>!X3KYtf_z=ExNn78Hlh`|6~jtd-0`#y1CEcC?9Ps~*3 zH~#7t73L}#<(#p#_6tY=bqaVqYdr&mS7egu4GAQU=W~5-q0gxA0%gN6fs$DQpw3k| zPwSY!&Qe@C5uA#N{JjWnqlmOip^HX%1p*F$vt)DfJ~D|0vIBniGnkrTNY+G`Bym}7;tJwvSfPLyBCR< zU~1Sr`g6q1Uh2#pl~hja3R1n-xmyTWi3ks8Kp{eLtUYZuAwZ4 z-X8ce;-948_Z;ktYBlFeVP7}mFXrW&yAq{$!(LAB&cIsfp%Lkn7c2Z;t%`Iqp`_J~ zrZ6Bh4*-!DDc|bUqMsZQN|xtfaQ*Ff_{Re`q~9NI@D_cm1J!A`M&IJ1S81LC-{g>c6 z!b|Q26Vannf9uDFOO~x(`w7#K#ycJZKIihP_xvx4?xmBJpnBZB$Von*Ru?1Z0pK_q zzJ$t#r&^YOJ`a|rjA0!zXsN$zuvg8@T&08UCfKo`zE zk8co}88RZAjwQ@k3K}N(2Vgo3;v{$S=?7**o|5w@@os{X&Q(i|*4+|*bk-ZQ9)cFR zR_~-2pe?ESnbs=-O4{l7W63jqCNcL8m%{Q1FO!&6q7_;FL>+o83}W;yJXmY9yjthB zfnH1-$Df!hq_f|k%Fb$|(bkxW4@>(@FTKs(0QCf`J|WO8w%$T}XcmbWF}_fm%SCC}$o5b)x~jFb0=oii;NBo1?Z1gk*T!xuq7 zy6^0=kN$F4(uoBF_?{IB-3F{c>PF@ZNxngnRb*we^xqGBs8mWLTw(f&9>b=5AHilo~F!5N2D%Sw-CVk^OvSn9JP_Mghk3vUzrGsz{5Dk_y;mr zq2s&dtZoInH*PdzUQ#EHsg*c#ST!4EO!;y@1XUg1>7qvp|AXLKNjtfgq@4D2_jGTO z>*%q+~Kq zp-RicS&FT(dq6CEK#;i1UmVCGY$9IV2is*Izd!)6Lv~t<6>aiyP$&_qP|;KUMx^Bn zb|)pI_N+_@TX(abuh9|Kl4{Job1oFWopu2{z+0*sy49>s3NVs zZAX$_`4kr?;K3OD>i{YGN(kXLYcI$0CZ0Ta&VL+v!D(g{e2>9a8~`&N8|PEA4-eTz z*{7tBdGu#XD==a%lg&CAmCOAZ8B+n%sp+rs1=Fo3zCd%PYbw8+v>1Uc(+l!S@aF-H z3<0;)KgcTRRoV%trsegQbbzA0Z!0utEbk8qhOG;lG@6P20>+gV*Ba9Ih4q&>*i;$Q zwR$bfwKr7-l=qd6#E5RON@%=xPpu}pY(JAP18Vq7lW#iz;}G0+NxUqLX1f*)^y(UO zO}Vk2>;J!qRIU4STW?he+)!nT=CVWyuA|6?9@&r$WB-``Z~wP$hjNqA*<4eB-V_mbxHz6JPbuA`qCdc;_!;?f0+R}~Z#4AT~?$+Nbcq|hUq zQ}+)F>yM<_t($MAn0#@X4x8Z`BY#**Y3SQm0bNY(-R>WEi5z0neVBlP1dK55U(!D_sUxZYaOzX^M zo!4U;e%o~1*RDc)Rt?jMZ4Opqg1VTN`PQxou3Z^>s9Z+&-{GswQI)XTkQWb znC&t4jK&QA3A=Npd5k+!Z|9LCC(_x7;OEdTa54|I!Gx9WRDOj67>i2B5d_sMv{Fqc zFqm6`rPFAy?P@x{{h6@nW<=p6j#IV62e^0&#L}d2x7aun8PoXTiL3XC;)^0!!(xlGsWorgJ5-hpWU~+!%9NsV8iTfd3@(0ZGJy>Lf>J6GTg+?*hh(9KFmZUe zL(6Y5_vz$le8xjcu$uMlbZ)|m_Qp}H=^P(b?&B#kx@0M`F!ZTkR}?M8s`4+RnZ4@n zRmg=&c~{*MS{Il5bR!96sk)O*d3Et{*BGj~ZG+K3-vfVC`!ecQ74`nq0QvVe)rP-D ztLWFY#}MB4iA2<@bF{NLZzp1N>6pG?E!uC_An+QiN|>*31u?VuS-PV zXs=U+!B%voWtN#6Kf9Y1uf`A3pCOJQ{9z5eLOpK^jp-%c%RsHrfj0c5T;}SUrMtMm zHTMZopogEM2*1Jf)Kdw!kc;}>yiolr3(UL*8t^6`1^^;<&>7SibD#k z@e1zleyq^0I^mMZl&f2eIg@%O-|6&R+YIzPmUCS?%C+#-5Y+x^77CPz!j*WeqDOc> z6%EBY^i)48AT0hsIcf^yFYy56?uExoS>pGJ)R|DPj^N!AP_EdI&eVH~bovsn+d@#i z!B7Uv9d{&<)6u4@B_;c}(rj=ScvbbCJJCre^i*J_!y` zhe{%}5vsXHu6{)kF9-AnmqHUzz;-NImp_I&v0iQdL^)(Z#FJUl_osZyrpU zJB=Hi)N<#@QCse&$b{;XtY+59qim+Ovg7w7Mel)uQKp4VRD}@^YrTY$#E7Lebq@32 zgd*)-F~02zjEj8$SH>idZp^jAKo7m4&`M?otIV`)#JM+nv|ZTvK5Nx;fDTM22;b&M zOY;w)f?ThBOjqeyVcHr&$~By5k9@Oja)*ejCO&qBAHxJY+yl=cfMHnlGf8+5_U?zb zdMmCUBI@C;=YXE)B?UY)l=(3o__@fp4Urj52J5*HqRpBaO^zH2w6~({h;Qp)101Ld zS-iA)DNTYJtOHnH42P}56!y3GS3VUnpUbhH<}-^A66gVrL^ZGHCzvE@B(4Nw`ac<& zD&}*4?;HpGhC?X%)IoBLe-?@h1n3+?GkXY>DN z8@;Jv0*B2F%|iu_XH0ME1?zJG$tYb3dVWyQ9MDeTpN3jMP;S}2?IWmLvd5zREk7y6 zIo9TWCIQk_ElDIVrP#F;RuiZ-4rOz1?oB61_5uYZd!9={051$z5=W>LyN<5rno^~F zM*;~D|MlRlSY_B68Sg>sX{*qHo9%7BH_%!1HQ=eu=Q2W}1Y`iE25v?t%R&9V>XFE& zlU$j>k{xbgvq4d7lkYty>wUJ6+kozBU!Bp+3R5Tq>`)2TbooDO66JExm3K_F$Q;&E z(8EuxqoA!$MuPqPWHkr~>+}$S-(nD_n)Z)84Yzdyc_{t1!}7h^Ep<4S&Ly3CAQvQu zvc@n(TyrZ0V};G%^K-%fei5L@dP*d6q{QmA6V{wXVlmBJF=w*4Mh1leJ_Mqk+JJ~5(>-B2n`^PhV>|Z z0Dws5H`sDm;pEtI30-gj;V2Pq!)A_M-uf;(<~X+M`Z(N{9Zk8t@I8v~=&4H!)hqq& zh@8nWz*Vj_T~eTJedszpy5I1yJP9C%<#JcF(I-!BB*$!H+It0hh1iv&`^3z)H=4Pr zkqrR)vq(EsaH~R}#IBPci2f{}#L*Vc@c|A%L4ae|#eHwda#Z1@UiKhC`Q+$FNvEWk zv}U{y9ec{uc`Y^-ZY8}Oys67(#{E^hI?u@Us!Xn9vO>aP112d*cTqDb5<}tYYQ~n; z>y|~8s1}MluEk!tr7n&4rx2w!Vvzpth$+{=Wz!;{b{lImHq*EmSM%D6XaH?<3kkjK z%*@Lde=4Y+6oS$9?5ySmx<5=(J*&eu;ddTHcWwClPO~f?I$gxPGwM|{T!fWRKV7ay z1ly&sC)gbAf9F78c-VEPdVZ{I%uq8vy|M|nPzoW$mAs8HSfmPX%JqH;dXZwd8b38T z#lLl`V}f151PhfgX;+Ohg%b{l?=>@BL>I;&wOq{m&S22qib`I6Hc+{pnl^XZ1Fi%c zcUQZAcl%y4?|q%tn+^4pDQ*k3nPV~KUWy3z-Q<$3aLcC5 z)fqYc?Ztf$17b6T!-1`kV^5xDri5VRdx=~JNH%)_8_gT7c)ROYpM*xI35}$|CRo18 zv0iC#RLpyr*pq$LSe7^ia+u3w1acdY&)FEiD^isp>C`7z2EL80F#Q6nrR+r8s(gBz zWT4q5JX_r(E9*%gAz!5jPe}Kr-1~O*V3px3sgINd=fHK-^$*y@r;NEbn5nYM!RAj3 z{|Dd6u`@7sv1P13c|J(|TNpnH6huq&3UR;-O4#_};I?;lc+*5?V*5wQ_qp;nW_#@6 ztgC`;=5UxK0I@~8PGhbpxYpq5_;i^MdZ>}xH|`r;Un zC)pUASn>~KAfOuF@Nrnp4?_J7y>> z-cN&w${w$Zf;Aq33YoAH%U54-Xz6t@6}J5BWSJJ@KXj4#}BUz$LepAi#C)nqd+_Ied$77f$qk`D{sR) zejrlNys;*BIF|J$1>(I6)~o?upZ?u)(;dqR+AZ1*RRV5))d~9PgqnuV)V!qNkID4` z^Ok7fx|Zm^U?RpD;(#=TfGO7DN6$y?sp?4yK8||`$3}-()3sA06Wb*QKTyuN=l%^Fu;1?MUK!W<05$)3YkWu`gk1)D2aolvP|Q?GkptuF8cKXuOX(F%AAa8t%o4+nASg zVg$*a150BrL`eej6 z+dk1)8Xq&kG*a&S^R|Tr?2xN;&I09u*p+s&vc^O7u&Di%k~e+GmTj%g4;#GbY}duL zBv$KFN*Z}k#6M#OgCUGGj%3w651HSoAu#zXXT-?*2Srv)MH>y3du-AxwN3d;(||_S znRjVD(Nw&j8CLUbgeml*`LR)7D0eGPq}^h_phvNsBD#uWn1KFZU5rXE0)C5-)>sq& z2p8~*%`j8_ZN_jSQQu}F(bEvv&qp}yKq@^?0zHoB*qvj3*BVUUWMg8BW7=&3U5nBE zV*OjCi+x!c@-Qo$mvsE04EpvnoOo|PkaxnKWC^^j!u5bqxD-ez3;}KrK>@-;K$fhs z^xo7H=vPjyMCklw&8K#fh79maEX;#WOsm2u>@iX#Fb044%YU`W=7}2mpMmhfKl`w<`%$&Ixi88_DqZ@7x5^VP#0cWuQPR`9!)|;Xu`4Ed!M} z79+4rib8-t9415rgao!xAjKaid3_8&NkjpZ_^N>eR~+vz=5(OKRvc@SNy+mW#t+It zU)U}NpGY5_)a3&7Bf(i;F7LT9GjqUUX$ucR-SGMDo^jSVFW+QolQOP7X=mr=fAMW> zlcTpG@WOxR;$m9lQIEH}io8l+#t;=n&L4lR2q`J~p3$AbvBBgw@88xl7dnO>7VSPG zz|~i}tcCI3V~3~|6$|9+HZ6wzEGd-`(eV|*3d_HJd^9~|3h{7Ie$?bn$ih+p&xxko zSL7+YRCcS^ZD`JUE~~xtsim%!!u}CQq3W9$;SRg8PzR{~RxSK{uf2iYDLW>IT+kx+ z)2F1fWrv8G;Vl-h>P#&hJ3s|1-oD#8=PXY*<*r=EWhke!Nv{@C=E+id1N zyi0d9qsjPfygykzi13)Y%tM};-lTjy+0gbL1$%Ay@J@Yh7;4$+%83i?j^r{~x6yw8 zrd1sG7yVS_q>`q=p|Fc=l~3H1avEl150$Os?QL|U@0!9B{E-GrhptK*t{qrSH>1Vm(@0)lko2oVA4?(UF~&VkZB5D{tV4(ZV`Qc}7bq@_Eh z!}s?0ywB(J{5#n0b6?l#^F8Mv3g|PZJo)L2m++pKoWoSkut`4J7Nd#lvn~kAH-k_H zJQJwWfNEk&R}DX2@N}Hl9Mx;r4?>O!n2k^73sImf5+Y}98^-OLk|1VV@@B^Asx<MH8+l8pQVFb_qw6Bqi(kk`?bJ^_SAz^v%{_Ur$ z)^swH+wKjFH&jG(m9u?(luU}6%q7m~k}yud+d}!1UB9|&rN#}q61jh}f#C+Q8`0KB z_4s=vCS^MQi@L0f4GiH{y!}Be-zc)36Mufh7RHJHoLYQeg@|TD0)DmD91Z*1aRghc zoA`R(GR5x2sBkKN$C&v{wMA>Px3TJ4^FdXnoB1H_HKL%JsJha)M4!6$N+dxW&Yk;> zsBjVSl0I&V6pWIKncFz`RY(?xTJM+V-5#fDlh8+aIku!>1D8_FTlm5_eTu8=Xtsg1Q7Zm?eC3#w zZAS#ML8FUw&J;W~y%18@cx~NhuWF}5{CeS`ZYEkwj=8pSK3>XN!jVVJ3J9wc@VV01 zK}=IF-kE8qCFEZu;cgmb^1|oWrZY5k1n7nM^%_n+jFGOFagrK48*-(^)$u_bQMqvL zXIULSF={Uj*5XFH%yIjF%x`E40KDRpg~kjtSsgNAA~X$Sai%v<($;#8QS&ZA=Idk^ zH+mntK%t(QIbX`!*0$8er$n)$q-IXe7NZYQ`;2sCHlSub56<(98&$&HSp$*K&iJVR zOy3%fIU7;XH!NR*7r=ZfXKPwrFh)oL&bc88hBY!f_vOI zW1kzMW@BH>ZC=ipePzR&?nVg|Rw!ek0ZI4lMepS=y&r&!WAKdKZV!{8!B=PXZQfnlnw{ zEyt(;^<6W^N;;}PB0(xL;^cBAb@=W*H)qc8N_2mLlL5)yrc+b%Xr_WL1W`%NIg{cV zk(gG>ioIPA0M9rl*L|7%V$B5Uf|8S4yeGtt)D3hd@~X!+$#6<0&kKw;G03Z$@$sNZ z>kRG@e1P1h6Gd|1uBtv|5IXJIqB=FrxEWaZ@KS&xQtY>rEu1#cLm;VRU=cx zlmx_3MFNtb8?z=1Y$mkf>X)F}sZw~-WySgRwsl%gU8w~9p~>D~(Xs*+OZ-qwhFftY z039_%criI(7tg8mx%=H9PN!YGl&pxL+;ehDt@or;WlDs?M*%aYVdh_$2?1_T>-?dv zSXXq#B^qe;R7&@0t`M=EbK=#vVKRgERaH{Q4BI#rIRPWOn3;v7WF=G6VtLU9R)VGx zdBzV>?hRwvKP4`|Bbsyvc*7YhC_N47=e4<3R3~gy)x5Gq=n!O2C1mox61#UL?oq7= z;EWbn&t=v$qsAS9MPDgNoo*kH;adb44_ZxL|e_Ce$M9T z^FF8;wR=h@It9T<&6-ErFFPB<->|4OHzdzkKn+Yw_7oq~^M;U34SH+Ax> z)$3VY=mm-CQ|vC&e9{=*@44p?|KM#nSR^M=>51^4FdGdoew2?`)GNJbEPV~lr8L8l z&~>hqx09NjiaVCfit1uA{BqxnQzb`vLkKf)xcLU=*}jL{5Lo!b1k!Q?VYQ7|Wj8zz zKvQI|eb*Rccn7?7QKP?QpknUx-xc$5OyLyLhD?dZv8n+ik+jn_N@#3enubAgCR&6S zB3pr5v0hk1P%(f>M53!Onh$kDIwngazJ#B;)3K1S$504PQ6g*)o+BIT{NnyXQgJ8sOKpioq7)2hK7@kHS7)^B^BTG&>|IXF43yt)eRQBE|9EG3KlnLT)!YL#TTbZ+C zRmEfkBIZ7rg#B)Awa8N$dS_&7KBhZWnBIZl5289@1+8nylZVeXN0@Kj_$$BdwfNd- z`#Oywov|3b&BYK~30CCg`FdhV#qd(0As^FyI^xt}hOg z^gn*>SHRaxL*Xd)O|6|by!%rD6BH}ZE*V5}@YOjUnw5_pdaU;QYYh)` zZZFqknqd;ER2%yh)t(ex_Lu9J6z}QM@<3MAvW#Chors@VKY13T8!%Bpbp&a{eEC@V zJ!!S&v3EBl9uTSTbB0wVtW=I=NvqiJN$IkA6?_cK$%!0?+Euq)(`aKIBN?;(cRZ_= zO+mB}_B49Yt(Un~KQ-LN{%A&;3KQw+ZD8|;NGPKZad|HMk&{yut%(Mcfzi(Ke7Oqc z9}I)6XU@>3V25i@gU7na;;);*c;Im)E+5~(?To{4yAMTf)=~XvJO_=yq9vFFn1<)R z|CuIby2}b3hd~5=10GLCnsbKFjmlvE{yrSQ(f6I{_^kuZ%&IS;V@4qh zb*#I8g2D>IwHlgAFVc$NWR@IQ!Jgaqc+6L0?+FaZU|#bop$~PUK#(lDG=@b<;NL`F zz@(TgQ4{Zpf`c|R*KQ(is-6;hzx&RMTIw8!3ZJ95qbjWSHPha zeYaOo+CBUkn!^vJ3j-*fqt86Tq{@kbK5~pS2Oi+fdS(@WJWE_xATwsYCoMD^f&5|p zM3-p^D8kphbL0z`q$)=Da^=QO?F-08MVk>y>uzDDe&9ywa?nvx!pcoWrCUir?R3F_ zR=k`r{Uy55jR6VD9>L{}?#E74P{&xlG8~_N19sDed313hte!sBS=OM;5gD-=zrf^& zzEF&z!jo)GGL}sLEZgeypbL0uTnX4s*f<4lG=h!xF%AhsHj~^P%CWh1)px(1cT<%J zC&Ry@bkGgEXLj`uc0t^bMG|)E4mnQ_6XVnY;YfYf9~vII9Tx)Xt-4{sJ`!@u_%yPQ z@L&NJ8zaXdJUn1%mP+C^K+uAUw8+8f9m0wfgM|H0jP;9-^ims0jn5!SxO4?2Zp+hH z)pEyIU;@?&)zL(|K?uEYEb3}@ph&ZabP2=OG%~RU`PNyyK|)YwSl;*y{^wGh8Hvuq&=6VJO>hs1dYsL7 zll)}0%^(pXO+KLYxzbvJq%ec#7op>e&tHcz$p*)$9tUO;$?_=*7zGv%V-DL)O6Ge` z6C){adg*WoBek8^u4gTc9{^hkM}m+pp@W3k)pI|1x1W?diHGm#iUE^>GF`=eHpwoq z6B{f=>8m6zU%<`A13B6~fBj<|>#Z-TZis?Y%=bI5hbn&ta==#%c*8mm`Z!kYkM@M8Y))Z7B zm8^k_l7wFOX%4uFm(r>_D>fL(NJ~t)H-gtWgwY_`sAf+Tdk9mBr&xbPaIuc@!AOXM zYy;yszn_4+Z4$iGSJ-2kvKM&kbz%3bI*x;|Q9n(W~!2k#CL8qZVZRi@B@8HW>p-;~00 zF=>(bK|(POUTKl3yD-XF{Iyt4IW`yZfg9DU)`G#@9<}Q%Y3nrni8v+8iX)E{{Jr^+ z$YHDlCvim~$J@wF4F4PNZalmb|J5|_5@doJQr_L}nzS!R)B4NR0IwT7~qefVkYGN4wy7z#Q=sz)N+ zim5iX_G1PFxOKyI#^$P%6tEXU_s8B;3{{CY1NGFlkFq4(;Yl4X{mM^@>>ct%_Q9r` z7wW&Ae!sRYY2=O#qZK|zSB9xqbCXIAWXo_omzJ^~UJXuEGzIDZthEpo1E6EC6|w1m ziIOsaS7UMXo@pjNXwN2I!zgl&=4gYxN~)d?dI5gb*Y2)i*;T1a+L7)!0|1&1S6tg3EB!an`Dx@B%Ktd&WtP}Na>_u zOzo;b&J`XC7&u1u(bUHw5IJ!%rAIF>j){>bUkZbv&Zcjb?7-Xbs*%&Trh%LRfdJ8C z*57jp5P^W#Koyn~GlLsA%8=4Eu-a}3N>re&O~*H(TyTB)IYcVU>rGmhCiUG&cB;iV zl(kO{I9ZPuC5jfWvI21)Ta8->1kyzy3x~ah_!K^MSPDtoj_cAuC>WZ91-^!1Z+O9b zAwx{C9;t7b{ckZX7F=kA&&PFN1c~X9go_Omr&3epRSaWGeS!nSewkw7FtkFk<7wAv8O7d_RPw^Dl4CX9L)%Dp;rml$sPY2 zhyhWVZ+pOjZqQ%SPSl~sv7fFFRAlKs>h|~Fx8BDk3GBFizt%h-fbz>WD~ki!nP?B< zC3IyDLVLprXx@4?j`RgugM#N=s9$0d)ftPf=$i6`vgVq3vtrl|FT%~3lZ?aE#e%0A z;5o1#Lj6Vc(JaA&bUKJ!RL*EJPI{Q>g^H)dz+*L#&JX?GN|RL8p}Nejx|_wzwXPm= zX{|AQOlk?)>>M?<4@O)W2BfCZs!&kTm6T=(VY|S_=XRS$1O7?ce7(46H&h9n{^Igd z?;*(2VMA)00~f|&^sF-aAXzc?l8DM^EpTiU{Rp(7gzhFWm1(uox0m1edJfk^Q60l% z>q|6ptHAyVOy`?) zy+8g8Px@S(L+OFwM{1$vKd?n6OwGCzVzgd6XS1yTNbt;fOH0( z_*7U69eorRnl{>PSAUAtH|OQB**|eEk&}IHo{AIs+%#0N?fP|Y ztl<_xh~D$u>QcJXjx7!hN#>~h03RCF*9=?4q&v@_@1JM^hNR8|Qh5_!40 zB3@SJlK3FF+#msgFTtP_`x)f=dWnX9@HsK6xL`RBA5@Q3z5u5FF&O73ODEwI4HddVUzBI&d$vNdxyZ^vRk{yBp{wS~Z(h&t znfg6!5uXgdMdT{C4mH_Bo%fiAU^u6c(}$@Ec0xy69}VTOMS~6ojP+N`-#>N z-J|W~WY;XL7E*3)*oZ)esc)!eE2vf(%ZSLC8A|hQ(gx}H3xXkmY-Wt_W zf^u(s@NV-W^)eDuMn+y_%?CwegBIg&z!(-9@~y6c7ua=?m>3YkcBn13I~$8<0H?Du%F$q{=Ib}U z9!PQa%44vTm~~Nu1vop_6~1NB=L?YnHn{(y5_>(H@CJ;zy7CE!*SO6bI&a>V3zg{b z);z~1c_$&#^_;o@T~bq8mO{X$3GUm( zxww6%+W=y?5kx}k8A-N7P_8DIroK>2rkP7h<2ERJ3xo zWy6trZ^+5>KwBC>1vS6=ecKIo&v|`T9Gu=X_Th%kNL?12(2rp}7w9d3Hw#2A?grW5 z&k#B$;@_$w3NrBbDq3~s)-jg4AWeZ%Rf*26M$0A9DED@OIc*9ymbOK zXJ~~jV<$}M&WfHgRA>d_pRgLItoH!F>@{YQLk^BHy(7t@0redT`vD9f@HYMzp^X}9 zXyD<7Rmh=2PyOf8vGxiP-+dCEi;tZmb=g@C)-Zl4uLPZMU|ck0ksB?4Y|$etIrk8e zZZ)UQ6_Z#jjv8LaczNK|#jJ)3FRTf{yPwjhslIudaF%~HR0VQ>!-D;u%LYGgHX zPh3JS(%eBhX$V+WxE%)3-XK;`fEp@RRZYGyuzUCT+|@e#`8A{+I=35iPN1St8VUNn zH>mcK+yV@;Bi7GP_7Zp@iL6W7j0JK*qPr`foWwf{U4KRQ0;_BVeb6du4=R=n2>285 zUo>RlVqbdxZtmHope)FlQhOCy`=X+YVYSD^rwPRTjN&ww zKO@=ta&!S>QYw58F-dh;Ye7*t)SzM_4^8VnrZZ+mLCN>}%%VM9I0e=D4)Lgo=I#;G z+}4LBP9xc>AgHo-eGNB`KxVmyr1`VLs?0};gD%u0f(qGiB44C}4v6G<&DGfn9{qRR z$iD7>swe-IQiQFqv>VqU;J@jSx)&`CR1LIQjm-9k)(w77KzA3Z6&I9VzrXr+fb9>< zy@odp#X+{Cn)fFDe_LJ>f$SGR2J+53<#)gyk8`8e#s1BQhDR5^uMqhD@(-shf%xHq z@~*VzY~CV@R8i%w%rDd8M)jYrpJRwoLLvBHjFH(4C0DT!0X~G@|KqHiK0>b5ZPc# ziqr~&$z@}L`PaOMtml+T?cpv}cS~#qMLvhox2W5yXMtVnf5NHHyJnS5X8bBwQV*`K zXYdoN_?2c38Vqh$(}J6hh(Vy$_c&v^sEj51>H@S{&-MM9Jg)+d z=ErOu7K^+RFl|R?aldR+x*kA-W9}>%_zE@LA=%`EU``GF zk)V%M^8sj`=O7Vt5Ew0K8Z5;H<)Q+~g?13)8N){(#EDvnkkR0vr)=a$VVFUB-$9S4 zuxR`@u?cZRcfg=mk2I)*TSI=PBBpi}D*9+|vzL#8gfZ)`IoJPBOnsiKyt%8A~$OEIzREicpAQV~1dvM|FLk3Fs_6ZEWX!)`0YnWCFe7H@AV!66* zbo1R4{&R@Yx+*Q**-&@B?SFLTnZ9{CXp_zub9q{J0BMc+%g5O@e|KgHI@+IB)@GEi zEgAk@QmD3b<<~;!?|w;nF|T_fDOCR!hfrBQrYy8`&YbHZrMC-lvCqlbH`Iis@ZUt( z$xpu)=i0w{RckR=JSAvpzgzzg*ULp-z2@V3|nCcev~EV>$q6FN+LO{BT!=ad0}h zZBaF2m%6i2)ira|(u@a+q!iRoE1ls^whjBf1N7j{??|1Ewt5tM=z3tiD`*@t=F%x5FgMg0* zsRhO)rQe574}sQ}nDt}SED?|-zuBDwUG8V+2d-?EmQj+IC{2GL0+M3pqMAKC%1fAE z|EkRIYAn5liNTe5cCQ$W>{exOuM%n(ij1?K3o9q&zpNd+*qf5jyzY#dHl(8Pb(#L| zbGyZ4w1!2g+$5s$d7iEIG)7Y(A~n9-NO)3i>FTOm=IB>O27BZ*Lb+7`qU^bO`u+M_ z;=Q)Rohkj{(^2$*{i%UnUySxC6E5X_sj7h%rJrxi$Lo#l;}bJY`y%J~`I|}LV%J9h zE4ON&x-eX_R{bv)pmETxKF%Sd33qHc%a0O7>F1+i*GJ}7iX*z&U39k1XJii~2KDxi z{m8+scT4l&4#p(`{q&NbJ@Q?>Ya24aYt%aYP!YJ@iFk8Y?|ptefa{Ue@14Y+ zwzIV8aw;S5vq_vmwK6VzUoN2AXdvgX*klpwalT1BZ&^}$CO~O443uaCI`ag4-b70M z{G7|Qw6)^0T%dJ|g%J2)A^1T^+-QGiNT^1jrL}R> z!aM0=hcbxJH1+NAHkZv{@8t}be!`x`uj)3_U_KFz^`~YJ?~erSzpnrq zVYf;V;DIFVLtkE;aU_o=^XWEI^zWmG9|sQChVI*ZD? zpK5*fKDA4@nHJ_>ZU(M%`c$!*1U91Qb*Np-x>6gNUaB;0xJ4i1?rNHo<9UCHCJsqv zj*I}bY15lCaccQE_S*hc^NGsk(QonB=flDb(2TqF&i`Ja`RwW~M2Jssm?!(^KOrwJ zib=4mErKc{Z2UUJV7HRPez32TOH6;Wu_3KlBE9t}4yJ zLig9qI&-C&@&BWGu4UxTR*rZ7RhS*C=DFcp8cSCf%CO_@jC6KoZGd|t4-9zv1a5ZO zz}?f8R5;9xl7?x`$zOCYmuubHW*8$QP-4Efor+z(yV-94l<3CIP?-=Wu5z=79QM`s zq?Fw%m&U=``97Yd7ToB}RbRu!I;S2?{TF3`RN9wZEAwbYMCJO@<%nkU1{vlH3w z0N__^LigJk)!AW^hKTsN$zzuEt`ZyCvos^`kYK=)_FYrZZx9YJgb( zr!KgxHeKqO0X5VGO=&Rz?q|;B+dpNotjLwrTBkO%^0kn?+zdXUf69l=mFGD=P2*J=#2p$t0%5J8+nym{cir*_$9+qAVI_j zDFv93QMe25_gw_$?i60HShMdnq8slm1Tl0nX_A0UBfGw~a;bEl^QQC`n4J6!oyc7* zW@B7_$eL5Nw#tqmHBG-i#+tHh`^CU71E@Sn!}K3BF5_74~z131{alh@uZ4v@o*5>)rp~Tkvy*++}bd7#0J2)s` z{$-T@@5)RY0nsHf&A7jMy9pS~18(@t1R_|pf=$`*;DdPBXzg$W@qgNf9w^ybUcA8SzmI}>FVJbffVP7RUA*b zD6=(Bzgx$=NVKKQ_w;7PT>;@RbFXg~RWY#WBen3Si3@{i8)Jj@v?uo*<+akbF+Kc;JQNw^fJ zCwWpyx|N(~;wm8JqV(0!5MU$ocTM)^N61@&%qO09{w~#7jH&>if;qjB&&`xq22kof zO30vTt!?qE5itB{lr#RX`g_zh6X|WcCy5B=JUQvz?d*LE`8XTFwiyIe!Tp(PCmR8c zO(^i^(BB`RvriFV$K9~1m}w{J*3kKp9q0X;t09XDJDjbhxewx3HjP5Sb55GDAINjbpZcq2{DZHi z`f`1k^FD0II=vDJbWW~D1b?OchX3R23Xf&0ky1&EahH=FIPwod9CDRRq!+qJqE{lD zLG!N?x^4e+!Zft6uVS>@iSavqh|5mQg__=;nHtHam4&W1nsbFv+@7CPQ3hY$85yxf zY6nLRMe7^Qb9D*bj5}@U81EJ&l3M_hg?s8B#tnrp$+r&SeLdDYWuGV*)6`5r%dI#sQq;@U+eA@)?%T=3_9HgeD-xCrl)z%Amy^b7P z4rO=v#65)PbGyv2{%6q50g#0HZoD&%eLO#TAKH}^t%JfA^{$vvYA&Ynr*?_Sn)Pq?Qxxt0_?%hQ-6H69xR)}aqEwbz?J=1 zlwWM5qvVaK{3V=-{|>n68^l(CxA7~##^B0=v@>CDN|M|x;t&&ka$#Y-nC0Joi*6o! zoC%Z*{ANIm!>gZG9HN*sw9?qpfCpOgb%KI2{%%BsYWD+9-3EUe{mqF#nygQI-J-%^ zn5UQS`nG@0*p|onFd+l1lkohBzl_B(T3@|nB7$r-0YB_UyF=*a7c14#Z5iNv$lKcU zDGCEiZ&_Q%g@yCOgf92(iw0x3ag#r{TS@|&A~neR=%~nxXdj3{P(QA>PInc`S2y#E z#wXLgmmSz?mxq6Bc(wt7)vv6hq)+!2-!23*CnJ!T`-d4N5z{V0N2_1sudi08+c)uj z-KO3egDNZ+Njz<_kAUVtd?Qo~=0Jfqro{yZjA$ zv+*m#NJUBb@4h|Pc`uK$fe=TqPnT>3vvPXIXWgS^;RC~1dVz8_y9(DaC*0D(4tv*%J-X5HOJFRX@HW`@?P|?dJ zRQFa@P0;UT_Ow&{FB?gL=2G%y7NdL;;Go240`lPPl5gQZQTzAKRIM?~+{u1R%FTYO z=mvTAtYY*%5uH$O^-L^dnUb6C(G?!UR?4ArJg~g?<+!ysa1GBvZjyVU?1v3+>T&y3 ziKJvz_>5pT!Z$!Hyxg0eZ358e)QV|DQRb=Lu`?ThwlCI6FTLxL&+pya&|$t?=_O-_ z;s5>g=`&yzH;VS#O1=_@pi}@AA^=$FtUyOVoObK1xUCe3zt}`OyG$QV=QsfK~{u>RZR=)o;Z{>8;hNrT# zO_@Hp#KxPwE$Vr?h=*}>w`AxP>2o~CFS8vZ+%i)faxA*%^ze#XSU;mFNm^IuW<^?B zlUdlqJ*NDcFEiHDIco8~)4qReG$Z|qT=V5*{#2qv%ayN7gA&6Bfsk8xG0WXSr!MT~ zR{jAr<69r%492cr0d1d!ujOGo>j~A#ciC9q z*f?XO=5((Bj|+rxVfyX*nXAFO#%~ofb4Y`@k4^BEfxoxE@x+f?TD)w-n*RQJ#Oi(X zXW?UgZff4@GBS+*^-{Conc#KNk%;^H>d967+LQFaiL$V3;k%}w{{s}iJ&pgDM>&{} z)?X@_j=g5zH{FLhUP!hc(2LlmORYUD`HPp=Ebg)iJM*%0N-%b!+0rz<%;5u#X+0po z(Hpy+XsT+){hC?wa*2r!S>vWqDgEq2?NdUi_Gu|zGAWJ7A??}gzY0G2*_h)Luvuxp zH*cQTu>K*f`KEB~c1IJHXDKs{efAn1gd!jaN`vNX>jqe1xf~Evg|k^TMAv9StgdS* z$T?ns?a}s(V36^Qz#Y+n4S#{S`l*t!TjIU3qws{!TFCzFQ`qjD&Vr!RPxZrUVHz5G ztGRB=_sViDH4CsA`=72rx@_F5MA&YqiTARkQNCs$liw~|&&3bUE$q6Qzy00t=E?Nu zvy!F}twfkrSO3)kiL0@oL{{9yW0D*}gF(kV?fR5R=-k(l=5ALLJGU2Ongv4obDkqT zcFN0ZI$IVo_E;)p>B*?k1Ku2dL$4QG;R-XOW42ghe=KONRT>W_`6BRWC~|_ zKbY(F_}M%7PO^hC<>bya+zJQV2jbdR75;jmaCUjb)E~WIP;&Qcp$LCFLfn(~$AKbIh!7`gA|X^U~8%MqOOHN?K? zVs||BccZBzF~i`mVMT0`z^a4sg`^(i-y^-&+E$y`*gsqA`tNW(QQ`PanDTQhO`k>) zLI;oTns-V+4Y7WGFVmXNJx5VZul;xRj-e)P2aKCcJ(9gsUc*mYppIwna4@q;mAfGSHn33 z7{hEc{6OX>!D8y8p+bak<7!Z{|7gCHc7Iyck8Zp-{qw(99wy(@JT=%oE1ECW10bme z-3T!F?%|_e^9ubALm82=aQr$e4H(se!rPYF?cVJ(mkeahbB_J!%)_90%Uu`j=f%$- z6lrq4;5cv)haAB7hff<2r3VhKmT6Nr&JK>~(VtUyCbn-k>zW(+>^+?lkX{PbulbXW zNA$A~W1HqFXa6`s?GgkOU;GTh+?<*5u{xr$PA>I0z)n|RASl197jAcR;R4sw8b>PL zS!)(iaO9>WHm*`$pFQU~jlkNQS8@1*zo0TL9L|MX@|A?pQKzU4`>^)?&8MRG`(U>L zr;Gkb0Q~3esE%X38T6otcZ;>c5vVacz+O3u+dJ($zjvd8HaPScO0+>97a zXPQqeXCtie-;&fRmge}@caKp}y2a1(8~7m%GfYJr5rILS2@P3`Ds%k-ZF+gC)lV)+ zWA}%#&L6Zo+B~%knK4UkeZ%+bxRdfA=vwxR&sA$_;}GUo`BaB#2@bm|i?`MC z)MBaThZ|xJ7S6JR7mZozJBzXg^u0>l&t}I(E^64Gj9uYceG~lvGngA0b@fjp-TjXu2>x*ns{V2* zG%0ge+}Cx&jnNAEb3=NuiQ(n4jYnR+OyMt^>3Vc0Fq!#mSf2FWWY<}SA8%)K+@&-# z^z_Ekz)7;$-$8vibYZ0Ps`dS|#>-C&>n)1~_7HddpA3XRe<0W09OWnetjr9hL&Y@) zP0YK#C{L45XkNHTIbNs>))}R@aPUSj;@gJB3zsiwK`Cy>Dk7O-#&gSg*&~J z{uG_a^sN2kEaInLPnNFUV;Fx$XO^f+UGz*zrTibm`0m-o({sN#lS#LR%a#(~ha!tY zfUEJ>&e-oF0c0K+>CZt<2lGKmnZ%v1j>P>?p+ZDR_%z4!mTJQw{P0 zpsU93JsMo`MWM*`fA|@WzPIZXJV5^`{l(0m4HA%&VS2CHRhBf9YMdGXo=fbm(gn)H zt8r*@kOFV*c|9vt@$R@mxmZc`oOw9%Al z6oyR=toG7DkdxaF2P3|DIq{pYmAqFm+!mj z%Jwl8X=a3mgxk=gqxG~yyaf0G4CAq@by$gJ#yToG5Vr9_m~d*=TbDy=*Zu57AwK#h zbxhAiQ>G%D4;S{z2#xZH#WddctjLWGE29T+Re9UCQaH3y+aF(kLAfNl%gCTh%qGiQ z2iIfXP}KfM-+GVQa z!&w${Gv?33bGpJBtZk4dKwDlpfN6{!`#|qD+=EOlX+Rqq8qlqx0{m>iN0aKwz8z<0t62H3ZZzgezbZ z+Z2V&jRr)&u6vHi78`rF>IaH0Hx_pXvz;V`f0C!$cy2NxGmOMOjtdn%zgy8-DAhy! z8AV6M(e|^WmWVs_$8Z2DYQ6&b{R7HPC+bq>0lYwZRe%vXr^w8m7$udYyQhJJxOPz@>O|3Ifg#XyJe*D4T`Q;7dVMS zCLo;}XkZZLMBxTtlOsa{324!3rDdHWXG~Be7)-m=E(xas6~r|MW6u4E&8_a@EVF2f zLISK7=G29=Uw9y0MRktThKf?NS*=@Q!bGwORYM=ujS>^8$d=ebPAI_k6DYQ4)HCIv zll7>Zv%Yf^$U!AiQrD^tu`zcCHFKuK9eNUVp~FG)J64sUU}hKh;rf?=KiEA2ixE7H z;sDl<9K671wn#8yI253!Ii}Z-iO)_=RfeNumwUv|>|U?ev+z67g0fdOF39MOGTPw4zA0G2B6;WsKz zKw|KiDO4A7$#Odd zrlRt#p5_6;_JjP8hZcW2DUKkJyqL?sriX${Yuu&Phw20(&ybH_4?LxRAe-}}W?J_A z^zQDE^5sn9V-u1G-&O*Zu)}ohO&?6;?ydyyfp;>M(u@||vcRBV z;zE{5exM=DxH|w3tWRX7YN-8&l#pYHxl^2oG5cHYJb)mROkng3>@Ji;$uF8MHAtdMZUC1SblqTeUC{-x0fu$0#z}%26a+ z$|4CyqAS|T5F^5i=uw?8UFOvKwf6)ouEv6O>qTWN%hD;7PNyiGl+?(!%)2NEG*$FY z^Nmz6-@uchPADDd2mwJ=PBpP@Vb^s+x|n`yg&qF(T{h{5$hV3HVTh#sJ|%zihYeC= z)3YGmItd_Nhr?fa%=4M{>`^ac6=bnOluCiAWgdk1&fqDzgsaCFwYno#UF=%ohg8O8 zL2NX}JU2ozcug6|&nO#H%8h^!J(^iTs1% z^+tjzpL^#5MSW0dxXLtn=@0s0gxB;1IR|&=0blT%rfzMJ+Z3E)Toh*EfysA5{7Glc z!LLX)#;^TXZK*lQgkhO3U7l}pz?B7-{@aryzQX0xNO2;&C*?*JcG7|x;suuA_JRYK zwsN6IlPa2~VkC_7t6h({GRZ%Sy`|`Wx+`@^c*HdoPC$zfc82av0@E)z`-16>bqm6? z(YZm_1%)r%Y_{%vmm4QWN+~b>ZF)=-zr|y2a%H~o!p?%T?aEOHlH`{H=cF5pk6HoB zTlpg8*3P<2-C3(e)Fk6K{@9`wr5d`s25+i!z3nyW!t@SKMTa!v2%9lTCM8R_5xvNp z&7$x9;oQ1syVi^_(`36$fN#mtmVDQWzp8l1- z@h>4AGdKK@py;4PAO;|)4Y(1@#({ms#qyI}cy8|eQ%$6tu;C~CQ(-Np4#B2!v6DCG zmDGsG;-FxQiYZ`!JqEC6{*8q2JbvnYB1o)gRWrMq!~+!7SC8(M;Ym*p7jasE@Q+w2?y+@52Mf82XzxVoG?{&R@ zhva^q`;5;y=X1{S5Lag7AR75kMwVKoF z7FO>zuunlK1rvxU%)Eyw&(WI~;*k0bQJ8Fpeuo`}Gd}!ZEKt01teR5f1*DoFbOrOW#P#Z?{x&h2PGe1S)}n0@LYZqUo3B%uQB#yp%5hk} zdZAmlXC2)-%@(0M$|&@w{|vCaB?b;EoXi9WIZ>v`XSr}+xW7^9GEM9_Fb zD0|Yx%V}%k>|`bVGHx@$l9A3~p2my8tjIpg$Q@^I>`3qLro@4(sSZ+^qMX3yHUF5Y zF=66-6yv!jME}%NkK>66vW@&LeTF8syx)7c3F~9ZqH);I^?pSkaeVYy)a3s z+kK$}^uic6Rnj*gsFz)HWa1L@$aIr_@T4H1JO`4p$;4dEu?k;gWMCB=y8sHzgJA^w zivW-6h0pmq14^GavHEVBo8H>{g@{Mb=lzZJfhRYdluD0 zt>cB29{O_anojS=)TJ}-u|h=01l~%5pxx}C_<}ktvkvJCLDKBVk1eH4TxM`e;aa(P zlQPyct|${aVR0?#;p z?`2liP_)_Ge@%jmyIwgp-cS)=E}{?8i2ZZ9m5F&A#Hqpsz?k-#s!;g9*SH5IbM6c0 z9-&$uUqAe-)PMSLHkcN7|LT6wMS;Ru(&~(lYCuoX+@<4HS5*g3-0bF9ox@Z}#UiKj z<^hLHGyXtqp!vD9=hqykdeLn)4z|~OB~N%KHV;Xx817vsZ~qH8|9#uxFC*}sxy2iV zmxSFYiEiIel!Us+xUIvWbF^raSj&~r>{95%mIPv*H1UPy{l|$Cy`LZ4_g5dcdFiO! z`J)Gej}1;D%D!6Wmp!Rs`95$q?AhH?weh6B^;y*QKWP_MhBxOSH=VI(BS z&&P>9FgMRHg%20Y3VuH)R?Y-J5Sw$lvY8Aq`B5;G`y1bSE`}Gq8MS&^q~7zHd4C{5}0?_~7PHt9BU z)s84_uJN5wH`AX(b*C~q^wVOC>OY*hKZX2DkmVMgOK|^fNd|NL7!(6~mFxbLeyUmN zkG`k#;UdXe-=`c3it2s+>#c{^5yMFF%&dRUM-9%m)_wkseTadAQ6Za;$R*WT2rXFf z2m00{Q61&7t|X7@A1YU^%T{i*(Or~`?$%h%+`OHhNvD8dMzez#0)wprB|uvo4~pFO z*DI%4a#+hZ=sU*%UkVu=Kyu7cD z9~a)Yv1LgIW?w{T?w;N95C`T=?pY@}oujBapmv;R2(pDv-G+KwD$dVeqO&8#Z4Jzx zQd}n9nthmC(+ufstvE3F&8K-~4@K`08p>8K++_U38#kz&b^M(C{Vi)Tr1_JTs`BU2 zUOe&qkGjc)$5;GcxhIBiM>H|Hl1s@v{xyt@h`h>kc6bDvD9#AZulOazz7XQ^_5RQO z_E~MY78r1i_3E(kHcvvzmkdGNmNe3{oZ`$4iMOo@NRmHx!?eI$uAi$pre=$ynFiNy zmQ#yE6?r^4!f$=rrbKP$>|a(^yMK9;$o1VIMjQ@1|E{`_3+0N~Hx6vJss9>p*!d#P zaNJe3`Xy9qq!9v=;whErMU4`>#bG3%QtBC;z!rAN8CZ;Ngmg#rN;mjTo+nlQM?ny$ zZoBJ9qpq?eC;|+L411|;7biFck)}t;n^C~C_(D!-#D?cv# z8vJj6KXhU!SzV*)M!({Qd}(SuPO<1@`qz2FqIcSZOMI}y(vjKl^oy5X!7G=QrV838 zlaJT*@lm%`(qEsKOzT!W3<;p+`m@nD7mzBYo=|*~J^Y-x!sdEC2;RH-wVA}0Jv2C3 zbb8s2Q{z2ZgUICGzLD1X$)ZtVW{(Y9N}%6vhjjneUX+ufet$W6Nk@cDFoA7O$O)_X z<=*r;cm>yI>TEOZNW>39dHWjIPy%o)z6K3Exas<>L^Q7!?6dN?#PD5J>?Cq8 z;roBboPB*h>4PY1R=R>Z{Ml)iJyHZybl4pp6@UiNRv%pcfuFFQ=VT@aG`!&rjm z#+;ZINxyTkUdF#57V=LJq(>Z-(eC7Utdj` z4Dl=dgF0LT6tW}5N6>F>URSj&7Q2k0fx7Z_hDtX(KVN-ew_^Z1o^|^K7fJuCj(y{82 zX<+d2@!&~Ae%nnS;-Ds=TF-3PFPVhoc-&@@P+b2e00Me85&G(bh!M+a$51skLsmb5 zEkWrLPbhwQWTt^kX8ZNfi>Qh$r8`hj|N8Cgi{`U_SwElOoBmXAv70l#oTBuPhn$W0 zZRv$A#?WA0`QSh6C8*`*s+_8{-J`n1Lo1A7n<&F`Gw(a>_?xhyL2UWM%RN53wY7DT z9A1R=o2ZV6(0>q6PRJDj?e)*+01Gy$D&c+Lj(#DlHdB+6b#9x&$?NB^)3~7Nbd`cy zDXSu67K!n{@x^&U6u%8XdW^7HBvRJ@8k{p|B=I;T{ z1(|H~cdMPcWpLLoi(h7Eah4j0j@zzc@57e<+O+8d4a<(cRPzB|6>fiUU)$_%2mc{q znXdIs(XEVATvUOs@7n);DcIvpBg>u*AMlh zY*+ldArE?eiEFl9>ibWTj$RMvUL<+gS(S0*WH*leoQM+m`fBqXS!xwdr2oCzivIQR zTxqVf*5beQ9%#pCXb8tJO}|?JZ2o%9y&xkkG_;d#s;ADnf`7Uv=Qm6_&_X1^?B?YJ zhf>QM!H^(dnqgXm?6RHLxr={$I>0@6EbzA_Q*c|7;x+-(t4gn!7KI>b#%1U7f%2BW zOU&!OFIbCWrED0Nr7r$V1Ip4jJq-THaqgJ-DvuGfzNKYgwzFTGw2w`zXYx-SNHQ@7cvJ&%zeT*J}usBL2)tG4{j2H{p)Bgeoa);OPS8{BnXTqhGRaRl-8M zbX?!~>p+^n4u1~^&TMvTZZ1Zj=^SO2^c*RUYDGnL@Y~GGbhF}nguiJjm5i+`C_+`Y zuTqKz{Jc1ouHv$thJ76_e=-i!92^~LdF}tOGnQTahbQse z1*pwR>=gxjOB>%$1C28khs;V6SqC(19s-xz_NrLuw2!etqT@OH*SL+hqkM|w2ju35 zhyIk8r5aIr&<7hM+_;UZO>Vl(YEkSQWu>vYi;~DnpoQ}~0~wWj&u+r-dxUno?T(pK z@bUG;snul^1-L5IyVokG9`fXhBxD!}u0Vj1$q}JBP*~0jJv|G2r|7%J$mnP1XwC#WJ!dc>TqmqJF> ztO~p8n$5m+zE{hroZ6KmE8fgkKm3!q*{A4NNUMVv2JE-HwUYcx#Tz1?GdaL;m@^~` z#h$n_T+#kaur+Ql{CYW;8Ia0}Q72ihNJT9g>s^(bS52+rc!tlRDry!(q2`{|oK>Eo zA%KZKe#M?!C(`&22i)V{9Ao;^d_9ITr9|&Lj$8Y@OL0MFA3F1q?<=Q}$t1>KbJ^~K z!GJ$f%;B%}4JZ7!bg4SIGnC|@p^(soljXEspz)fgKE%1i?LaT4r;kKB=%PqEDoCd5 z#>D=eWhj)#Ub?ng=vT(Iw0F`m?z$hn6jV7nJilv<&A-_K^nE#r(d9^_Y(OEMnDPei zAb$8qU(AAG#=TxA;%zd|_FvEJY5v7ro+Z2oX52OP&VXNAF6!{l?&cBqQQ@vWe)~WE zJ*B>W7MQF?;H&p$`)NR83L6-2H*p?%Bmv*r603TTgu_TF!&%NN-HL2(@Dz(&OQ+SF z%}|}3)PdC$#U29q5v4}Sk)mM`=}fIHbF@Lg!>XFgKa+zjfx*vX{Q^&Jq`S9|@93qu zN(98DP+5t|fsUzHc%ZqH`?F!KT1IFukq-SPJ zf2ADzzwf&FO>2%ob0YvUuJK8Ldj=COKl0jK)~z^={dbY$WnXr*a2q^5c|G(5y)ya^ zm1|v+oP+;#VIVDax(oMXes^YQNl=-FY_cdBy&?@*FCawJxtDH+Fu0I36j!eK{d9C= z&+fi?1JMDg1W?WYy)O3ra{?xNMG(_ofJt`qn<~rWB7+vWRBaxWo2lf2+G_!|41aZ+ z@nhOsMCA5aO*@Tvc1fRmt6q)m-nmC48-v^!X~_-1xB;AZ!lJ^nA5YDfK0^lcf2z4} z`6=p)!wVvord(vpneDUA=sB&N0FB!YieBOt-t5t4iqWun|8OUP{RSp2MJ;)_)AI0F zRiyc6&G9Y;?Hb#i=h*xMq!-;V?X-VHS*Y#gNYZLN(G~zUYwvvZzG^=*|1gcL0*3}Y zS82DIe+2z{vAY|PLlxc`v9y8ru!MX+yufX4yFd6MbM~5%E4gZ5eXfW#7OOLT!Lt4ko0GTxFkeI&n9xj9UYJu z5XPc&-8X4yg=@HiZUwaT_KWm4OpI{k?temgGqXcve_K7XAgGB7ok6I84)Y+_f7u8R z_w>a`yDZ&ZnWGaoZuDyT1XTq+QnsUmhMkG@+1Q zwma-2g0QkdtheOD(~y%ihySw7RB(6*YYpe0>$ge@^ZM|DHP8pHMJj=br zuJmc>!xZJ(+TK;5qPDEND+d^#_@~E6PeFPu_k_?YLu7i}JzMQ(7v!_3tJnI5iQwsF zU-hbIV{X^aj*18h@GwoN2nW9Ml-^Q_Y8gNpNxqQlt=ddN>50l%(L+N2$&oT%Tjxmw zePzJj3S^hu1*=pEO;{_v`y!G9WHtRu^G+bIzl)lxv=U$Mlp0?C8dicsTQ7Fcj}$v# zfKA@luksIBN(HjD0P^jmqj#I6{uKMlk^sG`uxarXmUWWMicS>ED&EjzGGVrz1w zv~qH;AZdzd;fQctDApg}eok}9aYC5c1en7hrDg{OrNd?YLqahl73(b`T6u-*$04>g zn(3XtDk7hRs%-3C-ob*uR-?pe-7q0if;~wrc;s zVT268R<_?KgeSgr)*2s_j+Cy39*8>wJb^!RjD6h8IkfDM=>yhMbxWng(X?lwQ$Tp> zu|ujcsh~}^iwVA2Cq$0`h(T!b_3;)1{1ET|d<98hi}X_QI9aKx66B!_^+8DaGL5)XLp$);Pk@h_c@hkR7uA*!Z$ z-t#Q$U)yryY90p4`vjkJeN7+-&^6$ec5|OB-_}mu_5EVqgA@l&eHyI1(I+d0k)Q-v z*QjdtM4l`lBJmEw?o3g>{&Q8I;ba)%71VS@SaI)coe*+(vC9ZV!~hQw3J3hZLJt4g zi@XM<*1XK(ITrU?`__K-Y4~zbx^iM_Hpfi!$5V~mIkxIR#oyQMHX#J49DHBXM}P3( zYE^DYHirN~RsU|1nM=;svY4)>mKVQotpcL{_LPwF8VC|8sa_oqQNscbg@br)zQ<0` z>x~>lm&xkuvnGUgu*1+fukqZmC!Ln26bR(|o|Eq!eZyZ{NI(hyej6Ig`iCA-!!ITm ze| zfW!K|xj)-{8bYo3_pHb%jN_KrA8d_6aNQw6+VuhZ*hX_zd`x-ci*q4HJ-QUPtj)*N zI_nX+p^$C>tMh{9|E;tACve)@?W0n##SEFazsp^N^jXKvsF9?vY@2Q`*1Oa1Jt?31 zDH)emrgX#+61Yfpxu#?-9oKes$Tv20qSP8Q%-yXS;N-h{LlL($nMAuW5|s=J?*U@X z?!Rm9TQBVUYocqqjSjW}&f+o}mC+^_tuo?NK65*~n zqWU})ED!_6lqm&^Ld-j?0f-M-I8fUQ8<*-v6btN3iquht$Xf8nN)7jKpGxEjWpv@j zOMA5-25E>ZArj19P*IXvlcIGBazTnBuTcm)De~UQYNIZ=4uFQ&Z_9-lhE@V{3J0W7 zWdqEhu|RB{p;J&+*LMF=qeM4HY_WTO;NGng5s#qmfE=%=GOSyMGaEf_yjQA8h|V=> zFsaGCzeN?wd*XZak`#o>8x(q`Bc;#8kNBz1maPu`SVrd`n8N^^$WV7OyU0B4?ja)?iXsUw_DC>0q&iNAvGr34Xo|gz8w+CztY|HbU6#n$ zdLIonIW*?fe3$P-*Tgy^)9|sPws<$z2)&~C!>mMjLCR_LtiHFu(~<Zm1?-TMPEUBDVygN4e%8$X{P^CtbrD!*Q$0yQ=9F)YeT0Awp(dGt<%<|^DG!k|Vo zf4s4bL*cxOYa zfZ$+FGY_#pSut}%DXt7G6m@a0a%8Y&$G7t8e;DY2ZM}IXbZO^Gn;Y{3;jl7cA`tR@ z#Sc?wDnF!&S_q0XezWg50D&V0V~_helLn39k0-NV1U8MudAb*2i+lTB8Km9sO$AzD zs^SC+jzp}p)&4fAg8VFLf!XIxx4y_BWBl?Eoop5<{cU`1w0@sc!+Ny%t%|m}-!giP z6c5W*=sG3T>HwX38{!}s2eIygs!O$SmZ)}8K#oC_Ov;!=iD8=plBoh$QA);gy0UNN zK>_P;sj00jcGB1&YE3HuQ|7OO>YO zW5D|yj8&IT9&IZ3&$rg_kf-tNTUE;t84F1KBci!cc2L#MZIx5m*aNbaIz?36C6h4} zquCg1Ix{J%0R&#vB2#q7Bn6R}lD_1cC;~{LcDa*tK|HAo9+^K5B`?)_(GlzChBUaH zpJUBotW{9!=+`7v;~hoh$8mau9qcdm6z@PFEeT8s35bo6WdkVa5XP+*Uvi@>aSXZp$iy8vZ)qCaw zT}k~?m4eTSH< zG^WYv5r^OVzs6r*ngfD!62P_ziYPr5-zgGi9fvV#6=k@l28;>DHdVyLCX+oIAQr~@-iAwVhirOiP^VzIri7({m6qfmwHpFSE|Ok&H_KA7Q}X}viw8@Kn7M6`IW?mE^nr0{lqwJmnL~_G>|nqtH_$Zq`>^T%KlqSnhbp_0e!5u zKm{Il#=C1GE8n(PV>U_GRT2HL-j%1BL~clvuFH2+tV2obeMW*5uoN|-OIEOp@RfoZ zb)(u;jja+`9}xQn^G`_G;@BjoYEkA%uc$rVk5DzMW5+LCw!o%_dLae!c63yTF)&0Q zn~?DW>pm#}geW_XMI?r}e4!eG)p(RT522GMF5f9^2bV9=RK{Y~beC+WxC;KaDg6#@ zzosukm9t@DDkIHd0Aizv*A@X>5LSDXjlT}E7T#m&UdmjWhvomcDse?%fY|5a^ha7X zV~qgEk)u9KPFgxkf2@dXv3i6f)2h&INh8vFk;drur6TgZw-w!V4|?JkrYrmzf#|;R zy_j-f{+kV#2I?KJZO#GJCnvBS;E<~H%;wx(jp@e&o8*uP1i)cvN1-~F_k8}B3!p+F zcj^&U;mkrX6@>I^@eS^gnk7?2$fgplqln_YcKQXUClxHJWZa=ICq`BRoHz))-|6}l zBn1w#K8#lAhL&kjtDk%}2W-W*-9*&3It8MFdG?d-$4FCvPS8#FhIfg9>|5tMc|i9I z0<*e;Cf`-RTGVDMsN-LVC$jz^+&re4RwkU?bg`eDAVSXVVTClgn@7MdVq8{j{g~etn&5((v{+&s;a%|hf zLS#nVZOa1<7sJ$pPwju0?Et%AWG1{H&>}kN&hXZXq4BKpXY3@^46a86T=gauHNXB6 zPX+u)4wbq|#opZAMHS^qPBb=OlK6dKO+lmx7%`K)Ibo2xQ6S8<+n8HL2C)=@(HNAI zRY>_Dt#WvlfY4E;UGGsKSgcUgy+=n41paTelPQwxgVEA?rGyJr9Z2+ zYqD5P_X{uN8>=kraQBVddk4Sf0yj(=*iBOLpUM*)VDr`uD4tP!1vaguqDVq~tSN?Q zH;fRt;$J}HuXJJDBWDeYXHaN&DfY!$B$0}=)MLKnQP-TkQy_4D=T5ayn&*EJM*Ja< zdB>yc7~oy-=O?@>jcn{`nXLeDxRtcYn$s?ZO{~LQ$?Gd~(+s6fzhB~Fx`EaTvZm-i zT9~L%5i>eZYdT8X%&Q=dBc|9CNR~`I0PFJ<`2EKCg>Y)sle(T! zc`cFfO;J9*ltxqm9mAeDfK!x|it=-iGU=*ht_k790Y-m_W^eZnNfQiUFZh3n1` zPIA&lGm6#$$~|D35-)&RTJj-;?SHyU-F&6=+0s(gv?X>)uohh5fK=vG5;J?PlBl1M z;oB>3snxk>G`TS&ohNrhj85ArKZ|@qykJ;=3`XsQ5wprURB!-!pi1CFhPLUd&z4G` z)^>vdsrqRI@KN@l7nE0FTGF7>YnQ)amhM|w9KE6MIU41xj~}?ZDl11}f$d0_KrDP` zlH@9E)XkB(LU{ecv$`H(NC`F9tBhyjVFO2n*v>jN15vqn5>E#%jCrhrdFQ$v41Pdt z`;Ba3geZhFX7jOC8Mm+m`$ZUF=E|g1Yta%G8`7|(!SO8-0*7Ryc(0i9C)ohXT&Vnh zg>P@m2~FpiQLUZ%<>aZ;pk1?0!UrIsRc{cjj?;L$YiiS2<&jQ{W|GrNBTzlG0xCZM zP0Z(wcno8ik*=W$gfpWA7)pQxpOm@jNa_oe?4Kgb3jzsXW$O2$*4?TzcrCWE2DU&j zaZ;|JN#=eYsb}V72>w;RETQg)WJ14ps*#Jw=6f>7NmTYLC}{6!O@1M8SV3m+0ui-` zhMLO@Dg9}jbh|U(t?JqmdK@~6B zm3bi6>D2{tN@5#?RjEL94YzQSrJXqVPqtE5YM$`f*1R8-^Y)Jvipnb}oecd##A?K3 ze}4el1IwBgsdpzvoYU@*QNG?Nb!FFZVPTx$Oct2}EwI`Y16V`&NktrEBi1OJ3`_OV zF_CXz@N}VR1@PTwyX(lO%nL3iI5ObP{O9+e1P(DC1;uXpf%ZsSgi14ysgRCA>fT;- zk(2fM&m3A41;o3V#J5LNs}UD z7IT4YVq@6S7{5nQxARCW@jVL!1zhN@PxuQfk5ZEsO`zgr6erV5Wh&!br-6_J}AC>Cmr#={86w_MmloGu325VMtZ-)B8(t@&p0vy3@xrAs_0YI(s5(QLLPh z;n1yl0mCBqV52*4u%;x)q7)hCrDNy*f&U3*|A%4J@$Yk{Ahm%qcu4{TkLGDd+cO2k z_mFnlDx>oa;}$fDLEqkzqhW!`b{|zE^F`^4AnlFeL2YE+0b^f!wz|Izl-2ALdD_ zsd#B8)p#_FR7(QJqhe?lBOXpA_da%n5M-u+wkz-82ue1BlY%b7O8R5|wAS^I5^ev0 zL-Vq@9ijYBy!y+?-?VB;(m{E2=5hzh3zO>#l*`DApo&4UnNT9m@2=C9{f^O&0^&UN z4eBg|P~tlp`9eZE&^!p&rxG7WmOAnW3tMdsXlkZg5;Vzn;^vV#Smu6GcyD6-A0k^X zbcA3x^MHZ4-o8MuL8DKxeGd+tB8wGehEv=@ddAJfS0ayy0Rk$?oWFHsq4s09v# zw$_x+e8Ej?#8KtHPBP?9mVDY{L7W2y=-ueO7f?R5J^E>=qM6)xXJ;0_(9>wv$4s|o z<7};b`UN@Hv^3B(TwaRtq}{N$iH^5DdW5NTf4+MZI{RyOo{T6jSu&g||F&OYry`$* z^;I(urJYW*$lchOL%V~%>{3#mv%Y_WcJDdmkDvZq@4W{~Hi}S&@7mYJ@1rmi&l;dZ*ED@Mhw|n8#DE0 zmp;p07WE092Ii_+eS@MB9Vltx&A&_$kBKLBA}yKXC7c0qgE{orp=~8-3h`E9pvxCx zvG0vys3f7(dTZtZZL-nKUTKDCN$OYjcP?L#TNtbFyP5{R6?Ycxg7L&(SFefkF9?t$ zm6;NGp2MVlU`2FXUQa{`%?Jb9=B($cd!TvAv+@Xf`kxh)5v8QX7?32)VM7vL4fFdT zj!`)52jpv3wsdBG&goGo!|c={7un@cGkV@{>GBXe)xd%9M-v%iL$B%b-sQPerIWWd zIVKw_FEz%;&8CRj!K9)MB;-*t!Fi>|Cz_;_@p-nMf;pE;A zN_anRQo+fk?bjsqu67Hw)S7o@6Hecu(1sX_Wj3!OQY)%pS6!dGOvVP;KP(HA&}h+V=YjGuod+y7!V0!RJWd)f6`TU z4{YrsfZqk^&H=amXKsV{{TRZ`oat8?H*_-Tp;Vmx>8xB#0r)*}tDD$FffE|za0y~Z z0Uk-Z%6SvDh4f|j9DaK?JwjzU_5)2q_CJ`Y?Sm93>pe?ngKUKcpgZLnyAzZ(ZFG9u#jZteBVaXrv)Lh;3E`K zDk>U8WKTNd6BM3#_3ok-3IYYNhFC-^V{{4MX2Jj0eQVxG#&k^@DSDwGPV!_4CVQrsmoL%ZV4N7v@fuKri1pjM9F>vfG(9kX$ozku1`NDKFfR1n%x^&a1I!`T0uw`g zVcpOd+$tRp?oSo-E}1$XAXK6)8DL(7X`k?rLdPwZJ>U{ZFTJGERG|FdrYbF`FM*Yi z#wv6U=(Ey1pj`MjKuMh<@qv4Eu9*sO+0@*0zmEv*EGb6)%ktQiyfTS4Nj1fPoe=_Z zmB8#xR|omSs&x3Lo_Ph+mVhDzW^#@IEPm~Fg}IVQp#0YrG(p9e#Yv7fr0$=hoY!tQ z=&fuBS(@~8*j1?l-vtldpM2++AKA)=<(l?M?|c}IV!Q}D8_G{Mls^N?WTJfkRsP(S znQj#|l@gk5R4{)-+hV%pr9YQZ0{>_+}6q-O|_D>;+2L9D2)_Qhk@bAMvLkT6`%dD zm6a6#3(P*Jp_Ha5r8e>HK*!8yjtfueKl(?6!)197L_R@Sr-W}DuG=4F=XK%YIiN6{ zo1-9m2UYz*(ZZ*<)_Vd^@FpkTizH%mFEWT}@3b<_te;|{2CTkB5&9>Epoq${mR=*U zAN0#773JY6h{UnUr1#J%+kG(GXf@~jCuKC8!uQc{k~2{OC$uC+JRhSl<|N9P9YY-! zC6SLoftdmjZME+2Et~ITGZTR9Cr5faG29^PSGMH)@yN9ZHVHk)tuJj3R=~U}7KWJz zi!bSBk;Bn${@)?r+O0hOAMbTK&CQe5<5p5#0M!0cDe=XQRzi>kMnRemim9$(_g+Ix zp6R&xM8XyhZqw@R-EX^FrM6`hnFy9YZU;F*q0{!GHV`R_U{)cmuL2fClT@xY-|m7j9X|Nwsw>C^R83Z6 ziS542bHR);uYXv5hjAyPe!sBVw(c@eCD^zaEXq88Z&UyOgKMw^x(B8Y0&%%f*^?(84(%()+s&_gAboG?@_J@# zHFc=`1c<*|c~XdlitL}2D5a{i^b3NHHQ=(dIq?Q?@-zN1>f3$-1Z(=Q#g_uI#KY;; zX=uao)wZ{#yDxw(7F`y0d^!&0#k|SPkQ;L&^$#i_Wj%a1tY5I!`Ih?4_jCUD@^qlT zv_F5LT$Q0DzT(l$*VU>s>J&HTGJX!H@?7=zjL__U0-y`px1@ZxyFl?SYIWQBGBWPn zrLC_lJV1wz&4xSrXdbJpYpzfc3Xnfj9t2aZ(9c2IF9=)Je~tJ#XaA1;O)x0abzkPw zBg3e0a42`()Sz9m@i%CdGdDP5Q6pi7f)_GxF$ICyjo##fEJ+MDZSq}*Y3$+zAFl~Y&mw~!c}QN;_F4VvT4!-+93U-#a-j`bo-+C& zd<{u*Mn|0FJY0mklMUNB`D;cqsJ=bX66koC%U*cI5Qn59iFI^`m(%YM4I@y#$8=A`VJ5r z%Jwn4^rzlL!4OisL#BD}^&QB)C~D{3h-8PK3DOSVXOD887SykI-Proy+NXDYI`Pd^ zZ7-onwlwDDa9td8`|00LLhcn;8RMq+etJ4Xcz}l5A1^1+oDPa;@kckRHI)PtP7BY8 zXK>SVp*NaFda^!R9$JDvf=&FF|cn#)Fr@-{(fg~?nUqfokROf?o+imQv2J4 zXx20^$|K8);j`gYlZ0&p-ZgW1s<&2&5GLAq$^(U`(}b>!*Q@{aL(b*O8YZZD(CXLc zdw#BN-cB~oT&@@LeAp)eYW((QNQddu$IRe3cMyuQ+ag}k@=bWzcgPDp3Ib6WO1$l; z`GbAIK~-Tz47?F-Pap@=7G+b2o;{!egK9i~O#J@RjcejvYK*hMv>s$=b|XWBKg$fN z4+(Vl=Jv7?NJfI&ldkgBqhF90^K!zY$s$SlfEyB2w-=w9u?GJ#ReLV$u5Q>v7o-5E z1_7#A2a)Q|?SJX^sCpEzF|0x*HwJgfIQg82{!I!tipOubT(KOsN zxhfJwiyjdro2|axJo%$^;PCC!=d8b9X$v~v=EvB&@2arW@qT2x@4`U_8Y#|bO+XFW zL3vo}Ruu>dv=+9`c3Sy&d?4R}yI<%Zs*1t3f*W`~?$z&JS3548*|~13kgj6(96EsU zE~~NNQ{mhkqG(&Kmq--UUau!uxzhKSu5uO6N2SCcC={q2ts>B^%7cdTMUbccCln2& zjcG&~2K`U8V2@;WWL$toR#uZPHUjSs33ZsUJOlTibd`2;Qt13Ts8>2islG*qQ2I01 zM}G7fAtb z1)7e70bu(MM5NumZ0?ibfY}!c_r7E&h?fy|+}PvioaMG1AgCW8_{xz+aoz*e%`@AR zsdQf=KXHAWruO2#lI{#)pdxonBg$@6pDlnk59WE#;<$b;3Q0J27*JF{nuza&mZVdm z4Q*eCzFU3(w%X3{aR|1ic#+1X4qN!IrJ0?>q|39s`R*hanK&rMN z-tXQv@v6DYbC5p(w3Kx(;pJ552?x^oPMZ_&CN@c7o>*>w`33v1*17hX_C;-Fg*!lA zIhl{Vf%`IxnHw{62@w0}SgGNpE!q@ZUR^IIHUUyto6xOa3J%V+(p=rH$6W4P_5?;+ z@+D~MngrAzpotryg0_{@Xa^oE0Zi~a7}BCi!R0VX)nV=cd6{?I;U4`brEs*#3Cwdf zK~*hl_2t_FpY0~eK`Gbsg2=swFH3A8KtpyAR1?ZIauxOf{H5nDLS-w9S)m6H^az7P zY&DdlfHk3QQK+*_p=kTI1fuVGpb-U!R|(9sD#|EZ?k~T^qdq(%2=Cm}rMxkzIr%XI zbP&gJM0?pH_i9z<(9Kx zXK`Bm;5Q<&AI~BQk~hB`6Uu{aJvVfm)LWGFC~hX`a#w$?+pXnSWeL zhj0pf)iL4M!pQE@d-t!x%-l6wO;w&>gsD*+SyLoBZ#-490Zk637CDP$S4%Kl7ld&B z5mA0nnm0;GCx$!>!YlU-XnG&O8NaNcTuT_;HO1kYk2N|^Oypfe13xf+#7xy^>A*R}PiLOBPO z{NiK-S)Y25?4B1QRuk_CIH3kZI2ykPKG6bqR9dolM=^$+g&D|a^o&_cL|~>a3?UdN zk-Fs|n0svB-KZ5ZA{S11N#Mhv?)5{U1Wg`d`#an;`+&GXbv1qH`-rC?eK=Q`yLC~P zAn&ogrz__YnY7ee6xWXX#zz|w=;UD0{BX3y5A!3!Y|$zqdLpj6kB$Z^S|-N#-#>Ws z-P-G`U@VcFw9g6=8OAn?UIOhxp@~JV*C`ECoVKw0g%u^=dK5+@>nG@I^CieKzAP zPScbAhPL6Dx<@cya7lY9PRgNOUd_>SrzRoUu#$*2S=>}V8%Ixz;WRbwgsg^xi_}L% zpdg);R5TTwxd56E(qgI*$}Rze&@1FnF5mp*aX6JavQk+09<)P}D?_~SyOs>KmJ?i3 z=fmI~oGKK~!&^-Xl3M4ca@|&hbvDK%bGa4rF;lEUs3g-$-M`Uo$rMMOeL8&>c=XLn zf?ECFjmEU#>#uD#i&ej;&v&m*@t0yg_-SSms>fT&HTOXv1>TS8D?=?t7T(Bs`BGSk zlLAE2`Foa+^b7c7Ti=>ec=QvWUi0Ddy}DeH8tex|);&=okdCK2pIlL4i%TvkbhAQ{`%lAl>NkO)eSw4XkR8)K?LKnR$%HN$2 z`nA}cCOK_{xdLon-7~8fzvHArK4>&>^AI#NSZDFa$mPJdBC1p#Bo!N5x`{wuX)@i_ zpA!+X%v^R8{>5@on1iV7TR-h@Q`|&!ix9h627VT`E@)xe`x`FtKMH_LVxt*N~J)Zts2%OBmzIbe0md_RS zs!V`a=fy2Y$*TS-gJc>$D5p$$b=*b_&zWIb-zR6olH`FYs8gBK1AmlL7~2PtR~#R- zAAT;?YL=u&50%?Hl_=kWKORh{#uX>uow}E1&z#$GLER7Ky0S^sim&SvBr>%QD~|qY z?lfRzf^xR@tKaol>&`A_%~OVQXY@BZZzY_}`iDg0rhb4>WfNYxm#hHqvC7j}3swT{4Yaa$BZ6lH-gUIu zND5?Qxj*6ePf<-cmF8o3s$aXqm23+8384co1>zQL8op6a-y1jZ5pn^m4X#=>vkeQhlqRO!(z=MKC~$(eA}7-3Ic(;Dd(EL^Xu)Jqxia{X8VK+e3A9>g z=Disf>W0x`sFID8e~`Xd1FU=*Kc|!rf6&2z(W{|+8t=gvG1Ag~wTTn#xc8QH@I>)c zaK#W?kt+Fmr@)&r$2&ymzH45x8AfxjN9{Q&>lFvpE^hwW^zwu;@Z%?3+)ek4u@kkR z3^hc4sygPYH{X)Hu+cZrJwwx6jr%^++1;fq_iAka4^?j+71j5>kIxK)3<5Gp4c#$- zbQ;7EA{|OfmkiR~15&~uh(jYOC4$l=r7|E$r!-R1NH^d6`mFU{>-YO>)|$C<@44sf zv(JuaKf8NT2&PI5R_m=u39n3r;yxGbh%L&udyZlcJZZ{D%SysXQVwVfD%P%E){k2M z+R$s`wj6+Lnpep`uU-hpyb+a50RckFilu>wnkSs)WmE5*oIJ6xSEzQo^ac70YRK5o z@xKvJU8+w0OmZ*EgSTm+se(?PnfOK2<$4fL*U&fB_WircR#!&-%Np{K^q@?PYo+C~ zter+sBq0>>8Q)}Y0>8Wk&dkPKA)?&-jpo0KtY!VnkDTZr%Cn`r_Z+_Wyv?-|BY!I| z&FNQ~T;U(ZC+2XSkVuTzWm)-AS|7dyS#}_dvd=itrIk1g$0(ZX9c$7oXR)=h<|aIc zaSoEsu&f&kq1h(Y0RojmD1|xv3lr@0@#vtD+POxK)tT-iAzcfKy-!hsFy0E7v`3DJ z3M`M#u5{D&u1@z`!XSYhS}5b_AiVbNRrq>mI-yOAj@p@%87s2gi6-lDvZ9&AUHH6Z z$KIuokq(Ua1N0;uGnO0GFQB9HW{Jh!rT&fBZ6V@Gq5JE^(uWzIqZWpW7Oa-(Ni4~q zTLuYZc%RAzuo$ye7zw+j44D($&MtfSMIK~n)sfho^^^eI$q(sgECyzZ*HUF^^x5dE zTc2FA_~_k?@FsXtA(-?RP|+t*+A{@G5`gypeFd>!U$_XGJ8I@4iO>PEnjeK9?se2@ zjWc;+JgS3y=Opp8dJzO=jX~Z3?V`)Ob@75?oXGOkdlHBC70SAW&WI(Bsx=h;~!Ni|wH7aBW5(lM#%n9yX*p?d%1;Kg}KXb!!H z%=AqR{YPG#RJ3Zz1iB=s*SsXpFl51SY;ZbcfrREcWg@?b{gTkfyvrzhda)bTc28HP z{Oc$d>CYw{1DxlQV2jec)DYIugPxX-a4B(1?K$Ow_qGnZsUmn7fyP}5PZcSV=fv&m za_|k;lDwvuM9=Qh+dnmEtU~3hhI5f#p#cJ++HP>)*X+z*S-mxnq;x<}Ja6xa+Q~cDdZBR+Ky{ zH@*4#o&ZPMR@Z=Dtb42FAR$#EYj|akSyOH~%h(Uv(ZRp%VkpcV^xtF_Y1~}?IdmmNlP6ZBJ)$#X0~R4_nC(E-w`qo|j_vD{Y7a>_+>=`L~D2B2%qFT(6nmcNlR z2DY3iV0-?ZoQFa8yTfH2)MSoFhUmmz^_nF|=7qMC2R)I06CoaV|Ab`oAMmQqkc_O0 zdpt1lYQ9tH00BGAOdmZpaD)cU8_&75fkqn+5@`i!>9VrfgdS2vdM}hmZgAx#!0>mE zw|%*&pRN~E*SOB)nkO@H_twhXNk(Rrdk2&)f|cFAn|O8pjDH9M~HSo^B=O^6VO4W+~k*O({DSCOB9f`Pv3 zDE@gE!07NKz)W5>ong3ug|}aTH{Dq`y@v{-)(7skHK$a$phs47f+F;QlVALRjsMMz zVHS?Uql)$b^CA5iNP4xxy2(Rkc{J?-&Z(C*~+WNsrXl*RFgqmtw2u9WtPajFukIP zvYNrWdT1Jn)aR-Suu`7Um21LB2YAH!69iY5+ zwJQ7+)%VorkfjXo_3X2fNP+WQZ1$Tfo=!(kLJip=14aSH@0?HvHY}W?sIqP-|L{Ds zCno?RDV6MV8>I0&Fb$>uqz74y$&wK3B8H=4mY=J`vxs+MO_W})CMUkv2^W=>`pQ=} zT$rdz_w6ZCK2aW)=Uw3650Wppjab!K)iXg-=S3vpkzw*O%BZz=0yfnz3XYH1C|q?p ze;r3)q#b7X$Us<+N*g4FG+k#TC05A@R!C)qvyBiWrhlijpex6y<$PI_V1^fN7thR?{A8^ZA;K7T9;HR-VDsS1N z7=vK4%UQ&QY)UM5*;%b)k*6TKhTJqU_EW)CoM(@G%&zsGuBw6z2vkHhwLo}J-!qS_ zHD1pF#cPihSxIYLuwzi(C1B$$CY2AO4Q6Pt1+W6$#K8;^%XY`SUU{40_7VI06O4*f z?{{}c{56csGfB#KO$K-iv8X64Vyd0D1NSy@FmjL(MO;7%*6Xo5pw_rLh!9K;#3u&R zf)k1F(22?aWw-w^nri;y)nK?T2$RKD(~)qpj(QP19)xU94eR(O!EpS3weo`*9E5y!jPg?F!BQ!mDHh2pKTcU#R zKO6lU93yMh6Oo9}`^%0jwzvHi(;62OLku4DmGx5K9h%UM8pP**)2W-QS1?tEEn|m@ zaRa*1f_HDFd2s*mWy39n@e*LN+Amn|r%*yHUuTG@$RLHDtFXLUlX2)qOvOMwc5=Gv zv-c}2s$C!1>0IJ~cfN)GxmP3OF>SM~c$) zHBhmwSE(g7w@^V0!3>B3JJ-f6k<)gy1Vxw`%=yF9lQ376b{XxDE!n`6Kkz47FTs7w9ynN!@F*mt4&P-fDSJS;;ml^>}r<+iquR|8u^J zq7LovPjPxAsC5~BzPC1xx^G!=eYey`pTE(yd1;|iPL~(l`>UhPx?}L7Nm5uXn&!=4oZ%7KS(Im}ha(3T28)U^qG4ye|42&ya8 zq8bG35_;I*SFVb?ov9&A`Fq!~gpLi`47>$dBJy837Y0Q+WFE)ok(paiz$x!ShIr;9 zuLbhhhDG012^T^bMkTfzu9x0*Jv0>Vm6x50rlw)2FL2=_OW^=?XxCY>aZl>1G; z$Q2$dBc90Q5Kq>tX#bYsKkrWs)|j_dc&RAE4wO7^e( zCX0!QB(&gJ@V{J`P6MXXfhI=8K_%PcdI|cAtqW&fweV~d<4U>riNxcLY`}ns-Q|5S z#g)AL*5eOhf2$O!-!#$=+s_orc#{Od}gwkN>15v@mm z;!7@y&Bf+yD?+` zm7E)iQeDTcJE3`DKil%7CXLAoMF&!CZm9*)ir8q;!J|v)>?YTuX$7R6WwEs@~ z_bDo9sM~@ycb6FE#k!!Z?P%kZ{>7Xi<-n)w(k(CQ7Nn}4SUP}pqG=(C@HB~VkBcU8 zNS)5e?MZuntI0?2i!RRt@zlSmvU5eDD#qd0Ps z;3Se5b!s2}*6h}Cl^^wuA9DBjVr+1ib3uaSHdx)PEAhYyf~VCD&BVN-zwac^m{UyF zNq6xG4ci}NxxvtXbAr&+FW)2cT^pseJvcLda_YcGKk9nUj!i0?7l;wLSN#yo? zKjw)VU_-FyYGm)_&dB71Z8>^jXD1YUYGf_e;2>o(Gqik99R0Ti#h<7TCovF_2$9=V z9_?}0e%nOnTg{+IjL;YyS)h>Dsk-cull7K0ibMi;kO}>2-I0!2pE-tiw}-QB;A~X$ zu^APY?e)Z}{@ve4j{6Y>p!IM-joYXO8+_d-_;*iEIP0oCt0m!Ev`}eYP&#$9>cGsd z@g5i1Y4c?}8@j)>G^*PW784PXh@$Ozz0r9=*20no1|$?lC4VXy)1TTTXcy<*I*R!` zs?%!SksD=x78b^DF!%EbvbeGW9Ig%05w$Jl;6~U{Rr1ca6EZzo7AgTGvQ7pcnM}Cm-y|QYFObf>_gp zPZ5`qlw*W;&^*p1mJEjTk1Ue|F-M-y<{tlA@{>Im)KM{Bjlp2@)N!5F4=C7Il5~a# z$j;y<<|@(-2{1N16$%Psb{q)KfwL9w|3ozLQWaxCTr#V0k3A9crLw`!EsykFb+(nP zSM+O4DiWg!G6PV70}O{m5brytWj(SZSve?++h62$54jRxb#&i$SCJd+Rw&L{i%Lu! zjQSh6V{sqwkYED>dnn@m&sXgvhHN~_bjzeyTMq8|ynYt;HYD!W=@blWLQ!;;LD`BF zxWN!X?x>+@whp59A;S1MB0S>zu&0RE>wkGd&uiTnujCQNK;nT`%z7)9F!igTDTxJ^ zn&6HEVk)gngSU@D5u29S>)v0V^Ga}qF=!!N>`ufmDW?jl2<>W=RZ5~r6rKJrBq!e3 z;#GN92gkni-g^hEh}M&Sq>Z#cUN!bL{O+6ga$ZU#_$Rw5r-&vDl4E%A3@2KIjj4Dn$}hG z>`Bvm*|HlB&jN!*OT<{BFX3H=#=m) z;bDdL?sZUE&5ZM%=p(C}ptKpu1K`l^_w?qNBlYEhe~bT2-DA0yObu6_ z72@cU#p|^(`&w^(Q%y68vLFW8o2nXG-JH5&-T*wPfO6`m)G`i!sI)-p$TNC!7rxU$sEmS)ar zp7UIO;l%x#*93Q8bpazRvmcijmnd?&+D}b(-s;o#Y-ih$n}2f8cOd%e+-;JXr@n95 z1rl?@k{To3;s^`7ATK-mZt!6C7r&tK;rjKGo~ieNO=!;dgMY`xjb1(VTpP2?br}{) zW|{(4wr88)SFIFzGv~(fKeP6W6V%x{|8yxM*S1Goj$P1vnsmuTb7cE{*<^<0DNOMk9#%^A#a-p8(^D?Tedh zE!E24neCjD=vnswvGf-Hqh_TDV~dI2K6Jr*M;AUp`;OuZa`o-Qz64Lu<)Kxr1&iy= zG|Kol)0MmDjO-3i+{e(UoK%q&v$MK@TAibNxl zjt3tFn@k+AZIJVa?yt;LcFku?k~a@VuFrnRZr+c;4G*iyU45OBb=maarZ02a)($!9 zef9o#W{$mlcQJXHk464!X7uc}f9MPokMFymvmbEGfUIf3{#Ei)xVPJR4_+oTcbR#P{F)!=6>REE+fXfQu@* zn3|E>F4}b{8pgOy)oY&&^nI0`@TRRv#ti}cO|s0H)IC6|+~E#;20XDa z*`{^s(e~P|1AYVRH}yVS?sKMp@Ik99aURLXVeBw4#PMFue*XZmQhNuQU!i~H8vSP^ zIUoUtEE@QnZ+uowYMpip<61SnwqUPNY`0N2y&$-*176q$nSV zr0rdQ*He{c>2Ww|ct4}5;oPtQv=%xwwF2y)KcUy%gn^e|=VZ5TlN1pY5VIYSKn(QP z?CUb_&qocg7)%)dJKP!YMZKOqxZVqrerbN!E#LtdwIlZlP>nuK*%QyJmJa|Sui6hM zyy(=H>M0$J8ab{Bnbe@^GkPVWBvnh*z470UQ0Gmb(|TF%+0V66`7DdL`$gaub7)|b zt-?e=DU|Z?ETko5@>D-l?C zv(7)I;#s&dr{9X7jAD z>7B*Z`GUR6--$9G-+&ueIT#zT<*YiET|~Eu8=#nf^O-An@uF#EtzeZ>p=K@s%x!_S9IG1x=47d}Ndsa(m)4q>CH7SGql-sij zyPN|jnSBQ$3H9ZH6Ea<&jTKOy-%zZ=#9T1MhC6_g?udUm&x%dUK_BBcwY6J zucqT^hUos@w2gNA^b?8d|3nd(`7{Cg2O@gvp??iR0|OM=<*qIgo(~^+R0mJhM*9Rj zpu5=Thcux#GL%=Q_e{uUug(n6{*%n)nM>Da(v78SyG5AO6#Bb;eM-F9-;(M1pkL42 zD?VuhIB6oyu8!PWra(#SW=lo44%8(^Dct~=^7Z7SOCRoqP$RNP$)M|%PsMTd`9}O;em6Tnmk0AAR~!I5b#CXzbDf--85{y zF@Mn^6Wq$Wu&fTvl9BR0`r%!EbD2a)0M0oEjEFWFE!RxFNJR0M6vnaOW_3L|Pv^iOe zX1m$NQs|9>YMuYgHp@xZED6m*358^Dd8x)D-|CZUQG=kur~n9aU2%St3iC?ZhQBiG z?6Mc#G9%1ZkZo+# zQ9Mt=T%hEC1Wnai0NE4nh5S-9#}+^~HgR<*H+PU91(Z%ull&*Bt3|}yhA_W}|D7X+ z^d|N{Do>~(TCN#DuH-~)8!&QeoN`h(KbQQMImyTw8+5jz=SY4*ejQ1F4gvQz?5L3e ztAnxe&&Cn@wF0rCcqSD!}*Pk*{zgxwtQ2v!*Fas8(& zi|R6h7080e$g_Z41R#{E%!;~-A8YosSq!7sX8RJPs`Q46M|J?6s7YhkpXT(RRg)Us z=RrVKm`wR3iDee3VDA1 z&akc_cVK!2A1&R|@>G!k+_p}{Jauw&P5>CV4YP9F3DYCXbx7yck%1iI_B6JMviNe1 z+7f%;k%gtT1i-@j%a#ygS-*SiAmPQmU`$5su;r6qey)8Uw!Zt9D8!iTC}g28bex>Z z%wX@vbK)qhv_f~DBEwcX*OYr^KrEsA2_5j2`&;UJoe^5wtpjI8sa zM&f->>;H!ZaArOk$(#~b;r-3j+|~A|xzy}y4s~ejgFDd6OG3FlJ+dnRa^)g=V`c8a zv^p~*4q66`_;V}%_^df`)IS_x!16n<^d*RO``s*B)yvF$%|RCH#dMi9n>+Iy1pHef zMFM;4)yYrE43P2Fk>iy=320<`YK(g=472MX-@RtR46ON2O&f;qA6{r*ua8Vg*#D~t z!>Ny=-0|xNYkkM=(@f3l+W@))y!Q)&+6gsxX7(8aV(Z`6EC5_f9Lq(B*HkuOTD*U1 zeNiL#@=kQ0qlYPNC~#a5uuDp5>UM0dm^_%B8Abj32C*Ca(?!P`0ys(!kHoC=NQ!42 zTc$K!fXGHR6>zdkL?i<4&Umi`o2`eGNOBL7TH;Vb&TSO)h(wz5ay_KQfAUOHV>iQo zh!TLx!DWMiZeY^^t23ihYQ8*em)>a2pV7jWF6C-&zT+v4aeE zn&6$as1UxKph;Kqdb$4Ox3iVNarcTvn!g|%hzeP?%;>5V)z|un7C$u-7InF($(fZX z8pb7#R0eNISbnCz{He|%z4m{KuX*A7VNogV8&<$4{D3|7zH+bipPJA&?Bi2(gf(1F zzbiZZWA@%gK)3B?!dEYDd&H{#QFh(-a*^QK;z2Y~1W^C62Ih&2y`5rxe&}wO)q3WB zOMWNRU;5=6sn87md(Dc0GmP~E(LeLE+j78#Cv6XlaAmJK=;Urz+z-Ckg=^B*`taF( zy*X0gZS<2=`3@Otm{T;v%gdaZddM8&|304>`1Zp<`J4UIIAUd zyj~1`cJMg?H`HnNN@VV4|BJEnrm-DuE%mqJhRf|n^kHA~EwQ4??2bFBetMw4Iuv}Wez zadD<&Cr;XLCeg+Fe*dQcDR10z8&h`ho2b{JhaS=YgK>of1E{W>)6KSVYcf@JEF@yf+$^)*}wtMex{(z3J)5rn<4Tp%wHRZsil{Cy&wQv z^Oe{9l3^(BQmpYVv{9{-ERuY#qf$Cuj|W&o5d~9E`qN9j_rlzL-Zbe&BzpKo)bVNL z-}9b*!JY1mt=ealfKMRu>@;N7u&^n<-*V+DKRmp`eWrYLAK1~`@G%9~)V@^{?O-ja zeVf@ewHQ(%eJA`n^*h+7jZWNZss^mh%YJi z`j?IbWx(lN0)pN_jbbHIdCz)1OgIcbF!$h`Hdp4>}RaQK^(~)LJI-f7RUk zHEe3$;`BlJSk4bw#QaVAsn&c_LM`8o;z4@uN`qR{_tR9GrzTB^27n7wxa1H8!dB_E ze3{iniJ$cK+(FiS@Adwu!9ixoX}W&@(oI}aX$>xT6d$k458}jmb!i!*1t_`Gs$$*I zXv(QHl(^PUS#%$ix=E=#zrIeS4rq_|((~&t`v|zHV@1QGG%8B2<*Eu|(C$t7){m)= zw#xb*k>Va-$?a=upQ+&VO+3`5)+<|9fLyyp0Loq8Y1=FI=co#=xsUpY0auQ*oo0Ct z!`k(7{O0DAbSHE~MNh@M(3!!br)gO4iPC8DpK$fgsFyU`KPIQtI1mm+BKVU1q)L%k zxSp&l1EozqZsVg|Q_UC4mxUFZ)%i{}ySGV}B}i&S@51j|_ZS;0uAA8@uK-ISUOTQ; znCNAtQ0i3RF;dMMtpxj5oEuHh=vCOb*2AY(>dsw5A+o8a&LL9ZV?wG+OOuAjDK;Pq zy2`~=lEnhBy0}3xaPWulH_@&%G*~JU*|Z`h=b$c&Wuk6N299T;^kynwww;|JU2g!Pj@^sJth^L0cBaJX*Nx-X zc?(KwgoE#htE|ODiYmnJziD<4_|yT<*GnSRr37fJlHbZW=(n(2+Po|*wZx71xW?kD?qR_i((V111`ks?Xl-ESq2 zYNkGl1PZIvKGV?AU$0uh`@#0xAz-@lk;*t9Yc(KQt7$XOnR}A=vN``fy%-yWv=P-f zzF{&wm8KFWn4zK`{FYijhgyC0wF3>tn-4!jIfyhh0oTLm4O}MvKwmAk{_}OAru;g(hmE|qm%{lw%Ff>0$-8^1yqr`C@+aO)DmFP;X$8{ zQT(&u(a$hg-S{vsC_F}n+YDK%M7LxH*J+%J%_h7b`GKFq`?p^H-|$hO*&KAVPA=o4 zxVIfw;g6^HvrzrN@6UR+4W~k}9AJqxZ2Ig^gv4lVend(&OfxuEB!!u$RYl&$iGwp# zkxW9xQP;<^2kBJ&LmDMp#%4zZ$xxTzG_Pc}g)C@yG{|lMHV~)Xs5G@n9HvPR^`u*9 zG%>a#<0rqw=;QL(Q@WV?tU?gfPR zuOgAD(!tIu^^}SL$cCDGD0l8A1TL)AD@Kymz-if$l8d93@Y0koYp^Vm%;Q-wriH5s z5gS2s9mOd>8xKByZ!PQ8UT{JhLaK}|doygRaq1*Czn@ad4YNV(M zQdQt6jY7pW;ygT^-R+Zj#G6zJEow-HTCx~;O7SEKQwJZ!y`pHVhIQYb_gd9!_WowZ*3Q z1jS+Gk&YIX@(;$!@+6_u1HV6wXALL4{q&%W&D2S-!7;0Glu%WpJo3*hav5M1e@%FQ zbZB%+v$}9aHOO&D1;R7po_-j$25g*m}hNKm_lI(SWVrY4y6~m-z95 zZd)lwLstYgfqsEK??so4qxO8P^?xm!khQSpme-VH9Z7fd%UeH2nZt$GJcR$GV`$NT zGcb*Aat^E!=kKJn+6)wnMCZ9JoqIsoe-lsv=C@xo83v$1uLvVCMQ#?s#$@2-Z{cy3 z)~%LdW#!^kEZbkpqdxhFK4y*Z;<@pbuoWDIr*5&oGtxITWXO}T+iC~|2!dI25d}1~ zQ1K)F|J+2K)N#%y@i=r5Ys{pWWFr5%i43PV^1|6p?Myv{)duH=J}KwpSPm+W zLNi@15T$%FYWuGwXu}n7yGTM7BI(iC(i)fp1d^Cd7>|7ItD~6Ol*^M_d0#xt-JVbX zvVFLw!7{QM$!*G@Pp1d-qrYq?okHVdNv1X-%(3)I(8?0FQs`g@U702wiZmoQKZ^p= zLrudg=NHX(&5`a6RjfVkC0_IrZqE z)RlapQoqrik2{+g$GRj)kgEIFp@yE~Q;8@|tns3}*0GeRntM(1nI@iGybi^|4q4XWlo?)yyc|=={`7Kh(zosg zGk4_~FWW=1c~32Q@X4P_(#qpK6t&%z$sCc&SmYX(uJ)PUN&1%rdR@aQ9|L1MbOGPJ zAkk!GkvM20uOc~FVIL*$oIIG72v9uSd$NvI??r$LD)zrE6c^YVzjI@@CZ_NelUkj)sbHQG!Y zZHimT%WU77HKsM{lorz>_f!<|dJdRXB5I}LE$1Y02KP57Jpz-l!Meu?I5l%-X{~XtrspYgXV?xkHU*6W55LK!Q`ycl}Ypj+F8dT*!*_oJ3jT2MS zK&FoP+e?u_TnwhEsxpmO-DVhHCBRs@>M2QLqWj(w-*0&jSvc@m(pErg5fM~qx{*OL`El+9+uv$Cxph2H?L9l?0w{FfcfPBoIO@WbZyxeElexq`3PMQh0vKs`1JvS-9qEl(Qw z-@zjik0&DqQ%cJGZ%ANQ#GK#4AT%e)0q~?l`ev(YT~U;o6`ijwak1-oEZft zF6|g;HGPfEsIJTkri~kkh*(a$M7nimD3d{b$R~8`MG6I|Jx6YX$TtaAynLhxfpwnB zfzW<}zCq^P$rjPm1j^~s3G=W~f=Vnl-NSoTWxrRgNa!+@BcVRp7lSHzWa@Ktx>)ux zkBZ}?&mgypui9)*{KN%m!g$2ghfln_F0!HK2Cg@H=7Un z(B?jkld>;8HHs=D5_bkuY%C&{T{hH4vDNF%NYE!a*CzdiSdk8C2V~*S0v*3LN%Ij~ z@k>5U-Xk+rvltQnd*>GZGhq3azoA1p>`PC11##Un^%sR^0U!4LPVqSQ2@R>4cuc(nkVknnkCOeE!5(D@`d2` z%J$gy(s&O08ZM_m@ZMLTmj6JO>#3Hgn!bjj0dD2q@!CLU(3^93lPV%PmcLl|yJO&o za3IcxoSrOXLt{nGB-J{*j&lSHTsYWaeb1dK7IgBNLnj?o>;`nzFLsY}*guWw51s=b~ekJb{ zn*kEsm;5a4U(F+3l`fArY)F2XO-!Qt=sEjF;?|G5D6MG{8gUvh`6dVDRu;9k!i#pzu^}jUV1y-=+e(0ej#6smTbJcGm8A4B}Py2Q7Y)dH$Fw5OP}_YaJB&^$mI8?r)|p z_gbgjSSB7Y0)zz-$9{N~W&3;WCbXKDNG6G@Ln9XKc>n1$-@+3`?-No8mvO??DPx;} zqm?^Y>`^WMmeag%pGKgN`s;rlG)*PQ<8eBhTG5AAiUJ1HFEiNX^Wn}m@QwUqW~G>> z-EDdKh{SrUil1NdwUo=T)o+w*=F26Dn4Zw?raT}VX%D|eIWyqBQl4<|S5aV(IqH$b z(+2{Jb27$!8vkCT5Xk#KH=d;!G<7g3Fzuym`UXkW6azToQT%c6FKOJt2AsHvfo7pO zp#aG6GnzyGk8XJG0;O>Yz z#~+5nCF1@jiba1aL622bfpYJcuB(j_kO;F?*mNX4@Bb~WEqq5xTztGiUjT%-o|PRjmysA3qiAO*7~X8O|0l{i>SFBKF+eWxYMsya{-@9~v-?jdAjU_!UE&Ph0@CX3 z04*y;$9R)L4X(lf$pkk2orX8rG}4G}!BWs07;<>WWO%I3M#EG;Nfy@kGtr|Z@moRyCASJ}%dpP=Y z1Bj#w0CVIo1w6D^%wn%Mtb-u)7L9a0=R)c2vj;E)U;I0A_#QjWA(U~|E*Zn$gbCPu zdKFe;S}^SiB}Ko8Bot?V_!>fDaPSKt|0SOMJl!6ijVV_E#xh?KWsvVP&b0(a% zBGUPtKl`=GI2l{R=NZ`#QQR%``vkwIRVZWWiUn2|%b+64?@qgU33TGk7x=@Xr|3XD=|oxJj9BwT!<5)yolEf|th{rnO%7lXsjjvp z9u)G7%uK$0Ner!ef`(aqh?+U!S%{_IfcY7a5t>bk`^NAYb0VT{j#nw&wZWy&PRdEAMBtAM-jqjQ|?zD8jX|!QUlIcC*uz zZlzI1N+Y_r-_x5^>=|TaW4cWyZfmXsEt#F656hyYxh}2E_F696mo|uiMot^MmI`wH zWg(WV3*;vRbX?GH=RlVR?}sk*%lrPM{%|_Din5 z;tL%`+}-wWlVW9c8M>p-)<=#K%Zy82gRA^dfdCr#w~~5;@q6Y&go|X&F_yFF>B)s~ z!S^KqxHT8tw}5S2!2Yv!!v~Nd@?A(#F`b-!Bh(2mf>g*97Fu5-id|E|dd<2E^zS*23=e(u@r=oc??O|-X zw`YwaFoZM>VVHuj3k5PTs((raO*14sv7$gR7ZMFG@udH9zZBUyQjSEqUHT09gs^fk zk_DVgn4?lYtg`3)S@PS)CQWd=r?;9v#^Ub>jKy2mZe{t-~ z9TSxA=4+*fEXa`g^^k8F*fY(2h!i$CA^_^ma`m+;+smcrKx6LC<#APiYgiDgQ=d=6 z{xX6CB@UTFEZuf#Ux^j*l`Muw8{}ATz8^mBE zWcU(#*ftEr-?Jb_Ix0J0WM`K-{|KCmNhEnNgMVhf$>c=R?@GI|RHi-l{{yxy6vi(Z zueJ!0-yWgQ-gCo-V$PzW{s5Y{K^ftX$K1V-m9Ug}-o;-s6Qg9@ z(hS8Q9olckv<@QNs`dC6Hm1FInRom=J#;V!zXgcM$8;MH2^4Eb#$t^Pw-M9tLvBfo zBC_{>kCVa~+f4mz-aUy0E3ui_r5IN}px_vBL;J&F-QNN`nr}DqEbJ?h+7#9}V~^f= zW@zgX>EysPzP&b*HXezfR6`a{8kdE$NdJ6vdhWN5O&?Dir?)AHh;Np~F$Wo*u}r8q zqKFqcV;icq#%@z)ovhi7Pw~Ensf-%|9j4Ptd=&yA_81+rC({V|7!~n8_T8qERO-@U z0V^C_enF!v{Q9$c=XW9;3ScsZ z%!Z3C3u&z7@5jdJd)Xy3?7A;HbqSgAi@!E=N2|C<_51yLS{{4QNqnRkzE8_T%CT%> z1DuCUh5rusNnx@fhSHnW?vVc1OHI%2;nVN}%shA4p7AN|d2tX$&~(*~rzqnf@?~ZP zifcShjVB@QI!2pSx{yW2FA{Ts*-F3hKlJrz!{HBS5gbkl7R-_;T@}Z>Zy&lNq&{{c z*52tn^WmT2QBrDPvn-DnPFEJGYBhp^(zNtGn4PUEk@UgvbY0ay^aSkUC^9~X7+K_~ zIxr^C#k%#ry;U3^PdwXw_vPi#+b?*#0@wrK$B`FUihk+$T`5aybyRtd*{qwr99AY> zGXG?B#a`G3NPiZxMLEwZ7wEd>;CWK z+HgAbx0HT3(Ha=;2MRqF0?h^PEwr4p1~QZq?Jc}LS$O1S5wZdYu|~l6VGmItSlDCC z!;R0>fKWn;S*OKWMEd%E(L1-NOc*^Hu{Kw?KDNIJAd(U!{vJ0pOH4@l8e5x z$Jd+FzRG9L1GjbalH*wa-hzTrz`e|xdAC@GpCmLHu2-CCd$*b1`~L15_2mY^x6rkK zSorO{yqz&H0g5?#J}ZPG0{(5VYx@yI9z$^$XD6ei$RZd+d&F;Px9+9z`73YJ-a3m* znfAl!gXAZqE#_C$CUmUOVxsQPm(R@!*g!!ce&-bAufpJd(hOT?J{{lIxz}H*_gsWn zU-js-en2iai!Wd7!BNbtLHKhbm)L7>gW>kjfd{KMVq|$P_*M>oQvS7QyXqUOi&WdX zP!EpKo6XS6!PTnwblYNd4Gtak@8&t&nA-#AgE@=%)dhpz-)JZnU)L@R9VYjL);ax+ zKK}L{O%ojkx%sxgYjZImaVYe2@k+1j%3Bz70lvLp^3gm+_x;23 z;(&;oZRo?<#ZcGgk`I@yWLG24{&gL@zWh7yknrd0|F8fC)0YcAZyu>jh{yDhd!GhL zUoE){sSoM+94sQ=v=i6?4aJ>1xEJ|_2Ne%~iiVxff~+&!^ql9QcDuQpx!-ghKhdr_e* z%~%_8)AIPc`>)c=)9?4XtZL2;=|Z**n&wB}=p0B#e+$>Rc;)fVwFltcUj8@VEF)Z;sJLA)kGq1~&B zC*PIf-zKATVf$B{4_SpU&#p+VeHIbPa^!(Fcb@< zFtA$FKQdDmj@(JgKTJo6i@n#id&<>Wekuq#hv?1^#N&ZM}u`85cSsgJ`$w?U5QsFy68TF+`g_ z2Fb*~RkjrIxZ{syh`0xE8Ypw(Yn@o~Pk4`+E%}*))ha@Q#8$eFD}!IMOamWRH|1A` zE$PG4ks}r|SBCOmlT$Ydzxro<_1hy$_&qz|8nC;2v-6hs#}v?RTDd>`)9BA>Wy#)< z!%$f;iaF%$2g37ehZ;N7`*>d9j=JlW?Y*{;wItu`pB5JIsNIlOqPh9DdJCqBr6XNQ zE&m<{yF2DgT>e38)n>bwS3<|N=+84#MOm$(-cOmIeMI9K&Uo5p2+1vO)`?Mnj~%4I zgWu=n1QR}bWvy0wJ?!-=X!Ac8RLgJ9*#+lbSnNpU|DO82Oi@mof4{WsT|iCB{MnHv z$Zv1OW_M;z$OY7Xos*LsO|5E;7a4Bsom(%RV zzRZ}rI?~*8yNL_7`L&bq|Csvfs3^av-5DHY5D|thfgvQNyQQS02Lz;~TRR zJ%pry2n^lb-6AE8bVxS{+}H1}Z{7PZ3l`_yXYXgn*?T{wU`1}a7Ousl#has^%j@V8 zuY=6HJ#4Gf{Zbd7&4Z)|PK+ zi?_Z6p#7z}QnIu6Qcr5nv^?A|uUVhwc}llpQ%GJOyB3~Sizh+b4>DR!Y0$;Cz0^6* zCM|%|X*k)H3|ekK$V9VvNGVq;r$nwORv%=vL|1H$Y<>i7wI|&~+Hx->SB8?mM0mW3 zkVQ=$&t)!v4haJ8yFT9c1LEkpF_q+q!iYpF?p|H53p)HMeCc8^wD13+Q~cxoVhii~ zM#33ugyEiiL3k%$rnP5)--D*s`|g(V^B#>-cu>Yt0D?w0d3nsx|7c()Lh>~YiQ&$eV#~#eF{t%^QU`V9b{d6o zOx%nYc-mX+xFjWws@&S&tOYIKB}E&}ylE)!7crtqTz6$w5!}xXCOq3SU4%eP?~jzd zb-TR<3f&i-PX!%^Bl9FCFeeDQsGMshW#E?a)%ePC0o~z@# zpu^MB(TL7CLWwWY+y_qLo0+$_%&VvSF6R<$w@Z7|EN>eml`ANSV?5kXhn2~)KfJqN z1X#m&J-LV#TfC1;L|ChZR?o(O>trMVgqK6IbmvRJ<8#>U@2wj>b?g||L+N65vw!s> ztrxxnsDrbm`}PJ|#8&@YwnTvyTkmcTa0QT{mb-Bs(B&F=ow3?Fr6m+WnZ7kRAk%yQRuRlkiGG`z_fk{Ech>h$HLl)0MHCJ@oUoc_YoE#L zzC^Sn5(IdR?AoKT?q z@oY-S>hy3}*;Q9CfyxObb+wKU0wCiP_JTb(!QlI}wMyTLjM~V%js6=}1I2}j;f=F1 z*54jk7zN{}IAnjovIH&j7gGd{r6R0e9e|Y;?^5f{Z4#Kggf-sI83BqF@zR5Bnrn20 z(``0FCB4aXE#A?KbUYuaBbp52^uI^(ku>AOMqo~`ty_a8A51wGWO z?@|vGt8loZE3_m~COM}G05;j+ltv8#Y*DrT<#?dzyGw|@xa)?Vpl zOEw{qNvtdfrZoTXa`vbvKjK`LdZm+PkHS8_z#@1bPZ#J4*e<~Zj+Y>5Fg41oA zLcpJ2U4OOh5j0jA&;!HZZ6R5{SI5lrE_wrv;-GHp>K-SxBxZttDGgtk94`N!l@VM z)H5dkBxghuoWE}CS2Yl*;qUqY1ejm^@mJKbS5soCi$#bWW{k|c(s+S@8U zuLx)=%JwpivgUCAH=pGR%CQLmur3j@dZg%Y5*iM6!mauQLj4R{SlMh>Nm|K$6+>qFF|MAQg0Xe@h)0FuQEH?Nu$%L z#cGD8Ra7dTwDf-K5&SZhQsFzcx?aj(>1FRBL z6Fgzjgj@-4ebo1DHnP8K>^+y=ozvas+mfj1m(%|5Nz($30TYZhN1$2G>h$GaEzmZJ z4JmH#jkn6Wo@Nze2m=x=YBSy8})#~~Dh7sEBsHM+lrfm0BBa@l;YplSd>#f=J!DcG4 zS8c<}b;Groxz6cN$c0}*ku5$qd{%1<5uGbQDbjZf-r<#8dYo_ZLQ2`lZc*x^C%gTO zw;XG@!e0_%c7+ z_b#jRC0 z4WkNfD3@T*;iMWpuHGvcyPnJu*6R50S@Zq61p*Vvv8&ZVH8z#IHKEx`7g;VGQ1c%^ zgEHh@6{_lFRW z^ZoHdASzvrKQ2={7BL;1-moY>+r6!{2i9eN4GzYbDd0D=K2aIy_pju#~c>LY4Ot?v>Vi2*F83%xQt0!-|trIv;AeAib{?f-cw1}L4QT+;9xI(ft znCrlaS222#eDb#^AZ<5VZu>QmkJFJ0f z)p1J_(Fn_8^%2-R;WD#(Cs$2ha`4M5k##nmY)LQg`VVRjfK)SOR+@_ ze*gQGiv7vpd-R&am8IV|qub$CPx8VnZ3K&l-_Q z@>gclsz7~_t77{CA!k#u;$@K*Nld1Ls0CbM#os2XYci~JP7z>p>})udVVIADO*~7L zVd%BI?+=2%|4eMuTvgs{b*iy+IE9ttkWPn0Upi zkkaU%T0iYdmiB5RTRvMMx<}& zIC}cim;QX(r8xj>hms|EIhXENsoKJp0}!GHFG=9rvl6}&&d*vTkiTf1FOAyqO|$|+ z>+WJlfDt~8ihVJuTbWr!)CAG8%&jSBq?0pTc$@ps_psZ-px|oqjMYlTww%dq+Q?yV zIMW0Nm3h0W;HpWa0>m|g!otNKqjz`V9s|>!_O=cwD2t$S%v_Ez%gi^M_Jebe!qSCi zHR#nwf8$Eo!~jZIQ8?g(q-D2^%o=bh2f(G+rr5*_jCdEmKfu}lmpA^Y#Wef6$1DE1 z+{>20Skjw)U8FmQwXw7|-~y55Z&z1M<{Yo8#8Dv@!_?`UgX|#eO^N)hWgH=d4k`J~ zC)%w4iGX#BP9AJd&C;#m#7##p0j2248kXSLD}aG@6R4ed9V$^5010k3indv_ zMd{x}3|$7vC#1vGd#Rt1R~tujtYN`TEP(6xqh(e@V@xI{UDJWG?hP-nS@#t1PT`$# z3XV-uv-<{ZtEB5jebuU!Oh#u98jApUYH=P0@>DZf6G?v~TD_^dBcGO&RgRIXya0c7 zG2J(7zF%l1Zs`+o1P=F(jjN(TKNqss&<)=JNvO-cWCyKe** zGfZe6;D|{RmWgnBcL8DOu!F-nnhFR`e~~L3KBym8)ZJOz!*Kl)E;g|Gbm812wRqJp zc<_6B$%II8-`}5DV*Y+1$6hO1SaF8c3fCn_%F7RpTA6EY32O>CTwm3z(RX&yQF&rQ zOL`mjOB>$24+|omP8jsg-R9t^=(c<8Ck^2J-NSCEK2nJXqdrta&JqNwK z&eopVoQ{l^iWYZ@E?=)#GesBU7}Q4m$7edY@7sctJb%CQW!!mlM9A%~+cXncG6phh z$}ny8n-RVLbHL4-QyWkjLg;_lYhwks-d(j!i(#^-_B;F#3z&pPsgDEg{Kt8r>j9QI zbj$@1vv*d&hHWjXF1DW_m+r@POvBzBbG4&SR#8h=e}XUW+LNLYnsV*fdmioSqZblAKpHUg-_lJt0MMtCC&zVB z{8AZ~mBaG_Ks3E{9JB-^cR`1p(o&=evvqtCZ>RJCUF|kc82#A@NZ|?K3@ob`Zf88y z`Xhk;@m|4aUKNR^iwk8vQui-=v7(pTlQecdCp$;QbIO7+&QDrJN1kmjEdB8g0xC$a zg*SHgRDD`hk$IJ-#E72Fju3B`{>*fhAr~{ryuz8We#Oh>p= z#_g5&k^c)y%3+o{Pi`aG3~BMNsQKG|(&!)3E&fIkA8HbFL6%wtojY55%2Mji_n1Pt z_XoHBCx7!LO4J;BQ{&S|of|?WX96O4Tih>*;)a3rdi@1&#s-jVG*o>j^uB0OBKoko zZv|w}XLH}jl1hgTL;Y9hh{q=)GnkK}xrfU?;b<&^+oC^gzMch;M~imKjx6_tvyqpW zrrEzX6nb@fO=dU$-%TlXmT;}2CDGGf=ig_teRd@Ge|`$t{k^>vo@y{^bf0h71agU| z6Xl z9E%yqad(g5l9J6wv&<#^?APPF)@a3D`F{^3QZ@IJ=SyeSDm;sL2ajZ8`K$F*a5+`i zQG&%_0*v;g@>8o=L9XOH1RToJzzY>OD6A2TbmZyD)_x0bzDOId8Cw)HU>gY4oBbG* z`{+Uf8|383=z&lI@yvd5kJQ9CTQ0=tMaYH|X9cbBPDVZiA=qS;gdY<2sZ2&tfp}h^ zMd1kfLt#VN{*)b!ch0p1~*(1pL zMl2lCoFh4{nqz|E^e7M2^#-bHVyP@RR1xG@;2+6C7>}NQ6)klShnq!}o-ghh+Sx%w zELawfk=Q}Hxl}V4Ls*~!d{<#1JW*jtKx~LxQAwDJFs>S-0eOccx!oso8sF&@CPK9r1qlLr2J>J>sst=#T8y{5@bTigKmG7XBia2)2o8B%P`+fJN;L*i0e>EwTZEToM7$w3 zuNb7+^yc^HE|Lex>Y9W|Rwh|i`Qo6s+_>DI_{Df^kKm8`8K!C;!oRVTZp?-}ttDLa zk$s1Lw_sl$v*=^v7ivgSVFLYLj7eaXH=aPpe&+?zvs*Y?Ktq`DB~9zZ$2;a#SDIbkx<_y>z@>SFo- zaA66UaIyIgWsbdOodgE-dw1gjo|4S}_u&Tab3ap@mnBzpgtO$*V^;@O|Xm^*OF> zIwu0q>KOR+mkeY@qK8(9?$UtJAClpQd+WVlem6sHc>%fXV~DOQSGtwjT(PK3U&l!~TD!A-HW-uq+-QuK#?6j)AvQq5Tp^qArq8e>_0vNq- z%-QJde8fUUD8A%lh&-~PC{**3#I+FkK+s}+3~6fFi}#LQvY`>sI-=^b;#^dp@>@fW zN83e}J@_-6{T3EQcJE*FcQ%kF2+RsqbW?mbkb&~5Q_qNPTC&-7B|dMR8g9M~F2i6fi~~Vc=Z%#j1yGg%t(lfr2Tn7<(&JLPAx~2Ls;xET)Pcu}v}G$|&q? zy@s(*H`!Uhuno4e(4ba zbOpzFx!DFbUU9Z;#mtt|zzdT4<3Oc#C`0LFIf}Ik@@7V33=M>vmXx&UcA8$nU1dCwxoW zIe~nmqc@u*^jF6R_f?4If+Kt`AExTrmFH``e7-BwCL6@=sobUwzGTKD>#&o9#uD2Z z)&fm{ft=CBH4TDq;rg$atqL5;1ru|NG$0J2uCt+2qAV)?4EEOuz~x4NaeqQwB<~)D zEGEIvl?SkBBJwBa%J)f-(&QtH_lEc$7b>>8Mx;cC27=$Hjkp83pf`pD_W64gF-7Fn zf>A_qD2BQBkgBOqK!Hm4vsw?|mX9mLj_eP92pX_pMAlX}=l4k4KRD2>wBGc?BHnJf z5l2L!y#gx?Fq|x-VR15g1iPBn4{YEmAgqmIPQ?)Ge|rHKgW6u?RIx&2mr*zesZrQ* zf}Bhz>iEUFeH@&GBR*>H(%cr(bbv}5VgYCh-0B2|Vm!1w?eiJG@{RHBT+7SzdS-=U zbp05hJ&NL>r2=3g>n*%W=+m3UP9Uo(Wx!=zZWi3Y0*L$il#=NU23#1;@`CH84AIB` z+1tWL2!9xmH$6k-`)Kj|18WkWnLV|d7u}@ECm@RHlbymdFJ4dc3q_(~YwcA{v9GH0 z8}nmzfN316Swk&oc?^bextntf+Gi_r)A|~p6e!N52@MwgvXenzeBf$1tw#8wEUE}n zqH%&k_%5Z5s&N_9*PY22oAByvzyl}(-FuW+Pu!ccgUPT!=7G4zT5^N+CA+d)iD93M zxV7atAVt+vXe|SdxrT_zn5!5nzG7PdqQZdJt15u(9SlvdT)6tQgGDA#feS$w+5_7P z%kp6|m$To2`MflX7jO>;ar`<$w9dlLa(~(+5&*}60={C>-1i&06aB2bvs6y;qp;3@oE4 z5B=%scZl&6MSNrR3ul*cGQv`NYfSnYNLCo659J`JqRLq?QYw&g6g;P zo_V0{5E|-ZniBe@2MeN;zk%z%NUZj4>sDs`$~w|E!4}#L^mgjz25SAd`c#4Izl@=Z z!?R-0A(iE{G=9{xtw|bCOZ7ATm=sSdn#jUSr`7{5CS7LgqBmDF2F=kNB@SmJp!(6T zJsV2-G~2mL_Ap4CPQc8Fn+Xo*2qeP9`ss06`7xlTB&=1*2qy;2ORRn%r|R`;(&=n{ z_VrcJn89#KutyHq_W-qRp67L7rztlZD(gkph}iT!e4rs;cl+L55C2R&iJwY~nabu5 z!SMsRiJw%R3_b${ZxC{ue`RbWUzf@=4l1I<71oSyWd!6S*`9Q~0E!I%4Z?Td(tjR=s5=o5B@i4qldCSAXw_hzGgp0)?P`h&oRionB|d}?xW3r>nc zc^z)~wC)jayswxVF6JjxAzsXeE z_YqeJzj~NrcufJdTp6cTbxg5iL;bml-lGdDO$5e72?Di1;W`@`C;WWydb90HF@J=> zamcNNaq6KPB9b7F=~hp$M@t=%i#p1V0mizF4y8cXMRa}ndJkbt3OUur@UQYvEp?+Y zLx%?9@*aAWE)ajLz)nUiAQjq^GHsu*J>(2*xNBA1Y1u7H*+26*C%k~-X34{Gd!TJb z)BipMB(mCcp(5Z0@0LyZ1!OKsvLt~$MNXU@CZP|#U8wMoXxqT890&{BWMpFQ`w?*q z@JEDjwr+)PP5G54iu>RH#fKF5dJaT#3WyZQxChdk2-9&}tt4F@L z4UUGv$_|gq=~Jc*rwvt639|YgomJreI6c+i!kSk+yi%2W zfj&wH8+FR43aEE$bz`iCP7kFy3BL-(oV5UTuPfQ-mzahyohZVTkzQq5afeD*syrBS zY4*zlSyw7>aB;e~)F3M}K*h}4>SbE z6lSZ(K4R)%`eEXXcc3Z{zyI9gg6ckOUI|#i7|~`ZTt@Wx;jkR2teIawJFF547f98J zlc?#jiYF9w+#7)@F0^`XTnXf$e}rnQ^T1QZPaJ`FKw;pWdqtp!Vtt%bJ$rk@(mOr9 z-cyRIgntldwC*tIVr4WE-f*Q-FrbK!^kwkwz-2~j(N+SjLGdE}b%3}$$E%(xGe(aA zuR)G+STfSnW!2(&s2)l>lg|oh%|OCzR9WcyYEf#=LZsrBNEo5w_^@4C??|0voT44c z1~xH?4UGQR6D@ZYHaH24#AVOfdUYLWU+GZ>Bxd8CrZ`@#ETn!T<%lJd<|bq7V3VQY zF3Y3gMZ!C{J#`kzYNbr&y;<{NNlun znu5f(o=AipS^-q%!6-k>%8W$14Ok>+InctyVBC1{; z?VSbroOG2iwXIphe)f>Nh9bCe%KdJRY_W;XV%Ny_UY95OWcY59SX{%}{a&G`41 z4&z%tYO4n;-^Ym@RBBN%!;lBrBT4SVB33AdKsNYVj|8=i99dj7N+*g3cm`kL;;`0g zc=P+VWpT(x6du%#c2i+poS#t}efjF0ka7+a(6e!@EL0@C`3Bts-(0JFOiW_~J8<_R zIf0w5OX9`gkd=!_lX}c;iA2C;cayAVM2={GN`w*ZgKIp6cv*}CoE@zzQM_c@l(|8R z^fOGX>O>o_ZBppVUt3c)_Lb1HAI5UoY|=OGHWcn;QV+2SxG#gJHx+ZY$~$8 zQmW{X%N~G_{3 zGH#Sl)-_FDVkM(~INdv~M-^+Nf^{S4?S@43Ycb^tJE5+(RKzwg&}>~r#;b}9Y~zt{ zu)XWb#xEKn`7kTA!XHlXIMm!X1-W3~MG+^}2z)m{Ety4QLF2SPQmIU3<+@eODvy3i zalt9_vTa-|UgUQg|G?JNzJ&TJfIyFK%A?+@L#kL;_?gbrf3FraV$kU z$6CFAj8&sQgJMOjQ982y8za_n-5fWpfDuCX8^i`Hj#T`403C;v{nK$P=!-NDEtkC^ zgQ0Az2|qpgP`4h742^i!RbxF}r?hSg!0=Mmlt%--=*^CcAvAj5^MOp)aI_QGQ|J%6 z@(SJ=bePPm&em-te!^tbA6_X&7(>+IL)MjN0743tj-D6<6H;YM4F?YUrf?e&LcQR4 zHF?{tS0Hc_Cq0TN5O*(U|04$n<*{4~Z}@TFtewz^UXF?R3q`0o@BIg?72c>g+baJ= zq$?3Puz2^x_h%)&`C>&|Adp35l0LwT;{-;M7H{684+XFY=EPHzx5W;=!iLCGyxNFo(kLpw5{MWlAdb=LP*(dPiWSZj zN!UIk5b@K?Hw)N=|6N3#k(PJ#b|Z4wi+P8gFve^{5>O^X^Y;Dk&T44@yVMzngIyjT zQHI+;5K^a%bboS31NMH|mR~BGU@JQ@K73FZ3}xgE6UREgGFNW1Bg-3GlLN-Fken;% zdO!vuPqQ=hD>+p};6VURW<-u3JTs$WUwhSH*&c_4;6sLj%Msbz20Y4&|51slw(X@y zN?0l=vgRZ&4=)ru`m*nQ^_81Q|Ce73VySp_P}-oczv2Z8#y`)ome`o#9PF`+b3eer z>H+bz*2KQzmx&1~f&!jn^RKR+CCq~4rY$fub08cO84raC%o#G9eZ2zo-6kuM;gT7MM3ia5fRw4TFZU*g@bwFOZxcuS}cx;tCBLLq5)bX{u8zh6gtHmFQAf5 z=usN1`LZo^Oq0W;D3}2?=4F9i12!5LWXZItKXBe3YJG)Y9Icmg{`A7!-7~}ZTd+Ee z$2^D-)MY`o3Cx)dpT!}!LvZ^j7(>lE`f{m_X1ofztcqp*DO^yUd8sW%_zGyACXXm& zI#tRytqM%A*$w*P{Nt8(oXH<-(ua+cnsL3Zz>hDz1?4Gbq>6*N7|f`+^)E#QyEF>2 z5Li71LA*~CrY)tUdINPJYH^|N8(*Y%asFWv+H6<)Tku<%GTAmAd)q#xbbdu>&(>RM zp7qU%AHb2=HU!$e+&y<6gI5K5NS@c z0Ap(VyL0`MK%zAGI-e~U%18zkdG!#d02cxgSV&{a`DHjgc_KwfNRZ<9Z`dr{_3#0( zHiN`I~5 zaHI*x@-H5Qen~lbI-QyDDA~1^O^{-h&k=%0pk`nts{!24aF9XuIRb6co|H8?m9Y zku(Sv!>`$yzGocvq01Rab;O^r0cK;U|FVL; ztrTI5n=IfjzuX7>Y3`3(6R9XEz)*<(T9%WyOs6_-xqon0LcZXpaGjyEZT<}g!cl7m z0lZTeeM4gUhKApm>cZ7Lg;zB|*T40#KV56?RenGJ6TY*dyQ@NLGWWrQ_XM)1eCyAg*viVi@5Z^*$Ri%56aQ2uD~q`)!V^ z)eCIUS(bJJ`)ItXA&0~LYPDn%J1)zMH1|6W7j^McQv~+jpCL$<{ z`%F}Mgmm+`+AaaZB!9j~R~m2hz8LiT^sH(!n7z3H!`)@JyH`3~@Vm(u3#Q-t_g2;K zXM>(-Cm@5m-MWnjp2E7;uR@pn{rW`<6<74KEKmi8xXg8drLF#B)juM+PMSB~w2tCr z7*49lU!Pwj5o-4%TJHAhMG>HUBWCt~{`+g`7W5Y$BLADSYCroR5)|?GF41_Es?BRI zcCH5PwwbHl0Ngu%_E|*nv+C>lQvOxf*!pPT;mi;N^l&lb|wY+-`ouHeLharSW-WG zk(Zomk;{P_(|Wgx$EzDD+tYIU@1MURX&qHw<__>HAyAp-%R4=D868oxlAs+;aF##q z-T11@%)5^8K(PCj4wqX87IgUG0>{y=R?#Pd+?-G6O{q1+CBI!@?>~H3GPkKWNrb*U zPjXjM*2fa{yV}*6Q<2rpGqjHlx?JbBfqyBHSNyx4r1Nn?`&|puk^CT>q_SKHyT zHzHH@EIy-^cDH6gRDU$Gh=lcSkeh`;J3+n=5SpD4GsFf5KWg7?_fc~8;%#rEw}4` zc9b1rMI8iPnbjku9_8kmB?nyjpm_CF=qpMCM5`k$L;u#t#r^l~-b+jmW!GOnvUKP6 zAt5o2r9aLr|1;U~P%c>-$K~MQ7`GNj?Ca}nf&?kq{` zDK`ornVHfU5w_=6-LWu$7w?vHKsa%MgPB-c^(_Rn8wGm|mSLx@f`Al5p-N2EF{CfE zk97(LH$gIrvIRl9fiSDSihOG*W!+moD2Nclid`T|PJ;{9Wcyvs$*uhW1XF%)RqbC< zB(GBcmzvVGzaC-`cJ_qhh45s@C{Qsb1ciQ@$d-@8*+MD9zU@J8c+tuvTTrLjl%E(*+X`7P zHvk>A!zW!I5oe8PV&Evu?utwhWL)Y)kb$eB@MPV&HkS=JQ(7`6JjBY$0buHSt<`+i z%s`0yjchUGI5XAW^=242ZK4YV#K5^EYjhv|cyNn2T$MY*US3|dpk6bOcfgyDE!DoJ zz{Kd2%}^H%l>8cjSG`nhR#YXZ!aTqe;w!D~yej4_nHH05rp9A{tC$SSB>^FW&@c3| zyKopF@(k$7YthD?IVE!@j{0*-P=Pl}_xvGocnDCf-+YV<(@YS56QI*)K-hRgb9*>` zTkbv*L{zxr@%T}XoeOro()?TAeW&JIfgZsRFc|q`NPG%^OSPaZffo`>Letb_c-@Yfc@qNmsjeEt* zzIZl7gWaezjQw%zcj(RSAI!AveO7VoLL}oeXQyI$m4e5N1>N7NU@%dYZaQ7=6)yJd z30Xw#>yXC-{J-6-z&cHTxeKt#g(ox1zjjf^kZLFs!RQIi;a?38ga%dUS9~@<5||nw z4W%*X*}l){2`%EvfjI!kye?x-@u5Vw-7vjcB-*38;Zl#kEkKI4-+L?Amn2es`ZkN+c9M50A zE!)sJn{M?1vdHU^12u0Ku$+1nt8H&7JKvg_od`pKp@Zfx5x>(nzJ5&n7#90q(KlUb z&E}EJ1B6TEvk?~vXLJ4vivL_mW(X8B?H$@szN~{KRc7XJK@I*5EVn83iT+Iu4r5(a zl#xaH_F@G;rX;~S7B|6DPX_)zYr<)Q(Rn^e4IP^;q;1u=DnTpbvKSqQv#m#w8yBQ$xW)PC#mTa#FeH_FRyS$k zg>$p)!t1gI{_;kG(hmf6_3&XzxxPB0cQ)-RGU`F~gqpWVB%O7ix5YS+W`pq_h3zAx zQ6%uml$n?WC3uMzEEe}|;I~C+zIPZkHMsT?r1bbM85yt@9L}A8DL#2%@Re!bkKi36 zJvn&(_p(xiV1CfY(ZJ_)$p`azT^}c*h14sKC)lVX$q?U60#1l- zuEPRx4DCwie!Wt~Kn~OVtb#)+-=mWkk-?_w{3xYK&mq5|IV-4BaQA=X^_7o~GY-6-&Y=U3S2ltV zjhjalKuMjz{9sw%%u{1;@M=JH1K=WZEhB=qsOmAN4yRc37^`D9oqMG_6NP-TBY zuIsH4n#?~jAdO&tE@f%fkTpY?3|epf3krrmu!JkQ21ENa?Y22IPzmrbsO&ofH&cjq z1ya+V;f-6?x|m##;Nqk9FgQJXf3sz1jLr}Yrp2e}n;sugk@K9f?+fo*;D4ZkDZv3u zoKk3-`G~gDk@*R>EMCF--Kn$S(|LQjaPlGL=Wat)Q>+U4A54*<%%!ZM#b@b)bal^2 zmFx=!ZusT1_H`usoCuB#jt^ z+g@YR6;`IZg7AJ#|FkS^K+Q3j*-XSCe`?b9}sO^xe!Cp(q zk1P(ipOF7s8gEi~G&=jSu|e2YY-r4Y6x$y~ZHBA?m&6a`gGA@Cfeuod%R&QgBUZCL z6bUtpFT-_FwhJkyP@+H(-!}*wFGIT)R1r$4r9!3)R_D?RWs3N;H7$jLu2WUt5ow$|+3_7PsE0eDf9e8($cbBz`1@UMJN2p|ut`OzpW%-ui*Z|MmieTcx;3vPi##%f+w? z#Iu4yHh-SoNOwzbRuR4(e&4Ozjs6-?$xJ3)`u|10v?T%jKX1}XM4Q1NCJ1y4XI#|u z^YR1hvRm60Y6A`i6*fh>L7^M}BPC0*-6YMY0wA>HA(;O1yQE-DQZ&ET}`dk0Y8chC4#Ridu*nzYGecmHdjz{lU+l`fkgAfD#k0P2A^e-9_H z+J4L>yU*~nrmbq$;FhNwZRCdf&fE#*`QG_pfyQTcJ#`jy6B9sv=R2~{vC>w%7V1gX z6%x59sl?9I0lmE%x?7qZ_x~szH`Q#w^w;0#qqk|2nrM99`gr}F$j51PI%DkC*ocUhCH0V-vQIlZ;G~`f&}s!MD-M^WByie?aZG!ExY+8 ziFFG!V$=6Bg95kb|5z7buQ~b{sb|m3b$@sgW^zXq-t%)xHf-ay6=-_yu_vZ<9}q#{ z-kwAWX7K2=##3}X&&38rBPQO25Bh5K{2NGqF48sZx3ug?|GD#}Ge(a%&+18g@0P^~ z8>dDt_J7gqGbtl8BUmziMLT*Akb6Vf3Wu~HHJ8#>$}ACLpn`8`{sQV>|M}PWWh(1s=TS^yXR=RI;CW1l<-q>J)9C6UU7S|yfrlUwR zK$4AENPB@K2q0x`)W@aD^y1V<6eG?@s%mV`o)OjI3j5?C>bo=Ql#Iv+NYnw6d zhBuFq^-=x3Cxcn1o!Jdi6NtjWr2&IKnf$)O6+~SFU)~qcRJ&78$CpO!n%1``#EYoU zvBaD03ZJi@)pEd;`>k>Y;8a&!QbV0x%p6DNG@E?d83Ce6i=jd5?vB!lmtWbd&+wCe z{}?YvV~!(0A&PLCwWnE*H>T;hD)|p(Dj=D$^m~vtKKK$(Tlww$@&aoIV1qTGL1}4ub6ZQ(F3Q= z0kH6xaL9A2Qk$OaV3Fjs3*n=zC2a&Jzq-Ds>S?TOXZtG1{Xcrw)r+5SH zCjL)Et=gKTuSlFPgx-Yj*t674A3p_CT2Rto1Jy!5Kh4}?{{sY~TcqLuQKi=rE_e#uew-mn=#v6u{ll|od=O*IJF8p8wYv6LDi&pd-|))Cc$DV@}S{7SS|nP!)M2@sD|8&BL_g_jwIv zUpbML`n5NKOYU+i`z0)!zIoTgSk9H{yf$9fiS+;N^`s+@qmb+L>f_PhE3NLOTQ8UC zULT5rHD0;eWR}VBJQLl_BzmXiarNQi|1kBP(QtNA+cRTCkKQ9nNRZKciQb|U#Awlb zAH4<92_m{d^xk_XdK*M^qL&aQdI`S!`PTcc_5PY4)^g5$&e{9yYhU|Z`xo8{@rkPY z!jrMfBQe(2gXRg0WbwgZ&2|1vob@2|))|>Sa@u49=~hH1`*roz?q_s&N_Z&xU)6?0 zB=q$s3ztz5$PuClUHlPvB@?iu_8E8`MV)OqbLPiYVUIc|iPus&{u9btL3*L1ggN{_w(+YM6`ByR2idfH(R zfq_Vhl=eUSyMKD^t+>C&Grd21wGzL$6LN$QaHAQ;N&ubIwj7hJ`gX6nOD9BVjtviP zcl{0wgkx=hnJ7{AXFsSIqgiKma1fmnu%=yqveq#-mgFY>sQt z?;$~vx0%p6df+jg8hC|ul1c5eVlbADpJ;&jz(p(A1`pT>3y2GR{rf-60l)BIGDdZ6 zhVAPedk=Y*y61i2ye0s45gIa=FnC}%ueB5agJA*}?%cLhC{dLdU2co&+_7Au-#25H zd>aE0-E~CE`M#_TJZqxaa^Unvsr`lVvZ%2J+sI|Mofv0`f7r5ELm7uIR%)*+kWS~N zzH%=c(TkVrb}sU{K<~%v#{|*Kfa>SCLgvM2K&MAxQq~!}FX$+Dwa4he`R0|ICyhI3 zk=7F!zpMt_UeI?Tqz@?a-_Xvt9f(%}h1io8<`+kq9L9gt2kv;sX`AuYRySx{>6b*N zD@u!8o+1>u=q1ut7k{DC#!WcLEo;vWmfG?$a%O(jlcA;C1<p+C*W~+1{LP ztA(V~-^+c9!yAbi{*5t5M0^XDC5HqymWU|!2 zqLZ&a?Y@XWB4~74dZ~@#$8Yycfv2mUfS}VC{6EWz6068r?`SjH<;gq0HCHn*`T6eh zSqc}{oJKA#MpQ^Ee z(xbP7L$__Lz#K4jhHcR_p`t&JJM^D`4pVb}-#S`PB>=Y^7vFRKf9SJt_3rtkmbyeMUZ>-aKTWZEe9V&C_fSKfX?=i%Z7Vxaq6&o9!)-1*(QfT)? zATDMB^&~r8I+T8~jE5Wz#PxH$h28UY<8v`Tfw^NeatrylU*2UcBU84wm%yN9_w)g{ z4mN`SUJ%cY#<^kvkC>=4M5|QeUfdT%pw|e@JUJ@$afvE)d8Puk$1jjb&;FcXynh=x z@j)?r!B4WxydON}!OzZp9gk@2pl+?r7PuJ>?;j)pvs_2O+Du}_o@W!ASNFEhhCOW+ z(}_>`EuSNGPX8hu^>h_41ql#v{RF$z;Im|WEs%9*hD$1luCu-c^Vd9T1@*YIbUCz9oYe49b7z{v>t~cuHP(G#Dv# zBN%t4Qzmt`f|{lA8`BeOse{ECP{1>xzt(_h`8z!E|K+ftR?%DR_T}!9KFD^d&bFD zhcV>x7qnos%*|mjr;C7Nd13y(_UTS*d2A=p5Z-&%-jVvy^!$r?8J}6&1d83Obi)oO zSf8h5iWcaOB!Xg>2ZU?n4TeQ0aZtcwBu%1bswhN<75vq;$=Fc+~57 zFi^hvAGYE@_||oGaV&fL2hm!1P7}CmV0LK|S?C$?bV^=f;T&aPuf&`mK@W3u=^X+( zRMEYd*6#`_`k;!rR%r$=4v**=MArRgBOjXpgws*DPI5EYRQ-ZD^y$&yAs77!{)L;9 zpA0+0D5mHhiX@`Y1A94xuP}07|2FI%aA~4uR7q-aHPdUuW39YM=d^pT%=Rl}UBYdB zrizV{pohn`l^T+OJ}ec{n29%P8{=R#-cKi;Bcr<^dNZZm*93L6x+gOF*HX;Cssf?Q z^LiNW{^WDn^$-b%a%MDFTnfg_FqGS<)%#KbxDQA#E zjUv~=s7k{j^1yI~*|>ge)QhGA-~OFpGF~Xg%ro$Y(wI<&5|;)Tqyh|0^ore8_q!OSPx-=k;VPavK&RZj0A5+QriC}WOfJEP?DB-yl9q&EgZvN8Kk^25>CpXAL^ zFxE?vrRcZxD`hWpFHjsFUeu{u+Nf4-7RKooq?6i&q2Y|JDQ_GwzJEka-5T+hJv$js z2ooguzq6H7?jFHaIXjgC(dEx<=pYTQ83S6xH;p-VCN&6C`^P+Bfenvun}R?BGYjWB z$_!%%PU+Dl_(|m!J8R@l>|~S!hedT~MRRBjv6j56DzRTMqxW-~WJq=}L6;k28S4qX zV9g3e{oc&|zrwTOQH1Q98$RSx#(ysR9B~*p8Xw1@hszMItkHZ%=Re35Xcvy2ReV$tJh#MMMmg5v3u?AzQn~K1#S(PVj;4f7=le zd1+&w8D=&I4OZL(v$CAzBJGqpvhY_lX0Vn>e}lNW8X+wOEh%+f26EVSJ$o7C#Ny_( z-)I$=9GCE&G7Hmm8^vaTcw^l*$VdEc7&Y3=+31hzAE4-ni-;?2x?U@5sBmx^@8@q} z_jP2O-tdvfy#hqZKi+yQF9J$xm)FKVzK@@G9O9FLbzGRFB6d_84wnU$FIwn>Z5$4U zD9-c~YVyq*iv^ugV7fu!LVFJWezz(;TgjN4g_LrxP5Waf-|thG9@o31l)dix=7<{G z%ckP_rCL&XMVl-#Pns{sSO#rl55Jd6NLa?N>_#LaxI&OU9?32{O%#ru`U?tp>2IG) z^JXq-&KrveEc|wMjCb~^>u648Fw@6<4BCHLn0h+d;zdsC;8c)|{E~ey7-MpSM3;67 z|7a9R$S{!V$_i_KXNXxWqx+qkZPT4W)wdky9cGt(>1r5M!Xh7(`pXsNIn(Qzr(cjD zmAm$-MHdK<3z$L{#xG6ZHTPpoFG$T8x|>KUumIuaLu{aSMf@~3U`qks6Tu=7qex=N zz+CFPM)D?roxza)(@l!6l)56C7I~>TSO63DhJZZXnHoYO=#86{h)5gdEgi)^$AXAEb=uiZlp{d;SzXk}dCb-Cz zVw%?iPR|6@EMLk!7&UwxP~ig;Xr6QJwi7zPcPPt4!CgV(zK9xyrfbf&?ej&34f9ub zEBQpEDTaLBv@X8e(h5)EMRNV|W0|%~LY_1iIi?}g_00je^nYG#%SnLVM>Y2maE1X1 zpsH3NQBUzz6c$iBDmvchluay+D@GT5uyS#zsN39y`rGHgRnXy4D5jH2dfKl1%PkZg z0DUNwqfpm#0vA0vfs%g8Hmr~98k6!*0m+sis86v#o@^d<2t^LwXz-<@B-#JcFLm}| zgatZ8u=Gr}IFpmASdHccjc&Z+;n-}Kw?x!%Rc_DVLzi`{``;kAE=t&a&#o7ij?i#A zf9ak8seLls)z3ePB;LBeSmUoe6pR@!d6{d`-q5hRaVaM;uZ4gr(-$S$UuB_7AqG;j zd#zuJdk=VGw^3Y4Xh-{#2d_VS~n%aa@DJ9PIxHaR{nEyDKla@fTvuY=7Ga^n%=v{tAJ6g)4jgGWhT^ z9SB3nxbnG4TgFL!53C;B|3IH<{@Oq@UuyA%JYB6QWeT*Eb+___0Bv$TghlxxIOF=s zWmN5HM=5Ew$v*&j@debvuVF>PB8$tsw159Z9Iaoit#?rGSNt|yc>NmYV$qYi&l!3$ zN=djp;{eSkV8~AjT&Dp`l8OM9`T>;n$InZQpvSyOd^;>Q-V|NdJ-}J|7}M+BN*nU@ z;rJlK1WCZvpQ_1EPM%ERw7E$1C7v35h>vCcE38&T50mhRJQ>A`Z4y|#nSQBdVSF&< zGx|q~Zb?kAd~t#**GJD6i-L%HO+3YYlRfhfcXS{rsm~$@6#jUuo*N*$Kq-r zaOOc0L;4UI?`l)7mUn}>Q2#cLm(~4@!MTTn2N^7bE>K#NtH9CQV=0L=Cc>MAD#yL7 zyAMx29hn_rfZ^O7KwpFTFamW4wVLq(127ug(OMq~oR5ms}DPk5sz@b}x;zzzp+2oXzxh2FAz zyU^;DYlmV>!Iqe@_<--=q%iR@%S(bvta8Ky+%4B^TeP@62)$(7@}e=A85HU}zsRtmjwVx8|H8D#~$>8%A0MPshDBLL^usX66V$n#H!V zxGCN&HxdIkzk1(207RA9wM6#{-rMIpM5MIv>X4HZ9)ehEoaf7vG~hWuV^qjBT+CTW zwCNm8;G6|4-kKBc2k==_ac}74yQO1h(}6To9b?ved@piZ%Uv9tUoAPO(;|??6};hZnu?8xlcC^SU7o%h z9(=Dy;j0S=X6inFH)$r{VJ0)=4a=Cv;_@U0#K`c`azw1Krrq9|C5`KGEv!~XE&#i* zDPk{$Z?0AO;or6xPI@B@V=?+gK=$3rX;4Gd0|4z}Elbt-=-FT69AVC{T1bjq!NoWa z)h0YtnTK^gaB@u7?!-5xl;_4#_IMoKT2e@}!W14?{MI4FD)fBWS+Dy{6b{!fm6Je91ZFTut>8B$N_rBIiq;U6!D<|`Ck zYt{|L2qbO4^rqv7Y~T<$Sl$2Wb$tR6i0RFE8&Ak(e}?grU*PA$x@n?LD;VW<(&O=z z@QOcu%uSGQXe}skyNDbuqI0b8L6G)(3h!?QMmw8a)11J&%f-8VeywITW)gfQ-9qnC zj825KppgLNXqltbDlSmpQn{o&VkrE(zitYRr$^)2dJBF2@OUM)bnCeNAq|c_{Wm|g z?zkHXac`@_>b{HNU3-p~haBw5tXPC}g-qrW2(EyHU*Sm21-~Fdm*L(&yDpT6THT*T zGXijxyl#Agk<0F_MlcYa<|2<-LX~zxH07_b(izsW2L5wPx+3*tp-V@ql-_sIpt_9k zUxlfW?=VYX5cX2UNMYT524TYcK$acu%6B7o(}??GeHEFr`k3Cmlp!d-66_7nZo7l0 z>D@8ft0xwXU+WH)lB-~V%t2iYG5In_CqXrZ$B^;e)ZjG{5hTWPSxXw5tKZu9l?TLQ z*1&$ow#0(W-U4h2Q_}Mli5u0UrjkQ&alK?XvG^2ow39JrK@mXRyfJBOI7*SwGLJmd zF>~E?FMmo(h-%|t7Q$#Bea4U;{rgeKSvB5O^gT;ZOLKE#|Kx(f6NC$rcynxG6kx?o zp59dQYgs-338&guwz`llbKw^aCw202JGSA`4zWo;gMmZkdKMT`ST|a~jTUaRXTR`l zC57ytW8}Nk7wX*PhxIGQaYxgr(*vS>ni#^MqG5>AO!#4lIz z%*qL2Hzb^~_fTzYG1K54)GWIJ))NxLRQcl+I<$dZOrfO!Wv>1dvfVZIqucEFrV%p6 z(y@Y_pVR98J=?6GUybqS@hTT&;7+Dg_Ly>4zJTP>KF;wei_K|Q8js`ad&4BtsivT^oI9h=MDAky2(^`1RM_MZcEZO1PI1O}+mt zg;7cOM>=y8LKl)k;)ndh+ak+sG(sx9tFu|d2C<7v60;s^fxUgJ?>*)=>v43wt@{*q z@@on8mhJvh)g;!YslneWDY>*#Q*o+j-Si*Pze}OQx|tf*;V*l69rM~a=1W3dA=OX@ zszcs$_M-Co7_J>)TB*9n%SN+IcG!&;p_wgg(Z83?i>hT%-X|t*n}5hEXWJUCN;v>X ziYRrTJ(xbQAMx(epKB|sdWFJtHL`T_eO0jhc-dGayIYy5-SD$wgix{e<+UyuL*j;_ zf4QQ2qaP0O*1aAbuF|;}!MgR!X(1>Jc}wE?YULusix0^n2Fs%C zJ@PN3IASX+C*eR;&JY=2nQ1k2($d06FZMhj7P^|vLs zx`Wcpp+k^@m4lPohq#240>d1bzY)$Qc?#l}c-?XNtmcex(X$jmw}CrAU7;xIb*Efi zbO#gSuA#k^9sJv10o_Dj$GVy1VE{5(pl)GsS1sF54eny+Q05lDn;M(0UoJ6%gAT-W zE8om%LqI3=si=Iv&CY|Bn}fI3@MI5v#&2DOlf`-^ItA^uHilOZqW@b9@XFZcU`MwK zYLNSz_SOMz-%501N~od38rDpx{)g#Cs=KzkvM=0sCOY%`X)B>~y0{fM+11k5wv3k0 z*%>H8E|!h;P9yiEDImGq)5XH%bo01&bjx!qb5*66@#V^}^-}95n57|U{Gp}s8Fxid zA|dG(8JMY^1jPdpNCTiL!SuOR7b81A1eNu=MgF<@p8wmp#dXt>=c;$pzG@O5<@(<# zpYg`^))NubC`&pi-#C_j()r9D_x=3kfbUG9zwPw^WV%iN^&gxVOdOo%wb}%(0g~xS zO1{ygKbd@)Nev0NWaEyqJ=8e!_*l(IZb!_`i@sh~bEoq(U?r0Ps@*BoW4LqEP@b5UcA1j@ zJ;0E0V3cmX0pI&V$UYe7CzR^26s)ZhPNt*w_jR!>Aq%c4pYe5j<^iH)()3`^@7h;?|y5hr$s0>3iy!#Ag)XwzsoEr^Ut}3h2-@Y>P4K# z@s>)7WB=n0>RTTo#VyQ$(;XlA?jthNaFmfqo?U@{QquzJ1&*?RsggeVhVu>Z+UNBh z+?<(JJ9lFrd}RS9e~}b#(H9yAMcxzL(0~`jDn*p=9fwv#zv1s_HaFH8i*i`y$f$a! z1ye_1ER&&jfZiRh4j%X&haG8GITmZD)_vFzfrvHdcw6+m0e_0qC3AB3U|QRC9NLqM1emjOukK$1 zt1rF@{oNe6SHrp4kj?%|d&hSBzI;folClN^JQLh@0-4f%_{cz)vc1W)8<6!%ynV9rpmNvZ^v;J+pt_ zLR~9B7GfHCp5B7IIYq^#Fn(Q5plLOfzFu}?U9{CHB zuSr0pchZ%CpLm*#4^%^RW#Rj|NypuE>qxH$?EX-c;LWUi@98I|02G<0S9Mk)SPC3| zHh0!(Mgj%0z{ZsF?TJ9hW+Dm^OstiTd$wj{nvrYLs>Z^D{hhp%Y0(xR_-9NeFdTWz zdBO>Vs@FEd{k}=}z1e-lxakJ|gU?{_f7KU?Rh@LV07&}nu`+ufej|~)f#Zr&9NjY; zF>WOipS~}H?I-VgHXp`204YczSfmoJ(z8R+mXa~rk>^NizS%?7bVLC)-p53In3&DI9uk^9@hAk)cvWeW2)K(VJ zUoB%U_!PJ=O!F1BVgLssCOLLc21|m?%J?Hi>2R(638sY<(yYitgI2VPUDh}_~KVTH|1eAQ%dj-CDiBDfKXrwgJPAZea=*s zAEy9IU{9sLbtaSgo_NSPm?$;2jR-@z^l#O~a)lC%bNUYZMQnYgkz0yuP4?S%=k_oa z3Xe~XYotwC2q!Qb$;0R85G$~KlFh2<5|KBy4U70cm4g9Bj}LQQGp355FMpwb&?R1o zyTG*@ggfdrqg@Hk)=QY=26uIuxI@R7)L5F-K9@6c3b#N1gkM?`v3Kpme3$pkNUy{~ z@%PCx_dxyz=;maZ;rrhUU0ORhR?fEl?yXkR3o(3-igI)R$(TBTjUjv`LYuXekRd4A zBr%i(4ZJKsAG#=UoKQiO_O~NDpIvw;FRho51~={Mv4VvVs@s3iSVq+{5^I^W&z5(P z1v-Os(koi@A=9H8v#tO{Nahl5e^v@4qg#lCc6YSM*$xrJ$;@{B1aT8=TS%T~S^5Rq zC}39H8d}mC{_@pT@uRCLu{7bhl*%U`xXOvHYX@M-8o@HgIxTA#_V1cYZPz5d{ z4|YmyRFfuii+>&KC>UkimUxdux)j!nw)1W~;d96~fC4XDfG2Hw&p$k!(HOMQW@`ZT z^}ZVwq{-4>DXx}b7m{#P`~35nrkH3`kG!E0qi}mYB{u|Eu9;$z>GcBAgp|DCrxR>M z&%2%-G@2%a5CxoGl;|XZx_c32FF)`_z4iF#3JSDHU)uF>B4^NBI%q);y!^?l=8h;Q zV^OUt+6Q{0l;$UJF%G1b%HGwBbzByNLZzx!Q{T;g2G-=@(^Ij`EPZVyxQnhY3r!Za z_G|6e>_QBUyOvHpdwHdd49~NckYFtQDh$Kb5~Dk#PtBz-W2IcXu6J}tZSSA)`K~at zTWi1JIGirL1x|sT@0$kDq!{0LiOo|VosIKtU7Awhwa39bCMI!qdDDCFLj6q74@s;Y>&){L+MN^}8QROGS<5pq911YJc1OjlfB<1{RqDCWhxmi%1?~H!q<* zxq?(+9`xQq@qYo<1m62gZIlM@&w84Kg^1bYPREzD!dI^vc`S9=e=-WAg z8H4J}5{;y-V8k$G-en1!cTMlR3{%Y{Xo!dQcwAL@=?vGv^nnJm#wjGcC>b-ZYOr*Q zvNm2cbRL<0U(~A6Iu$eZw}5RBJ-Nqd1MP44wX>HPZxJB)!Ybx3w9?d|l`CdV-~anU z0=LXZ7}-?pavknoTH4&X^WEgNtShkxVnxiQQyUxUiaXZdN(S+&MpD9pUYKPOBIZ7Aw) z{%|C&(lp%X#G$NJFm1ZIXa-d7fRz?w9xPFFOQdBr z_@sQMp@~=uDGTR#d#Zqu%VS;htwuPp`wI>`q^2LD#89q7OIV`rUG}+g;Yg^=*Cv(K zPJvZY#zw%#G?QH=6&jLSKDi~)@r$rZSLFvgribdzt5LKs+ zImNIR3bV#ced(Q_WL-yhSR@t67^jsV5r|VMm3ASD!%V}dUPpKEN`^h+lYPA0TWg3f z7<>m$W&TL63$m4$&2u0?k1?5@_!k=l7suJ`78-dXl+yk@8<(;SYsj2#G$~f3<}oJJ zGmaA{bnV9RNMK>?Hm$s!OFB%kgq2lTq19zkDM1yM^!ty;B7!YRxwYnz0b}6G=0PijnuY6Ik+#+&gE*+Td= z2x|j^as8HeAO$2o1z#Nv#50m>qJ9J_WgU7!l5IE~+P}EG)S~Gn^ecTg7=(klC$8BI z#o0i>iYF8#Oo+_yVJL#2yAF7#mjBoh z?C3l8l9hl9pv#+(S$6QEqzuzhbodG1XlPFzb4{5br~>2Qf{yx{Mar^Vez3QgLLOuN zthX89GW#-!OC+f&uyzZ7p7M0(D;K*e(1=WUtJyy2maxS^oV` zC%4y$dw;fKYMeXAA%Wv&7#dWT_rP$(5hxVAY}%1XCP4|sv>RO1q1C9n)?_f&$|97Y zxFrHl4Vhg;tvv%{z*A+{khu9g{0n{IGAWW27|L2LxihF&H!_KrjkyeTmY;ZsH|Y|% z<1=LmKLAZD7KSN$t^b-p82W4yFMkN)%d((|IgegSGE%M*RR3)X3$zh;mtmc+UK0h2 z1PqJ3FUfKIQU2mxUH1eZJO#g&6N^Tob7?&RqlO{SKAzs}hVBergT3W56)7UNl+&J# zo`oK@D{iBmevs!$sNN5aV`F5QA>tYMh7l4N~gp%gsLnu0KXXkrlTy=(zawT}`q zOzLkkm7*P4z7^))jQV2a$Qpz%aVs(kO6W|l#atJVd3gR#9uG&;l|+V>T5ACX=j-#D zRqNGF)5PizLe&^cOGpH&isJ!hkb=ie-}F=6N+7yUL4h3&UU@-@M^O+&z_8k)j%UL2 z0Tl1Ck)M&D*^E1aqZ>cSorn@m0*sI z*e%x?nv7#KOU0)udsh--zms0$ClFUxttoAX$OWuTQ zl9YwNX#M!8OCO;nl1>=k74UnQ^rd7$820pEXnEXbuQ9w{ZDm=hA0w-v%z)b z_B|{H?Z7}xp&)?|#}-mZ=$aVB8S0= zgJWCfp3^J1m0L=f_QQuvq99CHM9lmiI9i+1om3b!KF*zU=Jr8<)`Za`mS+vvc1n6h*&qxiQlRy+ms@i;A{{xdruO5?zn=rPTRe<2G!*Flr7Z2zzGF`OgR0b=wm?A9jriT0a# z>kM>#+o2Xkys3U$=IArsP^l-ix<6sXH#@jf4JeYUSimane=`;SK-boi32D#vF`T5#&mD>9 zIw%+ty^`)p!^~%QL&|HTmt>=Bz-x@-!4fU3)cC8V7?=A##saFs8ZD(i)sqT-!qgS@ z4g_~48S9KnAz0@@KE~po>(uQwvF2;jt?qdv3Zn88AzupKR9$f$FzJYpmI{jro{!RN zKIJ?ZP{b}^bj`SUXC8mNt5K7XxiYZN5AL8UJqTJC!rOz# zhrq>E*fpiK-*5u%LCR%dUI?PI@RY!L*gt39CIip4M6VSD@BG?t6N0>ngEDy=Ot@2# z2`dJNp?5xKmX72DC)w6~OBu)%RFp2*vMnN>Tb{T}!`4m+)r@o%FvA6Gs!KyU6;D&D z_#h~UeZutv=9kL^x&$d#dUSHwVNt291gS!4QkDAm-7~TGqVMs?avABmv&%8`9O`<| zFS_fqzst{{^{dUH5$5ua_}C!j3wbkFVC6ehbpZ^FY9ck*=w{4}Ja|gkNkkyxK zp|;G_`5I(`I4W}dd1h$i}v5BKY1AE-48 z-EyCzxZ{~atb(vfA#S&n@ZkMiqqXu;4^4U*o{S;5l|bBC>g!5K0S>Vz10_a8>eUZ! z)?OG1a$AIwfn=1MCcm_hl!2A$Unw{^pSZ{fEv&XJBh-dMX5_VXNq(2{F3bh>iF4>S z4VRIj@KfTm;_4CcNal!7?b&khKQY6e+#fK`>blVqV5VLW4^-EEy;+h|WOB>-8Wz|AbZ}(`vYVNbVS(GN_N->V z)XeP)@>dvtzkK_ABx(Q1o2*!cw4V4aQw56BO!Ar6b~L692Rhx9c_YXOP0qVqacSic zT9Z)I6_&uKQ>LzS(QUL*g;~_mM@24!O>z4#M-lUDw_e5_YcXxMQ83c|iA^FjLTd)C zE#nyn%#9?xv-*ilE3bR3JaEhjy5YZ+C`}iYrj4k!HA);jUqvTWqvnYzBN%aH={~=F z>BWi9UDXm%8vuc_CYU?Sstva?!glyW7ghTBRKf-!>g>fz53O7K@t>$(S`M0TS% zKbwDpz8HCu#;y`C%Yc0w1tT74iA^M8!ie%NR0lkaxbVdtZthF`ZL=4P zE`guN0K9v7jE6VrJmIa^U76lbyMJ|!JlsAWbqV3VpKefZ_nbrzoLbUo;b%=W;Qo00 zwU$#d|MtCS;Mw21G%ogGX*yliWXp<31;yu9U?Dx_WMm!6=qc!{=hxavO{^T~=9u35 z@_KC9M@{^|FeiB*hfNqXY`gYn0sTP;k&QU|w*}|eK%;myHOtmX16P(7%n*d*8xC_i zjFdZ&^Q~n*&STJX-U6;gTZhDiao@pIVpdhkUEV$if46PrFYo{<4m0C}jk(}1sQve`7mGs@&OH=X zv-76frRw}vQw5*v;<*esa18aF8d3)9)|XQ<^mTAPj^{P%{nWvCH~G$M9Fz8A?}wg) zA9{XGt5D&iPfgRJkRGai#vd4-CdH1XF9C7Xby9(o2bo$J{bKDVS`(I_3XLfHT?*qv zBT$s{R)CHUC*aJk9Q%}werINCF^$-ZDJ$>Xn&AFXpmI8yGURSEq?cpP!x1sRFbpzw ze^w&gX5rN~@UZ0-c~gNA6fAr;ZyirWH(3GO-h1l!S~8NGAGs6wWV^Jy7?awI-P!x|9Mq zLZ{93@J;){;H)*Z6(J|{PAL25s?Ap`&8-I@yYj5`@A~7RTeB?}LS=cp#>gZ)hx&%a z5eXlYovWqsCvd*GP?KPsVGG8dmhEzD@9S!qGKJDW3lGZLO7R8S)WQMX_iL|xn6`fg z>|Pavo4|w&(o@@*4jOP8l(lGBrJN?UtAH%D{R9V3O${aTqh1*6jz!o0TvK3Pj}xV3 zqqNG*^fPN9l5!R&JkVa+|H7`4_#`H$30Mrs!oo1v#fKXm^ijjZhkFK?hf=>bb7tO* zA6t@j)d8nQ3{P3b)NG<2w6rY)t^4}^Cp^W&OhPv%<)P7B@$KWqQNJ4-;{nY%$okyF zfJ7LRiG1v%XC1RLLBua6TAsmydB!+Qmp2@4OSZu`Uc*8Me|A8e-r_T|EQushH<9y= zKE+DZ1z@vsgOt{KlrH6veLQ&bkDC#Er4OSgv}v(*#>0;phgfdJ>B0h7vj~Zq2mTkk zRN}m$Pf&>olBL~KKkC*rt1N?ba<&rCzDza3VzA9+qw;F__=jIe7>v&qa>_6!Dhm^W z*#^W|EkT?C0@I;nikQP`#{nD}n=lFU?NWOkMdBXNx4#|}5c(GEd<3~J z4bzBImM*-)eA7uL@to+mhuyZ7&HbwFEWGu8?PB%6`97y)_w@JCj-=Ae75kX z3>_Nf_LtR{pAfSv6JX-lWyfXsX$dL4O2$@E=)=6#>m5`#V`y-3{Y(<=U6cN_!@#JXyV?030;H?Gk$=AwHU^v81z(i8fJI{-q(Dq z)zd$g>iF~=6cgKsrAtw(3az~yC}^T0EPD0MP!Au%z7Ps6-;j0zjlj+kCztiX_ZcJ^=P1mFCHDuazZgr`F-gWs}fZNaM@0GFb` z)q`v(bSwPHt)2;t^Ky{KHx^y*Zem5rQvC+PiN;h4+f$L+(jcLUviA#JR5T_^= zr9+--$h9Pd|C|drhg-o7n9LaOeE@IildnWmkn_s8HyEe+1Kd9=@E-5#ML)D|k!sVv zWC`XxThNh?&IkU)3z8rGtvE!66BUL|4Y|Z`1@Vfer{d_+C8#QcaMZeekgv(SAbM>^ z`_Y&Y+lqD$NEhz-i+@=!zFGBzV*;6pIAl6{X7UAw36md|D`QkA_Z@>AlAYeax%hxN#2DX&W^g?E1dit=2D4A^@ zZ7p1a8r`JUdNFC#Eel9Rz&2u0=WfMvj+{6?;|Il|DEKTBz(Do%#?AC=+s{F>%kK@i zcadxka4J&!lALB@`q~S>3MFZf<|*?T^c+?UyhW0Ono4&k>Et{!_>H!9Vx5meZ9&hF z8124L{Vf}0EZe<;3o1OevM32%YoN+q+&8KKt28?_-~wO>t^3?fQOkeJhrhf+M>J*z z&UbF9MK-YOg%Y-7gMUSDJvsXQ)1A8>Z081@S6-gOke(3hsC7M?au(1Mi_h?YYgX!lVG-x&*Z^ zw^Vudi$LAQuH(r$CAXt&KN*;M|DF*CMLelzr*y?-%d7zS2o*h;m%x-5E4G{wUWNNw zg&ajkCWXVM>XtzLOlVL#`a{4>jF}Q1Wljje@+;%4zzW<217(Sj-!>IE#k1&1R7AVw z&jGbVbI(^8-~LkaY1x`9H?EUXWBzX~z|3Sn^q&G>y=?ap5Hf6T+UVmMDs&6t{YyTg zhCCEg5#@wLV|oQqmC6I4*l;_FTlr^PaZcmRc&T_*m<-)!GS&X!E{L=AXMDC@eQPDg zY|Z_8^xWNGE9o7BcpJFSI31Y&E?2{E3xh+l;3bIe!c}c zbA7<-@of_#{Ja_)j{&f@!Ckc^oAFyQe66DJEU88jEufxi@dvv8g#;TKT>Ch# zh!jki@-=Dp31PuTK=18;e&oPtA3Q0C#}YeK?!H}Wi2v;1hrF!r#GHlAH`#9BR-^DZ zh|o$Nuo5wFwOa83E|q#6#s1*$a}kX{xe})7JOuJDr*4Ursy&mF}Ygz|F44?)%VH9RwMnc>u4z&IvENKU3YN`m7C>(D#HA zaci#a3X^I(eQRthb zoAV6czC_Ozh`fV>0A4TBhx$ATU)O|#vRsQ%Ue)0J1n8q(6(Mai_ZHdZNH(UD&YhV z+);X(R6}<4xsjV7Z6cAC?5Az<&!IGI^LROEwO)A$$^AV$0p9A<(WIwR!%UvgPHd{a zQbb93jEbt|Y-@9?a5b+T8c3=}@UNb0kI?avJILi<=WL)RCklz!E=|m_t$kUcf|QA< zHmV$76g-d_s#C29)4izKS-7)-Q_zRv3cmjiXC;$$fAeMS{Gu9GUln8H(7w(}aHFak zQ8%6Tn3_)e){x?;3QrbHSYc^LdGa8cg2}IgW0}cQ@ao&2=Wbutug!PrRfM@fu%g$7 zR8W#A`AFB;Bhp&YB>#@DI@5f()9Q= zk_AybbBnOPw$v?mqfpw4iQ!q?`%x-!T`YJx2X5oaZCcE&3N8dUw{m+-%J%)evjH}T zL|M!84eY(1Y;D&nTHt!y7Z!&^*`eyxDtDVqgy!FT;yaPq7riLQSj?}}q3jij$Z*Y& zAT*dxsFtgh_^WU0Q!;b3i|lxmo8>i{k>$kTmIdeau9$Gt_%F2)?P2uYAk5rA%;e|> z&D@WZ=zZ%``7n11)`2uWm2Cqz;0u&hcTp{j(ec(|=?4vRVXT@aSp*xlon)Hlmu>m; z&aLb*+KQM5&Ml2)npF+BvJ+NA@@D$2g7{x*W@5kf&hEoPw?NWcG{HY&4{vH?0!*2dkxCCl)b>HXJv10e?>lP`^NKTFNC!2@8B$I!@pa*2VEpWR5^$2Tf5L`+OdJv5Zcq^W31D6IY4}x}~;r$$x1j$H1p;9t3pp!=rD*AH<{0Y7L!7z~h7s)s6npVVgr;ymr-UGX5X z+H9yg{4yx-)=BPWm!Re_{4sIIko~B$9SjOPttgG3g51Ib) zc{J4;+UTvB&*yFssPv;a=Z;L^#h)9&T2d<%ZL&5PLw9=OV}3LyG-AH*^>RqINAc}( z`h892JocwY)x#HL*IgEQkA*YmW+&|@yyso~?GgGP^`5PsJDpVrNY+iVd-)%r&vb$Q zd~Cix8SBj!qkuSkmuPEx?7dVI{rR!!p4eH9k7e)0zgTv^>yrDjhK~)Lu@y6_R$13y zX2Pw=Y+lQkLsf~%FtOqZt%lH9Ly`2m(7>U1E}17on1oAC7`6$tr$QKz2BO%rmbpRw zySOHm!F^rd&Q~gvmn|=)A?CP*C90F@bsyF7Zg}i#hYx&dg*qX0UKA)OJ`xh}UtJQU)%(nK=x9MxtqlZDhT)Y383{VN;VPWN))byU0 zpQFUA=tF;nC^jKTmpDcIJOA>(eh+SMxtc7S@)2qQ)06C?PVt71a(1sCY132VIPQ?% ztLUNaaR(D!#&?fR?CVQ6oL-jAsOZUYv+^>r>LfdZN!_zt+G9L0L33T~*%VLnOwMdo zq~BrnIwlbaLKyf01oUAlTl_7bx%ctsKDbKNbD;iXGKs^(T-4XY6!o(|p|ARVIA7!D zk)zzdE70!0(n)jUBYe<46#fm9M)9fr3`PfI*JiFcJ|s^6AI1$kEXAVYx0fSAEAIq ziPDXNA|=wTq#z(DoeI)jg8>^QC?iA(X#tTK-8DkKv^1l;Ve}XSM*JS%_xJww{ISoT z-MjA-*E#1p=bjjMyF6OSt!4|n)Mz(3~AL-9>z#fJ|c7W;64oGjlKpjV0q%dZKZ7c#w$^vP-3yGzqKBFW;p#jzmUQgmN?0xTzKsDCy7pM|S;XLrT=Uo->seI>!;E3Q4Y0xcf%D8^0=VsKQM-#S7J^xmkzh@ zhAe^?HcXu{={N z9##a!s(X??^oab%?P*~|pbU!675gj2cUPiEG?J`17H$pV{!!1ew@aL%!~XknT)swU z?=2p9z*|b_kf&7jm?MVF& zChG{6@NSfLx&G-Y4idd2uZ$DaA`d!5FE4Q{zALNZ~k!#mw z2cWi9w@hg@FwCc)-OE=RGkdXX&dOkIAqPQxz@8uM`y-OSf4tF9c%2~NAZ4i)o9`gx zf5;3=S9+V8rqJ5O&~kxCA8p@dS!-)d%B^u#-XhI?&QKcqsV&80LI?&doX52goEIWU@v&oSh#u zqaxAg7fTzNcRIbBjiTw`MaL^zUPz%lg=0Oh148%G6O5=bfo9)exHbVk`{admm zhy2BbyOc3S=_ybl92K-f^x_?6;0VUci($tA^ycK(3VIk!PA-E}vG%)p6KvWTcPS*4 zcaN&2ksK7)Di7>W1~PVWBLMk0vMkbr_xcjd0%8veGAhN^;FIfDx`niX2ywl!=eF^4 zq3DX4osMbyeTiC4pzI@ZV9^{mXcQD+c*_wYofSvl-wUMdajnfnz>9F1k8hi#_|%2I`NLUi^8w1Y%>=#hM1P7Df; z&6~w*d^ze3lus4fL=-lT@(WWX#?`0ZqAd72lg%&3jXxUJD9~q zqM!f7-VQO32;(s5)Dy}_6xLlxfI){x5|I=2GOf+pq(e98^%L(dsUdLHQ}AhqkHY0% z&Aa1vx2I)B(e(3It_cy*Raj5CKpE}hdVhm5Y)xdc)TY`{Tt4q}^VH_7`RjEbkl#f& zJA+-;m7UlmW+Z2NqseF+C!~|}PspKi@&X2(d9wj}y(357@+QR_2xoOtXh0qf>(3+MN0s10=0}_~#q@}gk%!w| zRINoNf>>;%p`@K#W=mS;V07)dwl98j^2^qtj)HKz0wQN+?A(6A8U0qUf7LL5uR)Nm zbG-?#*Sp-*>s)Ol1l%r<#B~aQF0Rw;+Lo@90kuA=i>&(Iu(;9G^gS`pKj2L8b!vfM zeQL>R=|PctsV%zG<{7giUYJ!foV(y?KZmoX2(VGMe zQfiqhV2~sn43L7@n4vO}K?@j6R4zkm^Z11?27^%cKFg;!^JIU(9)tn*&{@3JH0i)H zvnwMBg;?pECwkJ^JA33TX(|*29LUu%9Z2?k!qmLvXxe?h4%}u}ViyX;_82 zjxm4Gx9%*)F0lE%la8EUEZ$c<{ai~MS9ZYQVks~0gkAFdXChNey1HEuSv#Y1m(%)P zQ;35_Ahfi3ve@e?+r07_xB~i7@@2c*J_JFZt5VhLP{FTbkujk=Vrp)I1apK-`ae&n z*hH&%(2$pNS+V6IAEJ36C2^VTfC;Hubjw+}j$wUJc4EVyYMLc?5KZv*V~}D57?*k z6&{f6)xMOc^N#M14s2V@ki_iW;sx5nv0`hz)VMH z6Pk9A(H~^}7jY05svdNW$Ab>HW;@nxYP|B;|En}hS@)KbOW{HG?L-B))^{-k9N{F! z#&&$O0V^ws&b(PiMc^$JGUDjx|Hqoi3F$0Ge{;P&L^Q>qCig8@zO@E;NXw)oqD7c( zz)&B+FkLT8t@_>c%X~gL1Jq=s8Bi~?Z47a;A3BSdL-zc1+FKGc z8+c&0;|SOQsXIA8rL>h4k)xQ1TRzd1GYf#ODhFOq8jg)ITJy8p81A!5qM-l-U;)b8 z$JO;->}iBs_bXoL*(^{=tQis{?~TjMI!m)#3)>xp&4Ge>VSX*|+b4AZXXcc4Kt(M~ zy^5Yo7Gc33)TXolH|@0m8leV0PCpO zw+mPZg>vAjrO4_C2qRuce47M>y|YX zSrz!T)8W@k3;sS_84`t>avdK|OAQX&-7j;!*Zy5WmZ%MHxp4bu>OWG@G1Mf_h6#?z{pYw3z;@Eo7aJN6y00hkxQ zIJjx>+1jjKPpzocH=q#T3-K`C%C$R~^+INr;oSBM-wg7?J8c>mgsPyBgML%c;Z@xb z%gDTmp|*}Kpj-0@IiPSM->gXC;N~-`$yRGL%(ZlvKss!9$1XX;Yv|@!ug67ftLV>DRTd%6fC!;5*UgIxZZtt%Ce z?ZM1%;izVVG+4z|d{F>;Ila5hlQ z0Uq31cHcWUqN{ss+OHzD#L?V6^VS1`06Z&(o7n6=e0zr%_2z%{tZD{%hIeA@BWXp# zKLfbR>~%6SOgn*i&0VYvHGE(~9O(DSKT=2aW}o+758+LrZ3 z2}~J&KVQvSr;XiE$w6Xo_tym%;r`;3e!Q8sq1RBTMJ_odGsW2&)sS6B%AI#Dcy7l6 zblthd;Kb_ctC<+!vYhnXz_0UuM*3YdOn_GqoeeBYUhnN6^NlIcQ;N!JW*gMrM6Z*G zEnRxEfdS%@%~iFok_#c*+>~y1s!mc1+mBjNjw>Q;8)`|T%s{E%MeJnU-V0+l$zc62 zRybo`p{!J;_+mmNe|_ODZ{mGg1VFt0<50+wU2^>zU>Sh-cUJb0Oh=+aUX?`jffdrt z-ccn~0XW|Th((Gwy;K?%Da?(ioJE&VFBqPhPpt=v1u1AYd6ali#?;mYek?8}*^rs8 z87lpny9x8}O!Pa{*T}Zufe{3veaqR>! z*u=;DZN9O|zTbY)^Jd<%pg^G^$j6kf2Yio$La$x1w z|0>4$1rb)!_oO30r!DX+Dy7#LXiPev=oU)tV+bl|J6mT3ofxG3B5h! z%1amU5DqSRJQ^{*9j%#3G1^~uno*;0iLJT2)=`$)H@=v6e>@n-L;g)^W$LGpF7=!1DG7Z_&(* zK|>56oe;Xfn>|j@+|7zOM<4(`%OXahqqDs}*-m2Kt+7$)d2|@ZH?)7n4}Ror!2VoK z_HXyTehkn#1?Oj~W?Ihh00plAJd6dzXcIlsy(|0%*#+Zo*n$KPI9GDr{)L+BgDqcIPWJ2}(w0I| zfxG}Fby4&?o`0@bfAh})UuwOjdX0JUPwftaeh_O>oD(?~tbDE-w{M&7eXYVb+k09@ z#Uyre2xg&S5Av%2QF=QW@;;~7=c!Jc_VKhK7*wFE)H8+XcKgly)-&P2*Y)yJnj_%4 z&M+N=Z*BRa9M>8k4urxo#&fT1ilb`e{GV%79=5|4xa$K>XV)vX=*h zWv{{)VfX|S1D(h!4!v{jmH_KXW86-!%mct^HBb!7U0iH?Rx+9Ge|lxlUt){y?G@e2 z&kB0<71Is#dmoKFUlQSJ4m|Po6d?lWrwx$q?nuLzQA1EKW@>gAKJb~bFZlQ|)kluW zr$HC4EcqiHmWzZrYKvEIO8XJu(*`SEp~&yc#b$~A3P=pbN%7=lNP%PJO2{oFw|h|z zQTo~EdvS8YCn)Yx^mQ1Ckml^hR1PJahs=?fP^ zbPhNKqLJLPEMsf8n-%HuKF2PjmhTn~Rc>g0KqQ~g{1lC@a7Kw8=7X3}rEDYq{89BOUI9s*)709mIsv`etD5c|r!5B$ zi_NqIL0JCVSvH(A(wq3NcN^54rsf2{J~oC zKAU7{a@<1H8+pLUeLX(1v=G`*ar>$o)eb>238)@05&pp~%8z|&IGuhZ_}>V83>fI8 z@%_NZ^=gNQ^l0}$EqWPgX%?cVaD96IK~gioVMgnZww}G$F@(i-S;+%V-Ey-E|6pv< zSP?eAC0A!{O^>dmkEANwf40{G3nT{N_F2ncDx8nO&wKeb!n`Fk-S+50k@8F`*^tNe zv}coc2OBE>!$aJIaN~;92V>_&w6}pTA0|SNH|2^)$O2BnL%U%tzTP4~F&H;nBub_<4u zVC)di9?CwjbZmD4f8p+Fx5r>>@}<{A)?h;s)u8EeurXKVT5H;PbXMIjXr5OKRV~x2 zO*6ULYuJCqF!i-d_jgE@qT*9)R4RFqYVmeSN%w@pA?vP(USrQJSOZJa5v$6CcQg0P(LI5 zBGJZtcBc={7iR9#fN#_&28|CG zu&G|LMGN<&6n-#c5F4cB78ZjvIaSILpLMN$);p4d+g#|xq&AAa8w}}*O(c=>(dW(J zn`gN~b7z|PQ7xuAv^5hoC4}k^7+;G;eBN@wm8zw!8_c@)PD5gypO2tsyb{L%=nVb3 zS6=jgT!0JetJ##F1Ezub#faik+u1Z@H6gcTg>oOticB1&i!7bHTA7khsHDVqVSBLH z$x$ZXt9E^Pt?fgV_|;Blvu0?0RReyD zO`YN~+TK8=bK^&?{5a1KXWC&B1^cP_%0@Q2jZMUQ>7Z0MKerlj4eZQ%mWO=mzrO>G zrQ55iZ1=KnwZ1c}(K8`a7o(vBW#sWq=sFqIl1&-SmlvuQA&yCIiyaqTU);@?3qut; zZN9XMHKQexplPcO_&iW9Y8;{fOcwa5fierQ`>+?C7nRP=@e}jKl+^~f57MWL;*t3S z-*gw&ZvEEV~X90IZp+f<}2|torGV{H&CGlEOGF2bMmNb|CQJ(>$)%>{& z;Y5eFSXmG;_h#W*FyFyUc;#=mlEe?DUtY*T$`kjj*6WHnGfHR`P5m7*)M(y|(Yqk7 zti7?|@p(qVl?Zuxf?`f1|M)^o&IP{~!@`;ms$L8{zi`%nF8TJB(hPt2Y0soZ6trbW zwp)M6b;!0x`e&3l_OWZ%e>9CeE2y&iAGh{`8`hU+iHj>IUFhBbR2p3-x5eWW16OC} z-1oH3a^y@p^})AF?gr+De-6B!JGqyZh)&V$Nv#=ScpH~&ttI##xtOV|gv~Cp>A3gd zfteHGL`tAQ%gk$sB*#yD=z)d$D^-dHlX#SI{Buf%My=>D3UDpztCxNh>BO|EqL}ep zO$z;t>KH+eP0}>ccJZer#&_Ac^~Vci$A117U-e*MmdPD6DgK3RTlcuj+% zLHf+?c)^7ZIDDE8$O4mrtEV>m0;~Uj&L8Qqd%`;`m|~_-3UU+f4VK{sGmq69pJP?! zJ%*NSoxO;09z}2gFT%e(j`7_192(12Z zGDL!dmTyvV%)o|t9J>$w23`= z;3D$MRHbv~Da$)9!saQ@>Q{L?(h;+FlM8(y8By=Lek9pVtkxQnYb|)T^y$(Z@}j8y z0qPZ`#G_!MbMTwxIfZvRr=opQqM`nHmvl%KB{f3cZL}7ceLT?k+ZL(&^b-ac60Q~w zLcPWlI0*0ToEgQji8)wkeHqYjfWjYi4HjiTCq6+`rbKx;_AK9)PkVy6H%~#3#-$qc zJ0YLwp5OR=??O;2_`r9BUa!ffeQp!K37uCb2I zEph3iD{ZLw2oYIYPc0dEkD*=+Qtm(SyLPM?4KyaK*edTuj#H!Z`jX7G9@aQx`b?a^ zxqSQUEBBQNyXM^4N{$YB*Ppc$PCrRxj*c!hr*JCFhVO*f75$_uND1|g-8_#R9w(A; zieYgg@8Ik9`di_MOlOoUa_mfO#(GpfdL+J}Uv^= zx-aTlgWWZdbFX@chFED*pt^2s7nP#@W@9aY9YFU1lM99CR@-|hJ>Lx7Wvv%>; zKfsEEytF3Fv&L@<0-AK2VhWrm2q(@#F0v7hrqt<=Y|2X_c3!s=*7$_v!pEsyb~IZC zsotzF>AQq5W!b+p1JcWUKkr$V`oN_>lpAZIUcU59GRh@(!C2+OT=EzTdr8`!-DsE& zy$l*saGU3$nNPSt{zlKJZF&ZG4P>CmZZP~uVLHRr4#h9IPA7~ zB5Gj0R+7H4;TM%EPoD!Lmz??Tj@RZG+_-*+U)-3? zicF)Ht1@pD?Chj%?NiOK2@gumomo70x9L51s$XJx_n<_p@E4613hNY?aKWI(L>OD# zs%0xzRBQ32h0f(mn_k`zN9K@p1zu6RS>-QD#rCD-v@|aUNXnTVDm>&&DR{=oJof_9 zJh{fv;SDZAg&6=cdPDDbRVI-?1tFi77B=EqE%q8b<2Wk|pxXNXi0pqKbLBxp`!KBS zz?kP1OzP_X83p)9ev&#J@r9Juh=O4Cq&bWLtm`?M8#*6 zU-d}RJuT5(jZO@C9Y6;98$qtTyK4gymP$#ed47%P1eaAib6x`zh39}1%7cy?X{35KUT%B6daQ`Yy5Og=LtC3%y!F`Y= zM9hHR<=&5|p31c2`uqzO|n zc6`uJ9W_G#x@W9#D|p(SGFnVdLgmS?C4jk~k^7;7u6;xD_wb8*wIy^Rj;eRloni|$ zJEUkeh~qtDCop1$F(|AV`38%zi%;Q4j(`AG5EH9}!D=mvlZKyHljkf66|xrkT-nLI zLGYIz%6LJmSX`Hhs~ejmn&&&A@hHvzJQ(%Ym@la_36)2=`t{lP%#TqcYZVTeFn~~; z|NLP=iABPvjZm^jVMa6~p0#uuC%7h%XrRpKCrYkPNv|Z}bVNnIBCiBN(Q&*JjlXEQ z+dL~r^KL6=E2rOHvzIb`);?RsLHHzGk=UuwEZHTiVn*2^oMjUJC!x!jHxVG4g7~{M zZHlXs3EKWEOUSBDwKirz#5^;2lClRJkxUAKqO>}Vm9*IpJ+HxrdwdBt^Ntpzk1j|u z`a0^0YZFnxKW0E?Nuo!!cdw=sm}v68>C#b;d}yTmhC6Li6op8Pp!IG?X-1Gv)aMNM znQ943GnrcF$iDm!+bo>t8#`#6fp3^_5=dP7=G9)D_rbVF0P(Lo+od>Zp@Swr-wV`7 z@`U=ew%zZ?DNA~H7&R(gk&o-|g#ibj&K9GUt`(O$Er#GfY?WQi#&%35Z zdldD#4@yeyl#^4R@g&@RtCD1Z5u?um4-*8Bj40DDI8rM6ynDw?RaRm#IQd)jUq=Au zb1>cN1KQ%_($y~(PBf&P#H(AyPYq0UN9<|y2s{l0Yer^LZ{m=+eYe$~W2nwLrF}55 z`bXpGB%WR6fPFlSU~)8kewy*sFMiF}q^u*^qgT0&%oJY}_NI~e-M_gPl5Ys73M@Zi zC_7O^n&P;D0D3*-C z2`EAafXb!eF{ADOsgagcX`t@3i42BT*b$hZWcYs)(|V`e(%@_T81gP=eCExIZag0?#`Q#vyP z1XhB*9sYQq4&vMd&`VYH@7-0RVr^Q1M0N^&r>+dggtDj??_Pft$gt6<7}<~pZbK>* z=c|N*?~?wgBesbqQKH*5?}-DeZquQku+KsGxb)%ARe6qIiEPR$?z$cwR~L8a z?s}>G0p{N7700*;A}DWl`Lz+|GfAOxr%Bs3$n#U*XgBOQLkECc4YK9fTeW<(D`9W7NcCoZ_5eoLaF43=6Pk8>q|5ILEyb~mP;^p;6x z7c+_}K~H85O#B~12}bqRM*@c2c6B4CQeUM6tI-C|_TP0ln$UIQqF;Bos0iMvlsKv> zPIT@Oax(ZS`ls9)n*}6Qc3YOCUBmHFVp1wut**bC{dQ|^Gn^y$ z1wve@VoFPd3$W$yyV+g}5M&6E^0d5-A=^)x9sl-BgYglu1F9*z zHy96mw7B_4$}&Mv#GSufhM$87g*SEm%#j!U&7`g<7eRWqxEUcxdRC8Z}w)u@agci#YlIzzWB@(>(6-}{i%(S3tX*YfD;H2PE5%D8}H)?HU zMoqHt**=C&Qh8k}=c)`H+HxNy0h|-xg|nSc1KZgvi8WHc4CcnyZJMt3s{|Yqv zcC9vf`Mc;4t!~0BMwk8^+bgrIyQGh?R4AecU7zo4d{T%Ces{P%Kn60&e56`vwccQ3I{VII8n&25FDb_WS_#yo@6_?ZB9Z_Aq+uT&k6GSF?k%`aL6rDIz@=H%OpXA-G zX$h{{-U}Mn?`jUFjrwSv&bhMp2oYt=RXGzQ5H+2j@eOrUxFWu&(B zA-&Cwm9x3QPjBiw;cwo)t8~@*PxU*fZ37|p$Nqq$a)O6mTP!cSQoI|%Xcth|Wwp2S z(1B^2gyn59Q|>Q4J+F42NNdHOhHQHUcRQuZ_#akXj8s3wYX71wuq&eRKHSY25RR;c zR8Z)d?3fA3{PdeK_3+?lJ8>ow;ZHmo&^xkwA~xaFqmJr|O|mXJ{|R@ZOr8{0i@z=( zfr5gg>J=FdSd~HIEj_74@6+`($aq!L9OvD∾5gGo8J^MR=I=n2?-S2NAa1#E(rM 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 z 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%0DFEmSYm_*Y3OKN7m0gW7V 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�cMtueI_-g(0RWE5>sPHs-ScP3WXM+}c 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

c!y;B14~SkJY#&!5=k?AP>&YC~kn?7UiOF2X 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

O**@|jE$lvuK_~E^LT_wwx7#af#TX`d5F_{d_ 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 W=DOD1Q1gC1YNH2ndz4qd<9MI( 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

tF1g)JTe2k2w#Lb@}@2e{-IsT!2 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ⅇ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 z zLeQe#x3_=5F>Ogf{Q>M=l zbJ2*9UXsJX)z-w~4X?_7I;kxxIj1`-!xn9esW<)Zs%}RM7Wk-W-0v!nwv;S*m%mS? z#VpG6ia3414f)WdX+S+T@L4NY|5}gkQv8R$d}!i*=a)r0E=rrMy|`PWL1QiXCozi_ zn^%gdVB}qWM|t>7082>(AA%B@HtSTM<9~B5@uAxs(o-w)BXeNdfSXj@@~@Cev%u)} z!*rqN;%Y!`KNork0+&XN_3YcG2F-r7jU)@i=p<>&*Oy0&h7t+6sDTdCaq5_uS`mr_ z%CnXyFD1B&$*w)y{G89Fggs7!1I*vzE(U(iZ@j)Z@JmhlQld0qx7Uf@E3`c*F%xZk zYLyHE)?5)+#6Y@o2Fm^ne}kC!auRu)$Y}ZiZ`Z2DEjwrDFEDSrdh3l5|2*^+I@)mc z<_&8I?k?|psvMArbm6Os>1F{k_IFf}PN<*!z$i^S&o>zJS2FzD1d_Kk;R|S!`1~B= z&2({Jb1X`7tFh+Ro1)|M$@GXZ9l32Kk#HXAPS?`SwvPB<@Vb>e+wP z;z3(_qXxURA|8#*ADJIk{pE(Uo;k-%Cu0d;Y^&McJ)|+#oeyj&N_z}`dw$i%G6JinQj|LiD4pbA)_% zA)P^Dsl)T-t_HhG3GXZQ0k@U&su;9knH~#iKCCW>nL}CD5zE(hy`mG%^|SE{e)m1# z7;y0z#NAcMFE1#zq3}Pj%?kUr<@kS}^23#|*hFahm=@F9B@bzpFMUUg;<$Qn)>GM$ zhs`fGzgBK8aJZ!r7XaC~gSOV$AQRhI{F~fyG zH!#QdX5A0^4Cofv_ivQba))uaQlVusqIhssJA~*P(^)Y#jdwcTz7Rj%?{8^0sw3Bm?kEv zUAY_3GChTUlNhC;%kf)>%<>9FoB`={cYdQ_vG}#kzB~rfmQ<<}f~v{wfWrNs9%J+z zJab0caw_GXY>6}b8 zmC0Q1ze>3~dbqy(yiu9uP@MO0Sp8%n@Fv}r&i1!NbGMfPPQ|&w(*l!kDgP}&{S_JD zY=30=|DrD@IgdHRy6z*DiL_d3%R!ajEOSfYOShaUs92*Oe(JWy!h9AA!E zvif{eo$^KR+8>KLpHJmv+rcwX2??&>Dr89fj==j1&E}m4{bsJS=3C@Ir6)q;?B7G7 zW69;iCgxLb$+)QG+ewY`@(Gb-WmlEYMlUoFrW}T;J4s&0v(wFvs|cSTW5uEpH5G1) zGbUY`V4n={$D4MqP+5vM8ta#6Q5^%xE)z<#3u$vgbV)|}Rs5Z8*tA| zzB+t&E!V95ehf#z|46F#mp>jmwjUl#u2_>zs+YTUIb@i0r48q;VxQJ@OR$BODv%AD z%E)9=Lz63bwCujO6$hYp*y17Siio9ojf8Yv_s!#{iuL77<;HW66i0=mj?F6n%Zn*L zJ_{A}A>4UOo2hc1O;{bw&4@ql%$DhVEh4K#ACC9Snr0_8Yn~tHW5u~SeD!t=NK*d# z$Fmul+w}(enN|@#jhKdHz({j_JMaZ(jcKl%l?q$$?L41)c|op2kt=uEmRiN6`Y4C~ zh>%;h|Km-^-bJTGmQHPlqs83wE&m#*<=FTX6$K<72TL*a@DIR z)B_xwM$5|x-Zdd-;WDq8tLpiCk%9p6|Mz)#^tem7;pYT!V&NrWVOayQ@x$cYcnw1h>~*&j|GJ!lgqWpj+TOq!A@05y`-%rSeydtVkNQ|luBWxn##e^ z5=c$9jBHkH5^#&Vx^gczIewUeEd#fD5(a=<9d~2HHcHzS)+b8ZLl6b_`G*ixbrK>e zq8M!!eOdQ=*ziObZL`3&oXO(Cq8t*|OFvRsBFLmBsV za4H$sOGy<~WreL=ztmw-%WR-GZ>uJljRL<_*0xhKGDHv_1fbr{rX~{;fPpy0548Te ztW_fRKWu5^{nB6ww|!PsN%b*}GCF3RD@vPHmBDsgY%Re!KN7?lj#re5-%3Zq&AW8^ zT%Aa8@Tw59(}^U*;{=Oo((%5=B_(T>t5sLFV&#_1|5LE%KOtJDS7{bTaDgBQixo@- za{3;$%7#nECjL&ViCB==S@BCy4P79RuCFJ-goSD@dEjs&7jCH~HLUf;mG4bqKsJui8;>#By$Pkwe!j3@J34+ z*|P;*OmUeicREmws301|o4)?Oo9Fnv6yfKQ=8Zo=Ihe@zkPGm-HwVVh`YebH!Xb*JfoXmeri^y) z^{ap=3xKhFfr>^jm-}XbDcGuV(k4|al_5zY=#)QS`b0&6^G5W9J^Q?I*kcfHfb>?# zq6!k_ubz0I$Ic!6Wg`?={^q(@nI6aC$1k$FNfQ51iOv3f`GI1x&4Pw+1#+yS^bHny z;w=s4#Ycucw3_SDn8As<{P+!YRJgt;^6S{$?ol*kNpdidad-95%0V`HGP_$fi2Vl~ zhOV;(_Pe9{d_pNK{)w;#{j#R=0CP~2iqN&!-pw1D`vF`Uf>aEpy?IjM_uZi1 z!M48~`P}S_rZO$j*qj9O@0@ccP64az6n-WhOSV4n92V;l$op9O8D!T+H`j^AL;m;;SXvzl5U2P~x*r&b@`yAN` z1%@viP-pyHmk7_s!v`2&ttfG6)*=SYGf?0bk`<-!`#uyn34Lpjn#ihpo5q$3(l+MI z-_k=}vyR7V0kOL+go6?L(tYejjIBSkw|X?gup)mwz4N?aDaOJs3B`@l#*xAp;L z^fcMXXjt{ZMJzMMhFt6zQK&X~9R^NfECp3Ae05yBjQmvdpIWR9>==B8arj(?a}WF& zVnHWd9l4Z#W(g}wCmW-xw1!jq3WJsU5|}6q>}cgs%4gNquS2y9GprzUi9}Z;>f+)b`&L{h ze*dXURjJ!lXg5!;8R`(;#)unvpx596VTD8z@g`v;k!jV+dZtGDbCa)U|9ZN`J2*UB zN%H}hl~qjXxKoL={?8IR0}(8dka2KIiNT205K$;=YogH;K>7i|D?AUOeUwyV(zUVpconLJ|ri$wK@!J z8w9eZf|4WF;)N+klY;KKUFKjvldxrn+h*liBV?;>Acb1E!O;Y9Z3F6m=m@5KsBMBO zgoP=}b9T#T!C{&!_Vzj_2TtRvbTtJ3#Xf0`EvRK3ilLY<0yt}wm zv2Jr{k`893{Mv#DqF%#yugD0pnP(E|l$ZFxY`nMcQ3HY{sWgtE_=~Yv)ui~PqQw-P zN}S3DEXfkcu)b5F^Ey4kVq)rXLy_?#PAZq)zOfDz__|bkPZg7mn>O(U#gkL1cf3Y% z@^<#(oqC%vRPGsTU!j%|ktw~U28$}YukcnJll=gciiJ#7%Z)X$Ub@r!K;M2ClUg*i zI3Fv!5e$)OrqImynre{60rqh}XVX>}3-6%Td26uLCsD81^Tr;`;nSdZbZScUSJN&u zMDQnJF%~6r6;;S5&LV|sP2Z{C7maLJ(Xramm;{=5gNBKcb7DI4ApWART8CCTWmcal z;aJpSENGW9^Bla!o-YT(;@*&ICEJi9NCnl)N68tbX1nk7lJL;9a{_ghfy!V?)ks@9(0fU$)+`Ugsgg_~k(?gh%Igyu&CF^}^P8lUbtJBjSIz-6 zP+L8Z7m0~sZFaQ29qnJmJRI8u#-`5R@LSObr@2&X5Pae>h&c_ug$0;G3$VOk?IAqI zyd6PjT^~EXGlR91)gy2J2AB^=hvv&7t3jHdOPNaxb*IN^*th(668&W~!56Gz=zEim zv`_avrbH%B%?-FZApxDt;6%+nG4|B_9++K_9R6t#?3thkB@WR-3F)F~3C4#PeQ6;4 z7mUIzopQ2rkx{X@T}-}NFlJ>iUKb7v24^Q_=iJqEAikAy&XM2n=1RQ%E+!U(K7Ik+ zfe$gUOIi&sb>!%up;8!(dEwayUtP@VOH53RwRiFhsOciIP;CZM!EpHN+lz}Tj<3->+(F>lPut&U9&0E;5C1@?PMRv}xdSN%bzM5HHLZljA|Bm8tZ zwUn94u_?0SZ?O;T!EJg(mzfHLiU8myz>655Y@-BOM1rFStKFAGzsAxOmh7mO_*8sYF%6Z|^T@G<~H z)1}b&EsdRrcO7m6Qhq*(^@*JK?&y^<)y&sVH|UnLVzu*StguA>XnfM7m((qjD}Gpn zZ?uhVFbYGp6m}S>Lj;$++A8b7wF#%@m*wu#ADchnm1^O#a?ImHznC}+W6SmNstk*L z5xFI9o!vpZ`i?S*7@Wo~`JvC@%Db_bi-e>(UcGyST&!5wN+Xcn1Xd`l!bJu1rZK>L zfwccaH(+FemK^QoyUdEzelQ{6rSP2CM%2ijtj-3QN4m)S4aPMZe*D3$E@6{;G|3JI z;Zm%Jyc-0GMN41vZ>7qf3UAJkhktq=76X$bF60afxvk9zy?1)^k@{kk6XY^=*m8FH zUIz4}V!PIig_KhjYDgqDDM~=fbW;~h2Wx1q4o6qgC@;|O-v&Q7=}96n(c}mXed3GN z_rJLS{GR>?S#kHjYaN5hXrICVK<{Nqh0J%Kxc%~a9Z@kA@JyNLH_IPD^%{NO`fDf7 zfSU$B??e?a&PwUIaeBd}cNQ5+AZ+D({o3F~vVl2n(ibw*WQwqCJ*<$Q{J@wDfi%<18YD}H>0 z(T%I2Xyf4Jl9wu;;otWzqcrpaSvnQm1DM17OmkjQIUXMpG(N7;K9AiV7AwgG;Ln|4 zUagYxa-8K8d?hlPjnyI{dp_Z1`RK73}V@Zg9zx*Euj*UQ$l> zjmOZxqT$2+9(YkyfU1LbhU{RJJW;quDKf{scb-@;=cRcnL3jwO0PENMb>WPH=B0N6 z$I1L?=S0CNOnxg{@I*>U{o~0egdiub6vy0XJ^>BpASjcP0h>C+t~Yc`&LuwBm?Fs! z8J?qrn5Q9YRp@hENFZp47}j)SrBPMy3488F*r4=vE19sJ1NhS6logrmC#U5Gr>O@O zcbL^CvkTZV5bL|HC%Gr6<63QChlq_Oq6{NP9;Qh{U&g=1=S?a!2a1U%B)j(FvZsc& zZo`~|mdwYrY6Gso7tAv26n(jAxZTBa{FXTsZ(S6*I05%my0uF_mX#nvG0RvWXQYtF zeknVc245XRQ$RtH3o;^FnEGyCl5Ie98c#9F2&v^ls1IYIxy*h8=Xw_Xi_S#Q~X z6eFBJgSjLb2M6Ai(Yzhxs_mXCyOHFD|L_QS3aIN0JHy2TW)=D3#f|0m%1>3p41qqY zNz)6R-$_Y?$=z6PpH zG;EERONbrR4O`7#{wT0j7a%uLlgTQF>Y#OX;5rKuC4%-t0=*pN-p6z`eua2xAM!8D zzOos@&wB3cFP3<pAa(1%FNbNV~ zbDC=TB(xYS-;IC_m)JMKWu^x#WDJuP%N6uhi(eu0s8ScczeH8!-3D2#W^OaO-d&5C z^+c5`-2%Bq+O1h7+L)n!APyiEPj>pPF3qM`UDe(wLD$ewirHlRnv3u|Opa`ZH_SIx z#IbmJw>vbQHrK<65c5{J?0nO$b$v>$%EW|#Y5NGfphrC-u7J#d7z+t?J{gAE-`111 zlm1$X4}}DP#EdT!pfL7@iVeG-SM_$G{LtZY)qBxJyu(5677}8vsL(N6>~(7y=(M=$vnOVk9Zr}e5- z7prx;)03}7OGt@N{~B^>ak+7QamXGcp&~VTuyPIb{8!+ZZKk;4d*2q1WLYbNp%6Jh zB*PsI%s_N%0PIiAQ-gZ}#c@r@Z&^2Nb1+l84z2pVu>mV;T&_l5Pa4*Nl^HQ+aQBuo z0)3Y9#M)?s*!ioS8e9Hupc9H02}xU7muT>dWH;ZI#Qk?HqyLh9lLGlfOv?LR6nM_Z zTQ1Qo#+su#AV$~{I;Wfa>D`|C?N&TK-m7s7Q_nBYB{p3K?bT$w$|>S-th(p!AY<|4 z-b6KkyyEvB!z;%)0f|;V>Mcpz0y4>sX3b7_!>yP3ZNcE@1$lZ@da` z5ZpL?tpKz4%uvJiQ$YRgY_=BP3&!0AV<5MnpJbpyfwK00WHs}L+MhRnvd6c>mt%>$ zWZ&n_$#QyPe~l{ay=vIm_G_+1Uvn1$<$Ak=WHcqMtsX(8?{L`Jvp*Vmr+^OX3$hZ^ zNGg8WC&F_ZBq7BCm(MV>c-%J--YEeD`m6%35^8Vm*{Dwy#4-9MC+_F4*jOd|CKG|| z-(>MWwNq^)%0wv<>|VzPc8iIi;N{!#zrH>h(kPJ)m!G4cNfd1$*5^ob@oZj}V99^qMTu#0X|`*B$x~6gPD$aP9G#Ko zzvSbm;7<9gS{Wfr6Ft?Q`xiLdsxi$WtYp(0{AbKrfHC(2#+(K2QQoqi@h?`r>J*JF73~=~}cH5EY%dP*GsO750l^RpvKMhsCw~ z-Bf9r_W@OQ5OApvqXaemok*Haqhb9}HEydpv?R!q`sh|Bos!M+nOP*AmFlXudpnBm zeJO2C%RG|uumfE{&pRZR*hT7v_AB$s^{c%s5^`oWZA@FSY8OkS6Y;^Wp)YX&oQ!+x zxuZ?d@zOl6@X}XbDzc>Jpw`gwj0kO z(6br^soY!CF0yqHcLTqcJ-&^Tj{?{6cd%Tn0*eyR>iX6&JuRMPR)Os5|LVmy2Q!4a z$*ZO^eQixJ+aR%HkmJU*NCL!`rwZ zbIIM|=G==GQwNbWqUnfNpNHm1#hogOuL_D^4kCMbInf8~0p^nJR;0q{2&AJw`PFO- zcZ2BMi$j+AH-D|bAI&QBP(f70R=}1~hM?cA@*pv^?T!xh7ql|wI@XqTcihmnRfR={ z?MY#n_D1E?Bx6PMm%hPjW67+n75S{dP$Y4UzM653Lftqmb44%eB#O_UBq!JKi!r3% zbQQDT%ePDvqF zyxB~g!xu(pZcBi#Ept=c<8iHXr*P%#;=)K8DKpb&)-*iiYg{l30s8P8T!xs{iS)qn zQY_QsTprg_izkNRly;)jBQP_Nb77{|?;v+TGtxurxxqI-lT*3n`lei37F;1)`6IW! z(K;8Tc)nxueBnlMAn`8Mel12{a5K%9|!$bj>69|3v>#b@{lZDlqn+xjRK-6j@GL_aSvPHAaHwoE_uzWF)bGavIqwaBL&!OgAk zS$p*yLVYdiuL9*>gJHvS3mv0+J2AepG$K-JBeRZ*;hLH8?P!H^#|=yMCYMAdiaY}XMcO6Cj2YE|$fIflyk{l5D=(bXlQ=A6VsDX2|KLa>W#}B+d7@)3~2h_*WFR@=YNY` z#&}LXQ#fWA{;-)tDqLY7Y&F|KDoawhENPEKbeldTIQSi=x(7{I8%0{^s8jTxeP64& zRi85smw$>eDH~OF=6uw*-u2xq;H$Q$}n8`=KA4< z<#r17KgW?+=pCA9Cn_g_&u(IGT77L>tg8xiP5Y{4%bQlXDa*B7WO>BhLiLzx#NAjA zaXdHZm95sPDEb?{(YE#F6w-iA8GdUz5~4dsa$mk2cJs51M_0?`DWLvusOi$eZ-pzd z)`=Yqve5B1Vmg%ALGk#6aU`8Q1s_7F9qM+ug{a+QpA1w(e6YoH={)xY+=9&}T_9^o zE#;zf&-bX#wQjw_NuJC{e*OUs(WVU%Al?le{l>F zVrU#@jLukPF9T3HCiNuLgL{w$obS(gQhdL=LiHZV;YNfO)s@4IPu$`VFRs#gj1@xa zdtr3_!o?p9qbD7m#A?g7wr1)B+Z&Y+`qq~EsJmzpoeLMtEP#bs(<$qEwBEgOn=@a4 zSS#vciri1v4!IT7_ZX85^!H?-|C!#L`x+l#{oQI2ph56*>S(fTgkldRT%K?o7BtA- zx#aw4DV9~c#y^5HXf3Zs#nn>&_|suVn-i0NAMJLODbt~q2`tbAeHw$f^zS}Z?LQW$ z7L{xBzyZ4d)0#&W^rrA?ZtOjm=--*zfC4~@-mJjK1+{Obz6|1n>j!qndgc^ev!Z39 zGa3g-e{7&gk@UUPGAu*d-+s~1>Mtjr3a3i>#z;y)&5fGnDN4Vm;7 zbk4N~Y+qG+jGSk3Uq06wmB@lO+^6bG{~gYC6ptP^jbdQNJG8Eu&L6B?GF8#6N@{o_ zNUvo-9yVo*k6T#$a7o|`5zvnFufXVo7mrtUo2|B#vyII`U!PAjxh&(yXa7|4a|Qo= zF8XFnu~3-$vs5hio>*vp)uVGQ?S!#LFQemXQGuViK!d*!En)T78`+6Ns<*sMhQCcC zhB41KX=~|Tee+{cah*P*1_G4f*z%XCGM=f=@tc2WGUuOTZk)J@(lR%NG+Ao?3BOAB zRp!8KrQ%JCRR7zEE;J>`nroGn#U_KvHK;K&Hn6GGmW~ZL>H)?jR1^C1ufgo`tW4oL zQ~H-d%X)gZZNU?1G*yu|2_cPW+dm#yCrce)Q=M_W&|DhL>iEYvW=88!C1C7x(ESG- z(RHsc-9X6)-M=pIvW=hXUut529-ZU2;GQo3H`Ip^Fla^@z}>81J>Y1Wd__( z2;V38a{e-ptiNxh+C+_2gK*Lt+L=65$x{08wT_~qEEL?0?M(uz`IBj^;a7>HxPL(8 zl;?YE?)>b_pBfIi<7xXvxRuae|MLYzQ4ugBMmRC%BW%4HHeV&=&lmGnPj;w~*p%Mp z3psWWV(@%1RXoR|dey`w(u~_xCk~H(;ZxJ1y(5v*vA-O;O#ir5?xtI$)kdG`{T}!B zg1|vj0fKQ%!_?Fdt}4MV)ZV3#ik|b2w=mbW{2(gtWBz&;Cqw3aDdjk3dm25tO2>vL z?UhvFYj%=lF2AEqy&NYzbTzPsIzu*Ii)w-yQrUf641B5P?Edw>vURuJdD`#2%+E|# zD~}ai~DPAU+ROqp7#@Eit^O{9V8FLlP9KIG6Q0-T(c4{ zi5UAnj`_O)y$;h86Dc2ujp^G1LqPK=ihECf+$&m1Q-Y}!tiwx_UcPxEfp`nIlLLb0 ztDoH>VSlFSM7Ts|?Z&QSJu;M;rZ$`F(Qn$T(0W%juKp0>D|EKbW_o(}_(ibQ8)hyU zl-Mr%xOV;fn!8`59rt31u9-dt_2O!nF4y*Nr(rMchsaDe?Ug2Qg^$g@-?=Tdww|c< zAbASHifGyP<7*6t-xN_?Ud`;WCW>r3zL9oet79II#qMy{prtmM-rIyR4+5KStYo%x zu~7Z5AoFq$ToJvFN-#BlBB$zXgI};PqdkN^wZmS0$)>8$X*tMM;4A!-H09x;GMFao z7AKF7z<6HE@e|SNueRaFFVN8oJ#tmSR}*8$?wW&4rR)s*g;QdFgd)6?=jQ`|8x-tA z+})^Em8eZ1dhS`=50`_Rcg5P<1p+}@Kd$l#obv~3e*gcqf~;TUna4{MUE$1g9Tj}1 zBT1+8BX4I%$$776In1F|hcV}^8d52pMc-0#>xd(Z z@0qW3Y!6wRgkeQ~dol{2$z0IWiu|la97eo#B)*|Fi8uW`Kjg;FPK~A%arnfd-~aN7 zwpg+7jm5-14@$$+rVgd@Dq0aYu(9T4w#Xyvx7eZrC&g4o>nj97YC0Cpp=$zj5#KKt z|GY{^hBz&f0H6i%)D7yLz*YmQX!r7dvRp;FCqJ;R}q}4TNTv2i@ zW%Nhj;-ArN-nX(9iTvIf2wW zRV#JM!*54t;9il(Tw{ck&R3aYYHeqlnsT9M?Dtk)yMDiA@Z&W4P^@IaBvmwfmNu%N zll}K6yfit6c(MA6w+b^)X8J9cv?1Mmx^Wx5Pvvk#*EW0KHGz3O$8_(45VceiL&GoM zq-gq{wD`&TF+)mWcY<*RGUNlO0!#8z@-}5fudb@M8_$G z&cz;ZZQifx_8Za8Ra??iK@TNU2zyJFit7*XQk~lyp|$sbZDftKRbf= zJBRvU87?+X`ZLSETe*FpLqSa`!#yKfgVGVoq_B@0Fw zX^;m$q?(i22z8??zYv4Yiu0Z^x>7ZXDSSWezLUr^c91vk$Z_y6rmER+LbvL(n0o%O zFqc0Jvtf0~6(Ce70TD9WK8}hd@-I{HpT_W6r5+!Pkc(t1Tv;D!Snx&+fz&{@ezKv2 z?(lk4`tB88KDB646;Cb*bYW->MMTV!e^DtfM7-L9Fs%>DE>5Vr@+-v;l6NDAr!-$o zPa9q#?9AHw)r4r8hFysAR%!3n6-3~|**l1uux)5(MhCIbA$0fD`N6N6Wj;!`n{}N_ zc;=*UWDg&um}<6_mV#Dh>yJGwbOHotbV@KqbO_=i5OsCu!jAcJ}(&jU~_=p>fOncvcTol!F#&{z1CGE!zk5iPPq>7%(u3q z#_Xfn*j9}Wxw^+coXvgHAak{rzJ#h`d_4EjRVgKLt5PT4IYh{n4yp-S0so%5e7rn8 z1p$4OP;0*_;K-^ZEXh?Tr@z6Ds}Y~<`o)(~&o`1C5eDw1eN;!tx_UFtlrrO^|6AXg zZsDqjbUoCBejD4kmo^xrFm<$w8j!2Rp#{z8zY z0hgv0m!t<9>b5?VY&#j0p!>oZ6z*|sE;nwlT<+o$_(@gmgJPS@w_(nwDtp<_fHbj< zNVwTuF_#~5u2Iad>KO+rD`eGvOMj?!gPIuXb>Hg`hw@=Yl0RFmT)b{)mKY7K*6ldb zNiut)XtvdLfkHOI?cxm64SIT>bo{pP>+I8q_L3nFlBir`C@I($l9Wxt;#o{?7xRgU zP=x148>@)=~;H>fKd*y?sIg?t2O)R*ruN`6<6}9R=Y#x z;%h}+&q%W`0cZ?7A0jqJ*o5`)X)ta?PCn)@VFhMfd_2^9pig_a&9`Uj%o{^Q#WZ|w zQM&TN1`(uCHrH)aqVUSNE8MW_-ZRPKr;1&qSwRA?4MSh7Y!{tF=y6NPXQmg6H)s+* zUk7Pbbo={leP873+o%zlj#cb>7xDo_gYUY>cI%g&A0vpRr-L}B=3mId`7BA9P$QHS zUHa7OJ^qmf;l`GPd{%(r4RFC?9~=IwZYAhz#q`z7|6bkf;{KJqIwbpLh+?%J+Onnp>|v)_Az>?Gmis5%qtRqxfIsugvBuO0B0OFp@Q8rTwhk z&>WWd7hvMO`B@i9rUMn8jqQ6n`C)S_byXHODsvHeqGL<=sIwblQ=}e-v0Rf*k;>z*1so6g9|%d|aX?y{Kla^bsn*ZWnQ| zpj)n<)>L24H(ZCgVXo!=ka4s8mN zQN7bmf~t0s$9W0ogHhqb%A^f`K8j<6U!k-VM>-amUny1pt-a|r&{%~$J^$}Nbryvf zg%J1c9qQ93Rsrg#q7O1x6!|N*A+qCfAL`rhI}UPFx<) z0Y8*2L7pfmCePogE-gw*DVZw!t0x0u!TmmOnVWj!m7GE-s`TLyn z`C`xCjdf$b)r5dq3HW|#BCsWASfQOr0x%NxKPq~jfa>YRcjen~{Z-YeQfKv>T7~B) z;fDR$o#AwGYUhiCd(bpr;eO!{=2MdGK}`@e#7D$4e|yVgIusP9`H;$4mpjkizMVS? zu~8CL<;@m#f-&g`F+qktO%C5l4A+_?`8j8cis*gvTMpryeThc=*CJPIkMIxVF8j#R zSUsIsYOD4hdHVLj+*x{5*lf!wU|(Vt4{$}-D$0C~kOk^z%MqYg7pvA8V=^Ovu{3tr zxY+|uuHuAwF`R*Dd)wcYohjAacb1W2c?IDZxgWuQt@Ip$7PJ++NSW=wxClyW zCtz;7zf}NgzhLv|wPV%R#VkcO*WUPIRG8BUJ~?kp%zQTO`Co?{!yi3vERc6K)s+hV zN7|p9A534UzB|2Qzur@X3z>7i2rUXYUDi~iW;VIl>41N290q#q#IIMQO6sD>w!is+ zhK}HL^soZ7vp|MA=Vyt@;!ptp+qDG? z5Tr#SPg07KB_=ysSj$F3ZL)@YfgUhn=kp$+&j4lxj(z&C(NZSt_{`DY?B42L&1QNL zZkG>9ZjI=h0+eYDfg`PiLY$UWZS(cye!$S8eyD}V5kN6mQ{68cTQK4)xHs0yxvV!X zF%6X`ZT@E!Q$>^spskBN;|X%h$;f`eFeblrvLDI%Hn-}pY-7JrZO9V6+CV>$Z6uyr-N9bcdoVXjg&OO45m>)G+|o z|Mj~#B6)2Ee<0n;2@2f+H9pohBmE!ZE8O~LJe z&QUj^6P3w5U>;%%&|S+c))5Ic&1avtVj*_I7xPIMI4Aj~7=J)ZN&tyN_QX_K3z)0snOjjQ>**vk#C$H#1>K$O5CvN z-N56Bw(xJ$dCVcEE};!vHmQ-U0fR3TQr*dHP|5w_Akwz}&Cf|zC&f}(m=Hy$=~ zIqhqRhLSelZpslb8X76v7YkQFYUlfb+BYb+N=FK>VFWekU%!#2nzHyn<5@eO?CYy( zBaa&8Z}PUb2xTuAmUwj;q)9rA03C0nnCw-}BqEgQ(;+i0n)kJeto2IA8YfjKKe*2x z^qi+`gXYFM)kbPBhr~446aAR_kY{_UQj@g&I4Upxd)qj}4z0=AEWI|e2BI9kMSvc2 z6fa>aG~KLE{xI#@9?W)jy4FOTu5xCKt*dED2CHZ!pS^LtAAYhYPKRh?t{V&%o+El7 zB`X_|{jucl%pm8B`G-i!vp)>kPXqWMKANmM7u8{h+ieG-xk?jsFaG;`pSqPPHBR;? zrYyIm2x0!K)r7Zx$m65moN7{|dz)x8eH4=diGTFwE`Q{L=gLn?ZKue?2-tP$4;QnY z2%qGL(`-PRw?%3o%9KcQvjGIkO_L_7=EOhqC!&6*w<1N9a*v9_q?EQZY@`PKy*u`I zqVbQS03CdY^|OVGrTA@%?g!+Pp(`sF4+yqiMbHb0_Mtb@3u7-2x2OJG!9h=IOrKST zn+#T~wIM8GZm5{Ae4x2-z{dx_BH(cPu{h|VPjD{P#jB zRW-@1E@kVe2w2U{Prpw6&0GD*n;h&18_QCdC8MdI?!Y0A@gX!=$Dgg)hbBawj zRKmBrYbQLbOLY8Z9x+7ey7k%_OB4O8NOQ0*U_Ei|u1XXsXzeuHIZ}GO81pw2a*BSx zr-!?ezTwKD%xvHU-4(|y(S27=p1qjMl0CwAM(EsA{W^>96+hBRq2HJ>WeNQy@se-n z7iXS#daET*fnL)ik$3!1C_f8d#E}G!!_C!-|=eNNJ)#YCFwhEEoRpttz}mZeBPBEb7wC_;LTc7l}}KanoIC={tElcjuMmKNZRS znh&+Ce`d&QS8f8xvp<1l(R|hQ3v5?7V^?VkPjudnG${Q^p8L-stc{8KU~ng`t+z#h z#V&GO(TURS>g@Qud5fZFa*@w(@aR{z^#jY@hmNg&*iM&^K1eKprsz7>9TkQj!Z!JO zj+hAI<|LIy?Os^K>f=`>LzRM(iP)c%6=5>Jd<_hc$|(~eAFzL@CO9)~Lj%0NQ9iw7 z{(SsGj)CK%2lqk#ES^WMudm{70W+@AFIXpyKUDi3rEhr>UFY$6I?T61?Pa##9{dyi zizspCq^zeCFfxSi6&frK9rz)>-Bn$1|Q9t}PiPO4JTJ!jr&u+h$PzZR#-PyKO6jP>3 z_-ooAi{aXU^}*x2D&gVxzF)I=KS3wf{#-0kynUzwqTV>SJ%YO*D~&u>#JGXDiXITo zHem{YJtMxv8e!*L5qCHNcp1;3MNYp->|rdz{xMmu8o@`Rdr0RH!545GtO~Ss5|S4&iD7O#b-#bT-@gzKf$;3ZGs6i{XBYl$(&>qB_)mWW zzJ8kofV;-=l7`LkLP(10YCPA;_EgFgcoq@?<;I@(s=nAt*HjlxLRA*X(sLj=2g*03 zoNvth8KRV$ym%{t;j|1MV?vPe0Lm=$7hMqdwF; z*XDvD5KoLJ;2(@=5B-V$Yy-CnsOj+L5$IgxT{l*Za8K%CBR0R^$7|r$c(e$w!I; zOL@|rdA=E}o%=hIUh^lKPGbsh3c+<~V;8pK~*i576*%mkQnnqMxjB)L9>E z{riy;0DWnqMWe#vX#wBK757NQ%79x4twQLIFd6V}TT`*GS22^R+VqxLVPj zBT4m{)OFPW9lwGBtsAQ`i#Fud^w0;Jy*OtufDg$4HvC}hnTQJSrw*(Gf?SgWW58rM z#Ruxq!%z6$`Bvlpi%a)<_N#)Pb-zy8{;@mzr<;jpUU0{C9DTm~VNx@a{KcQzLJhn2 ztZuM5!8o?){Fh_>(V(W<>nW!5U0Ybc<>!U;or4-M?n)gW`DVoKPAk!&;NJJ*$~$BI zOxPi+{v28}wjw=0oHO|g&t-M(V)0K~A*5WAGc;_N37psA1wRg&1(GXNSU2J+* z(F5kvE#&-N?im%N`po!{y#Ix7Un|Xb4{B`%M3-*};z~M_$hJuCV;N z@TMsLK?L@m(gE;#ik(4|qAb0Li=+2DdiKF8Rr%ORU@!mv0HV7qh&Ezk2xzlOQ`1E0 z-r`-2WIs(C9#?1RZUV#hkvZ}hd$nMFS!I`!0%Yk#K;oQT?~kSUu1%$^-{SuS1j7U% z7@k{-*Fd^c@SR_HG)R}E%h<%v3ckpj-^0{g{?|i(#atb6@YX%q*AJ`8SvXw=DbB0> zTKY3;XI}Ddk9AZS1rQsrIcn`4*VQ#PA5gIuQYTuDGOx7z!OV7E?bT6&?jJvpTI)%feN!BDFlAn_ zk)BwVp#I3f@rYC<@veheBkY$QX_+7Ci@8A2w$i!cA|o;h&9b-bE)ix`l_JQ8IA=Jo ztlQ?_BIMst-XiKqv3sJ)zEaLxXOpCzMUvLbwDDcL#zV>Y}p~ z5y7)f>k!af)kx8*>eeqOuJFG4~BG4*J(r* z5)yCj_55VuypK7;MKwJ^p6yJ8R5v(B9#u=_9ky3!*F&w>3ZxpvHRvOc@Id`*aHJDP zrFOi=%K(JD(v3a>>a0a^?u7g!#L3Y*FtYG%XPejc(1UF2OkZQ`hHKST8{(2|1gI{!fri3Ua6BFtGdQoYI%0liEzDre!82I^w+=leEp5_V6VrV9-n22 zFKHOe7q@p_)X4;7XNO=Q3q*trD4*}jjf__Mp7xHm6X$&%?N(K2vixM8?W6%YM;R#l0M_SUi#u5Ivv_8zb1<=;W0v48T!>t?pV zm~vWO#6-l{1XzcTL$$yO99*A~2J@|H=|#Hb!;A=0E`^R@kWBOI9bNO5sax`B;7+cM zX73>LWd(L&+XsjK}1EE7~dxl&LEhlOyap@Q2|JG@SjJe3{BO4mV2 zMISeiTX~K5V^5sit#fH^W++0uF4=Dy_IXSkfUF3EL3tF~6Gy-ZHSZ>$=hcwP#O7*< zIfnu;uLK{I-U>FN^M9aRS@=N>>lUHO<;wcdy0vs849Z`SIWNazxRfV|V^#CE*{6n8VHTJ{atXJGi&s3=@9jj+Q{{q*|Ul}r{(wYc* z_jODTv(mW1@}4t1!f&tOi1M$JI#($Xj2yAN2`-(k91qQO1iw@Ed^lLl^9e4Jv1YNF z7t11?ao18cNGHuxDs+O;x4Nk+iDh#-CScmaC)m=)wY{9y>k#Q(RV&V8_^@GY{gzkN zhk%V*+FIf#mQh7@5Qj&ukGyNr^-J=MM&oXIKe)!mdD$eIDhE6xIQ&t2K52gYa(C#3 ze8x&!!s;lx5M~4jtbckyM_1ay7{dP>x!yf3cW1xgNP8Tj;}`di{nr~>#dj(yz{-Kzfd zi;taGv4KL_ml{vvbm8fT7nYLbUyMv5y7C!LdVV8>1aqtt7saX0fLc)PuRpKWzYkpJ0Bc+~S zi)}-g=N%P~CxT93T+?mh8-g`wzrA>hiDkwu?M9C=L1^s;=`EL)PfeXealg_&_S)WM z)M=Qg5p}Q}YLde(J>ElZC(FXWIzA*!&+?jB6I*=gM0$8gJ)$n@@HRxmw^Whk!Bls^Q7LV%H~HX1%mFH&B8b)j`e{Eod2i%xU~a z&YpJeieZ z@IVfa>9%`xd+U=FW}}z~9_Emua;Hal^V*0a;CvDg`T@tCXcdmn#=tMrky;5)7l>P? z-Yo~cYVu7!0@wWTwSK2^Rij3is8>q2FvxG*!Zu%~ji|H@92L=%&#dLTr{RH3g6#uo zE)!QAfaG!1NCQn99pG#QHsAQv&>)Tm<8=i}P=>nR6{qXlC0>^j-}zv{*1atJeRl5P zS8SKZS22RPA?l9u>Ay1VLveMf(VeD%ejn_UmN43{%oHN*TfkNyByuc?5#}%hS)A7| za5z=|8y1>rwcY2wO}6t|l}~kiZgiWqiy2XiPxP6keOsAB zU|=_}9W3_@vU_fQlIE!%^xE8UGblKh)sRl8rFPgQp$W>yKkv^Ay>-*}2TkQkY zEsj{KNwqunSSvl9>$hQg@P16WP|}BUn@W0-w{0PrQ{9Y+>tSPP9~hv#E3?%S;t||| zQ>*QQST{)U+NT4j*KgJt*EZ$6syIMjq)D*O?pUbvSJVFTsy#dR>9Tp+@z)+39IS~5 z0KJzpOwE!j8KipeA1VqZ1sO3@<4YbYEoa;!FjtLl6emPHr1!|X zBC&=DUfT@6+N|@Rt5JIGf2X&>C9T(CC&+p!+xDB+j}I19r~)5AXc!eKo%%qq&MOXO zSdevsr><7j6*~gM`e)RC;Y;K=5_|;I{wnZ3&M%9FwKOBX?a5)?I9v+Jj$@W!o&N8& zZ&57zd2kxnL#Htz=Ts*!$7e$LGO(77M!vM+YG@&fR$ys1N`RW`Lr8G$p^+cOcQ?ne zRm`&&%y_s#3qQ&6PC{Drr<;oD74>~X?!eQv1GFE8a$iB*hQXO?SyLa?PERonQ|H@! z_R=E1~wKzrm87-C(Ez7fk>%6(LtVK03R7<7TitXRI+iJ^`#-JKk3 zjvaTzF@YlsXgsD`OKJbvPxMj<{5zq1(ADWmV!QE(=Y*J>czTvZcno$F<(VEQ_1&?_SGu5c@mc=mVF7SY2s% zrOc9KlL(&1+I}=O%dU|vpY*u(YQngZ+4tQz9N6CmbO8p?Fh}cN`eh(MI1u;SSTSWM zF8^!zT$NDHKjhLi4cksIdKwmJbofv#e*?I&-cwoGxxgpD7DhLx*XVVMr~Y?>OpWpO znnF9~TCHyqyEh{41$`j>YZKSi7W1g=y8@f^(g@S~XPfIA@T0zpUBGl15)8Tdc{bZ; z+zMXIxL;#j*I2&2_HSz~;$EA;uZ$Tk*GsNRKKLUQiowRO3r+75HE)%OBs(mqo1$~=Af3> zP}-eRJ8c8DQQ26Y#2#MYyN6sCD|H;R!&{`NpD0jXDVJ>bPS2ZlGLPU+eEu6ysN3R> zY}%h1#GUqO*1;*%Kn^ZC!=^!vVyO8eDOIP=G# zYa2rOT!=z4yTl9bZGXJ=vVf-W>l>6IVr=^;O`c-dWxD?e_$>PZB-6Gnd|1;729ZydkV?#REvv=PO&IU@= zQYYa3wT-TnXt>nA$W=$=`1-B7!IgK>-1IOb+PMEBg#@J1^Lm4Zs&;6Fk>6=~Yu`ro zKa$*I?c!5!`)fRoZhkw_rP7m2C7yk1^*nnu+p$91ehkHK)D_{L;0&aDnUcYE?ZrA1fWtR$rL)-_I1m@jU@`1-^R8%n zCPfOcd}lhUpbj2_sG?Do5PL|OFIUeq`!9LTJ~t>HD8*&mJ**CMi;*qA?FTOwuc}P{ zo*jX_vuE_=IV~kBbnbDNqBn)srBa>^QD@UHD5^?W7R0uFG-MO{_UVgCj@!4*fFvN} zs_s{-hV{2;G(MW&_^>QyX82nO!x~vfZ2M-_o%YJFVx_%S6?q+g;o1+aL(tQLlIv-- zK|Z5@m~}#4>IAmRw-UaH^Np}oin_~V{LuT~@NVq#{dOL6yjZtQD; z1oS2j+Xmm2XWD;x!yj5QuTpd1wAxPDpOds6;gOV!@41k>`tj<|y}R6}^AM$c}UnO4` z2T2YwK=Q5cV+(kxvp*B)`*lCw+j;{bb;K?(i7wdx(r2R-m4KLaem=ly@bDEI;A4*L z6iawiM}e$B`#msm-&R4}o~Ybb96a>yaz&!ds6}#1D#1|dg>{IGO=~Sh13nCuJ4iL$ z4D2@;e?$Q+UgP`dx4aE2FCKWW(Yhuv#EEXFoOei7zPR4}aW(I(Ma|US6;rBKzbnGB z;|iog&+HFk)V>$XGH28+$9yG%aYhmbkg!aFg`A}8=9>zfP$;;Pm!iGAG(RcyGd`6f zq1n3%Ho(&-i({X<pG0wK z`d--fAG?T`Io7QBLC4I8TFn?bmvrbK_=uQhs(ir~tosvG{O$O^U8)Mw9b6qART z4vikr-5$KfLyQmWa#hkzj7alotlj9#Se&C!)tz{|8eCt_6Ce2^D4qA7^J@Ho?ND#3 zPolT|KU=-EoGs;XA1sBy3G%U$o;^gFOTZR)Fy%x7YWt3cg;`Ew;4y2s)R86f4oh*B zql!`huIBruTxmX=Hg^G+>p^W$@zw9xWd8?4=gpf&5@KFIULeP&EN5HQ=L0X>nQ5;$ zemtnG@8f2mN`>+6IeJ{eK-6vQx2qbf(*-v!;kW(1r=mZ>C5-i zxkIM7L0d-@7(RHd0T8sv8p2_%8CjNjz6>`fAylS+^u`n-978hF1nWjEm=OXf;-OBO zRmNEDR&=VM-)J-S&tmq3Nw}Ch$Ibf%R+g65p_?D~z0EDaJz}}<%xwW7CGQtxPSviF zy157Gn=SJQ3B}gu%^wn)4}_-BX6}|q>BHJD?@C9TZ(NeUwWF80^+@2JS(2+lP(;Io z_AYYE2iNZG{IZ)g%NU2Y%!XT{nb0|cRq%4J%B=e0-vdGRT&{GzFkd4aC&0YJZ}5E| z2mHH&&6rX_YV~bA)ZT`{ae_*~(#qP>Jd;TzhY%EO`46mf+oQrU{O9dm)Ibp4f=B6k zLIK~Uu@+v?Mu)_hxXmlc(i25#MZGlm^eAPSN}y%K+uDin0>@=-V60LHBkAey5WCP4 zA5~q6(Z)&7+cv9-$n}A0L+QZ8KQLaFlBP;8Qn@#M?Cd(!oU1~h zA9y!7PepRD<4XGH<-53RCor+bkAguEKh_|-!8vZ&`%nbM&TG0X1Sv5~B+(q1*{la9dDlB2+)b)5t zhEw?UM#LpAQiD>}r}C=A)PO8PRZtxU?oQoa-pUw+X89SJzhwlI_Ho~Ik$i?_?nTO3 zDYp1zVzV4Inkn#?JQ=aU5|SiC(laTeWZ|Q&9~_T;A}$g#;mTnsjCb?rpiiM#2*?cb5xw>xZcSKM7sMl_ zBalO3Q_Gq3WZoZSQ_B&@in{ldn*MTsHXca0UJ^G|zCn7}fjWYj%VzzJg|T;cu7Cy; zX(&HL)p2I94tz7Eyv>>*EzPF67xxU5TFv?6sF3vl4pF(deT!Fo=Zwh zFx*-@dmkr|ozFt~PJ7oaQ&+S&r}-{eNccgl)0gUoKI&bMpJkx>!9z-Vc&VdPQf1pO zdcE480R_hmO8hlDai+1R*Ai$MoKNI562H4ee|Hc?+ezIMl$xLiXUHt*CCC}3<~vAy zk$$tl(I3#_65D1XOs#HGKMwFs;+~;%mc`deh2i<2z6w?WYS0gGmoODWe^~duz*3nH zElUQhEN#EC@xm(fZKC;E`bydX)CaEopvQg-V+ICS-t~Ll7h~n4>T+Yhs-5HFAfx@x z6x!xQ&43$jbt|B=q!*yOU#wgI|7f}nf2zO#fA4kW+Sews$;wPNH!DPTMm7<$_r7FY zduMd*Y$=KCu06ZTEPG$Fw+O%Y=kfS`{{YuH=l$B}d7e*L#>bWV04!6b1y_c?MkO6z zS4E*+vjvZ(d-5BR!QKen-rX~Ksize0i%;&Ptf~pCe*Z4 z@+Ur0n4R+p1U0~ASxYx=JiD$kmhmBli6SD3U@Es$*?}U936$=m2qTiPsK$R8>CwmO zHTIS+-hJ6in^p0%shW0^7;A{NR-qzI0ai@5ZpyQFe&&6Go`zu|4+mn{xn^bU!AupWCTs@P6m@p_Y=PpK%+Qr^03rE1 z%Z7Zcf=T=diCJ)}f zRTO#8Bgc@3WC@6WiJ|EZ=iJ5z!FoT40G4MRDOw!-n4ZXP*k>imsg~T#qfAogJ-SLw zWN>BNKk$)AH!CLrvX_rLfi+F|kip^YZ{WCl`<;C23eioMAdn(+b@V#GoGK&X5WxvT zIJ zIX-B^NtM0`t)We+DtWZdcgW5~t%O-)U)FF>ri#!M7CLEKTaCkOHEXTnAu~*+Q~=hI z@pIjYO_dho*-)6#a%@WxwK8l-SB0C*+MYbh0B zbP1FZ(B_rlQ+6|K6`fB}qzzOT-w6zq)oV6jD&n-s2%RCx%zV}aSZ`K!6kU*KAlG?Q z3L4%;eN2~sa6w8d?30e4A*Q&i1v%0cXV>V>+FoB7$&)j-5NIi*(qL8ezRRxi2`-2y zXm)C>(>cda)eq?;%1L|33{_WiUIdyjfO zQnVkUJd`%67ez3snPjWQqZ?j~W;W^t+@c@sUKI!D2IEFV)u!TCt2SYh&sBQUfzPg5 z`_!bCR%;!G3SGg&C?mk2K@~+9wqJ?IIzpr~g;KEBGY?7}w&(j^sCgwa;zZe-@^7kw zk5)i_gG! z4)jVyer#qdk}O(1oO4$)^H4-(%n1ZPN}04vX;it84&$s_@II>P*H?)Q%Dx%eEFM>ss6t>%=0orw3nAn@o;U$hkSsL ztqT_pOeee6z){CD8M;Fibi5k8d~J_0&3u%K?}f4ia$3t`kr1?#Du{`=Y1y~g)O`?0 zS>_+rn%4H@&#>jmt}ts)B@%nc8MicXvO)SGRX+nZ+sbZ)R29;)nwkSoYna7pPZvaM3+;%P^_55Y9roNJ)Zrk~G`Br$ta}o)C&zO!A}}(-pTRrh(#=Uv*klUhvhULkTmvtzMbA}{r-2A_J5|fs6!tQx z30AWsl91^HZG8|1wIX^-&$VbW{`EV=JRDkwmz8d2q`CnTlG8qlmC51nnG1gD0J#?`=bxie^Nj z2sfVOr%25IIFSdk4^Wx>o1TLU2vI(o^ny}ra8`5Bwrxb$L~Z^e^?3AQJ5sm{|9&J> zq7M(XQqOwtsjT}Mk_x<-LU0-UCxuGk1{Yu@P(IR0FD6y;lTI^$wIiQE`jNSxlGu6B z`D^dHNdZf#jDb|(LlkmZ6J2J&LCj8$QSFDexx1q9RB&Z^4}9D$^M(EydnC8M$9~XK zM5T0DnliL?;w3pGrztV34UVmc6HKNvvfHsQS!2D;g=CXJhbC$~5XEfh$f-Y$Sn%&0 z8(b0nEql9L6JvL6FL81g{A5q;vAKwcCZSE(Gb!cg%~b5c%)f7kNGbXu5g9C0?tl#) z<}ym3A+NJ3dT|s*J(U}tBcaXc^tx31y|;lJU~=2Mhd%tAN|69oRIe@|K~>`6WDKJ# ziZ==R{{9Z2>*te!{uYkpyKt0v-*lx~L&QZjY)eb>hC;(Qve!ftrV{sfN2F7LV^Ep` zz(iH!+%)?DSHEz7K>pm~ii?2O_x^j!vqYCdLsneKeG(5H^@ngpZ2N zb^Ip%nkVQuM;Td=o4NZh@cU%GBq=vt$7GA$mo;uN=F9Ufxp%Xg)kIE zchx!O{ffOBK2^pHB#N8Y&Ml;XoYUj+X^sU6Q?_kMZv(tQhk2tvhIu(Ds#vOMHEFHY$nF-uu24H@Z&i`Uu z@e-HWAsy^a%2qM1rP@k{X5^#NFv$kqqIt8nv?Cp?1{r#aYM+w~B`0Iz@zX~ra&C@g z4`kU(7>}eJfFql`muMctRKRS&Vhq26y}BcI6)}kCsq8Le0{A&lTSs{*l@N?@(V>Nl zg9)cDi~QVcwxJlJL1aq0;fNGhh9rdjbNZmK;N#9HIqxg-F}BC<^BhKo-6Y>DMzG)Y1CcXoO8 zr_|V#;?pJQtOPLeT&Bj+%4d-f)SLB!mJEbOZMt|%4fr0@FEgc&4;p%k-EDwM*5KeN{ZUI%v1AEJ9R^f>8z5tk>m01}Su{l^ zrmP3dJ<1#I?*8Q`QBP)@Ozgy9QfuSaCy-`GL!m0^5XolTT?!OxT^=lOV3Ur6oFyne z16tOE>&=Hu$?gpZXlegA9}18_b*)C2 z#6A6rx9!2{9l+emu=hM2E^7k37g)O4Uy;=-U5nr_7D_o2APG{CCycT~a!MsrSl5u_ zM2hqc?IQ7>KCfd5SY7B35TM3IP<=8JRyd1Xi9a@0bLG{-+Bknm8PNl*MdN23l1M|q zyq0#1N{W88~rRd}Ex^?v)spYgHk--2pUeV6E9EvnS z?UGkTeassIHPz2xN!0%kph5sEbZMr;>i?MprBCYaNePcbQ(_s|HJ)V+W0IrbB)sUW za0z!6hR!6a&YW_TrgG0=*u;6(|9AMexAHd*G#u|y;52*?NCTuQb;{0_$(jH$7CLIF z^;<;aMHuL4>j)jeN>H0BY2p*@dVymncR&WLsk%f<_;ExUykLYMDam=fi*g~_KlMma zofjV@lz~Dp;5#?3aX$oZT9{w)WctHNC4hf|R5Kw6b zet!cMJM^9rBUw;uZ}H5aIe zs#2tio)kM*eQ4Or%+OyZJed1k0@{okx;sn{2H*@z5>1G7IHV^qT(5{d0YWL15hBxc z{urb|cp7ztU(`c+!amv1&M34sY)ubB1llllB0RS2A^xejz8RAz=MPkcGBPL;Cy>W5 zJ=IQQwq`<3P=$`J2B?#miw!Y{_Q=wO7A7=pEk_L{b6Qh_+jLBAd7lWY&DWOqwE_MFb#0hEf=!4Z&wAtnr|juCi!*zF9F&Q;)lnj#sr3e4se#*ZyvID9c{> znK;KQm|-}jlit0GM%T`U$t6nl^{6yan|Wg@MJX_z86gb==s;0?RFzXr3LhA?giJU4 zxd#PVRJ5r*}vzLRl6D(vJM4huZ_((ViRuZ zz;lbC6_?n`vKVQxDpesJd-`qWmy!H^H17;v2%T&=v|Clh#kJloW#^I$XsabuAqL?| zCO)YG%GsJYW(n2iDm7jeCh~W}HXlwE*F&E_<9SS+pf98s%6We>KVHl%N3_H#d90Ez zLgxNvtuPdnA*NiIQKb{m=^dJ6s6Rx5i(9k;w{}8$2~`T$d>}2_1Q7P2B=aumR-b)9F zCtnQ+-=c!26f{LF>-@l$8s7GU5!f0x4BC!R4`a8gxD2g1Q~Swf;)*qf3LP2GQmKBx zUw`U%HaB%DLJULFC5kaofPaR>bQ7;VT;zQ0ZKw;gSCqoKYnXXIgY%YKeV|LCyW`Hd zJATE4&2K1i>Z<^R%iiNE0^9f|mlSJLuTsnZaqOLUKW?zo6jew$hMlD~YwLDOP7zF| zuB2(#cX=ti#*aWPojJC7n7^S5h=iYih0jF}X({?zfphrAjK7;PypOaf5F0Xm+E-`a zRo{i@$1evu=vFdX!naWHU?KD{kIR++8Q)gKGIt2qP@P^o8M5<@Eh!JytgmcyJ34V)@%fgd#+}U4f(SIr_XSPh-YU4c7 z%X~*|wv%s)fHtxwu<1F?_laG2;WP1fs`|cK1V{wvfvARK1(~6UK}K>*&6X7G&z6pZ0)2+)19W-#@{_5u9Y|ASn{E5%Rx$P zzsc##9m50v4ttD%BKE~0?7cr_v|L|VoUZy=gWpTkFa4mAoJ6^A`kH+lK+$PTix=gY zAizj3`+os76rgrYcO}1Mh5hXuDO;(58XKqoPqXgQ282|2C)P_9rV67(2&If=+2!lH z?DvsT

WDSgnmE3`|FMD5}o;xZ}Kz>?NoJj+<5DTz1`?*E#Y1Rt+t zcfKW3f$XUaTwkDlc%1AyOJ7St75lSA`vY#E545}YPIigW1c4*7HjqmaKLtL*;y?t4 zC4!zM1pN+R-(*!A9LU&a{y~vqG8#c(v1w33CoK^P+v7WJe`gxWPWeZ6X=b3vP}oJZeEn^w9hbJMHdedEOqs@4{n;-0m5A5gZ5lRLE3S(3F(oSm zwtU4=m_7K%wf=giX7}}Y-|NruoUr5rf0i&g1iV(3^#{LUhN*BLeJi(BzQ2rn7`Ihz z`Q)E=hX^X2v|C;XJ4l$`UykCFT9Xx8%&LM?#kvMZApZ1MVcf$}aa+)UlxhgQ4KD{V z927;($3df#DRxOg{N9Shmiv7a^Cf-2%KXxKmg}o35S;+Mp-83}xFL7tb6#HPBMlff z-dTdPDTN8{Q#CL?5c0?X2@vO|ysAoBrE`^9b`}{66i3ep$UHrP(?GH(@^S^PSSJd~muL+m;~)uyw@3bFP))ULe@ zx1H?4j~Cqdz(}c>Aaxvbjqz{H-cU!;h<@)tXob9yxW+uDp>X?zxX#88VDHy7hPxZo zi?(wwVIVm}k!gTpoJR^<7D*~s^XHJyfJok#2|RJgQzP|4R%rR+ITGZU+LD8WA=Ps@ zO+445p^VbDZwSzVTBfEH4v(7E5nT64Sqwx15rgCZoXl^fAcDc2Yv6eA-|N|EH_oL7 zMh(p6wx=>*hW9)vTS9$Q>Up#)Na@L{)|s|xrOBd*m3}- zlyB@8N8m2_kQ*Gf89k?osI+V@>X90SzS$OhWoKf_=~P2x<3O@9?FwpMt5oCgpmjy5 z7@klOtBMCPic>ueX|nH3p8xT{@&Nd`b36iCKzMMmrAXl?d4lV!vnz#70y5iSsi4xh zLrCjO3Gt)5VAsD8TJsT~iO?A#1fgTm_~RJf2j1@TNq={uk1AQRHFI-l9O+B!5A|J7 z@d&;toZ{WL6jsS2)xAG%hI>j&a)qBz-|WOkB`7KSmNsxRkswVY(#-t(DW6KjG`|X& zS043N!7SrlU-jY_=-}|U#o%abw^wKQ*M*??P%G)0rcy=?L)mAab$V44gkvR^m6BkR zl8Y)Y<2|zM)G_R_FZA$Or0^b{lSVEL&^u(mRe%284Ao5BL(pkZdDs52C@Xz2bIW0g zklKnwr7*8|T9xs;(ts7|ey(^4!_>H^z2ka`H;S#UKjh^8D0%DECEw>{xx5oV>6U~d zu|C`KSX|ysGWINulQ4n%^+b1cnvLqCS~-a&GLl_+v{A2SUNXWedMEJBTZ+D3V;pPK zMLpW-+*%3~`ZLq8*O(lnaEPD8gH?H0nMxNlNg$>3KCwjP@xqVdCnrOsbsn@lKMa0X zX+j3L^lMFoRpoX@%N%Q);fRd4g9Y0JE5$65XGE^&c&YU6kG$`fg{VJjV$+Ewv93CN z%k2K^Tm2N-6+Q`m-*rSr?=i1FD?AMxp=0)D3S`0%B$Kk93vXKMG0xrobx3rVyk(&c_ zN1ZQ|5)F2LyD`&9D9Q-|tw8jP(lkAykr_OFcn&~QL4BM9MRL-h#kx}7^WE%_gY0u< z9)OTwHaJe;J9{%ddsz;YogzrtbLW_jBZ@fcCmZ|wO3#-NP};Gz8;|ywqE@X~lkn?L zL}g!eOy4)t;%$rLuP}uViIq#`Mw?k1waaJYJ(UGbPE zyDbUt_lz}x{N}MP2O`jy=Rf62RoJ1cXtsXN^v3aSv;Hc_Un2dIZ$KCZ8`etyTn&)g zQ4?dlBVVx@m5tu3ZKVrb3n53P+yU?4=(wXc>VJA z0^{9FK;7leKpMM;V2^+bHuA0F@O!ml>hem@h<<^|SfVHbB&Q*sx)>K{vY)QHzI7rL zL;{7O>mKSm)?Qo;S+k_5@#WZ+$h&h!OEU_d-YI^VK2`DSfwi)TSh|7x9fZJlnkWqP z4Fc_z$wMROI5DD09wJuky|ar_7VS%^`=ZuoZvU2h%w!bK3WdTWh&#v4Jd%1$(i|P+ za3m1d2w=yJPiw^&d#FgE&n^*^{7{j5IJDH1--@ zqAVPZ7E#pDcMJloLgX0+F2?J{#bpB;iQ)tilE|L7-(iKqLINAF>wi;0?`V4D2!X&%Fu!cY3jXcpKFpmb1qS8v6kQF4>?cWUxQ2$FGBUnXto5dWj_4e&}k{TNFt& z_GrQYfmyylqE_p>EtF1ZR$X8JdjbJ*+70xrCJ-nyEsDzxTfN#6RnFFa?a|oH&p=i% z1b_7}=yN(@%>rPHcMQ4cbKzCOj1_i@h@YU1sdzfO@Vq{6CMXDofQ5r7P;gi{+)*CuK0{9)J50`k3kjyAb$Eg)Fgn0#!YAfd2u(9{_noyBGy^qB z01=cGZJ(Y<@FW_pPY(X&nFNbn0jDCZ{z=|dyyxI5i;tzJ5WS=P(>IAf*w_TMs*`{d zmX9vVo>=uI)82ncuLAi^e=4a@65hM|!?V^=)(w+g{)zq-#BR0xfH#}v4_+dXu)yOa z>OLPI+ay|+NZZerT=yU3_ZnR`%aW`r(+RT=#hLgfDHYl$4(kE zh|bTW7U1*JG=dgdKNy*j8KTe=nPva}xw(#%}oQNd&hSPGNv}px<(n=`JsQ~Wgcwg%xb;O|ryx1{9Uw^@$;;n=iAIy8 zicq5ujq9TiO9)q7JuszhOE#&Ni3@GO*+g?RuQ-(&d0n?cnT*}rS60%2hmNck6bufR zn%&3INMhPg>wgbKh?3w|QaiSW2SKOZ6`Toul)O`s9w)Hqi~B#JYsBrj!yR9B7k!oV zZ3HGlMR`deY@~aynbJ)hHUgu68ef7%t=Kv|4|isLdhF#GqIPMfU2B{lB{5%7fENwY zB$B;k&MoSeGUb;ZWOkI2>kFWkzt;~R2gq=LGCqy3H&6JRm?>%`&}~X@DWA7XEgtmY zY=`g9%Vt=2IGiG-J{I|!I&b}xKwo;Ii8SZFJK}CS7#4l$eB!$Ll)l6mJ>nsPsSrHm zagOq#_!5eOw4h!r-;#KpLL;VNU-QWUf_xix+Oi&L( zgFhzU)&6>zI7(jJQRVCUL`$ONMoyw*c31~&wBgWibP&_Z#YmnLke2G}^L;O) z>p+D?hG%c_o3inv5r|b+Baktc6%>9BqW;*?1xH$`J9h@Y1JA7-%HO zoeYNY{vjoNPdFM|4`2C`szw@spknX{M;$#7XQea$KY4CvDow-XJSM` z*>{r&NuhW{1%Av$!LYdadk*}QBq;*WD~dp3He>?^++N;P66Z0F26YLuEO6kn+E625 zimb}CeHFYQe0txn){>XO0S^KtM|0pbVIWXA z5++a5`RuAqc?pl=LC_m&*uWbvdRSYDwR5PHa`&_EtOOApIJ}qmAYlJ`BMAvC4_#Nt z>)~A~=^mOWjFh+U#9N*Zhg~2D{k50oYxx0kb}+>yvXg^7P#YnfMA#FI2inHO`|~6a z!f#cxYr{|+p1U13aw6Vsyf>0hndFJ!5Yw1&Rwzlh*3$$~`7n(QGg0)RhIb!^fE9tG z0HbY{CS03BksJY7Jdy36f1B*Gk2fKND2ec-QxcAZ=|N#g_S@M3YVV#{JGyKxZ;YIK z%m~;PF6|m@p94XDak!NUsC;esn+h~nIoW>#%%+7H4ZAFpzcGi&0rgiw$iFOe%`Mbj zm;-_=0}S1NQz>&qjV1u;`?OB~sOqJk45{|0)KpM4d zqVHF>=Uvupr@Z!IUxvTITd>E=z5Q686|v~M+ni|mI?)pA%E(c3@Cc+c>+NFuo;HmT zbR?fWqsALuFXy*0_Od!dH9VL+leqCfG%)6 zXuFr*XSSy)+SUU50GA*_!luJIPG2ZF{cFnn#k==vfMis}cHS-^bY%Plq0Kpk)|A zg&$t@{WvG1n4S4j{+uWLuG*1gpxGy3tko=iCXd}xo~5#!GLiBEKH}BrhG(3v7!jMl za6>pk=`FAhKV$Y)G^Dqp^zHa&z;?tjCOcM_Lo~WG22u1OvEEa%poOu77PgePFL(_X z*A3chX%u?Iz&=Co12c1%us@Z3r!_tGAq7IEu59K zipoXyRS>3(Fp2BI*mP#UfF9N~wTLxXS7)d*%bMWKaFNuu`6mkm`w&ph(=e%b7w?{Q z60kclu3p0%9HsRcb9#iz(!Ul-wCj1ACY#S@%`#C0jVJ5Y3)^$xMqZG^cAK3?y(T*U zHa;?g?aQ+FY5xS;O_^=rkuKH?i#|n6e%$GvCv+L#Mq>8g;*8jlj`lO)bZRaBEU!*LZder1nDGY|PK7lLL@?-^1Q%J{W! zT{j|L=#io7jXML5kAHa7`+L+ zM75`J@3n(bEdo=!J39lSz{&cPqYj}Fj2qQ1ro5$gl%O`!vaLu;{fROWlN?qhx{^i_ zr@JMpZg{L;v}W^XFG3`b;1O=lZ(dXQ*hW$+O|*OYT1;=e?y5L*k^7AJ1cy+xv00US z^-9G<69nj0Z{}vPmwwC?t&MK)Xd&*M(LM%@Z1?Z&&Gf19Mp9xrgIG+2o&Cqxx9!vs zf`2o_E@YsuNmjikT;_Wj$%9y4JLh@DdkHH)WU7CZVts_Gs zRAc>yO$4#5y`)XhqlA)rFjCWY#*04^Ljn}A0;rtI24!rmi97!v+u_~_B=EX>c(rG- zgH5~EZ%WYQht&4UNJnh0rmdO6OO@$I+zYjM3;`@HWk#M;F}1t@q?H;`rU$%?4Bfm> zXT2E1C~b7=@xdjzl?Ebr_6#Rr0N_6L9I9LKV zp#E>I!_DgvVoB7BtWA#*@{|Xp#0!)uPnjWLe6Ott;spYjwN-eMgn$YB2f6K-&(uDI zU4T$>iX@s?KFLew6DtLr=fW!YnSg-@x79b!r3ie0{#Oi)mqNZ9z-?t<#0w>&b-j!@ zc#BNMw{ub=hFA!4t5c`TV!B94O{ZtEftKu64)(NA78nrP<8@PMp_~!$w#r1E;DE;8 ze2@FgBrYIqP3PcO-b&q@r{DIYHC-Yp(aE|m=-j*_kY!s+um!59A5-?r(GdJUf8Ht@ zZ)m1DavMW?)DU#G9#ervHYdoB^E&4x@M@!CFh)2KBOzdgSexUw6#itzAWkRXuML_O*qrU-dC&yMAkBoco(b~V zd2OvE%Ue>pUr;ktFE8vsXv36Fr4AYE3^fZ!>5Asf-CY zX**sBf-(`J>c&9Djjka=Z;pRH$n|10fj`Zv-F-=Ub;l~V*7=HEbzWxNyM&L7)4YjI z>>`31jJdM9+r8dEpeb&6f+*>*$UT1ptVPaB|9w(pV zzAg~pWbrn+Y5%E11m}M=Z?|;JtqmBv?TG%7{H7#FMu=N4ViJ(zrRNMZCe9pO)}qh%~3{RQFss$zm8zNAvlx#Q7DYt&`Zb@niQ6 ziL*Q4znkD#Nr%vbqG&JL%K&rY2L>njg4r`D{BteaF*6PVoNL`uF7WNcQNhAmU+o?X z+%N6|x;!l2l9t5D5MI@5PT;QPpYf{C)GWl!SX7mrNTwC%{OJm?ABUA*j_Tiv1RFvU%09zhTGD;nkC!* zuF46rHtaiOyZs3=^f3U_Q4d=O$Aq%B?Ga4bDjd)d*8+D5buUES3wWTy-_;Q8UR#>u z>JJ!f4vO49+@=yR!6c{RmR%-F7>i#zye@36ccr?*>^3mQ0n~7RvKkw7yIoq`Hwltl z2PVwJ0#>7MkVxTHHtgF_%lkwO3x5dCj07ajZK9Y^JkW7(0AZ(w!6(j@Kf|N=2%~py zYZSr$4UZ zMd!U0{fm4~XZ&S?`4hQ&<@e-ReY0Hm2%-`Bnzj+A=`#RSEH(!}mMQQ1VlDgP$l5G96+f5onKJfrAYw~DI+WGMK~;i!lH}*Z_LKz~ z?f)vTsl2fW{>Px7`%k&r&JlLG*oWpF8UUBliXN*HY^{4K`lgU&)0N8o&s$}H`e+KT zW0$~Yjv(P9lQCu^)G8=nmbH&4;1>nn!NRvKg0s*(3!lEVHgf-J7T8a^HunGOHNHNP z&zM%A!R^E&a~&{i;W1O5c+_60Wmm_KFb?u|O%h_-KB8qK~(*Q1KuYslPZm5uM49K1U_V zSmUEOZ2d?GkTAGHuqhiRFbhAI8Be0unoFL1b^#`SdyUXW*KZEYwB!MC#%1(F1|-IO z_(#4FIj8aitBS$h{HXQVm(Q9GNM4!qlCAU%lx1AtC1CGNuVQM9bb- z|BH&~pTwZP-#xW^xtrj}y6}alv)6F<{OvNTG%@U(cUR%#Rpe~`bV$H<%UXn^jXBxq z)|7%;A}v}LlInkKDSO7!NB9+O*HDhUprgU~V)s3jcLYO%obcdE2Z97ZRW2Ci$IQ?G zSi*-4MW@F-imdv6>BlakeP)*rvtU+N3lrQ6&&5v2K;N5HlpXF-W&@>E($geXwG=-) zr|z;4OpEg<_d<>Ig;mgYO_r%YZsVTFHYQodCZRXa6=tVui6ohc7kBx%`u!E2s%@#D zQ$>(a-adMfMwdqDJ|3b@TSeJ}Eod87C)cpM#hwY*pj52Et^Z<_&{{Na`JxH$^aYa4 z(i@#F6M})6dTSI`8sy|``;1Ny|0!1hg=~)3Fu2X9+mO_OqtuF|jXVU`=3_=W^jh#9 z{(-!c$|9PSibRS$9OCb_1p`EWxu$E1K@Yk^!`0sV<%3$wyz1_f6gj)R@H?y> zT!Vmp99B8Wr}Sa-zq40WoMH(Jah-Y&ft@SABc#5XZy%ZA5p4(0{)I!*=Yq7sEq(08 zeqj3CsYVweNe7~z>0di1?g7uQ+8sXBefUa9g>v8eiyv_wo_^KndUxmcti+ zeWvV8+l>2Udi7)ff4$~yck*pjJa23ZJpautIg(vZIb?CDTdCCZwBecraTW8&TXH^R zh6|sAXuecN)(CsKw^#r^IMDgM;G$5&&^b0eBLuMyq%A_7) zFNM0L43tl{SoXoo2Riri`SYsbQ@xK0N^W+kSoc`SaUsWh+s_=NCEf0N{R=&t^7$4D zE$$BE!_Bp7zgY7RmS@T5w_7rAx@sbn-(lhBeR;cmA0a8rl(eY*?#ib{gCbz@^s4{O z?!5N5kUNprN|WX-leJ3`68%q4%}zh~v@>q3*D3alehUWmba&TXh6+pt)D4!>hRp7> zRMqZ=UAmwyJ)P2JbxnP_peY`2b4^T>S2Qf7slp z*Y)UCw)y0^2rngw?@{G$_wwPdjSc628U0G;=8-G8_p!~xm2$g`4%b-)3Lwn#*5-$> z^8jMddVdows2)l6=q&5aecGAR8uffB5}RZv4)a%D=yPT|nORDCj4vTZ?`)8TEKyJym#9}W;zlA~~ zuk~rnnr>(BL74KBCiQ!1$k|@+8Fl{6>et{p8vdpL#tg46pLi~W&b$v$gkF~_$Qoi> zwtjciZP$PWP@C_mE2m#v+~aw`U?73x~5FK1Lhp!NS1t{er5F?Qcn= zxqWNfni>oFv*W{qXqo9&ZG}ZV%uO8xIjRsw@3~Pq^xT9nBQth)?q=C4t|G1}tm4lf zcKu4qmx(UVvH~q-w#$Qw*@7>wWI(dA&tu9poEQ|1zX`Py$MnC^n3xXhZI(xq;pY3z zO@-NWjSsj!F9FeDe&Hj711{_Gzzm-bO}Zb}f`_~wPxU(ci%V9vzV((2m8tcuMwg@% zOI!~tO}-m|#OY?eLqGM9`r7XXh~1)nSZ<}16F~)G9rt^>l?>%r>V0U#8W$|;Kw-->t5&k zZ>P&IEM}YM%K-wT6VF=aYX8IQ*3nt`=7IZ?UhrQRruMAyKdzY{#GXxj_3ezPh;ym? z9<`EX`yxcaSIe&RDjfeJ4k-oVR5sYFXrlG^zt#;;)IAJ|7SB@#RAV+h-6t z`Q-B73Oy~hjM0 ztB-jOOA{{xBsC39;bf})s_i97@@RRt7fs%71kz?G4)BlT(7d<2l>0AQ z!{%DC&n|zMUmn#irA<$k2Fja`w=QV?Mv;`ql>$E8r~)n&o&0(x4&HwHFW_)*EYI@K zuoUHilG#0F>gG?Th2Ks7hXn|$sVdjN<)Y$z_CCxi7^urvuc#qj=DCgTdW3oA6;Lk( z-R^CZQB>o`mz!;v-Vo1T`5Y`C_@|iq-sYDqEVzw{suXAEa1bwvgTEOzHq`pD+}toD z&ys0u#lXpnNxij*k@so;Icdn^*|egzG4l51sCLI%x|zIN&PYoS$3zVLk;)GqV#1|C-C{jL9n3*m9-~{>51h z#q<3yRGHzv-E32V+GUvoZKu!qx&1>b$VW4`+v;y__V)pI)DiKZ@d+?uFHRdvg6`b7 ztkxfTvQ)mW{C>D@hwVGv8y{uircE%DG|)DD&JC)r8F8i5ajMjRnb?XJ!eu$r`iI?) z-(zRWuj(Gx<$DI39mP@s+2O%zeKmn;U5*y8$Y{e~tV zr3vu-&uBP`ufzBR|Gww!&sx27jbaK&xIFyf=c~syo*j;lJGCt! zh;3h%M+x=gU-eIe|Ak0=3H&zX-`DK|c{^*S7Aj?4F`iOrP$5*o*jIWAeNXw z=c*xsw%&!97g*FUt@@92;!$R{&XKyls`bShUhh5SER=8nvhh*gcGwm5qH|t6R5nEB zUVinj%Egd59sll#&1j82m~Hf|D}&G1nM||KWi1Aa$=9U-H*~i+aei`d84t+2$|h>g z{4$Cl0cv1AK6zCpr9B7ms_d`wlWS*Uso41*MQzUyD`k>F6TIfzZnp#nGrr!Cg8AKm zs3Wsx93o?=-S59Xw6`h^jdR`H*2Eldgyzu_+SW+;-nzR_g(wJB=ehWX52&Xr8?lzy-K{G%L}a(^da(cP%NUYs-0Jcn-0#Tu-1$}p3jO0od0@^P zSy5ef>HFCnsDYN<{B&s;916m25GOcTlSV0}i|sQZpCDHkocsd=k0aQmer5(CXzktH z>CJ(0Lx8A{IXA@AYd8Ase<)5E+v~-TZRA(|8jj*pi{m$6uA8*H?tsjl$&)2u1NaL2 z@BUorxYFfdh_F^0~91~Z-(1y+4F)a$C^8DD70iV1mc zXT&U=%9jds-v8MPD5jjxbl%AI)!_9!&LxeDSmGho4`1Ia>+e!B-!!2oK-MWi01I%R zBCU7-FXJqHaL@A)S9Pf^7MyBMDVBS;`gK)H;$g+_ueKKU$|=AIf-jR#x4lkl5?w6; z{nt+ec4S}LiMF~m$m=NBm)}oQR4T09A_F4-g0E5?i`q>lV^uMujqE!6836cGK0hS5 z#&nV{FBesH7zX6vJx<&D_26$w=#pr6_x0i;hwceJ-z0U#98KtQG&iK<_Ot#Qf}JYd zDiB%bSZ({&5QU|TX^NU3+a}4sP)-JHS^3st}_ zp1i0%xw;nJ$R+?FI2~Rehth=o4B8{e9aVnlk7Hbx6eln>v)L< z469Z(wgj)&&aMo)$7Ku*nYmBxB`Ux$ka*dd;LdD9Dt9$eCYI3d9;4kKGL4cXkLvETkbRs>!Jb~q(QLnPt*DAxlb)>g%Q{{^x&AkV2OOOemTd9a zhCPJ49|HrU?LU8C$>0M0SWG_c5ReJ* zz>iar(*pGKIxpTGpO3F6GG6{Wj^T%l@mbFMDk&-aXd3=Y08Mb+JmfjKRaQ7?K59R2 z4+5ew6bOmG_$9oJHb|o0zF`#gt@53j0SYT8kIL^`SHB;As24l;NVq&OzL%funDYVj zU-dVu@VrdDY<1)sGxez786t1k8ABcxmJEvNUtMlaGljA|_lw&9KdQbms;w?)H&}sE zAb6ny1T9+JrMSC$aV=6@1EoOGVx^Se#ogVC6${1PU4whzp7*=o{c%_Ruvp1C`M84-A@+LwCBEK2?s>g2-qy348}eBDKc z96S7Vut-+HRQbs?>mnF%6(%12ukEh80|5aKYs(g!z^^S^5_=nNoUn_tU%p5xQ8jeR zd4X0I_c_435bQdB?&HijGd&B;qH%tIg;vEE5MaA+0YLj+iXRn4z=uQW;ZL?6x{ac* z-!iA~72)_UXRZV+(Mc~79K^1~F5j^+JxFf(dR@DAzZ41(14s|(B-k_4OX}oIPyU_g zlN&w?Ufk5_JwVTrIr?6zAUoMD5DhKvB~H|nBq%|LVQxK;0c$?)k;|AsGekb#ekBbr z_@wZ&^haYyi?6LS`pt*HJZMV(%GL8&>en6V<}KqbmG_l+fJtF4>a8V>WgkPMk2rJ^ ztKy z4{dOaT+Uq4sLzVM-j_t0xTV|KENv}jJZ4^_q4-){kA^dAb0hBpny9ioru)+)2GG`} zI-P=FB^g}xwF_%4{+7F?Hz7!%^_zU;S039#Y zS|p$WXjTED;HcjT@)Gp|@J>u>%=R&l54z9Cgm%hWp7vtR=3m`$BO;ClB~HF;tjr-N zs`#!P?x{r=rs{A*&Qk$xAw3=luxH`$rr@llps8GY$g60nfnEK z3)X*qJUbUb?+7a0FOFAW>~h*U$S*00I#}B2Krn_PCph?no;)z6?sqm$_ZVxb@DHw; zDR;MS3u_rM``yeM>26T_B|DVfs;v&RFARoE|=3Y7o&fb18JZ~ULP-9H?NJOfry|9Rn_L?JM+ z2!BOIiugZ4#$85GGL`qHn2Mp=gcn#`YE&SeZ@$xQ;2R{K%wP63>rWLByFS(^_~&m8u7j9ZL2V{4`q4)4}cig}KY) zp;1Icp>N^cf597qwHu_7NM^)efsXsed@x>|#UwPmVB_@O2U$L>1I+vO6`WrV;GhI* zIlcCxl-X!oVDtM61GNFp$nc;=qVDbq0s;V1L-IMH0)!2jgtO?E&=hBzormMV5ysc1``wyfppZbq zIgA@&Qhh&Dv>JfGyPrqDZu;D|wX(l`c&DW>aNE0J;T$^+QuWP@FuO)#gG6b)o}5jC z{x@p&-%-gDwtRH(Uj@roouQ}6O5?vLZ`o1|o{yj~8Ww;mo0$`gFv&s_mcN>(zoUbG ztRFB!xR;Z6nhKpEvt|(n!DfjP zV|?;Awbt3q%>hf}c6go+2%HwCG1N#0miViqUo}$WK`&_dDUy3e;xmYGnw+RqZ->mN?lk}=w0syK84rq9WoRg(NI)Qn{CmS7OkT+EU9et25wMNC}`O6_b z{Ray3D!6t&b*Ond4&8Pk3b1%)4K_7wQ`oQuiAYW?9)Y)<3iyPMkkJmLzX{HslFRP%-aY2 zPvrBXj5B@|d9}}yC@7}NJx_Axw5*)pW}29{r4E0mQv?Og(VtHrNOAO?d2F}Y{EhVZ zVL9LOz2b9r=%jxHMNunr4X0JefYki5wG|UjxcDtoqCtMsb_mIW@Nx$eoCmad5Y3Ta ziyrEqj6oUclu=PrDkn%6X&nEfD4O|GGB99~GhSi7EXEWxGSj4jKE^%s9DL?MY9#mE z*zvqp&I%FfkNw8p0>|KxcS z;sxP>$wK^h8$X>trz>Qm@4VhHVt|zQgF~hx!RBE&)Mri^+w%)*j&2-_dSule&p@uY zgc7Zq&h_wo8*M~_@EVLHjfEcp8|6!#W&&-NL}TaIp=bFg5`1;j-9BJpO;8z9v>4}% zHvp?w!9zFoQ{~&~UU<1s8|Q8Dj_MX288UF`$Lt z`lm3n<{5xpbbE%L=Mi>=J6e9IhZ`Xhl(^uL9;C1W@m~6gqUTb#^gA>-XBaq^kR%|g zyya?)uP%!kX`V(DFAvzcZ?1s^a}KD-k><%)20vOL1MWs~w@gv%6@>Cqr%}Ie>7)3d z12Y2ZU_i?2;jQ>g>b>-;QInVDv)h8?+k&Q6SbEDO^7-kP65r&mdU-!^0 zxp0sFuUQ?ldwHp=gd4=5oY=VyPAthnkNW9z`W{%K^kaT9XQ6qjTUXML`noy6WH)ae zdQMhCHlM1IccJA+HOjnJG?Ki!EWwe=Kb+6}(=P|5QJ=Gd3iWJ^s{GRx=r$S@nyEGhhQ&h#eNGegnDv6@@86~EWI3kj&i zmNEIOt?Kyp^ILiVX8}3TT2EkEOW0aiY+3bf5MBtrkH?@c^|We-yO&ErbUji@ie57t zQv0+kd?ofY1VJ^oS6I;DTb8z&<3vib5hy$sTdiZw|JHWDN&zsgz$pCGf(+9l^s)C{4{3Sbwg(_;9 z>S=Iz6JLe=4Y@4;w{;k1eeA3;Q$jlt4J3EkaEK+^2R!o4(|w{aQWf%=Ywg& zphc0Z(&o|2<`xv&yqGLs-io_UisG^P$QH-^SL(`%ubCPM985x(3CpFb z-h~vfja6XZ^x={m)FPy+m?w;Y(|pRswGdRZzndgDs9zg_p5WU{t6}4i%W1L&Bl^#E zUtSCu$6F3wn*1HZjj8fJ02+qy`8=eCxKWt__BTahq*!jtIG&_PZIQP4;81(=n;Z^n z5@WqI)?|S(?_CJXz9gq>CLo~|=jQ2`^FLZR{fO$cm_ng1n%23l8B9TvRzlU{Ehb4V zM)?2P2x{}Dkwm4-qR5WnlV8vxiLhS5Yqs}cy`HOq?Qknvs#p4z%;TI^FOq-MHvp#Q z7n&LDfLk%g=alV2W-HBo@I;-2flrJ0fWt*h;WtZQ= z0Z_Q59jz{lpp;!yKGD~2wRg2@>49)(*{R*H> zFVj@hw85`=mL_)E(IG9{u{r@1BsI#AQ+&C`*uqr3{}xJ=a`|{X^yU}z3z4bK^0J$x z1qqpmnTD6g4?e4%jMiiUc0jTTXu2oe|_~lc)QTK zF&h$v6lZO*_LK}NrsPle!J4zbfMTQEQTsMjCkR{e=?xrx_k9{uobtUD5+Jp#l>Cgn5yNX{43P{h@8GBeU^N^ zG<6&NF)UF9F(el%I3hqcsrIX%;h{5B?Jr*>f1-{MTdJ4nn*#H$kX6iabJ$mQX2J5X z_HO(`j}NrtSvY;bfr1ZU;$f z7ytePSzy*~@f(8k54b)Ek6c}>Mm5QzYf8h! zc#@=UeSeTvaj@BTiiWdKs!b}e&3-EkAXdzxrOaEtTV?98+gw`3bOXI$VdRbEj$yUCVbh%y8Z8bGb?uH7?sc9_`))srAncj`2#4>Ov^4v zP1A3=!8&19bBFd3{LKe$R6P5?-fT}ifmvLNEHCpeeo`2)SF2Ol#3xmk&Ht7QBZp(C z4oP8|l-hi>6gtL~^@=Cq+VR(*?e)!wA)NSSE)u26Z=nu(nG5vjw9~m#Pbs=qB&q%k zOt$A&te%y*`c0`2qOoA1u*lP}e*I1z&|FK-NQc4t#bnV@bJSV9w3Y zh~_s{rAo@B=a<3*>xqG8UY@+UbBr-}f<%&&5pxo_TR>29Rw~T8r>;VFfH*~uJb4AqieG+{1>=}lqS+yw_? za3)88Uxi^3U%~a}5fSl@FbMV_Up@?WjG0eB#$q~@E}i}i^*N||mY_QrsxPWC!8wKt zY_;7ECL7kvGklak=ue(JTBSC2@p=c5>P(sg5S7-^zISxL^+t201{?3|mx2cIhlvKo zLeiZSsD&9)^7je}msU{PKIk3kcbj2tsnLiYm;`}?* zX&+q_!BWG)|7xSlJmg8YHn;~Y7?gMwa=G^%;Iy+%u7m?UoCNhp=F|col!khQD0?BL z#15>0Cq9%Q?1p!)-e)0N%73C(P9{%{A}+OPml8Yvu{32;?f8v>Lyc>PBB#nb3w7G} zlXiGfm%^`X1{lZ6?235@EZ){?%sF&&bIL(Esr5~0ISK#Di7J4^dtmOZSMmg8R`UYO z8{7)NzrTJnFqp)d5T}_+C+w-@CP9U}-+kX2k$%p(zRJO_X;Yd6F;u)CCQly05C@#(fL5a9!lqe~G}K zzrAg-jQSbF>EM{upH$^2avlM<;DzT%`R>%zMZ3~l1b>VMN7b<~n*-EBPe^mmJcV{E zUM?z>i{c8$lBJq6e(Bgm0xRMtQC|&<8+^wHM&hc|qw&vQBns%jOYnd>sL!jCx5*8= zP`2Y8v}6kY?#_xC2Z@QmVX5RyzU7ZP@0nYTmM3+U&^PD-sg>rrGNo6+)SZoW=#BH* zG8CP1A^CEDUR*H1BRH4)Yp^>V+ChLJamJaf@xo7X z`QEnt?EQ3-^+vQBAsqp#wL_|8W{TY`Bf%i?1jG>%?)5QbYePydc2|g}_D5vn#7zWa z!h4f%=WLNyRX_6W9ATqFQZfnhc%if##27<-=Zu8BTd)bW)^B>y)j7t?z5y*Y#Dw~K z?VjhWsK00fyl!kiFO<^M)+r6(i(btJyQ6 zG!)Q;h6AT|(EhOq0;%)LWFa&r93OiC2$#I_0tqzP!9L@vg8QwCUsD!rL%n<&OKYRx{SU}TZDI&I!L_ER9&IZ zkPh_vNJZPBDNDkQ&4-^KildXkd_R51AB9B&*DERIQRy>xFGq(C+yl1HbO`0|p^J4= zUNrVV4vPdLtvD|_7M={U9G7M#FK8Dk?HT+TSFa$>KcCLO@x^LF$st!_Qkazs9j0pE zx99DE4wXgF8|agty5xs_R+*A{QMObD`z#+1mT=FFsfPOyRGG74Lie+Bl78&SfZhj) zjg_s1xDKRl?!Na|yxldzh9+KXIvByEL&r|a@B=1u|1~UsY}`3?$*;4Dj*J+R%ISBJ z=&`Lqr#<|9zuWR6h@+}?_@>6A=6#N z7FCEs-;(@U)c?srBsFcCP(i9EQCOzOcl`Ya$v{A^x^c*4TX}xSMjfuDs}9k=Cbvks zd@J4aXJrf?x1BV`R=!m9sr0+?Tbv8NOp94REN9;v$bttD2|SuOLHxxXsQ#MWdW&Z%t`trbws7zuK=C=KM-@ui8+Cpze z^c_T^$gWNuF2HaP6IiMM$vwp;>i{+Cp0@uixDIk;P!q4UGb!b6VwFlH0~wo3cm3;s zpmjdDSl8wzMMQ)gJ( z^dXZ(){qXO@*~%J*r#IWm#ky0K4DMp5}Un3(I*eHU?X#sY-)SL9BbIO2-hmJF7Fa4 z33^1qbTfYpR_?SxLHd*meXC&^g5hJL=;rI(H&$A5Z?^~_+!MbzrZ11~i#XU6&=2rL zu+a~9hFj!azGDXiefvE>tcAy^4KwiIaJ@D=3(QGQPT*?#6LQ)_2#Q@+EjyPd(3A)( zlZ4*(s$Q88jfXBCweBWI170_cJXe5zi8YrFEi`>s3m0 z?tLQT*?Q61AcE4r)115>ttk5rMMHH*X3p#to%DPRPj2ox4Ty6tJ(SE19!$8?S{@T& z%h!GVLr;x)!T=#LDgBb{&#r9=dgph_#w?>V7f9RYXRdH~}}+hR1%0ZXbDag7o3bfh&Wp1x83Us2aNL__Kgj3;tWoLw~I!cC0 zr}}eHO|DNSrCAryp1i;|z|eu3>{>uY{J^qRqVrS-1tg1xLPKv!Wj2KIs&C$&%qHRe zc4=KO#;N@z4(fa?h6u_#!{JmFT#m3xvo3Mi$pE25Rw}OyKDrXYM^OP*`vE_m-(U4C zsT~3m`jZHjeqo^8*C{cQ&*vI+3lNP(QW)&Fu`wGQz&z90X7{({Zwh7qQOMw`d)eD2 z-$_%$JtRpnAHjHtx1@9EvROk$RbwUkA%7zRPP)t!XYn%-7B>gQ4AADLE#UX1fcTdSKQn zC>sZz)EifNQuWN&4mPl{X>x|#?7otR&X6yu`X5nvwQG#TUT*v$7~fqK@2vYw1LF6m z%zLo5i(xpA4hD;BEg^=b;iuNZaeyt^U%s^BWTX0va< zIrYb&64fL;TJ)g_p83(P%lF?&RCOf*GmBl&Na)cY0%(7lyj}jWMc8ggT=QW=!=%szHc;|a$dm6N$ zkoxDbPB6wAjVKz5?)ev5ZYdGlPG>r^x0Je)E!qWPcN{IDNb{JSCVy9;be zsNHIX>aK(yIs<#P4an(#eurW6TK3Y3x%`b(3|ze>Kmj}p-|$<5XP}xdCTKD&3bD7r zZ!|-mUA!H&M&Z`xx(Ob#xBZ*BBHwv|j`Pfb^`Ub$8oQ5{Ov9TJR#i#*zOiU+l%kAR zk)m?uJ}?<0I`ZcbZDrP$zm+j2s-P6mK==G(ou@j{I7>-3=NrBE{1$D`UchIcrxHqNEm2I_b+WAhOn)*`kwxzejf{(HV8g=RwlGq6Qcb8*JVUxuE!1!$ zx}K8|X`dd7|4$NuB&0C8pa5b;!}VSDIozYaB1 zIwPV0cf?Up_`@}){(0R5e{rrX4#T43Twm$N7f!@rm{KFV#5M-QIC$`zvnU-75+KL= zX6cul*o)!zLC=T>V?w9^|0eGlDHfu;YtC^sS9_=#IMbkqQ1M<6vXDJjAqy?_4x^M4 zFdPRqHXF=Cg*5;aBX-`Zx2Z|C5G@&u+4QR5N&`j@l^SrpC@8HP%ahgV3$xw0FsY{2 zU|@|;q!Ii}Y5UvmVlH_S`IGuB65`bqmuv4>%)YSkM?qI|!gRQ)UQJJmi~q6RiDs>v z79bB{A3tAVc6nH;??F`EYZUA7Hi}3ezG>}l zJ+*(0!yzZi7Ws9Y1i57dD1bD%BG~{uX!Zb6S^OY=2O0)SU`x+Wmn)*{KATh=qUpdJ zD^0WZb%2fYsxqshsV|*SJw?NGsxAh)$VrL5mKxGM>n0DRN<9p#f@6t`l*LqwXU$-! zVTzsj&z2NlR8u_nlk9)!=&@ggd1nnn>?QL3mSSHf zM_>B&8&!{4&#u7qj@E_oVjHU9cI*~FkOfQaNJq}B)`Ti}-=*Ae2z@PN=#z7y@uE$~ zemf+b3(;D)%*1Riy37)?eFiVcji!R*GncVYOUVeo)0EoPtDGgMkqq3e&e{B8?^3QS zS;slJCf-RW2IjDora`xeU#&h5Onq?_oZD73!v?p2G+vs$5!?w~l_n=bFko__s)fC& z`jR^R!iw!OaOi79|bclWm#U&#+b=g`lt*x)pX)~ z?GH8Zx9BKz=w!_g4ukToUF0S*-cGr}R6OGIa&4Hbe=7m!=PiI`Cvi^OJCw>wQG5TA zjo`;GE zpK3qCT;b>ia9{0)q?%J}lnB`tq7ug>=_GZVwiWE%w`2&eiea3Pcq13fNgwXA_-s7cL$4ll2{|F%4`|Q35|wiLzmxPE(t+J-b;+GV ziK8c6BAe}bQi7E&-QItmF3^_(O_f$D2z?RW?lpK8QPV9zZCR@i%1i8Sn*Q;b9(^al z2j6MQ4KAC80bIiL()1ZhJ&%rIL7Cjv%>#v+Aa>v?zcgY85$9g^j)s#|ox(5FdRk3I z_LbGHp+i|Ttp#yg!}Q#A1UH50OB$NQwp1LZXW6O4$_^kkxeQCBUbw1kC^Epxl9tgX z35YBXeb#nZd|e|JK95x#tVPDZuio@IlYME zkKvd4gH}9^1@8kyQ{~ELxtTT!J9iL3+{+9Gh(LUq&y1O9lWol{ig=duI!CKQsa4#+Lg_{axhZ4LPOc^LBG~gbG|MRJ6e3T8~qC=$uql3glDX-qCql!bp6oK?>e;%K7oWqv&ko?;IYoq3sYPurzYRQiGAUOXdcR6q#*8F}_SUu&7^Vi*Wa z7`Pvn0-`<JyJ<6RxZ}oO;~J8r!A3Q|8PVvJ#A#`IA3al~d+kSyj)IjJswN?! z%4QO>#6n-N(nmuTX7@r8+V0$8imp;=s`|F0-=;!U7^T}|o~Wt=`du@lid)CH8_PZF z6`0`Rgb{-JAx^H-@8WH`r0N(AHFUSj?*t3|eJGUrVdLoVskhe;xj~k3Lw&)BG9!B= z5}Gd zD1FPWh9RThiD)9aTSewL3Gi#_!{j2ul z$)+?v=#u9J5cko$1+QNi;&%zHfKUbXRVKgxZ8Xw2^-@Z;am z@W*rl)*^V`q|_a;ch2-}LHU|B`jg>hulO6II;^KXy~mL+b-wX6(l~5JUsPH*>2t7*An(`YzOQ zqd)XeiII`4jtha&ZNHPZS?(|WlMx*G!LTaos#D>s|5c67 z^%C5mXZ9TvI(jW$x}-#~kCCH12!hulm(G9sw)KEFEp|$ac|31HhT2`eFuwP7pEHh# za6HwAtf2s&hv=yJ`_N{=HPD7W4q+SSK|IJeXx~Wh&4!5f)e--h(~Q4Bc9DCd!-EMz-5KaY!7r{q z62C<2gR1{dQaf~(cvcZ|L60sNw>yRp*Q=xvULThw!JX$qxm73$}bgPKa(vjD@j|ojvp!BV74bZNLx{h62e>Qd4+Im5VL{(qE=z zh*%YV4|I-x{SvJVV=o?rHSH8P@y{+)?Kv@a9{Tt1z5aC3R5oDj6OaVh;ya77oCKD; z@gkiIqEirDo~E_*sT316l;ivB*CF6t5f?mEY*cKEHIa`=YR{4gC7>LuSkVLu*eL7o zvWc;JKYCR^U3_TRd;2Uxo%jU}UMT8LkKZ4CvFR85m~m9!UBZ$GrLtbUM8%!>BC&!k z{tg7n+jX7AKe~H3!B7aUKEargd*|}3hlb|&5DWy8`<61? z`v(=3PISG;J0kQNofd6?WBW(Q1~A!(E_WKO01Fz8iXo0Z!zwfSEvoP|iC`Zh@y0d8 zTUD4w1x)!Rw+AZ>#!t@c8SD*0SBS@v4aGnd(iKKH6&69HDpUDu?_&IH@^V8>;L|dY z+tco({|%{nl|SiI=3fvwJlbBGVtvyNs1k)BGU!(PFJ+|GyPQ9vt>%WS?#tJ>`n-<4 zEw|a{MnFOz)Gn{K*{4rK^h zqz+xYpJD}hKZK|6n~}y|zMJ7J8(t_tB(k(WwE%5rcGoBJga+L7PO5Hua0$ogY$*kE0;w?7yvXwDY5f_<@yRY6JTHx$ zo7m5Kj=4bM(4@1yRI|h%L-}xp2MWC0^W<`7UtCOx|M_-gC;a^OH`{bndw+&+oL8VL z8YtsoPrpuAx`>4@vW%H}zkxFzKX4(&TC?s|%Je!nXWz6Y&s^H}#>FE8U)M%%_`>vT z8l?$_LdWgdlzRsxH0f3E);(F*y-iTS0A0|@L3xmMz@*YY&vJYd%HLLZs|{XQ!R$dD zPD$;)2tuNZrSrDEz&rkgur7&t82kN8&VHzOwU* zjP^K)>(j=o)x-Z}$}Zq|Fl-o->o4Mve_!JdTYj2imGZyXtLHkN9t9@RnLHrV1_GrS zS@|NFz1Y1GnaCr$l!q>71gJAtHFG#_|MXU!f4U(30I3^(%h>jmwgB23>vk#|uDefp zS>T+BQ1N13+IP!sL=L?IRU&)26!ws&OV6Mcq62Q138?SyfmFT4op?s(} zjPsasG@gslD6$u+*td87QDKE281M=zeCN0z5Om+|AousYqwVLhZuFR2O{@P-$o0(w zg58I>kAf2UIN+#Jk^bsyMT!Hn$H_4x>jbr*o>hfNqm+Q({UOr5g0t_(L2p^6F&gxU zJwvlS!q@ZttJq8Rx;dmZ`^d&8k-)p(WmCNiK&Pj0zlpi7($xB1>p(=}g81ses26DU znB5um&&Fs&Nt?b#&z6Cxpss-hps8d9oSWelq5&GC^JOJz>X1pJ(R`0O)2)Nsf6tte zN13LWRH{#RIrAlYJ+iNQd((DcuIz8y)(P;LuZL7KClh^-{_wvuzxbWr5bn&d$A7yz z)6ku(v*18!WF6fec=xGUSN~uzW_>z*Mz|AB#?Dw^j1XDOcmr>?2+%0{1@>@z;%m4s zyv%Fa`3lBF#1?n!b2$vftpB&#&Y7S^6sRBN3M#ZeQ>^UDdhI9TROe%D0P?~(K}u4` zv3Ps2jx{yHI)6K{SrA6%FbC`?YG;M0-+mdsz|LM~rs{P*gmBB+b*=9Q*JH14g%oXb zA*E;$!^mB)YeN6qs-pSs>qP$~k()~=@rScDqLQP_Orwv{?TdjzOC_!6TQaU247voT zd!`v&@V5_l@XipoTsc|0BrNT;r4-;~r}1Q2JFtsjf5eEohhE)h?Q*h@#zDwiJaFUn zz)@u%8ct+gtI=o-ue0YegS`8bmsfWScg@v99d7Dh-+6fKHV{*+%2;`_>B>%ayr zm>w!!7c<5KH-5a!uRBhYt%#FubM;|;eZHhMGIlS|3lB>*17K-_IcY2mjdU~|Ld7-!^3<|TpC8v{iu8hcf{(;R(vG#&nWAFW z7n4047Ki$sa~f$@Hvp|G@!dG{g(*1r8}lSyCz`{So`5EkrLHq#t%F!Tr@K?`LC-;3 zGCoILbcoYA(~gfJm-?=LfqGu(#IuwE(P)GOE00zb-+h7Hc=@U$8Dx zCtV#b7vcT4_sC$XrI{K*S}VsA~v#CZE!9|bE{k2^!a9)<_E zzsvE8{aGnl#SlW|wax^m)Q_i@_|ho7qn?gPG?Vu{x0z-&E3EZDr$u~qATvYPFImZ|DL%8Mc`X{beVUd5 z-Bhm#`_ttajM0yM1Gp!9e5M^4$DXFqUPoP47lAt!EAP9)TKU9aDLaEM!(N7fLA?J$ zaR;E=#4o^dz8|V<$YalmeI&+If`;PC^WtYNaFf^efs7h?9!aX-~#9SJe)vC9bW2MaJ-k;An26*Bz ze@}jV``u**K9sdn%8YdmQd;$@cxMwMd=|ZNjD^eE<<@F~0*!|H^8JBhY|@8AitNqX zlnRD>5+DY{Qoh)Fc|M=SRr7~0YN#;vjD_)2yrzVp1J9d@itZW9bWc0?saJyLqpDj+D+30Ob# zQeDZxXQ+_X39+(D0Diw(v`+}@lm$GQvk#E@2B}HPwoGK*^lTznaVan9^YrRjzGh&U=I6SqR1j;yLPyeqLz=;GK^qNO~vMq>dg(rnS?%2Ug=l!hVZaz5CMW6wxB z)NHnKCIeH*bu#9eShC|ap`DzTu;&I3d?{`3YQCS*x zSCvthPC5J2x4IOC1AGEF>;w`S$fKR65v=O^WR0W0#62Isyz0Wg*` zNiK&`JeNPn>9aQOC3e$AS=_2SbS0xt${?`b2m4Ed_cSVk@KZw6TAD*fHBmN)9dr}IIglo{1ddN$}evb59`1Qjwd^tW?c_I$&{J0dO%2%t6m?Uw>^j} zWCq>(&Jwh^Aws;^4sku^9`P5>bA4NR6wZFS+1eD`1*bHcAxsXHpOL-@q{{o^@W!*} z&Z7OYWrw+iR(awmLK)v$yMbo9C>z+%53eWxO=N`)UixpGHS++M3phzzfc_URFy=8# z;meUKG#FvH1Saf=E@pW7NpjHrPOW2@{NCjG#7T5^RSEa;>dsGF1G4Kr>6iQ@ZO9p%f9)l`bb~( z0$4)b3C}cDlR-S)k$S(l%@*4hnkt(^Zc`0xe9xm4S=6a(cRzs1ZRFYsmCSpVN2>eo z6r_x`Fa-JIfxH5J-hev*mOoXMrPoqxT^59NQYC4 z?Ym^ejr)mpD6|5N1^L99pUq0M(y}-7ks(an#7#tfn9*CVqYiA3a#x&38O|@yH-1M1 zi*wBYEOCzC2kfa%`N`0#;%W1F^7>K9fV+m!!C>9t9TI2vBY=IWX4hiv!J&c39p_?s z5rd&|rROq}rAvNInVSPh(-qVnfa4Vd)9&UT)4J_D?01T1nGlcryxE5bVjWq)Q@Fli z3^+?knfk4A#?QX)mh@AnZD}rs(B~;JZFLEVHvF>ldz{Z#k}|FXEIt;NX+Zr^TL<#| zRp@C!+_IKzom`JCpmG620{*v~=@GMSnWktv?Y=keqGfz+(HrXfO}5EG^Ci`g_NOsz zasP{6oPwh|KQcy|3a=}AOfG~gw?f78vcyIP5=pmlxLhHj+^(s-of`ugv3O@Ir0Z94 zJ;CXBVtOqeQStZ?qjPl@qby?$*qV|CzP8g*fc1y0Jl#A~ySs@ZoBB--)I*cHs!SREXEma3 zfT$D7YRPD(ofX@P=qTf%=t}yrigwu`&W6xaul#FgF<(inrt3sSTjWfT|1$Fmw<&wH zE5hV$PnG}4nD)uz7}@9)-~~6c(Ph3Fu}Sn5b&9MzJZAp{3a)s%KqdGT>~^*>g~8q_2EgMyq` zmm33O_3rm8*y#}rp$UiMH#x1Js(1JJ{6fYumxV_So-S8RM)A|eWGLb^UJmrNTw~Ti z62zK(GVGpi5EUK{?4~QL(MRnfzuxjR^W5GZ+Iwn~JdBlGM}N;WX%fd34Lq|JbQ

$|DScU3HV7Uob$mE)a8?xJdHb1Mh{vR1Xa%4=V?1I=E41z z?3ZlQ6>MIEos)P54V)PB49N3py$X}7=6!c!#+N@kh=3@p+;g?dn#{z-`D7Y?DIO1x z=f=3g_ojjQ&jzX7o_#>GSX?#p7&K5>v^{r<5uX8rM1v0V2>SUn8dP0|IhP_T z-`{=T`~S9ccH)!Id7f4LD!vTy&5hC4BYkf*rxEm3xYC{ceqg0pQBG~^a4dYM)g_L} z7?HhIm|5G<SIepi? z28m@WLKd5Cw%xzQ^T4P%>z+mfq8Zt2E*B@kgum}mWQ}Eg#tHld57SCMr`Cz4D|9yV zWEEzyaH2cWwKB(By5Ord?X~2(*5Ou(SVNC&?_|pOYpn4VJmbvkr#Q-LOB_IoySDs-xm-^O|7)ebtEbx20 z*&8m-m1dPJMXlql#0oRSkyN`x`mlFq6GBE;(D*(fbmHlw{cqQ39h1wfi>!-S8E!hZ z$ug_4J3pOv)qSDc=-yzYFPCM!fF;}9W>{|bZme$fZqRWG&KsBCNUn`VdnZ?1Uy=T9 zyJOVMvpzI99$Tismo8e2Dstjynk=F;3hpk=7`F0E)&^m()hCr{4kjf?AvC93mga6b zx42=BnX@X8!1AzC#WFjAKC@CJIK)ZmPiqP3vi%OM6e*oMarm}|V1Rhtcfv|wt+ckn z<(t0<7a{rBE5=q4N-Ket-7n@q_8HVzYKrM{{3>EVOH8E#RU}f%LuKWWEQz;N8|oLo z7cX%&6mef4X7mG&nnxC+9NW8hUzRuO=vg|INT_{gRjTq3eEZ_Ld$%PU{_T#-b8n2B zG$__ceAY5pWhaOBK)i}kYbe<~If$@o@e8??|HcwE10|* zFCVWMOw^ojnvw?8jf*tW7J^=o6V8FcJt97{4575~rPWdk3!D|FF_s%y{0vevJ+773 znhHehaPr=2h9tr|wJhUTBweFhhPU*MYjkFBu0OYX9PNz>?&Kpi*Q@!@_NS0zont-~ z|IKHk=8W59Ju>oef)7vsx|;|e8Za`cv-C?IPj-%FUJS&d98D9l;MgkSxaguQg&_!5 z$;Pp69x#XvQcExblv0slSHT`w>n*WSEafMSn~Pp@Y$6305g7MI*Vq))jS~QB=7Pks zCcz?hZqbQrsT|s3zaUMLgIWg@lm6P9R#FN$WM-MO2*lG}>&Y|HNSCZ2rW?+>kFxG` z7+s+|Gy3RYBSm;?-%3Qfl`Aq?5}mZ?J{xTy-s4Zw#0-HWi_p+Q!b&ozp^vhp5HeR( zDyCKu?~(7s)-B>`pw}w#V~NHU3|ORBBQd!k{q{bEP2;~^~IOhNj7p(B6c5>*u>Cs`1X9X~T^zQ?)&q*J+V6~)w^k8f3bPBq(PK_u! z_Mn0oltIp6g4BZrk2fm)YxyodndXBu>q2$xBg!0y9ZlQqU#ZFus%Gpc1)uF;Y0 zXpOmiv!&kKsflC7@|I^%D!51h=ZcLi_igpaT|$g4wH47_BgS;BNr)74o=g)c-d};( zFz<6>a`ixJT5{(XLemo)Wmnt1sgGNX7m0BJ+u3qQYB=pN#ibEoT4qI#PUd5Vs~)g^$=Ixm`o${(fgqRPJl^RlbNU+zde#X zuKRSOaRfbcbTLDu#njq<>+L;^m{wV5Ho?jQH%anGa~V$oFM(X~4& zrq~dvVBmVPL}N)qrJBa`hik8I8-|5S20|aDAlU#hA7o=zK*f8@W~%P}V06+|RCQ;SJu&W@mcRpUsLin^MUqKtIQ zZ5M`*CYsUbJ!6JNX7xCp?B#g! zwX|5uCgu(EN^{4uAl4$*>qn9K-qb3(K0bXouprNCw?(zgF33wD&vmemEjS zvQ>x#z?*qVR*|Hk=9#*e&rK^E>s;W5FB0A(SMSGdKgOJCqa0%HeNf!aD~{VFQLH-w zFi09os5IawjU=rE^EdwDa?vF(lw`)-4m{kBpn%kgNg!g z0(arnpz%ajNdV{i0zKspKvp>$AGqIdMiNWQd7NN;C0iFbysK0DQ3-K?_^poXXA=;J z@vSiVT_g)Yc`?$ zStGxb2@7fEy00Ykfhd_dzd+&cglR&TS$6}&rbXuasa-K<-f6E^BByg{0wN+b+%deR z)Sa3^`K^?LsAOw8SIj+Vj&-5I5!thS?Deos;!CA&+DCB13Nx9&FSHHO=>Cww&E4<# zGQ4j!<${DvLxbFsQg9*BS>*kZ6`kgfKJql|knU<4^pTO~GCw%=G`f{~J>Gg|WahAi3DBnVti-G#ZkFHC*I^~DMC%fB(Zk~7 zAlF6|x^-<|EiZ=E(F`k6FdNyaWM$HAyO&2GLt)SBc@`)ZMyTCHu1j^Wxo5mS8zEEF zXf=89k?E0dzy1n(Tls;Tj7C>an&|6-;qjdY@Q^DRI?~2O-)Yl8HD}PhswtLkbf>$G z@5K~XIuwE0svTb+rLj^Vm=&Qav$qVsV!mxdD-Oufv%^o|@1!R3(@nphSz3Cy@s>Br zer@ByWBk$HyX3r#Vx$V0I^wK1#rf3DM#nLWr<3dAvIsWcvf?YCO6;YT>{RJcof*Dx z@OO6OYW6r%7TLtw1|HFMztw2MltVPOUJR!_DZ)p-FW}&*7$yx_tyFCx)I~+#+MOF$ zs9i0(#l1RyqM8r85VkJHjMG$^=t{*Sls?RbrDjac)jR>0NeFY$N~$v_US!! zp)TUTEoxB0cmWFOF)1o?-Hi;crCa%dlGg*Psl}IUjL_+BXWRFoHN*>VVD>`on+MEh zz2l`4Gf%&p#7-e8#@xKp$BbF82uH}IA!Vjq$r3oI&a!*Dlz3g!UnAK{KRCw}pzbF$ zJ0smca=cGBHFk3pGc3vQgN-XTm_OjNrj9)|#p-`qk8qaMglu#E#;=aI&Pn^-Zic)PoLd z(l6?j-eAfy)PT}=t878hd{!vVHbp$xcx!?sV$F>ocr^wv<@nzwF2|2GNu~v@T3v9-whhKawPBtLB>d}LQKGvnW=L%(Uq-ovupXmga5At zJF%F`wbV6Y!Dw~SHT5S7dB6qQ+&fshJnd5bd&XsCBkjOGbKy$`+Bipp#dL7;D_Ok&ZNA!9SMP14&H(&OVst$^?Bpt@Bzphh|e`OD<=p zH71Vi{-AA!ef(GVsu9!kD%HPXWc)EB#lW!?=;uWwKV~M<5`tT9j<9Zg7yEitS?;msKHQr& zHwR|*g_#%Wi1JvFZaHlMY1M?avommiD=@@@W7LI5+!A5GYZ+taFG2#Uv#6F0o;VdP zNVlHvWrCC=XL}Lf7T>~oE6pElT|>AHB@bwpvQkc7wEDPVYB1;DTYAr0P@p?LVmxdO;DYL;(d|AHMhsrtl=PsCB3|BEz2Bdda1V{dtpJ}2UD zyL-QEBAKW>ujNL=m;>uNa2= z8xwFPUEZtM)Q_H8N>^5tr6=}flY8R`p+%T_#m5=s8=`Ei`z8-K4d+cB?yB7iv~Q)V zy_SAod*jDyjA)cZusC{VYsqmf1E8KQGx?CBHzis@Q$*Cy!_FeBNG%RMIJLLYthKds3kn2vjD27qT%&BUb_OC zIDTK^{_MW^=ZL1V4~e6$Wt??peeyhvQ^xMtoM*!HqivKR_6Y^Yv6}K9%{C?vc;u;= z4~`068_@@K1b2C}tyv_xHxA?7ZxsLf(L)aM#&TLJZCsx|2vN#Cl!2Zxj5cJZ^A3yn{Q~>1NwcT3L%kuj>%gX%Uh!Uhg zQLhjklEuR&8#-_dEYn3Kh`YPRt|CZp65$t8ph(S9gqN?xn#*#M570gU%|uKqY_x{9 z5T>>qWn8Ez1}qaVLCxq5wvFzV{>e zM74ji2d|hKx+pPSlQNO5a8$2UV#+QTRBQFSY-IDG^QF5wQA>J=;wzH>kj?6p=c3+q z1`MOGg)8D$cKob^VkS?QTBT&BcD(Sav{uPYeW{j{W14z{Pp$X(TgEy!93#~~Xyq$c zl}^QEiCK_hg8Lu%{fD0k_9E7ElL()h+>7MH4-Pm$KwAyK;)m)Sky9yy)8HKAzgfUL z6MDD0h3&HywW82t<${1kk($CV@j(nZb&0MZ*kg&TRCw*o8|9_uJa05^d7v6=O$Q^e zIP8jn(~KSpyLq^!*DkX_c%x^VBTR1I7N(WI(XqZH?Gi>Ddq$EWCO^i&K0o8vGQh2x zaw!sH6rYV-7N4=ukgUY5FwttYcZj$cx2p-?Y8eY!&I19<=<`NQ+`LJ2J7ks^pF-X^ z)*lE}u0_v8J_797gpCP}qsm88ooET2(^#IRo$0q|G^lN!HfLQ8`bzCxIRFp&89vM6SR!Wv>J2{4S7Z@FTRKlbuW5XiCyQDavopfxL<>_d2aoCl>k$UI z>I|&BmPm&^pvCKJZ1VtL1`B~x23o52K>F7hAYYa@2&_sSIUt@>!L;N*P|Q6#Uh{V@ z>dn(@6}&}nDt7)pe3`5-B*F7Rgl#b90i-T~sNs8?dGULYSi;=ja4Jx0o?OQ|6(qM7 zl*z>e++a>f2~Y7D(j!C2J_MmA*Y+Nus3T09n_SgMaAhof)*A8-Jrzn^5!;1UB_SRp z)5KT;2Rh-UkCg05j0XfcSvEl#@*{?p3N17f^_(0}^YoiZgg6;E)k{F6lo$R+jJe`5 zTO9bhh1jZjhxd_dCcQ?*-)yv_R&NJen68?Bwx8EQIyqf|sf_W>(Y69xnb0`2GJN%) zG8hmS@+a7Q#4#AI?|DLFO|6J+JisZi_tjjvDF7F1@z=Zq-%Xu`FGe%NLTtJIQ9@dy z$%VF$#e7x3X|6*fbT41-8;X{LxM9zR#k9Zf8}1ukyI8csL5pH77oXfT=**wyQFZuS z%+~q`4Gy?6y=+Asdml4LeHvQ#G=*F_K{K#gWZDBF2zJaxBTg$$ih}o)9KSzN;E82C z*J!#5qttlykUqweU6;=j7j3WI$(L~9eGjqrd_HPD zj$r9)JUfyRX!xMVeHm5Nj#5I1v;+Rb{h`*iF z2a#I(m>uO*#lZOinlS-;g=~sK`4WJdm=i>Hu!ToAxzYTcP{r(D@2k+1jVkP+l=rF# zm;>oZG+{dQ?qv|id|Q%%_^ZMP;lAv2mr+WC^t-RgqaLa`C5LL@K9k+;)WSt&u&s;g z0G1EOvXai=kyF(bkB;C3Saw&9QCg?b#+qvXhXqIyV;0?_;@riY8-@IeyKR}@ro3yJ zV=3NJAk_DhYdN~6r9icxtl)vV3RQ!`^p;rXP1^8vunO30C5}KTZ=2$~nh$v+XdxfrPE9mprfGxExEX9?Gs0*jKK>x1nW-I~i&N#@8EPB)U2P`I<7?o-eOwB8vx(YaD2d7&X!iSTy-BW$0QjO_)&ndszuOe( z0Xkt&@BT$Lw`bHmz(XM4W~lN(z)seSh;X|vB7^VDqFDCA3bVmhZNHOUCZJWQVqO@i zH!G-`Y)SD73Kx&DOv^?V&j4Z3#I|Pwz35X2-tXgyI0g4P#SVC-dlJ6*2(~<*wwISi zVcSxme-xr{We5E2+Y8H`IM*m$|IC=qT#CDP*Dtk0?O9Qwq;CrLJ&*=_46%aCLqm4H z37O@WN6~LirUu_5P^-MBxRPzSj!DC+QnW|^^Au+J7K^Sb&O9@q-&H!msVF{bfB&re zVm%%6+;0{BzED9`;IvcuWqSNRxm+L>RCYe-U+)V)1kBRQ_6L~?RbiA3XA2a)we!@s zrNtgh7Y$46HJIN#)(?rU1=5=P^RwtID)bn)5R6 z_x@?NvDS%N-newx|4ywQ%qyE1E_1Lfr~Bpiv;wy`*B_GasRPaGtf2u;UJVGn;(*Yr zR0;C&tSKYo+Uu7R?iZ-^7b8+k%t{^a;5g5;#^ge%79)QeG#Gim0mnF9$}YY53Nrw>W58zYY?am;TJndT-nb2;13F0S;HR6P?X#gOrg zD-r?o;iGyB><9Q)WR5;Ve<&ZemWEDSxa5ElUT@PU-*zESp&0B%c6-WPLSLZ>43rE@yu0OB3E?{v zUZK4CsuHPb_NQ(-z(lp=l{VSRrHf2sdD*pLhBqWJUuVx*kZu3!yao_o!L$$<8QIqc z#fLF%!6s@me}fE1Fr{?#BTL32$uM=CU>Y1da4fLm`7=j0gOO(iLk}5eHmh`H?>e1k zBmLduF-d-L5A0{odDG;9hgW*+0dS9$g-CyzHBFkc1L!Dt_1NK)z2Y=Gk(QvBM?UdQ zzy=s=jW!@fiXJNK_(XP+@dTwR@DhCRWry1by35y#O|^I*@_}3v&A%>e$Fs%ko;cmC zluaP(FAE@u6n#i3S$iMV{!IL*G83|Gj~}wKZd3050;JyClLpVZ`6mPZcX=_!ur9K9 z3VD@>x%ApF>&@cCh28B@2xxr%PaV;Zl`gQZ%8V}uH5}M*GHnfe*4@M%J2Rt?Yn`oW zEAjkfuS`;=rz!9XWZaY6aZYIY*W}@Gy%;R;^}b`H1U^nDzQgr}zZF0t7n1xe8vCII_5_W|DI}}Y7r*d>(Oa#$H_yb(;Nl7LDY4Gn8G6ttIWD8E@h%QjQK9q)wI@ZG zrg23H+R?5-ly0!LCb~VRL~C)o*43k%#X+K5Lh2f;)56QHJOeb&$7;@%gF=I!@PqY+ z&f=pFg>C-o{(o93;SLH0evd8sYOgX19da#BU+(?71S&j#RL}Kv{#WJt=;ZR-V%M0E z34{l9EgB38>f*)#4DUQpP?`M2jLHDZbqpL5YpDP3V31xz#OWFcRul^YIb=(yUwFLB z#|#f_4E^fInBec^IpMS}tL$T6{=1Xc5KkSvR-^Oluqq!Tkq-qiJHoaD@2P_bHJS#& zPdXbfPyq4We@(f9jcQGif>;QdE+t$8^tQ!N?{pFcbHEt;jW?g|TY(>nf5|Po>!xh- zWAMz}=FbcH4Qu>M-hx?~cib*f3c>Io|o)g!%A72{>pn;Ij4KmSVjPIngJm_B~>)K+)R>?J(TLm z`gIr{mzR74A`en6l0TA~yp)H$lPJ;cNlm>KbpHB0fsT|?{J5J4nL5C zVAluBI?FiEJXIhLjH}wIM)Hk+bRy&{K@aN>GBgwvcG3z$2Uiz17ZkJ4j!?!C?qnQS z-uSPVw$voq%x+}dW#QWmz!*Yc>2`l8c`!Kc>Y7-PTCS;f{zOH&-KSX_^vUJ^p~{sf zhI*HlN8jo{Sl@%$j=2TdSZD_s)l^#z4YEKm5%0Wdiy%{wA)W8b;rs7wdS-p1^n7JrLY88H8k(iz> zx-J7gZ~Is(^*52xz-s7t$%N@qd8d8909C#Vxa|qJgFoN?26n5`b&xKxy2c{?q~gAa z!bV=Tu9O{@FgT2tAOpUGhY`-3T)>7B>B*yEhkzQ1CGK5Q`iO~Bq^_Fm;UEK~(~_(D z9=z6LI)92*`dV8_flrMnsI7wYMrAIgg|4kv3nvwtm6g7b{@syDvh z6oWHTDw%1I-|`(PkJP{wG;Wr!zxg!C;bZPL?m>YTxc5i$r1?^Qc(+{6t0x=Ve! z5yYZm5cbn9?PVI9V%vW4dO+}>JAs<>2Dmpf@Q9IImp{%xln%SEPxTV6F{yp|s9L@y z*T};0BAYD?A@gj)()ZWGE6TWMcS8DON}=J;$$xrj3m2zT3&Kf#Rq}k?uak5W4t1!b zhN)3qrL+HjiGWe6-IP4(K>;OEOm}ABpWa>{{75Qh(FV7+T@yRG4Y}KW;QZe z2vb*+_t0Jh_GvoIy8%(Cnn7F6K}854 zad(Jt+RT3t8XmP3^i zB@nHy<_-L(<8ch%m8@kq7V&rA>PtQJP6)fL41{4%aRn-ap9-SUm}{XV5AOuH25j+f zBg@>U0##m8*AVqZDC8{LcNgsf1!$84h)}d)*zlB#@lbtY|D`x>cnW&(N3(~V^!JXH z*`Z?h$o}#xkUAmn1j(>paq=75Pj7TztVr9{quaA6Z0pc<54tX6$uEKUns#4pAHx== zLd$Q^KH|hm0&eF!i;4vS@MP#haxAFh{?5BpmuM0|j;-L79Yo2ds&F@z_L6N%KsH-k zZb=zK%N7-$ORl-op^LjqyIF!ieL=hN`mamn#@Z%M?wPR$TGDUf=mk34*2O$(iuyAP zm2LG%4a4pi>Z8zniwOMchVn;~v(kOsO2tBwcS3e$r~T(X>fxlW_PZ4A%5+MVyXjKP ztvRv|Uny1^rpa;Ns&<39WYZY`o_t!P@bEV=+95tIt9O71zx^=mZH1B-qsC*1irh zTMhdM-?fg(eFV#v(m}E+)u%Zz>#K@@cp<9wI4%Y|B>B1bv7$5rPLtpxS zPHvp#8cOOs8e1LDQys{+aekf-M_6&Uz||VEOj??Itr0s9Yn;wB3>YF z9sm+t_gB|9WL3vN;x-@t`ZSYf)(_$+Gxg~~At&u3LE6eMiukWB7<#1n90b0`+z{bb z4xeiuyCw&E zj0<1>?rx|J$HtyNe<3bv^HC15=u|kTnB;pDip@AZp`}3sUwdo~!ksw(6(NCu58r}v z=`pB<{B=s>8VF&J_v6;6F79jAR(yc3X9St&P1I!utIohRWV^OD9JjLH&ps?%GM2%u zN9OokrArE7PhBaOX^E2mx)`F&1txW`piHEbf~oMXeq!(Ih{?G#De)7ENe=W7T=$)g z@b@OVX~1+Hq7yc1ro}0HlIY-dXHGW1kDe&dM-NT)BV@Fta+49GEhg9>rBUq%tVuSM zpv7;i-CZ5zXkhW7;nI5OFWna<%ISU5l!a)&3Tqqo{=lr16+Z5dt#$*54j|!!Rdsn+ zIzFcnl4H2!5~n?8>%TAOvMqO74J+j4)LxTrn%cJLdGh*UCLj0iN$70)kNw#g|JOVH zC9Z*$J#vd7>}0@P*+7_)1d!EiO}&@8f}YUYj~)SD&&b*5I`UZv(oFY7tD@=Xv<@65 zf|@RC^6W`6l6=u&T!}sLVF#IaRRySy4-B7ob*!1jKW?}mp?c$7GDlFIUR>9#GATkK zt2DBT>u!w`cJ5y|l^W-coS8Wf?$DY20}n`frbeV_O?n$2W*w`;Tx=wnf~}1|l3?js z{00MY-c^-#dU_D4uP`91Z6b|)*S97Ar{nmPj$O+Qs%CyX?P(#7Nb_qCQ9=>CI=2d? z*$3PHn1-sf<@oYE;hRP_X)D>LjJQG6IJf1@t@q}iIWU6kr48mUFOs9Y;4g-y_X1kv z(~GQFwZH|YjjhV*MWKqOw8XMz)!9&+-vto#k%#*$T!HSM=UOH9JIUi6Ij7uhin}%!sv|gQLTN zhS+nKIuTj{&_i$hLKjt6&|A`)v`Vc#`*WR|vl#M?rq{uFnX#{DHO*Zb8@Nwl2qx0%3L1upbQvaBJFE>A}`&;1C}yp~g)G1P79;;5(+vLA$KC^9Mkt0M$GhXMAgCuz*R`M*n?wqD|z>9dkvFIkyY zXoSt3$+iSBX&MmEkNn;<=#E&0ojU-gCYLLuoxW`XYKIYd_)@6lWr5 zudJ2dHSG!Wm-<7-??GJp;i|xj7;=}wY~o@7F}IZ+UJVIT^kX~0G=2=3;9GZ8?HxpY zAkbnm_la!hfpT_jRX8Rmj6Q$}a)1pgMs+qZ(<+>4d*!0CPHo}M_SsLS>qJX2Df7n*fPV1YY||`txyYfIV(&V5RGbnf z5XMb!N$KwsGNz>X^|U`#sM1hrq?$rk~c*ETnNrD<)SssXcz2f%IDJK zMRNqy*-v)z_Fb9fD_JkLSE!hjdF=hwaniaYhQNEqBr1rpK22(9j-2`X7d43-RQJb* zebambm=2-REf-!lY-;oQ?58u0$8*tpGC=R9$M#5Vw-kD<5JYEIS-GeHmeXB7&RNeT zZ(iim__gyzp6%?@&x~RD#Mj~&z9PLQLfYiJbp~*Kt7~>`+HV0Wgn^ZK(6}wbN7vj$SI!!pS zTl{LeRIU zkYm3WK%x|B1GwqC^aUTMlpo*zb-RF!hjDSZ@uWgd$%T0 z1zf3VW|165q^8pyaSJ=&`%Zo2xo(BKm;9Dpk_wLYMl9s*xO?B>F#yk@>ZMn_fqOf5yW)tb_>_}T)-Q# z{PdF1C#R7qfX4&YW;t3Yf0Hug@#oT)WG{(t^g3@oweyuLxr*A3zr0B`5_Z1v>+TFuX+MDn+jW_4R?|{uJ`y)_# zYL`0Q$L}R8KmXbcqDQDV_b3HxPV?UHmQP;r^Hio1>?0j3F^Rv%9#ptuWNpkgBR-Sp z_Psts9|!_gdc`Ub6(Bxze z#(65xEPy~N;87h&Ea2smyjY5j-o_cxE3d>&y-%gmUHc_bd4RWVE0BV01K5?4UKxp{mZi<^ zAjS2ULYFL{;RI^0D{^1SN{ahB*pL_;s_$*E=EfZLg#;L=hX?e#&3)pLvP!Y@*EFD% z4;!bJsq3qm9r{?L^gB9dJsEcDn)_%uny1KA2RO~c%4^$_Ej;Lh|80=`j@}d2#lIS^ z{x4C6J5DyqhvJ4mtxL&$wUmsQqgHuCkrKgXD`?-`P5XH7EA{hOxBv=OHR7fS%;NKU zWRd&PpA{ug_$2kWyM1?poPeEW{Z`b=`t*@YA3x_E1Uh6Zu2p$A2JLql(0S`Esc%U} zj$ghqg46O+0dlvG?D^&E(RItbfXhbZ-NW<&@H-l>?k=kfzPmsg>xw%!HwO($fPRP-N&Qi?XUmA3Js^2<49} z&NHn^EBwAvvm6cd=-T#iXIi+sa+QWuAn8(EJlHI-B1=GuVnYAAO!aRpVw8m}y#QzFL! z4t8M8*4Ozj(XJfKVPhQ}J-+<2oQ2Mt_*S4R_~Nqn@}Fn#PS8gKeD%ywQm8#MU{W3m z?Hzcp76Y3?O|u~V#k&fK>=hrp;aX1kc#7f@;Gp{7=+(eSC|hdszEvaew}Hmf;KqVs zaXmlAmOyrAcIeRC{~d)OXzABM>rW>2d$_O6Pahqxpf6l_=G*g32nSVIpykgoI4Yk! z^ojW97B{|#nJ%JVUEzVy9w1%S8`ZSBcu~^7F*zGc(T+t;3tRQ?DRcawSF?Hi{S9B?XmI%qELI$ZGW4X* zA-yDx85DtFEOAgyT-15oFd!Q$ncS1ah(0l(?Ku6IZ{#b6;!7S6Qq(Jw<{z()R7F1v zp)aaWwQHV~UC9=zfAYsWMXiapN0?G*6iR1d7mOPI?%nffw@JpU=t&X2o}VRtb!M?S zN9s0)@4u#%lkL&t!#_JQ;;m<`40K!ueA3H%ktSyWKqCxFToRVnOM)UuX(2neSkZ(=u&n*r$=LM6t#7A31G0DTh9_w1?iaE&gw*t zi6O5Nr8NZ8Yt4pJ1ovFo!zc=hLyr%rfoF4Gc1tp#ht8Cj4q*J<@X4#6U%NeoDTmKq z?-AAiB23SlUt%`dbpL|p-3akA(v=N$?57Si9=0~BB(Jy(7^OqeA-wi0;Z$^qKyJ2E zGXD9WL=s{z*_I=ccS_c_u4#mX_liAEj~%M$scBp6&V|1w zjJ9$4pn=Y7P6C-7mwDHA1Sd0eM)a14)yj_(XUQ-n3aUyU3dfmqE+(~JcN@mYsve#w zIWW+A;S9x%gkA-u+8uwZP3$pZ_SIK^kh23MmKY(9Nhdy_nFquDneOZtbpaSDIcI<1 zUJ-XFH110#;#!HCwwnXoOMa{+^se)*dRP36U&M-58z zLX~#3tKzy40RP1^KqF8rt@CwD(r>D&Ypal-_13-E`lHKp%Z#ljnOF7oZcSHs^#=iz zkl*27ojXWnv2_0Hdj%Cx_id0noaKi!k!PVZEZ*d5p0`!R&aQXJb&kaMm0^P_~UZcl`E$SO8U7nD{?A(dfv^ zei=9Uf*(~mSAN&@ZxZi1>~$soyU_gWz$x~a>C&Z3Z>^@sF13sElAPtZ<81vwUkZ&}maIE&1a2Vgl;~;}5?Gt#~9$zVtj3g5|;ijA4pDYw4py zgW6A}?``bce1?wpL+m?m)#*87HIov!ts@?}m|NeX=3Z(m6q%mfN|!X|sPs(paDu^$ zu7RGk#lRn@|Jj*qB%Y!9Rsz?(7Ttj9PtBs5wxax9}R~Mw`cRFSkM9$z6md`6?P^5?cHdhZ4nP zYXZW!nRV#*`$Bmpb+JdAQ@ZA%CYx7RX2grCnvk;)``SClsT3dxBgPhx{=B6n9B1{) zOA6#m!&2%clDbi~(cxW1T)4YsWtlC$29lN{y8L zyN#NB=*-92qF8fa!{ZTp7eJ1GxT0}jQ)|Z&BM$nyr`(8lp4Mn|cQptV>lTJRwz%Py zWAUw1>njz}I9TfMFVf|K&I7W9(OBZPea=-xsb$X1jvwyk&Yb8cwWnQWLLx z|0|v-kpNL+|3UBQ*?B8n*}_I!NBHqDqh7{DvBhljXDhh|ujBJ*V+hS*&-1)r>WtSW z`hpZ3_$6sTS#=6ksVk0HB7G`uXyrGvtB-UztEx4+%(y-HK z^XaMl2`xKvou%;RpXXK2e%(2+0h}x*fIxJ58m?UEH(UQ+<0clcbUaSWmAnuEq?<2^ zVe6M-&yV4(+5k{&8G>UXvJ)j$fz3MIiv4KYD7|u%9DPld%e+UPnhwZp5$|%zFS7e8 zLKvS%yCya%o0^$}(d!->J&@RNi%l+?e^Hh{tQWjY`#09)upG{&orGm8cTkZVb8cdERkqyl^sH0z+2x z-7n3p{Enr#j#lqRl?bi2O#{003;^WR+0;Ij-$jFg3!FF}%5-f@zTi-68@TV=t;uQt7ORcBXp_rE^?1?Al%5%G zKHy9oQZ%bn^x3!BCYUD@5tkuPu}F`>dvpm7=1)ph+PWf7UYfCRwWwge>SoF7liD(5LXf|KA?EF17Y%UMU zFXCaT2(K}|!4$|yb5q~io6Rk?JtD5R)8}5cKb42pg5noXf!MvcRXJ0gJI$)q9VVXy8XDh{5<3xBttFX3Qk?m;KBTXjbIH9Mc6K$e zmR1)olvH5ZX0ambxm{RB9q*Z5xEQDmaIv#jc-?oC6IKW?&xDGfH>q!cbYMOst zmp>?;`Rd`q-Q3*qgE>M2{c_!WUX<907L%=pfeD#3TsZaQ&CI5ikf*2AjfE)Rz zp=xpL zY^4C8S$WdJ{lp&pM+_$g#JgmKqveR+AffGGK$aBrFq5G{cAjZH8{K34l^2s!mEO#}U3J&e>&SprSfLh# z6CV9k@Bk9?>?aRH19pi4Qt@qC!O4)La?#P*EtQ4ekeeb~63h(=9f0Momx=&^4j zvcYtvBs&~@hT_nIP^R4AbE&4ZrjevKIUbs`^FWI^x3MW$vn?9^)%AcLoD+~f z(&U|LVEOT{IA3hKRfHu6hvG>6KT4{UHEHd5Q}Nlii-J;jZ+!~Xbh2GJ*T{K_OF>^; zi&BntK+}v^xhMaS`{aIj9sErA#8GanUJYn}qGRb?I6%@wH8m=zGL`pT0ws@=IfwZ@ zEq>@+Zn?RQw;|`mq^mQBqK29ZO4CWoHigB7Slbu;DSdr}I;Wll=jY+YkA4*im|5<7 z;Js>j8Z4Pp$%%M!9J0$L-Llz(9Df5{8e<70G&((fWM}bhj@rycEF>2_j>*vmr6>1~ zzw0hE8C_MQ5bkEFo-o2KPaVk7y^LV-dW5+Bg7$>5@Jws`RPg z1}x+uo=y?=xS-l}CsDL!ROgGP?TVgX*;Ji61ZfrX)<=oSzN>?p zvd*PATY>ywO)sK(sLf_>OF^DANMV5Ng%K;bmC=-@@8?U3{iglCw_EPZB`>kIop$gT zC-bOMw#R?PXqAC{^FYlXACttwsRbcv%N;)EJc&i;uo+WD{pO~>;SIxC@nf1Ylmj`3 zAdfpm(#Hm9f$~YP=6g?RE*@S-)AHN2(j(lqtpz5WC+!r<%A8v4=%=5lIVy!Iz4+TH z#8RVPqbEY`4^=`*402jW8=>}3AFHp#rIadve4s9;Jx>;rOCdP=)uqcOLajGgJG82Z z|7u~r$du@TH!S`TZ#CBXVECzA?43_M{Z^aotQK7eoKPr9P!-UwedU!hZuyahZgA%1 z(V#3!sVzqmQR$eo9N>XgrAF|s81wS4?O(mxZzvR3_PyxF0i^5y&~)A5 zY`#%DR>i8=ql(yj?^?B~TD4+VjH345p-SvstyOy^_TIDvRngY28nsJN)GogF_kGuQ zz5fMq-se2eeeUy|^`5Zg4JOaKrK%hn12Epj0yf%fpME(I2qHrvBJ=3M_YG{3FTFYR zL9o&OWGtg>sCX%L4SZj^H|F9hb#goEel*YYC#JbhQ@WZ*v=07#!a_hoEaE#=gEP*% z<)>(GfD|oGb=?-qr$KlEY$S0&>}0q$6e5e8$esN4=mK-EwcBU^DQE`<0SnEXZ$)Xz zNl&M0bw_AW#2pwl)Y$`aHNr4tqQ|5- z(!<{2f1Oozy#yz`7bm50FZ7v!yKRbM~0?u`8W(HzA2%l_pJL4fEMRp}eJNxpB4T9e5_aT9H8D8#imOs)7?-NSRelxIRl)U2gdh`^hA{*<^xY6W@8cXHj<{&AZ2aoTOER3 z{>g6-p9oG&Tr(7xjqZJHQzk@QZ0+MGPn>ho>GJPehW?-pC@e|NcWiP^&HKTKvLs8Q z&g*g6@DsJC{)EQ1zkc&3fcwycb#)b|RN@}%Em_Bif1#Fp84kxnV;xG0Sv}w0x^1(# zCh?x^v+od06WSa3$-Lxg8~+)q^zOp-8Y_o*Y5Tfy_B%+qu|5IL88a~NQk~m_oqY{A z<|m8U8nNIHJr77oqAr(bas%PxdXh%B!Ayy;UEvqS@&`K31y4RArrKPa+&z-_m+Y4% zTm!_}vP^@+e`Et~MQE~*e$N}IB(=S;E;Jbd?xLgcAl`N@W9Qi>-(QdbYf&PU>p-2D zHs_eG4e=5Cp{iRch-tV9y;H-u*+u9nPJo($N6hf8#l~9BlN@a6R8) z{5lrzLX-JC;wGRwq*u@Psg{UIZQS+d^7qvwa&Tbx&Fot-L)fcs>45Xug9jh^z22?6 z&-X0g8U~5^67-)=@c-c5u*l7s@ZgscJ{KlVpPUY>b1wXMSL>V^q4?i(+m+g16UU2# zn@->}-9MhA(omZWqX5D7tk!vA4qobGg50dZI5_#_!n04u(o)h>ak zWQk&AjwOB!Gk7MGL?H&Gund5|{NObq@sajmknN(J1HFpCxSU(TSzrHshP@bnAYZj5 z*?0DSEhh`we^zFv|4CtqHCD#i>RieR0f`n(8M{rH?ZgZ}!gP0FWT_5uXXO^VAYh7U z^5qZ^SO`Kv@ox6(psVw>Cl1K4VHUP%z3{#7oIW71k=()^Z5Dp`8e+Bga!#dbR(8G0 z)BTUb%a!)8yINS1>^U`3E2 z^?c*=udZ`R-&HqWu2{s#G!5d>fk1_$t=Lv;H|xDL_84Wvtc;tL&yGS9CSd>9)lf#I z4ExyiJUJAfV@GeV9*&0JESqeMS&UfDE;?H8eOP^0m?WFjDvo7j2~!4b_xKh<6Q8U? z(_93Vl{9L_F)VeegYQZk+ZtQF(F(A2E4NUTppTxSAM>&t-;1|Jb^fy{^3DE=_&D+@ zMf(;{mP)t`z%le_?>c`Y;o2DD4ugcbD{6OC=idq zj)FMo@!U2wX6{!lms^30I~cMJ18<;PYxe})A5xL3IJb%lJv#bBg#s!X-eE3YNaFcm z9wP=nCVQ(SetgmP2K8zNE2IDT{?Xvj#g|rS2V`-}Vh>GYbU&bT)}D^0`-}bHw_;uE6+D<1hv(e))^H7;4*mYHwe5ZCa^|mt zCt424?1yn}vg>M*1@obrrg|uhmc$b05Ed2EXM@jrNYqos?q4&|-B~-jBE=O*u6A4>{)KP6I)r^0j!7X1|HmLT z%}P9L&ZTLZTEg(P`1~G9l@-GpM677QdKfkmO@-1Ff2}eS{TyApA0m9V|A=Vk)bQ}3 zI!OAMhsFMfqWz%P(>b|isxMRp5U)SmLT6GR{dbUvgBXPMSHaweFvz|4@%yq|MckCH z;()CtRKlhyW4`|{YIHC_5f9|>C>kHM+YccOJn}sWk5mHZfM|}KhrYRp!>F~yBkm&iB?=t8{Dy(t^vN%y zuD{pu2x3XsGV!=%;CK{}j@gW&SAoeVY0AKm=5YetZ=vR_RFXj#vN+H4q3xQc=lJ+@ z7H;{*gt!)N?;KUP4wFg^+u%w4L(zo@>io{n(T%_?vMorcz$zeD6z`c3pa`B_ z*qAI1rc=B)wcb|D9iIAP8v%Yfs(ud}Ss}PVEHjXM#B|eX-k6J5lQCWz z%1@|4^N^pDGZ5&RVWXL9p&s~!=2w97H4I*|DWd2c{d0<6s#w+VVhRCvWO;==C!&VG|rcM|uYeA!( z?!b99RB3~}fKiUiPA1U_im&{81WZo|hRDlqTkVZK`}`vW^;Hs^QnE)N>9ACEj`!O8 z=~fJ4HfVuL1Y1owV*uX9XG*T1BPQ<+)KO+xu8j36i_LEoRgECTsZJ$lCqIYcOMRyH zrEd*{h}?o*U!IziQ3PL$;8=&+4dS`(KvUwkGL%za(inQKk_-wMs^ zxABawy?UwBUtB8ofz232Aknb;@Kkv*WtuSE9Sc()73qjVJUm}fA9!-A%;?=_rkaB) zdTu4iVEJ%+J<7^jk%b>VJ9OnRmr1u51t$wCgr?S3Kv-w-*l`pJs*6+l{W2y;I-dHK z#Qx)y^czhZx%|v2DKX@wUs-#jjW1tM_>BmMBA;Of?>geZUbtWeFWhSc?rupJwz_t6 zI?%{?MY0>EWJ;!BP9775_(GM&FLg|uh=i{^GU|(KOu?6*j$o-Hw9lW@?41jUpfnjU zCrjRo+Rhf83Mx)Hj$@bnyS^LM=3m#yc6nG$7_z=p#jF+mRfg|2E5z>oWTxbO3d~oN ziny?42DfDJ`V6gHQmZU>yO$dbg$yb7m&M-il{Qk13|9DJW%Ok_RK@B+LVO5%`MeV{ zUx88|89iGLSxq%i^)e!7sxB4yJ1vE@QK^w^QMm;2f6B^Y zagB;K-^omJ3_1K}uR6GP3eJW8o+`7J6f?^NaeXz+|F!t4&7VsH4|D$$HVGY3#7wW^ zHT&H(Md75X^=x`K3K8HSsgB!L%5*p~hnK85I2u<-pouTBA9R|jAy7m({pHoEGRqaA z6?XcI>Z$SvpivA{ho|L;y8eJ(Vu9sxR4JomTI;w7DFivb=g(H>HXM?3${Y2a6*3(J2Koc z@+I(o??zKVq{-gV;>0*rmQ=;wn?L+?h@*6^REZvv+?Olpk}SBO`8}Qd(9%6QQ!uq{ zel|5;JcW7Zm8fFO7so@X8mP=r9M(0u@LAmQNvY_rPY?Y^Sx5||hiv%@0>*=_N3T+= zpxKxwekiw{ijv0*roty=NMVnqucGq3A&al9Z;SrQsGjLveF=W;UmCnr>*41ogGNH} z;rXq!^FcH-;usaMH<`T^14$wJNJv9PPE9ISD=L~KYV_RjtNLGjr0*0%q@B+1-dRI% z%xC)Tq&P2R!mI`SWqZUD)gJ?LUGf03BNn{iy&oN1Q=7(1x{b3GIQYBr6Eae4MdB%B z3n|{SGD@>_A43e7+_oP{Qb(T@f_unCFFG*kyGW`N*Ohic+;;&%TrsgpLKvsxpAAnK1HJtp3@#i*56GDkOJQ^Kv*qzs$}XhhKK9&~ zkRObOn(y_TM&VN8v-F(Pi(G*4mF=uR(aJGV`FmTxp4(U+S_N))e7{e4M?Q;*02hwR zZsXt?BJ2vJw~E5Lxh3Se+4SuSJPWuJgr#52!!h@EN2FCgQNa!$#(qqoPh;O3Alxy7 z{2%26NGCZ{qzU;mHXckxzAc`sP=!^Q+}x>uZA+E~$WT&Pc6+!*OYEV_YV>PJf{ReL z@{o^V*X)?F73K^xMFi}p+VcyHrxuHV@;-RDQF`XDke=;uVpv>HpLm5>Q;MdTW zdl*~15DIGLSx*&1!FaQh4)HYAit$-Z6Db)g94)3{z)vqXTr;S(&mXO;S5v+-dH0P? zW|BU^_)R98P>FG~m;th1h2NPIq*Yr3EB57NdN1IbU4480iIcA9?UweNAeN2|YM%ES zIwWjWTjk<5-fn2u)OsiRf(>+is)IaRpT(mlj`UXmhTa>3U@9dXLqh8fU)h6UV-kI1qU65S;B; zPMe`$x7VUowgxhvcv5a+%4tOWXs@=A#z-5)w@m;cox@QssP?hp2wtnLrz^*1O-J(> zpBRA+b$ttXiaDs5WN4?Xe$}1lpYjUksj!0G+|ZseAQ*s^2@J@Oa&7J^wY$J zI^3!|x#uGZ3ZUwwTu-+=j*OrQWv!lUQA4Bn!qr;t_!3EnUZ{Eabh50CGqa6O| zW>=wgU$1SV)rLBr=`-yOx~e59QU!8r`wCLm*Si(Cz5{~|CY}_lDNgwFb#7RRU|_O> zF>n6+%(GXA18RIi3F=s#>6w0aUvYZQglTV{8TbwUDf!2k4r**y4>oq^c{7JL4b@8@ zli_xWVQcYN<_8!gly*uU)zmUApW>f=Kk#e3&bXS6A@+%y?nzrdT}|FN0q8HY4d@le z9I$VF1hd{+&2{C?8BaXn1+GQqvPWU^3BjT*&<@saifY_wqxx)l&MaGJ+Up@USd>3Qmx_Y;ARKuFwHaZo6q}$oHKP$Bl`>8= z;-Uoast*JIKuBi;olgVH{?(E<2YaWpkese(lHmqb@8n5ubec0gF?zwEq&|R++~Q;_ zGqIQsws-+u*r?I#x`5QaaVe-#3t@BM@ppKvG+Wqp_IVuin7hU*OKxuY>gwwAu6Cir z_v-;!lBfjw2~dst^W>>&d(u7ic#s;fhS{SXfhY5>fSQDx#j@k6qxI|e(AfLTg}WSP zDhWV%L!9=7XpDf!{Gsxcu2<)ukofcQKv!)(Bw;L?cO;ppua*AKOn6hm7XY6u3 z6YXIwSy*&6Bn?j-y%)f4XIeSTks|qCU>7(h2e7nHXr1zn%@$>~f+`Frv&2{HWS3LZymH{`R}KD zHH4V5Ar8!oVm33?YxPU*>x{ zi5Yd2c!7?Z18HZ6?tsj!QDTVAt`#92*Ia8-mz~ zfq72kk{ADoVmj6cX+M90d{~XcQFfu}Jape7n%~34CTgc|OUiO{e)>hw`&2if5KgiVcDR4Ptq6!*{#=5@#XHLe+XCYWdk9Ei&zR@VBRYCr0 z9otoHJ9#z@aqxdL2OEjryDGwg8w-eMBfk-B@MN;%7FI)H*aQv}o2yrha`sUf@ecVo zgFJ40a@GS4xn>BYcLt`ha84yzqG-U!)X9;JV>>#}No*?u*wu4Zf9Pr4;p2tChzmK# z#};Y_nvxQ2a@p}-ZFVKkR8{<8RHvqa0$P5ulbKesBYS(#aJQzcDlKY6aW+M9V3NW( zX`%wouNB#f=-Dhgd5-0iT}S-{AesWJJ-KG!c^gwzb3p(#s+wMAl&gOrcyFcujg28p zgOd+1(Q2~%Y0oouT}^A2jflTg*T4u6jr!lL9&uvPw3i%n?=}*|$I=?bW<^6#j%*Y~ z7RI0?5?Z|DZZL9`GZ6D0Rx9glGEI>DAoPM4hr8h3?-99uOG|%Ot$0@(F-%4YuXDL^ z#(e=9FX&jNeQsrEKn^SoWh@pO*~w^;WfkBG2EC;R&nKt5*XnUPqr3Rhi^c2a2mouz z6{K{)d8{=cF;+%D{U!b0v`T`xnM=Z!7TH585kWsu!II+wD_d4OU0Vicm4v9WUPeX= z5sJ+oU89GAS+Qxk&0$RpN`=Wep z-Dd;Q3%n%X#CW;XE&M*6#~=tLhtm0hE+4mYCV)SiePX0Z7E~8op>C|2q={RIDi&Hi zimHL3DP9*MjOf zpwDM%$SUA1W+mc+9N197!Hvv3T_Ht2v*HoxSXy;7A)7su8}3eR3jRN$(*beGzjYyY zhTGcj8rV^y#EobzN46e8dbnKrFxo(e(x8=x_Y0()rHYW*MY+H=TMI+~fdOag6=MSK z<8m>4#%gGiXpI#$ES-3;bE85uI9q#W26<1?c=CyILo#o720igsY3IaOgOjycN=R`-q7_GbU!_x`|odSb}y;vV4!&Yi*xl zxr0|O*0RFayN<*759aVn853r(b<8qctJk|xgpygm>;qtAM9^cGif3a4+xencJ@f&Q zIi5&e&?IgRz(KGx1_?>t(0uaz- z)Gq9bC^Q2BE}d2AHkUWrf38qfL4*?{OOZT>(|amrLR!>UvxdhsQ!-u6R&rHCX+$di zT6C7mz-#QO_*jiD#$wGR`}b2L4y%T%E|nA~PgF2(D{hgi;m8)z$Pm-J%~ z_t606WvV|#v5-Yfc6c%mWy8rI3Y<*7=Q-dYQ*wdV2U^6h7;|$#X%1cablT`3TN7_} zG(3uOm}4#;k|7%PiV+v#YACyH!bZ_xVLX61nhGgO@II{B$jD9v&9P;bGy9 zy1rP=(}61_qSPd#2YaIZMqSd+q|$_sibA{CD4Ql;*IyEkOFd)PCu2-4V|}KCjqP2P z78z)|Q^+~kf&<$HFq3$Gd*n|n0%3rb6PH4tKmtMZ2X60LPI zbSVPMk~2{uA~l{MsSYw#r}g5Z-$qx7mvg>05VSWoRyNj@EOThB@_U1i7%RyzLaIf< zPfyi&U^X)@6)LP;YTzuh8@W|<3uaf%mvc8bK0lal7gpQ?!t82eW!H^ZU%TeAtH@3? zv(3EQz^ya`{0}2-FhIuKOEOhRQbZXYET0MLlyeZFod`e}q_I8;ZKu+hU)^i!O!aqV zI-D8us5)->sbJkq;f_&b}(@Lo_-eHd= z;OBlPL}ee%Ptha1rbBBeIZ@zmL4paE6h?>=8_!lxQ{tm&vyneE(RF-W>azSzy4q3E zC))64F`9T>z;SYntLorMZ+_`q0~1=Ow>AM6wd`(5HlcMBVChb|{7RjC{^?*rg9O*y zL}Mq%637R%ofey+=oHsjjW#W=*VxxYSHtKNokUlg8r^v1Q?x;Rh7m|bl0Rm36WDKm zO?@ybMQn8#VjGj{=EuDE@=Z*L)j$Ss;=kn^%#^;YETm0p4zVcfq-N^0o5DDnP_ip4 z2%&>%K79;eqv(L{=ZM$os^NjSzPpCBl{2{BH5Dx}j|g4GjFa1mO( zK(2uIXSEeI*v`UCh`5?#JuJf+Swz20`AHiizu}l`TKz5eM1;RdAUnYu^CFj1C&8+k zlzx)RI*PUj+iK55Fm0ltY$QVV5}Sc|>m|yGeaMdYVN!NHY29s#xMSt|9*CpHs;nvU z+u!Z=|9c`&27Wr5L=wdL-pw4`*>3kecBp@Ec6W8B5PW3&D`Luv*C~}7z*GGi)At2I>jzC7rD_iB8&=##m^AjE>O;)Gyk9h!0lGNrHa#TeQ_u=wKvf z;=V{}xX6ae<3um!oMSsU=DdG?d9W95U}4&f3o(;^U}rAO2Qu%oUc`uuy{0xghEy%J zs*GJ`5`l(hcXh>Mu`-?ozIrYuwq`)PqF&;tPq6!-yzTm z>%(KLlm=%42}PvY&!lV%y?Qs?j?h*=?51M^=^3imT>z@Z*(^seFySLChx&Cp)8wA? zEt&{Rf1>!dH$6UI;lN@q`AGsk#ph*+eoMyQ2#B0Fb) z3l8L$-^oCGI@WA~3Ru`{8MwLT``~6^VO6}wUavx90_JoCxAiNILXJs(sL{Wg561{6Vl$5a`6V^vwVd&KoPU9YO{ zA-c_;9EKZKf*LFjk{iK1*;*t|)w=%^E?6E1ah-EsA!(#7B+Isk*4y}ND4p8l4fr{) z0-Vu}g9PuYeBR)#?s|;V=UJI4w}kad)KVCEK|3}E37b7%zj@`{HOmzoozyuix0io% zBr5{iK^NvAJ9>adg27CCYB9d==MCQ( z<49vNT#9)IB6_!thHm2(*;}YTnzt{RQ+?eZ5A_VU-~u#sxCoj6@Osea^2#r*I+rdSUPkdVvc8K zq9c#)yiSsDCQ1Czs$topvL#<*h)8SjYUkhAYI~V9qZ*<{C zZ|*sUvEhTH&L6o6h*9fQykjf5>H4Wddh|)^tLuFbmSE1}-6$|?1N5V>>wMPPkr+JT zpW>LGJ#_k-rkB4!IWjlJ)^ekUwCgWNHr|WU81F2 zKC|IX209nc!FHl`DZKk#BJyY0JmTqLBFBHQuFcZeGq?i(nnsDLcfe_Y<5?^}wmeHm zjaG{@7Dyww|2=ysTC zIk>@6+S{47+QF0yzai0dr0OEX(NesD^}>#ky){4JNB;?iQ#}Ffq^E*=gI!FSIG6h!o)^^JTc zN#e&F1&NbHWbE@)kbu2j$@@eOY*TE(NCI6ifSr!S`y$EP63N}2{nK>FmPhIJ>QM8c z3M3tAY!>0^1heLz`Rz94BLZ);K@DBjd9yy)pw9ugRxP={v|-4_`@3qhb5sE8^#uws z!ID|Cb&v5^qi0k`8l9HaX-A=%J!;AenuUUJIPE`U+)wE<){Q~_;!PGP<>`F$C5r+c zV9t$bvqIDN?zE@(a4m)?NTfocLw^Ac1PbR=Na~E!)4U>~Ak&0frw{mLT z<0ymduG*8{C+VCkx$6-y&~IUg1z2$ z*&pA5KJpPW%wY0Zrq3H%$z8-i0SQ5I=YVAzitfokS7)W(#QW0f5~73~?Qju+3OE$c z@2J2*UkIE9K+WxVB(a_HZQp;B<;W}cFw3`g$ANcxPUyh&p~oJ377yP4OtCCKlqSm| zEU>pMr5p|+dyzC#Fk?t|*`rHg*Dq_TiX*kx3ke%7e>&wduoIC^(3{X1Y7Pvz`@J6g z*GuSiRytxrJ1mF}M}PVY1CHj8!&3W}E(OQOOnX|&9BCF6n{NrMVs{EMKgI-BnchEmeT}Q8njkib}io*h4}7^@-=}P=MZ3{ zPi528+pQbTRU|for9wb8g?&8^VQSZ&xd`M7fSGKRe z@Y5>SL+E6-mcY8#Aj%;gx8iT8;$ko z5dr2My4_gka~I;0tEG%#AX#otmYqe^aThht2GcD+9vH=~b_5qM3^(>w#mdn#f$2Yp zuzhtcRtGLvACvuDLIE)NP75Pz;DzlLCwrUyOP_=FBs?|@8{O9U>K>C=ejL#S`^*<4 zV#=K10fmT(=;CGKw7~=00Jf~rM0`XWsuvRXlG|dU+%D-7@_AV+{B7!T7l*#kG#-wr zrT~%|yROPN7*~jBeqJ&3X}*J5rooPN^(w$EGKq1wmbtokG8P-O490B%4UsNgnX>p&{y!Z@S80{093VW3e8Q#7Oyd*M@AOP#4a8 zOjlLhqD91N`q(*j+*v7an}oj-nF?o|@w49`^+xDi_L5D}@ei zhqZ*a=T*gg>O)Ii@xp5vIvkxP%H89xT6TZ`%<>63r@FFrga;qGYYqe~GQ!uJtyFu| zvFyHwHuW#v)|E*HRf_0YLU5PWaoI{-YQ?dk!mTx11VBjHRZUd!AHC#XJ=}x!#3R76 zE;lP58^*pYe{)0=IM~VZjQn%yn)!ju_WEgb6v1E|kXMW%JX`Mu;=X2$%%j=H@odpI zbtd7YEGCb?cCVsO8kvJka0YJjO#T$-J3J&wQpdzlYFF^8S&Nv5m&NuRf@MBmLHW*1 zGmY75jlh4|r_Bl#&6xW`yrBkbvQ={r#@9cyS^Th3eg%k&Qi|>#pwVrFI@p}TQ`u` z;R$X>=; zyo9d_=IvdgXgmvFBl4lmMH>8_`cBd0&1h{-6TbKt?e68&fQkFaS&vEiO zoeRD-63S0G#*lWp{2fj09|xHQ#oERAy5N&+xJ;sL79)MRxiRwZuT;e9=6NDdrfTWgL#-o zbV#iiFkLZ~AGHs#3l25_d&|pSdQ{g5$tO8b1;!I(y|p$|_PY*oN!Axn20P7JtVf^l z83Gp+L#Io$X*IAY@c3e_s110w8d~DyoJBdMNdu5Mi|@0)jJ;XgJ>B75d^;uhCD+oZ zs#u73w`=X`sDTq-HHm##zk7_`6zo2BDI(DAtX7BP8Iw%vp_;LUE*%YMsTU?o*TjZ{ z&BMT0kjlhw$}?1uj9wuo6!3HD2W~wE`QmoapuNw_pVY7{PeH}aa&w~%OAkDI&L3;r z=o%F@bS<#j=j`_|I6jI87v}aFR_8{@X!3e^w$Bn2@M&xWB)g$~Z7OR*!;r?vv4}4#pR`|<3%OtND7`~anbf(b}L8Yz_ z-a(-1h1%c->%-2~sbC6thf9HRzVAKohRUKv`NiLw80EnFH*Nkd#p%tnz@R9v$Bs4T z)2tUEotm+y0^G6ZsNTjx5+Mp>)~33J2fUYlHp*Z?S?=q8T%FW!1};}0YL9VclJW?6 zN~sx7%lcS(*7_HUa^cTq5FX~a^K-setid@toA^$TqIw-ofjAjttZdDk$70NkicP^nz5c(PGkGG!(a$f3_eCN<{%avVS7N82a|bQ7Z{y_x*={VNvID0%WC+^666^=xd5^ z`Y~xpou#%<{p>5vOi#HwX?dl>g3t(5mpe>omJ!Pp_$iP5g7@kH0zpqEsI*^G`n-6D zr*xdj|LdUW&h!h!`ip?ySp29IuDK%tRmND_U&VV#{ej-h@0lfZYZNi3jgfEXRI8La zpCStpzt>(DlZgGyqV{4^Vs;q(<<~J34S&MQ6ni^8wc>VqF$E`A;$#Jyt@T}ZhBChk z{&xuXp?IjsT?EIaENI!z5PfAB$FcgGgLSt}8dPS;GhF%>tT4Cpq5_|>-HT~Klf_^z z*6R;z*`PmslG#$>V2qu1z$L$PC^}B_PgT8e^XhS@=2ULV!K1Uj(y&;eM#Kxhhw>c& zuMc-UqN-(nb&LbwiJtMUVbljXEpq`?%IXma=P1pW{PHu9 zZ1|kD+v><(mF2i@elPCtk@A3{+qM2L`z=*XoGrW4cX0VH!QPY)BYoCF;dw7M?$}Ly zjxJX02ZMxCaiKu9kua+rOGR9&D99)1LdHB!%d3|0-+9b@*d*?8SYip(}Bz? znL;bS{DrmZiOP7+NIMDPn&MKfo@ZoVfpKEH{h`#cUF3Q?Su$6s$~h#WGEfGX{v9YU z{?A9@&yDMjUtJPfQCCq-89!+-4BVK<8cjT6NrTMf0x! z8DGEEg}?%u zsh#7}nI|hqs*i!3L#AfyHm~5I+7Ww>rEW(jfkmqkC)J=tjSe zFrYG)iX}w=`Q&*ky!rog0hGACBeTA;CQaQnrvU|>C7-&zl8`}JZpj=QU*B>68h+dm zKt{TxV%e|p8Vnu^Q4!Th!l7hi2M<6f(ob0)E5{Z*BO6D=3^jBMvWfoYkv0$6NyWnB zMIA_GRWTrtEc=+Dh_W)Bp2Vu^2n2rp^MmSa3}JIrRVpgZgqkBpSs4d6HWU9I1wADk z@*qBFP3IN0Y?9iJ1}#ODXc^EhngWXFfFxaGA&nAskUvl$GkR>tL%{kRj3|D8dXt~9 zn(&-SGXP^f->5H!OF_UI;8ii0ANA*`sqrHNg>y_CGID3=3%5wPJe!)b2C1PAhZ=7b zu4v-u)xGzhKYM(ETd81>WO}cA+3&G_=;#e$^@?(cgtHNc*NsDPRXOZ>oty>klZo9^ zF#u8GQh*e$5J~KC>+E|BB5W9XHXn_A1VTntt>pRH^Fuz0obZ!1=2_(!WdWe0F^FC@ zh2A`0ptRMWQ9}uvwVd{a3=%*g2KrMc@Iz3P9p|<3awho(9$SX*1}-I(ErS?5pa%~^ ztBX1eRr%J^Q+yQpjm&2kMJOi)J_%PXj1|ygmMO8LMs`_`JH4lfe+B>KZ9TTZR&so*Une&>5VB!w%x$MZiI5+qh*AMZ4~s+>rajMb6}y*Dq3VFdk)e=|Nn#yxX1;nv@tn1VT19y_ z(E7(;c}P2}g%KzphcegdEojhdFKS1?$o1Z zRlK=+Cw?&1e~I)yTbeT4Yk$B}Rk+P^cSUsZ=P&t+&tT+gx^Q;<(OJYND-{cC-HWmpJI(7RniUv3UsmzIJ||0d#~1MlxPEx%gcOw3KT1upK^e5x^aU4Hp_;=CP}eIu29B;*cPyqbYS zhw~0S=GylHoNIzFhn2!LkdbnYS00%&|A`C(MBZK4D{gc2?FpWH!IXRuMaIVSEHe;E{2ZY{!QoxhViyw4#+PoB^bZ3|A5HIQB zaO$l5=P$~6`9lBh7LJ)eQMzpi>5dN#i2S#i3Hk8;?(`AwkS8S(LjUg1%g}yQJqoSW zu`yB68yuWt29utR4Dw(+Im*%R075Yo=ljn}_|N7|*_lw!S6W zOo9659=)e<+ndX$794U@y)*mk`t>GkZ=~}kZUWkub29&#^KE7-JdF^TQOZV4b-#sCZFB!M zJ;mL>`W4{5D81R$5ST~L&hnu-@>=hcN5#KiDCfM*03Q=)lTRF;Qv3Uf-96ZdQpc8Y ziLLdOumR4<)9rRto`1LJp1ML1JN)-t|DB_}Z+JT|7Z6~DWxvJrMVxU7ej60ebHCm= z(KI^QT%6eQXtvxR4?fyFlmnQr?aj$H^0$6uP+!*)N3fCJ$wKD$wu3l8dgEWZDn*sH zN{h8;z!vha_`Lkm?D}+~>+M$m?Ts*eC4^4#?phxx8n`=K+TG73vB8d$_XlnCM&5d^ zJQ0j6?G~3l@BURPCrF8zk68TC+cUZM@?yH>EYmh}fFShr@9DAA!}in5e}_PJTcxdn zbNEiD?!?YtmLCYJZ+zX&YthLxHcBD~#1v*G;`Oi8 z9&e0LK8A{y!`Xqimn@M6Ksumn_xA~A{S0}|k{hSU^AHnVv0C-tmWy4szyVEaKD;{_ z-UXKO@^*M7LQO65>Z7mFg(oFV>DpF=<-{knUhC}BslJ;tE`D~YxfB6<9dzHQ|AO!~}e4}c?FO$)8kD@zWJ0S#TwgNrO4W}edfb;$zAz{j!P zDM~k23s(UJ0D$m*f<0f<8o+++zubj2yD*0blv8$gF1o*2+`nnd&$c}~$;CaL3+wBG z)ksut4bN!$9{wZ32}CXZ`w06n@6o<2Y+HZqa=W-p>wM!Jc}^jAw%>o(&;=VV7+1XA zC#3%H{&w>bwDTJ=MPbBJBdefMwRy8RAef^+`)Rgy@E62>%NQ z*c@)LOl0aVVh&8NHz#V|ZhQoXtSeo|rBWPS_D8bVk{Aotq{`t&@Rvq|#~Pb>nOWU@aD5k6{Y;?^sLomtI!7(~8*cai zf@hrraCC=H@&0Bn5Y@idF>xMeD}P@|{<{6JOp$H%ui<~n%Wy`eY%k`T7?841EG=()hfaLoZclD>=W$++MG8W&N1r&L$x zCGxw|-TB>7+?j*#`!|YBb}vtb?|#xD{`@9i5%M(k&O79OuS6^)e|LUZPRmaFn=6&u zrI7VQ1Qk)x=jfHNQI61~zo)xS`^(xumLSHx?-A}Bm(KzA#$m_fnnnrTbEt_W0^Hl( zz&KJ_!AyHo-FkkvABmnR=w(j;90dIM&i4Ykzq@-#SK|L0(TDu`#Zm~EymH!^k}#&) z+ja7q?Fh{Q?o0{&wI}?CHcNE=XO^`gs3q>m6R7j=xXOA{&pANE$=fqHTgX-1cK*o< z6SzZ=4nQrr%zbR1EPRmAR-V#mxzEDGqkWtT*?JouOQiV!j?XLcC^fs!p?wg3tA@6JjgJNkD%8Uw-a%&NcDEVO#|D>)4+56}gUxc)C#ftY?p*E~~g z^A^7IQyJL$T4}~dvA7x0{lnux2vzLa7t+=Tt2Q<}IliJZTfXwVyHF|L)xy)jm20=$ z&#BM31kz;p|04zz@QZzx$PRRD#z9KnW?O<~H{ZhVMZoAc%gt2dhvYEILH?X`<9{A^ z`Onw`{3MK;W(2=y#Un=(ABX`E;>vCJ-=)&Q4+8N8vfOVxT5WrS-y;5Zla1IaLiHoB z+C5(bZTlN~7iZ^8Oe<85o!mSkkcpUSo+^$dXcx{c6vbi$ zg8nX?4%{rcD!mv0UPVI!IC8kwWpdE_$%Xe%oqj@xg!=6g z*yK%aCx&ge8LE1VX@BF{^N{epIcG=YUSHexzkNS!vl{c!&aYgU|MF_Va>RBwT0-Z6 zq;a_+?bEfQm1>%WIpHkhK*gRYnFLUHARodw(DP=bb%g;+Zq^%;aM0lz3c~Yx8Gi^_;lI_P_*j z4*jbmzn8rW?~5h({-q{EqCHN?rTU$B(7%k#y38Jd-{FJRk0#;oL>xr~9dLZza?xz_ z-u3u`fMlpq#XK}Hb5B=JGm|RAqH}bq&MabQ!An&6R1h197#Bhb?apqWD|>dcd0e)q zuOXvZ*A)!qGj)y&aWIgznDCj#r}FiyNiGOs^{ZI31cp7PwPj$mj=r|Ax)|w0CL2{` zW&E+Ix=B6KJ)$-8c+G2groY}}25B*#Gxp_e!#_=0&jG}?l<@JRm-~Gp0SAlg|6!nnKXm?;5hr{Y}Zb?Lx<#ER_u6XF9PD) zoa=aYyKOASRkjy&^hxIQa&52wWMgXWnvLJ^thG3F{&heTmG7|lcsg=w`viXl}{ts>NQsb?DX7CD{AnNn$v>Vh|gfXuiRWn?&cjX~u!NjSO>!e`{b$H!!H=#`9 zO^tnDuC@LSx6#i04t~*L_$#zL<^y3{_~bPk7P^h*^35?i_vJmc!#{;CA?&cu!wh8x zWiiL1&^RyQ*~7bEVZmDpZ~a8hn%f@2L?mlUF`WHR?|I4k%xHbcS2OS&EVE^DLp8PW z&qGE#u2Ady*LQ|^IQ3|aboTkJ`(=9^Ev^4+b6wG_FXkxx)u1M$kn%1Gfhy4y6pmro zo*qLqM6jsV;A5c#-Q6Cr8L|?+-y?}g`5dH_4PUp|4JwXbj9NMXz7p8|66G-9fi5N4 zJA3PTG#}EUji+bQS&Y!Sa`H z{4V0>T2?s*daIG0{Jsa0^xqIuMJ{~X??UpE(2-rJ{|c5;jkP80?qSY*g~6JcIU+SM zIzS3{q}nu-!<-d5USas-cdM#>3I%5-eVvU*SZ8l-5ZlHcb&MU-T~BIjHz>}U7zbsc z7XM^rkEB>#Aix8cz~J$ik*sf1#G*ptFIpL1yAK1~$uXWs`1Z=44z5>_#ax$0?|r$0 z2gSPW(?XJ&fqrW`)L0;6+Q9+#T3da`6ViRN?*VD-nmW0uQk9I z=AZGV{*jXKybkkzQi1M{h9LlGK-_NXc5UJN97eaUS2qS>RaG+H2LNbpT{4d&hBVqbIN z&T%sm-grg!d%&*{;eReOh1bDBIKD!8H^XDbWO|4SB@YgT?OGi3uqE?^rU~n?kau z&eEel0ihu+g`^?chG=5dqavadxB>=9R{HQit2ib(L4d3V%$>z+^FzZq^m9c8KL;GE zvbuyTphen#_y2}*Df-~ws=5Ox3aqMH7wQE$RJI}%UZ|2RN^L#%)d#Muq`fXXUy>Jy zJqtN9l%M*#q1{@xG_yzvT)}FQoy(So)-UGgZGKhB9HAn9oX0P!+1R%V)C#sF?*Ep? zYgMZYQ0;T|iTjIX$*0UTA1}b`Ks~fX6|Gf zuQm0}ax2H#>23x)?e*LOOjQ3x1o!@bnxv>m?GLaL4+Gq>d4Ul9LOD)l4Er|YF#A)& z>H19(xwkt~1}Wt09A}QWM6`{-yoot~D{zl>eRdpklRWNbVoJ3%p^7 z+ngKy?R!OlXqEomuXc>^yXCeIxwf8WE4PV>+{)kQtX^D-;Q5jZN?adC#qZ8MP_FMI zR+~MWfcJl{27eD-)D}-~I!Jv$0Aj3dt#iv&C!g6_NcR*oyD%kFjU1lZySW7|A|yN` z2Ey!jJW}Et>#$4;qjZSXijYhB<0asFB(?-Ddfw(E_x;e{mGbLsfIG2#;~MNUa(VWd z8N;%ugd4>WKQtP+P6hF%NjG78v>%%rzH#o-N2?gk5Xa;5viRN0C1UG~-2nwxGH|zJ zbN!yqu>~7<64pl^dF9759c`-gd66D!evwE|=P2I2 ztwat~`PTNUk|?OVqi(Hcu*csX?_gQY-z`EJdL9=B*f=Trc5NGjsPlBFM}B8^H$5`W z-3*2n!P z6{pz(bwFffdy{W6V5Q=LE*vj-jx5KzV_jT8Tj@NVq!y7pAft3z6mE3P+L!5XI~$Dh z8sC18xMgumf}l)W6k^;W&>9S(pkB2+3Ou$NZMqOb57%f)3^V^Ciin$WYDz zP-R`JiQUESXOy(F<4eS?f_ZO?Kc;CZ<9g{Ko<->^yUB}ECpE*WOfsI(3*MAirqNee z|I&Y*U_^&o-o}haGMRJ))+#%WP9$4Vk;MovlaZj%jS5xw?wXg*E35}&P3iv0N0jo1 z)%t<{1;?V>zME{Z_EsVTM#Ox6s9E{I#kk;QVgBru{3K9wkhS-Xc{}=Q&38wx1a4*i zoo}%ONsuzYJ)*bhyDY{Hk+c_Q`U5W9DO;&sNLIn_E%Ppq(sdsF`ii=wtq^9Wap$$h zm7c=+X)~R4>jOZCm>m4RW=>ff-48J7%x5@hdG~6lh|YF*ywrNZJgdhA(ryl259L{qcu92?u}FnUm25M{iwqO zb&L$pEZ2OBQD2amc{CWq#wc4@;xM$Uut^UlA{qAO{ICWpL+I7mWR+diH5woAec)1S zPck%iTSHHG8F7QF3xaC4wis*pExKo{vFyI^ex9e0gt$2@JXYQwq=uh(kGx$f-Mb}h z5Ps3S+uLETUyp&k?z>~8gtt|@;MglGW=H`h-3nJK*?Y}CD)cEht@A|`LeJ4Q38dRQ z%YdC)$m}V?j{`v%RCNVkNO5JV$$P4&V~q-u1<*i=KK``#%@(hA3ghoMpxDz+51Uq#KS;)HD6DO`}g}nL!)qPL2 zmYyPsGzxe5O^{X?44QS%jW#J=E$vxg<+tQfd!Nj=q}@sZK0|ma_X!exz+{A=YEN3H zwDJZO)p~D;nr}C(UOxjP8S4$WZ5OSjBH?6Yk)K;jN$I8|YBt!`N;130dcvAe-F^rh zBE8p|5En%Ny#J zo5}enM9q)NtjRNg4bfBZ+}*Bn?wQx!^~@nBF2(Dqq1JFJUjZ(VQ6m8deS+}7;C`D;o!9$XPpd{laxaRVTK7SN)CTE1gu;=kCg8&EO7v0} zrS6*|`Mbncxv$z|m=5ZuOMfoUgs8S6vFWW}52PZL3Huw2WJwU?ijU*#2ScW+(`=sY zWY(Cof6gv-qSi7ZzOzDjX|2AZ?ODIC*<|yo*g8iv65cg~@IJQ^Rm!!`8B|A| z@t-R%LX?ye0&H0{heKzlSTtXT>+WR2pR0GD2U zlfoSiRxCC!t_F%bd+Qhx!q}=`mFm*j0KI}?j$Ti8r>Mz*BGU)P%{B9V?k}o(mz-`hVW#JjN4$92!RSp>;1*mbQ3sQ9D7*G`Y z;kZ3Aklpv&E)~I!W(An{tp!6iB4SkMT}-}l*$}uiA3+8#OCY8D0arrco7gey*6N@* z_kxo4o(TEAxOKf5=5{b1R&24JFc(&WD5p1m2@Dna%lsD`V(V7&1}E9cQrj^z(5<|| z6x=L}%Pv-Va{LbWtw9pwa8n4jS``D0q&`u@2VBHETC$BH-mb=Lt6}^|r=XH=ej|ND zdqJ#_mXCP0@MWmJqnDWD0E*@7GN*zo1Zsc^E+3S#&h?Iu?|f)CsFY#;JDCoXQAxHI z2wD6KN?dwhvr7&pHThzCUl~OOWPhL0KJ=d}E^AJIRA&B!kRp07#DO)dsc&u4*g>qm zM>U$V(xCp?a<8UetCV<%uGh@kk|FyckIZ<8rb7YAmy#g(sf3o%DisNvM-$>~kWEzxI%xPp5Sy&?=kCPwR$G^#qPQQcZ+ zEHGyYM%{l2YboWzy6takyUmgbDYrqB;E-?MhixGU=(*WnqR2E0O?bmRQL?7SRpW)2 zfzo2#KiuFCI9uU%vet+nmM)Eq6Gp^gX1%qhGmSdW=(s)!IncZ7zcTSuD4!)`=P>DP z^v+hm+m?>@_(j#P>Hep%95ZDe=>u>h4|K|N|0!}+h}~NNmuOv>iP?t3IApt}C+6t4 z{*Ax_r*aNq<<>d>eDV7j=BO*2^wo?Q!8=@9o@RPGuNnMGwQ)w2QZ`>(x9?cjn+l`5 zx50{B6aVW4SWtBD1pP>(d<(}wUb~o(oiaX4S&Tw}n&VlOM6*l|@*{xapJmGjPp9@A}X~%q9N#_}OCGhgdP#cfl zTKnTsZ}RLA<}f3{nljY=&8$wn6tBk*lSs(wWH;<}5VH6kV;t}6-o02W--dDq%@K++ zgMQ1P#74{#zg6E_6N+Ktyl?qKq6O|Ma6!y)C-mBMGrQJk>l)rh*H2#f=>zYMkbX3# zkys!OK`UP9Z**3QG|QRH0*2>1d_s+-zxeuGdi#w-(ZY@DhGO65+ z&*Kfoi)X)$L)>0@6-|(qn8e3cT?E!u2mg|_9SyDI){f-i`cjJaBY`&kbO_=e`cnE;SskUNZT~jX8U|M7amQTrB3VmVZCgU;aPjT)xU65c||#_r~kv`cp+*80dcA?Rx!5 zPe{m-M9qHA*D)UtH1!h}s}*hI6hUMKE#gk9W4&GQlT2@oil6o$lldb$P@)Kqt!$uf zlC4QLOE(E9!3M!S)L`$22)h17^5kp8LhEdBJ)L@R#|4!*BS~AwoX!(qKMKOeVfWDjKH0fVQt*V1S_=! zMI|#KO+g$GS0+HsTii#Hbk)(dn@bmww$Z2mdH`e9)KXdD>eXN{`;`};$lgS*Ps1&s zgpCdc(NE>EurM~5xh!}{?(uT4rQvyCfCPn75>s4#BV5YAX%r2r&)03+eSOdCL-HnH zM2s4Lin#rZWs>T>0(G35vM6nQ<)9d@f>Ke$L!ZCc%2BIO8H=|_-P7phdHUCu3%4eqc5FZqUFaTsMmex#&O8^do z(hVGmz>h|Ogfo6)qjxqJ={jtXjqm&Fczvvx70y_}WM&|oIRbFYhSZ_?)%w8Up>*8q z=e=;dr2_pv(;z0qXHWC_r6ju}x<~#uNUO{ozDRubpK;ifB~6WgF%Z_ zkZ6B=)im=dCt>=vDH{!b}qiZB?Il z!v!52)rRT*y|gWRqvSk9oLhnlB5lu1{OanL=JcE8O@5-8*_`GAMp=^PP&JBa;_JU1 zXvz`HM8xF!JE$Gkrkcc)PHdkx;uF5%X_E7p<=Q z*%tos3*;NDt#)UCLCTQ`plyv9#=u&XUro_0@(j3Trp>i>5PsB}yS{F;oQ{RU=d$bJ z?+8WB;^I8N(cK_CP=u9E!b@lKxvm32$(nHI&nK%Y)F8$_cy%EK@?S7fppMQWYT(X7 zV=)dkO~h334@nx^)hl0+&aiqfY$&*xOOt1`A#PB%hd&jXe~wD>inUrjQIVCMVq$Td zPLlTm}A54>fe7|gk81o)!LYC|5KwtqkD7p z7n6Ilk#AxDwFPAa%D#9m48m6>flg>2h$In?pRo4|Sy^xDoY(n)xB^79iW!Z_HmVCj zIN-%pwDgO5?=OM@0s{D}{PMjupMzLK7yM9CXEdAp$%vWlgftgqWNo)fSXk__hK#!i zbargj=A)rL4XgeuT%k}}GX`k>sIJ{R=cXTWU;pBd8!*v)So$#3;w+km{hMz9FebqG zMvY`7-)}Xtu}T6pIdiFaKFF831+NsP1%khu;e{;F^@O!j$9C&dgBQ>@ZX?0-anq0A*pzx3D;wA5^4{>NIe7ryQsC#yl3F%5 zsAi%`t)@-Bh+jLS(VHlQ{dSiRCNmp2T(O9|q?BJgeb_Yrp*$kIC#UdPQB9rQ#7>3w zgE(n#;Z zd1YX8(8=+KQXT#G3k1J&%2@PYBphh7zcDq#4F6BH>C4#rcF!LoAf*G+joJL$@$f#fp3S1dw1DJzpU7ae|iC6d>5Dq1Z97wjXBVtP_cR(!@h3d>Mx&*0=UQtlXZ?=k9gbieiII~PZB9wN|D zs}ppnMOMACsQv-X=OlDg#&t3m>bj(~#GHM%!$+)9%`z=STuS%@-?kei+cnc^6n(+X zV7i#rw2&3hlLMWDSuzxq?rO83sqNsM;4-3*+S0Rnvn{kMO^BdRF71=*iVMW8Q5<}l z9$~Z~*`M0PglP3_hn~c-DraK#CisMyuRq~-JC?tKLh1a^@In~mg7%VCHEU4ozVX_nB zekhv4=Q-aR5m4YsniY(9P|N10;9T^!T__)z&&^wWMs31U@`MPoo+v5F0FBkEGr@KD z?#*3qLWksk{oJWa@R1i%lgP%*%IWy3ySmi$SDr@QYioALx_2GLg~>*V3^TCt?ckRv znOZUy0CcbQR>nPfOb`bRtC*XOpvXv?VKx+p;(#M+fMH_a*up%T#PQk8f%TvcJdk1- zjV%Xci+D+~SRK3ED!p~M%R#$4K zanEP{9vtiVW%(j-JD7|cvW^R8UC@8`3rGh^V1auVk`wrj`Xu)`-Ye4lkQxys;?g2o zr16YuAuS#lE(n}oI233HOqI@^k zCnttL@MC@!Gjjr^HJyXGO$Rd$2BWgjQG#PX>;8ZJAECu9k%2bW{Z(Y|I7y`)fI9OT z+)|-qX!@g4hha`=B)Y3;0mF)s2M9F9htejGiy-5&L3~v1*medKtBGp+Tc&;Bf>BxzFHlb~MQQW)x5aP;~g z-C&6#ZO(=x(&PP}ZKhL1ty9HJU>#bdm7JNuT=}+x`!~y0Ds7E?h_bOVYS(wfZymZX zg)c>nlQxr_kTduu0*qb&;yEV1=H8Wlhq#PhAA4&7SbwirBq&T zE8>BAna+N5n@|6^m%Hfj@B0|)#DlCUjl{|Y+n_wJcn&f;_4WpaHfaL2=_+6@&w?AT zTIP#7n<#hmS_BL@;#dvn8?z!d`I@S)HTJi4g^B~DGi>AR*xoi5k`bu2(D6hx_;0Fk zSe#Zq9o-PIKhlR9j70npYZ8Y185k&Ki6;>b*ETnUzGp}{2zPveA}JaT{&jf?FC5$` zCL8?OrL)Z7B*MS-AyH8gy5&hui$8*k9Z5Z^-l!p?Y_`9J)$o^K?_3nrpK~sD(LqH! zyev1QPZ(OP!$4Dpf1HFwMe?rnA_zd~>~Wc#BMv} zjE;qqy^ybGKFn#z+vwAsTNwa)Xhv0ELyP!XQd?mCudx5wkpgbPAAZ;t=yklPT-N5m!*4qN z16_(%$GE$l2PsN78^@Owzg%L~wdzu~zJHh+2`m*Ke%UtY|IGO;Wyfbp7>#*LDXBM1 z+^-$*I$H-9+C`kmp3G1)WA-1QHvjVj}SXS7Ny-+o>t*o*Mg*8%=5R~MUDi+1p0f_{p zR~=HAFyX33{2xC5>c~F%qu}d?PHu)c7r#GALcXg$cF;7PKtAfw>Y|jStW&GNH24qw zD75Hf_J*(u5~Fugjut{4>HEX_bhlJdsSlpafSEGc#69Q%1o)|`_dup7?wm+c9G4o% z)+uI~Jrlvam43nB+;MH2n3zz_Moaouxhbv|{qG^T>)MWfXwdgWEk%n_T$>oro60gH zxzV0mmj?;t8pJv~zG~WStxkTZY&O1$@d?iQ5w!iKac21}W{sK+b8?{*ya=Ba}l#E~Kf25k`+eU=xlhkIa z8gu>K5`}3b(7U)0_Yvg1(S6ZHoLhzu>OJ~b%xniBdz(f37 zb%rugO2QW!-@XORfqx1*j-z*|)R>zV3NXz&20;^?_e%ONCQnOO-QNdC6=1{OjKNCNg9zVLeE`}Xg_8;m8!2s$0Pp>cq|JNGYGR1|@%`(W74e6+t@%-@m)``}o zjMym*P-jCoo4xqq{r{?X8h3_n7K#wAtWk8y=bi)9X`D~a=UrJp2tjHOAs|UfS=l5C zFRRyQiM4%6hTE-Uykj=nPhVF^?h&H=l-D`x{C0^z_^TW6c!SxKTo&rp!b` zKR)_#kYqNNAXtruHz^An3o{_6z-9bxI+sz5S9xEVfJEA{N;ZM25Uc@e*J_b zQfZj~R{MP7CLk)wng;y>WMB@`_q=8m53O=$=D`aX@um6kDlDMN>1=|MCbUD4?w3)A z5cfOT%{8G8Qto$~GH?G#a!I1+1?<+;)LB+$=AFS!%<;kaLHPLNyip_j|8A3$t>hu0 zHU-*kk>ds!El!n`AKVW;MJ_?Mg zfs+aiVIRec#ZL?To+P---Sj9TJ;G^?`CCg{-tAtXbQK$`W6Tv?)h3_bI4}~Ba`2># z`=ks|1_Zj$pI1f_XrEE0$(P+tJQaFr(~dpm**|#jm-5u{XIXXM2gF7YOdGG0nC`ia zmxR!C1}urz{i+>sb7T;ZL{+#SptW9hej8@}+>+ybtl9L8SZ8Rua@30>oxlqE`QiLx z)MM$-#bqg9pib6}VS8rfW&4wKrNR6+#teQeV5SQbI*4&qpgx!8XU5Z~hf*XRe|fN7 zG#+S#=|o5*>ncSahu{@oAHPFO4S6l@(=gZlWZ(ovG5ESMHx~cLTl%O-@PxIBcE#?H z<~XNaJ9D?K79D#)h1_Gskgc-xBhQhwnI=!dh>w==my)ph`2&lOf#H8%IZ7%6xB8mK z2uJX>=`0r-xDs)PsU&vo(#xlIz08UGl;A#kM-a4~LoZdBF!EIWu2S9mMh+uwMiBJy zlW;$sqoG0l5&2hhZEJXZXu`5MSmG_U#L%tbY|#_sl6D$v_)g`1C=st*&NeR*`D9JE z&~&@&qMR`77>;?~p2)Js(Ec#3_H-E<9!ZNK3z_Ml?eT%7zjkieTX9Yevceq$?KF=6?T+*UvTi&@>9QnMAOKt!T}FW1G`AN9O7T5 zddSk&%f_Lm?c{H;gylU{yqVB4}aQ+ds-txIpz&r1_x9y8!N5y?-$&grs)zZ)SQ z((#J9m}i_ngjVuTz!k5a!C%W4iEq~>Oit63suA~g`P5q#v$jk6RJp13Q(x&T3@~ag z$0_XS1!a9+* z)A-lz4Tmw0%ZAU>%H*w=pekethk|`jVeTJm5 zX3EQWO^5qT()!1U&^#jTiLiWT7jOKKZ*> zFNXz_58k-26unZ#YYTn_e*E6a3d<4=AQg7mjxdIiXVF;#T2uKY^XhFjeRHcL>1A6`;WKskAaX~JRk40JMwaheG z%_}=O#b6YcXQtr^xT#e&MhVgpuVrZHiX;_{EdS1W@>!yk4RZ%662h|C=uq+pKD>Ry z%vwzE^xP;&a!sx9M?5-Bp&~QuitqShkO4pYoyCB_(PeA|KfX=ee_xCq;#Zpthy*|ZX8ik;gKRMDg;$yM2a0p>#i)kZ7 z=`F)Yo8Np&N-C)vgyFj1X4J8hzMz!t7Dkvi)@CzxDW1@isJo0N6Anw82dU&AINJwJ zin9KVYp{WRQsBIqYe-cp^98n|2>9f5$3EHIHMQ3+&pRAEwI2i^s6WMJ%G|IIR1oN; z9OV%Nc&t;2iPcf=O=KORbl@2t7M!^@@HnE%D`ha;>>spD9f{tr>4Q8^H`>@XMwa#0 z(%a`HzV%|gS)}|bKz(QpbTWDkus^PxiGYsROF~SWfG5)Sy@m4rsnh+7hN%mxhZHdI zZ$(+BPIp^by9h1%etM>_TTM`gdPub5g2o=5!*PxR>M#JB;CxKqx8<{7{{oR`#W}*_ zq8B2gubrqtnf@ni%BKfux^=8^%=#auOxrLqIv>WaKr1^*cX<~}ef40YCx@|IC)+!B zpa)T(dO*GP_9W_HKIX|659EJsERj)=TOw1x#;jl!H=>%WQgL=15ATW>l+=f z4|Vsj9oV@&bZiiBD!la&+c(Y4H!x(!O6Da^j61YQd3TU5v2@cfi}lfCUr* z?&KhV5d@SVfN$*FWQ?;{?=D7s;yk|&aOClZ#U1^ftDz7{r5|vOeP;!<$oqMdgZ%HU zvv_MBiIk0z9$jh;UUtl^7q@*x3-#1bI~=hod$wn{{U-<9NmlW4Yl5V%RK9J%J-3N| zOlW#obu;ojf7r96;OTA3UD;h^)hQuaZY7MqI94@hr(pXX@#sE=Eym%QnD}$es$fsz zc8ZGN;dsM8MGI)^bB@Sr5sXq%LEENoNCHdxEQ6q=z_p z(+9u*ylo1rtdLH=^wj1Kk$6%weZzAMVrQka(1Ad?{_Oa7&JgA^ub8_?8f z%;D+rVt;8#U9tW8F#+0#;d_c$HO{=O_cqw3Q*UDiUd2_G12p==LaGbxMdvrtvqUAL zdKI99hs+HRoo;l(*LT>xb0K4gpsuNk=RbGoNZp0?m$B37%9dJ1&t$G*8!UV|Rc%Tv zES$KNs|E4GI{#Ce@u_wSnvPc0BTz?7fKd1-A*W;aXRg^pXuhw@@#sZ{e9oaNnT0M= zzRqGJ!uYLfREXHMFCKoDzguB#+rug@y5sRk#5Nmo;cu8?Q7@;u>(^`6A4%9M<=}SOkb}b1wDvXyVc`?6Sho7uki?~IO}Q1@Eq=&YN&8EWoKAKjXazRvHUC`T^dSacOpyB?I`r`c}U+)QG>Zc{e&&kE8IdSnd#V6pDjZtXcxu|Ln{s;Jl7^ZJ)^Q+9WE&TEMz87mJ zUML3SO>OK--N9btN20d2u?gG|(c4vJjb+g5mJ>%U8}G*hrOziA0ldJ*uD7Z_`4$wtFx1X%K_9NFS6(^_doBa7F8Wks~;RX3vg-yS(UB1-iu#r3kjb)VL<&BPqP$IcDK;|9ti_Ei?_}*lwXlYN7IlR*|nD# zfRA53ybbDu3{4rIdhcHC7S0m>(7j)rfVmPUdClopui(RosN4R=6ex`ExuW|Q>?L_! z9QN#dN8IiF=T@v1W_;7>;q)06tIRD|DW5yR1d9)|_{TJve^mMoo`+1R7;2vWCzuP> z6NXLMQj55=Z^>XW@8ITI1JAao?QM2m)7h%BtncH)5a0|)o5)vdTUpt$XD~hUw=l$s zN*PwVB~r9Kw22W>cg=r|nK(y>M|hgLk4KLj@FyOZGm&guYEE&G|N620x*u`@hdqPY zP;WLjv(Kw&9uXSoM$Zf3CEym1SRBX2=yYs0gr1H(ep?fYk+X9nwn#$?P>c;uai9y=|Dh5`NB=*mHAk>iq^g8gE&y zzzI5V_|9`Hgq(4SyOYYd&QwYeQ&?>IKoH7BJWWo{#`| zWo03En~h&UaJdm)7Vm%4O>V+RaDUv>Nv9aL08pg})e=po>fu0a-;VL=eJZJLy18aq zyB~oA7Q~w0+w5Y_sU_yw%0*`ufW&$=nG zYMigy7xGSFuuVy>!oM(sdTLjJW++1p-f|=5R#gLrtZKVwUHI8S8hM>fzCv4a{s1q` zEJ%|Nob~YFB^u4%cW57~Wp7`sNGaxJ(hT@glzSKL`<2td3`B3iQqZzAdQPFFFtPHd!p0>8M zE3jBwYVk*Zm*oC6f^@Cx}Vq>yCjBMD&j~^LN{f zpo6CkE;4z5ts>A>MowO=&Y9H)^qvE#51joC4=6F$n+z$MIq~x}t>AeCt^TZduJOj< z;gF2m_u^cTtWS1)5vKy+Q^<0*1q`sC0B}$8e7&UmKRIz8#^JV^1sijF-a1=^4=i^W(qmLYIjsHv{H%Y}|A8x<=G?L1XL}UMWOo8_Ov~Ag?~Ii5@x2RA5hs1k??aO%jhvv3;n-l zT3$>G@x4Vz*-n2PJ914TJ3h%00*T&8V0gtD&Mj2iy(RA(_*3``iXz=?{SQ8SAh^m* zdU$U3#!$j%@3yylCyX=G%n3k&>$mQ)L%gFoa6wWC-cthxFzDe{Pr(nsf}rz%X}LF6 zf6(^qT`QJab87t`A8dw*@pOqlkUX%8aUSEt00`nxkWs$8IR-V*7a%*n0sNbm8DbIh zO1$M)(DTQ-(O?BaoDh|9mLXat8^*D^P!BHseZ;o@_0d_jQ=goK?O&pYPHH7Pt1Qq!|;7te;(fDtY+18G4u)yBUAk_8id^PU0y(zP#Ec95bu6B@Wp|jGj_PY)Bl~e1W?%kjMMVA9u)_P_~^4f zHjR3AIu9(-xo$@Oymm%O-EPvsI|pci54-~acB|nA>zT$zVN-*iCZ@hus^heUCZ5|>wSkXwUJ;)lX^~|o3?Va zO@~iolRIj1+g2YJ0r^9+-2Q#kxEJQ|;&7=M(BYFso7M1lxCh9Kjt&!)v%F-$)H0v8 zB@SP&{N#KdNoE|}>gOaZ5mDUoEUXjAWM-frJLhkT5g*&9uv)n*mZ&nk^pP5z${K$G z^e;4X&lX(}!8X{XrmZEF_FqL2AXAazRFoF}dTKxx)5>&+vQIHb^|D%Tm-w+G0HS3u zzPv`K& zs$5Nv9k%+QI)*@<(CBUHDEw8fCZl3e2?}Mmt1Uqs!x{FmnKy!LrQS5lPV^1*et?mn; za+kd&aSgaX@6!#bvQWW*)+hc{dYxS$eL2}?ArN~4*lp(8$J6+ZKoR?NA2EA$8}mpV zlrC|zcSgtRaaAW|v6f_ULO)0%Cx~<8=e+l1a-^J6f-Pp+t+ikix#F?*no-P9wLRdDL-2$yL% zbwlAVIQsq3b?}!#r!8}m9p~RKwg-@Z z6Mwi`CRp{6@FMcPzBX(Rhw!pyR7^UNwm&Y~r7}=Ip6lb#zI)i! zOp;X}X8$nAGD0XVTKBM+b!lE^g16D`e=^7W!NK?1uXpYYTjIE^{RSM0k9FNC(Sj=I zBRkidoG{_VeK`e4XO;PQ9k3aAeZnbm)V%8B&_=KBCg`f{B|78R#&`5^fCpNcG7NYH zTDn`HhUBO|^=VzSDMb#$P2nm9+OIiJ6$RP zP7(!{@%i$|(d5VDf+NtE6tvjD_SSNH7LmDsu#?NDb5y+Rn~H!w($=S#w*mfj_~Usg zWZph!8+NG$61NtRz^B`!vCy^Shk8STBGLV(CSj^H@#W;J$4gwt$Df9NV9?Ryx-$Lc zj>F@}qXk~2>ROn@(7t8+?LS6^jhM%igO!KA_UqD;XwIjV6vaO$f^~?hd4V2ApQo%P zsT|dShkTdSgLZFR{Pt_=0G2D%=@&il{V)k{G04-xvadqA-*t=w zhD1gDJ^)1VJ!Bzj&t(Q>vf(__jT9fKA-nK_;FKge-Bx}C*Qt=$>LDw^$K6= zE)#rTG>@(PSqtsHdHi=%ljjeyVmSSqKU<1_%}noH-3&Nsdpa3BzAWa-U!Ab6-d}n3 z>s&Y5BkbshX|_$E^-;BzSd&UbdI!D*6^$>??SBNHtSEkdgDJS(A8}pH;TSWKT`igR zzMZC*a>@9Mp`;4GJ)dX`2>MBEDw^*8q{(4E!>UE(_}?7`aBcI|jn&C|-j`rP_#gZP zFaE%04g1cq=OOM#4{vUg{&E>!;r}tBuB3=lb5oZ3&X4NxP2ReL+Ud2wV*dR}j5+!C zSOHgjx1MDEut+iD+P}Fv95su(O}PBR20u*waLIZ3>NFVVX*zM%gp?^SWb*vdCib*# z>qNKTBkZoj)VwI*qkp*cgCAL*V{)(VWJCV#)qeqfrHDA=5&k{&qhNm1UL}EB|gj7DbS;uH3at0Z(zOVdg8% z!-KZDUw*yL#Gb#py|v&w#alMX%B$Ni;ZrjMnVnzs%{K`Aj*O06aguDeTeV%go7Vrj zWiPjH>WgsJe+Q1Mb43*tb}uNt924Tl%={Z9`nUGb^UWH53Y61Wp_L-PU%nULwa0Qe z%Xv?G*U9v&8z1KK`IU%l(gdUj>yC;@$qLWo_~9u5p3|F z%lhZ9*A%bDGH0#cIcImId9H@J!2fJ!1`d0jPP1t-{XSS~?@xS8-xo0bukN30MP1_& z|IqBe>#0@EbJbz4fiD&0`l}tCq2ZU;{|+zcGvs(sgl#M~RM?iD)9){u-BOJb)kq;Z z?PZJemZvUQ?1j|=i-!i=SLyFph1r`kfrNHO$2mRcDqb*!oPkj5Vhwov_+H zMn5tFW_r9qDA(1dnDLqfW_$l<^MTq{l3<(6%|DRsP3D}t3uPA)z?JIKH`8|6Z?5t> zr+KqhoKy^Kk>6$qdbAnBFt2JaYgvva$q{C&5-|r;Hz|8N+Me69!2PRC} zGNv{ZES?2@;v=+-zp#(l#9%J0aR06$o<;M4uP+N%q%7mSKcK!JF8P?kROEClKiEyP zd1xNr-SP!$zhX|(o*;UwPca~(P;w8Dqw*HBxdtd)_;{1+nuE==Jb7_A;A6TlME--u z$;dRY&sZp}+T+00^rJB`U{m-7Dr7Z^;#}l%>~EV^GYEjwINBPqddE8Jg=I%OuFl-> zh`2Hutv+xM76>#3NIyNYok8RG_C<(+gX5RgabEqgYu$!Mq%w{j<|{YFMl7cm-&tNJ^VoS1IotI zXt~tlc0FqhqcT0(-!JXI|MHoNusXm$*otN8 zZyH-pIH4Eo<=wf@ZuB3^4=!25RuTz&pX~d}UiudfJeQ0qYjw+2Ap}fI*Q*_W4SLQ; zTnU2IJs-{^zp&z__8&H#t)oj_8VZr}6ro`4f5F=AjlK4WH$VNa?3W>XbdNU~G)HAb z`t8KE3tlR1@dC(3d+7&1wHeqTY!mBvb2Xi_?5#1o_<_RqzaS{Oo+Mb4mIZ$|8t5s^ zt+^Z*0UIuv1}3l^1!39$IIc>@%+)kABmAF9wO2io3(6rn`rDQkizu4KrJondHmN@@ zTZvxVG<%ECdfj|p7AI;+qIBsUdH#VD~ncF zAZx=e{P%>W0~f%)dPe6zAn>4FwakZcM*RDKlPn&?kTnihIX^C*N`t`OM!ML zohuTSr_(jOo>hO?Z3<^66MokH9;dhiDToKUuaXZqt`SsQb$n4E`+*@FaIgfQia)=p zrwD-N`JTGa(}U1>XJwq}i4$pfc5nF zA0axRmzVPnsTUA<4xe1>S&I&CPkxRR7*keXUDqZ<{bAwb>G}wAa#`YLhuaQ~x~qQe ziSBb8VEhnV0j;X3$|szj=q-gZZD*W{4c$KVPGy@5da7D!lt< z&enQd)2`O#)T-CgRy~qiReci*`Xxr1W7YmeXgUC_z-6KRuGVv(Pf_j1AwFv?d+zT) zf4KCW5K1hE>$={PhK=zjYDR&CYt!H4p)n=^^(}%K_Y@aWucgy4%+D^R;+eqnt`LA|- zriwCcZ~I)C=$-^NR3uQsy=`05>Z)Ywpb(&(cCOA{{4F^bG~4Mu%)|dHD=y>}&wHzi zK%TWxf=Ent^|E&7qOp3FPP1Ecb@12nZ?XsN*Fm2u!%z($!Deh0p^0rzmNUAeq0N_n zQ;D?gmB9givFg{G_(zuQB)Ec`-G*};J=JXeEJjd4!#g(zKD%l=I<6Is#U1t0zr+V! z=Zym0eVrj*%z_+}H*+^o{|X9xNHB^;d<}D3-oooOf~7joqQsUtjm3Qim4d=^zA?!y zc0McWtc;>SivLz&cEi&znc-=5KH_}?J9c(b`{xb=YfiYB_^K*-9?32?iNxMfInYtL zMZ}O}c&Tb(_M(t5YWiPvxwuWsoEUK0x7qNRsr0A#_Xf75MmhOcFyL_=1qg%asfo4_ znh@ai)C4uXrgi;B^q&Da`M~jorNLGN*V->GASY?fYgCf?q={AMSow_cN4)L?IJ`w} zI;T_!$(_8&5kTv)E&7-~u%dz^6R_9#Yjc+gqIgT6Omv^knAfd@MSIhLDN~{Yz%ab_ zXo_4sfK;iNu1fTJGg85&O$K`0e}+So=)7JiiwWz@)-9~2ZFI6aT0^89rm6rik)a~e)akhDOKsa!mk;4m zO)+(!s{vm7#ra2Ae|rA^x@1&}2Jal_PZ04PZ@hTc#HBf8Tf&14iRg8n4}Yf^_%F`8 zD)3^x3>zH_O~l2yV5a#f*y=Rh@>ptfIe-(49~Pyo!Ywc*oEi^S-I^ zU3+|+1z7rbRdw6;Bwo%e{S|p~PV>2`r1#LdnWp1c`*kU?%t>^V`xVikf_tP2y)}Qb zP?lHwldK+0QZgl1FAr1(7#8rXy2bZ?tt@pfh~N{P;AedU)^M=M{slk3P*8LA@Y257 z<)9aor%kO(?>P7Fyl1j>g{ZVwdePHBC8nj-4RB0}A9Ii08C4!GpMl_0q5bw8O-b_D zkDb-y=BKGB0jiU-rgti;hKlzn@J$75hxj1Mkk~^=z?vIzewK6jxviGsqr)m0=F^8x z;8)z46?jmlAi8qVI6y1&y3mE9R;cOdX{%>Wdz-A^B{-;xmY$%W7}Tz2-ms`fz~gad zH5>kpF(l$dfxU;mx^S0x7@u?g*r0?-w*UT4{-gQ{z0vW059wW3AH%`JV`fV2B>!$s zMd1*{>8lRXbL^FGgiZMTpuN7z&uLc-rYhX`lh6}TP)T%W0^4`CnEyhVgv`PVqyMA! zl6~qt@~X(m^Zey2TYo~mYWkkxHN;@bw$Kp8;}d?s}YD2^x};*aMm#5y#qE; zn=N4@IJ#g4QtUe4TfWM%zR}avd$Kiwkl1?Zr(Eu1+KTMr=BLB|*v@F1`ez!Ssz}&J zL*TagdMc#A^1A<)8f!iHgKB`K^&`K%mW2D0Z9*NE#b@yoZNd&8f}JGnpCtcQ@f>NF zlvYeMgu46A$7{}9xQBm|(R$4pZKx>Z%1b4jsJ~Z(d*}a-A-dsnZC>tOm*Z-H|CbP# zKH}#;X7QdwVh!rwO{jPhEaRu*rOd-o1?#9NG$-8No6&Wj?IWQ8Jbb!c+is*{`lJd>n_2)Aeor0d#YcKRwde+N)M8tfp*%mulr0U7ymHkcGI)!dLr1$QE zwsF>e_z4+X9rRJ;J!U^t352Xtt0b7jv|ALI4^)2;9isD(tsZxvs0dOwcH1la~KQcx>VHBO5hOY>NShx1TDE3P6R-PQFuE{_@8| znjgZrwHD^Y1}X78R*#5%`sF8&kJgs$RZdi-GNgVI5^PVLsW0re2nAArzoRJ1Ek$l3 z(IM{GnEg8SX67VAe5&^GqR>P&;q_rIHPD;cakWcE>Nn@Tm;dG5&2y80(A5Fq6BO}n zYb_kn9$A=*w;ix!-P!pd=9>U}Y*qWVmsR2&8WW%|(z|yUZ#9sZbslj_n8%bv$UYmW zJ^#D9+ES}-arUC~V4s!5@h)iB@o7((AuGj=B*ROu=iXV1g>BX4$_WD^zk#{onfB_o zJ>I{x#b#n8Gh88X!+@36%E0c0?YbX|k2ifQZahx#aF3ssEyg84CV<>d+J$7!-y!f* zWjJ_K)H5a`p5=VMWo0$(lw_a=V7NBHUd39lUEWN@aTXZr_};Sm<)B zfpzkxfeD7*ZUIJB<|emZ*U2o;HE=%W&Q-^4ESvf>a zGV?wv1o&51$sIDn7+#opHnEh4m}=JczaWd6{bAPpT5ps;N`c#V#NNr7XoLxbOuSqZJ9I*)ld}zqOeJt)yymqRP>A^g))I!4nu(H)H@#sTv z>sn>)rF*OAO@I<=Pnu{a$BGbSr+5z)V!9e0F8pKn;ed?xrqPPgv~$cR3Ygo|aBwg0 zp@E+7?!J|wDGSHq5Ych&*>2v)V$zj?kmqGoz&PW59#e(K?~D?U0I-=rfB$E`eH+Ce z+uIZ^k2`$rr0$`v>l*I-UgGo8@MlN$)ob!ZiUGN6;T_csJJa4E`ke64?;pEEm#Xy} zJNK%sj<76=gwm^rId)5)&-tXCerh*=djFy>peTfer?*03-#ZKIPlMagc2|>YdBQ&X z(fApgSTPUhLAWVPTbVo@Y^PXAF@}c(Nk@<$+dclZ20+M}vF$^q%O&jrN<1BKOPd>- zYPzCq$ba_Ki=_k44*VWpfcS+lS~bCAmlGvO|Gd;n%yr8~s_qXk;G#|_&>tMJuU3dy zz4+w=L|AEegwz1QDSnej90`1BtF?`%*FrE`(fmP z><<7#_N}H(23{8b)K8mt@HhSF5VMk`$wLOy8W3TZY`^vjM;Z{p?3p&hDgrOEhWDgF zJNxZzoo;Dsdp2tHZ2{8DbKcJggy+(ZX!y5=@GqQvMi79QtL(sqot2;+!%z_0Vs2ww z?T~Ef418$QyQWj&&ybEg8`RC?ppfmxy}#5s;3#4>u?M}<9zgca-SZKm$(;f@_CK9$ zVY5x8EUjqj_N{?}f&*B#^iLAtfNX9VPn1abflFd3?{VB2ze z^n24BJR!0}ZagX7KdDv6mC#ORHDtc$d6?a&xPc)wjinCuuc@Q z1@8@%J@{nP8w>fgbtO6fba?ib521x*Wy|KLYOoD%8Ox&a6%YdR0objbBF=h|+^HD! z*Rb63%6KQUm!e>Lea(E&v#@t0LqK?^M8F3)2>^LMlV}K-e6t-zgbE9dlaZIGQv*Cy1YCc; z6P4HB_I>+GQZAuc{(+?^hk->-x(<$OHA{N#s-OK^Sh!?%F0-Nh3g4?(i-JTPg1i@5 znhF~Em<^%Ve|$b*t{a7>LiBReJu8lrd&27@$eMRu__S*nucKwR%#Jno+z5GUZp3os$6-22+i{wgcSYE7y38y~Rb3wi* z_;aMB;pgvL3mOIe7?N>XVmJ?yvDrX=)&BgC5GSU$F`+?0Sk=JCelWH%LA_}!itxN| zak8(C4!eUt#%f9?>)J8x*Vf^E0C24Ru>}zsqv~g%+%{ccmUz)A**!LYCGLb@yjQ+w zAR@kjmlKzM3d?GyjEaFY`uG2NIy3%bgu*nqMK(zyGoC*YgFWZcL{lwD+C>qfZ*5n$ zb4L>r)%!sY6z8`08j7G$a!r&0DM*-A3a?>hMpfMXOig zCpp2EwnbAi1wIw9(b2Jw3+OSkbD0~|oI|3_-8yd{JK^?Yz=h2OU-(Wnl4=gpV=;k!L*kXA)?VbP4u)&v2n3+fb+)qS%8fp?B$Fr<`hbq}dp zZGWMN#0(wj-fMA-a76bl4jTFNb*(%6#X4~Ok ztK-S`VeQ3?mIxwEV;BB#kCRTGot={7e)n7dvbXk$*Tax=Bn&nemcIu|qC+!33=-cIRYYF$8wTz)doeq=#Vnh#)9lX=DWcw2%~E2n4M z<1M`MJvYe;{wrdEvh{pt8ksh+G7apjP#)>%WKXd;5E*RM z-oxiK5A!f}<>C7+%pg=#3r|QZwZKPx5B14)yMo)hJ0%5>Z}pVUa?X_ADKy<$^{B=! zZu$uwS8we1uTk8%tDCFB?~W8^kO@hVN6&KC;4LCySNwKbSf8NJ5TIq)^vN+s=1q0E#YqsksUd?c6fSm^vW zvxJ=p|Mrr=m?6xpOS(OokG0@=C$UyZzZj_y^8{XU1P>8 z*0=mHb5yc5!|`(EH9jOr?%cAcdX`4BLWG|`c~@R8qta_TgWxh~4(W{|c13b+Ae8(I z!-{vM>(iWGMWb9;TPd#kPe|#Or%`b`xdL(tUnQy4_=<#(B|}aGarD#>63Wcm4;qin zAp?2PN+aPECsQ7iq`pM~{TSPKGCK?@dITh`8+~(JvaMWeJ+~(`z%dQocbupu- zY{?$(jgJU4Ow_kBiWtK;HD)yh4pR3SW|N0a`kfT&)W|Mp^g72r`(n@k2rCNp+L1#q z6ztwIwsElosLQK&7#<1{iBR>PJDG=2N+_)T<(a70viIv8Ti*J#_CFVaj}=;?eIUx> zL)Z0)AcT@P;{i2k351L!U4NlJXa|>V30rcE|AyymjYQodl*aQ7RMxSyY7<LcyMY zjEDk8!_))y?nVjDUqxIv%w3mEx2{=wajZp^n?EYW4!wcmHtYxp#;#!DDU2a;D9vc` z$3`mXE8}}W))@*4Fx1pKm3tv;%++~l34e7U>Fo7ZAJ2qTCI}zQ;Tv&o?;e%nt2GSW zt+wm&B5-&it815;H4y=VMx(Cf7YMkXii*SN*)|N7W<35y_(hrA-RcjIgrD`Xr(+VB z&~ZtN3#+O633AfFhQFZj&Ob_x9Ew{gI3=Vfux%NOy2Q0#2;O#uu8iABlz^gli93Qe(t{9X+20&lx+ z^s7f0@@X}XEMAJHAcYtxhqC`Nt?bvZk!r8N1b<(*2`uV;TEZHFk}4O#W}AEoUo;{~!5xknXd zhYDIvVWiJr`gG{%nu}aVijj`qRp9GN&JV(vB%1Iw!y>jpGZW`y0EuC3mJK-BGamUy zk2x%BcJhg$p3|G{x1N%}i?i;O(%nTBs|#;Hh_Lsh=(Vdkdw%KxUhBsKStMEaxic9e z_K5p8gZg9Dbr7pH(HV8U+@#Bd62As1EE{dXm(^v8o5ZTLiZ_vuO;oNVLoLW-@uI1S zX8jY1g%v{Zu3A>N?`wEbP#$nwhqyX(1H_&cO{nmxx`G+ns9k>?^ps(ii$V4<&tdyJnR}!#h+99-i`J0e-M2d$>ST^~a zv~2CcONYkveB)UQxt(lV;m8GNIh}8d9IEjRVeaS+OJQ)bqETnf_ncA+Xrp`CwMbi~ zlcEBx!~-cM0!CGdXNEXQAOmmS;jivE!f~IHNW}GB#O0 zsK8USM3a2*tTy(&a#5JW=W|P8r9qR*Kp~xP(&Byn;9B&S&Ifs2dCqYLGpUK}=Ir*i zE!!DOFI#b37cp*5%WG>rlF?_ydWNFt`}V>xn7fGQXR7Z|GDb6lk(-(_kP=N|H)9#M zpprOlc8DR#_e^-s0F%KlZ%CyDrej+erJXS4v33)Jf`;e&LnpY@cHX*g*V>U8Gv`AlCMEpX~NZ za=rEmj1~7CdMr;_WkmH5D8C9VrOlLQcPwAtA)DVGZ4RKvvC zjfEaP=$FzKK?au9m39KMTQl(mkG|9o$M#!jXwo2QmFnw4rn z*hl7~!L4gR5odu>b>L)mVGQ0&U0HSynR}0?jk2+I|$;0r!ChQ;56*`pYV%&_salLQ}+paU&TI6H+MnUM{P`a_yE|` zlvJ^iLQUqSTB8L7fK#VJX(ds%n2CQ(VekKpHzzt(H*xjj9Z_YDI|6CC7&1Zokb@@* z(aj*nKgRtUP&SEoR{i3dUpp$k(YOetX5gB8c^{D{eyte|!^(8EVvH=_K>Z8tn5JkL zNm}23|CCd#1EQoXbgUi z83kr=(kM>8J$rfNyouSBCszO{<&>V@UTC~EoO#M92<D6`k@>v5eupPB2^RX-PJeW)?;hYucmZZ;vvY>TLvtTDt*g#|y%lut|% zeS`)8LOOa4obCPMMiL|$$$OKb)BJftJMZemA^qRt1CxTJdw|kTN)_k!=6vx0loC_6 zb03r-m2Yb8$tD_rg>X?vHKoK;f*pO1uy#=@;E-6^ZzP)_rM5}YSp8yimmNn!Qpysl zPpY`7CQE9{Vjko#(YdF?(r**g>4>0XZjUl%5SXZJjt;3gfjXk(Sd8fejmvGqa~IIs zhCF^EUNd_l$l1gtC+}PZ472F66a|#VPrb>v<1;vx_oln->AOv~C$T&KH;fP-f^^jw z99tgh5s+e((B8Ha`qg~nzqvFsaI^6fuN*ELi=Kjnpd7-HvbtLNqT@y9NbDze)O!O4 zTv5JLP&^}>Y91J$f|eouy%{dT!ar@1aM`T+M2E6%$X%q;Qu~fmh^FrZT0C~F7erFU zr^q-I%CpS&LV-%IsSs0*d@3h#3fV8CT*yJ90^Gv&3faKIU&6|tVHYNRJ7A2grY#P{ z;3{}j0Z{54OC!@xDI1xc_7()+gM6YI+DvamxC<3;gORej#Xx%KK7RTDNgt&PYuR8F zcdmAictNm2QuDZBXS_sa*pTC*P6m{uKlTZ2v(4$3k_^Xeu}py=C8bJ`XbDPI*Dqt7 zp>h)7M2CJ4n8DBdHb*(%Kic*eWUz~Tqb6{|A?X5oXK|KIq&Y)MIz>%-7W9CWw72nY zTt=0qRX1vEd578VUa~;TtgiVtY~zLn=eo=1jFavk$RU!EyW3(MQl&qO+qARGH?#IJn!{VP&>C>x*%~; z(0NhCg~rm5pm_>rSA_Jt9UZp#-ngA*WzyA)6(OyV^nUmE6tlcylu(&qOMi8VcHqdW_et@@>EHv$XT?E=1{%zWnwb3C{l5n~z~6k!c|2C(5|L z9x%vmIzmP&&Kvg`_{R$JRTBaD07TMWG=@+Goq^DLj(Zngd2F5^xXS-3u{#t zxV)5*xqbIf@6Q*f%YKC&6oBL`v1Z7twKg}zpoKvy)OeVfHh z=P`p{@)+*}w;2>Zs-`9CQ)e0PcPJW{S0^|DUoyQRu*36J(Nh(ICUb)>buV{VTTvevyEQp+h>xTq(TxlqwD)dM>P`R zoWPW1O0ffR!Cy~j24x5lDJLjb^;Vi{9&n^sJX~U%AsyV0f%q31zO$rCp0Hkf0np$* z#h}Ol)AHG~$?D0}gfmYcaTnAp<&Tf)zzMn#P-zz_e0o0b|EOd7oGhu;L0<)96Zgx2 zJ~^xexLHO`CYqv4?X{j(Ku0GGvMHOaY#q4!KE8#G%n+sINiwJO&ye1cE{8;o3yHJa z;azwo5@el7O@h?_kg7E0n0}@y!372IsP@T-neG8cEvUZ{kv>N%bx3yc{S`0_e$Mxn zkpNu2*~_R~76pZHiuo24R4aGuy8Ad}SWxQIR|YCPlCT=RP_cECpeYy}${<_gc}&B} z@g9I5d&w?p5R1_g$+jhfy&uOH+BQL~{wX>=Xt1RSzCO3dA#wHjj)PxZbmL3}$mc2r z*us8&LWktwAh2?_;#z%=KSrOt`NVp0jp)Mj@oCp}kwZ>TW zGo~!{om=A9ihwDk{os_W2t1xhKPwUY&CWj#Dk&F#Z&@_1GyYu)FYGVDaVRi=>gPW} z2{g?Y%7*2 z4kdEI7OdN@*wipk%L3dr3oAH z1Rrp0;N+|=R-lsvVq`&RnVy+Jv|lS_f7V62^r1wF0dVK`B#jM^ui;%Wu7feVOXn59 z1U$rAR{8%>t*&+_mHHtVsDEp&sE0rIqthpkgm~AqUL98z5=XqJ>J_fTUut%|OE1S= z(h_9Ki{RA!ytQwKstfqHv;@<;s0A>g$H~dkeH9`CAQ}M=Sc0kU&d_0f9qUE3qXat2 z%t)n|fohL~TSrUJ>v^f@_g|4KuWW15*;SS7O+vD*@Og?7hE_CFUKy#BBkvJRQ8w8f zO69xi3VV-r`;23heR?-Yk@of;^Y)6KZN_~Wd^QQm|4k@kecMGU(S+wbJR`&-TSLiq z`{@OWH0Dw22=?|>?rf=XRf4iO)~92jcL2)|Pu~^sO}Y5>@|no3wDU%8cEtIYq1WPJ zFtOHv*W9X>dNZhyTJ1W%eD^wCbA5(A-EkQet{HRqw;OVsMy?ejImf3hGjZjeWC9(9 zngor+px$$`ObgL|+yAr^WXBlTr050`wv+CZ+Jg{R%fwpez8;hsVfY4-(F!A^WGLdT zknr1QwkA0`5-UZ~IzkoC`>I_2BkUKv0IU=JukT@}B9{HXXf4A&C@^xUIZz=W<&zD- zfaj|K(}sWHW`Y$QV6|Iu`B+YX6u7e}u+mLQNhHYVwO0t1aRM~|il&pGAqleWu9WHp zr+~!X%(e22LzJCJ;5K9crTh0PQAW^WC=B3Q3_wv5Maxpp@c`a)J%mG+UuwD1(9742 zU5)Hu;`KCmh+H_$jK;EkguJ4=-;En8F3RwW!c}EW4es}o5N658T9a@BPymfA+UF*V z#Tz2$)*o#467pqjGb3z_I^!P?2eK;L4syd%w7A)Yh$Kn73vRoV(i~#hSOC1;B$S|$ zGw~ss9f2UxYH>6-|NRW-bOiS}R8%zEN5M-KWz$4vNB~ghfZDE=;JE4-;iKtfLSPPp zn0Q`Fg!rpM3?6En@^06s9lRlG@TGwx)>R}*Hh7R_q_w8rHTpYzl-@c(<@>B!zjAE- zfo+p0{o@$JV`-{nGprb&9hxTIR#=3N`A-*#L7%dBF}EEEwyPD)CjDB;`K(v%BSLcn zk+0Lv88&k>KG6FXoto_3`RAUEi6diKmQ$+MSUYEt8Vzp*E|DZUUh7e917Z+Di4vL0 zp31hzMylbaD5+txcHUO?6Jqy)t@bF~0RcdCo49{eL+y?h;-3NsWA&E>lU;%Aekr5p zEl3rx79`{o{-Qi`s#)J+-1qS|@lb5CezJy_>bIQ%$mpZId)?A1=wBTBxO+5M!5Oc2 zD$xx{Ri4pd`#1S_UFnWdeNL!BM3&jYHVFxwm`67ynUoIWmm%Om!b!%JC1mi0N4w_# z?gEGf(kbomb=A0+Qt1hpdJe7o&b%$M4pBj276%ceRVM;C3rZI| z@4|pP0_<5@g0wz|H7VnU?;c`P)COtPj$4Vr%A)sTk;?X!wxGd5d(l6T32moy4SjuO zvEimP3w4f@CO8lf%RPq^=Cx;6QF^hzqUa>?VgTb^k~WgAMRVuip7?(lF1P+mMOY*+ zM)bV|0O9}^h^UmxcmPOt9M(>R0twI%nm>@KK1Xe_p-{Tq#Mle~5I`m9ykfw)scpD1 z5umk6-y5qBR+3lGh%OyA%5ngd@W@4*_Nv5fdnc z4m?no0TAEHJundCYthg6P74OJBLk_yXAstl0yczXS4S$~K?idJr2h`2Ys%hSkvwK49R$T0cI6Tp)l&+$Tm%?-dV=`Es^!=34S4{k$XXL)|4k8_B2dIVxu zh6<~H8nM3>B@ZS>k(47~%77@YbxGROks6Kn_FzCIS2P6rwn13+g}DUaeX0YGeXN#r z!*`mr0FC4gB|>ypDYA%!C>g3g!t(*a-y0nAAxJx(i*84(EW62MpdywMgcS9+@QzJ^ z{h6Nd{qo{(TC(G#N6EqC0;>tnR_duZuUs50+CPiMy1~Y1p7qa<9e}68Vr8E=Bq7Rt ztEDA|6X+OV1R!wg2%;=o_VJ5;orQStreCSUis-nG;*$D6E(xUy02z-IcR~Y&MMTlU z6K3y5^KPaW9Pa}&Uw%Lc+CGmGZ!e&&wH`lWzL@%}zw+kiOXJUh?OG1;vO`qqD-&^I zr0hyyAuiQ%r>y(7(AV19RJraW3(-NEMjK?AHQ;Y32NAXPyBe^jcfDP z7XYvZDg^|H=X?!7s8>xHjq{K5IEpNtWnnMi)l&ZFgB7Si`2xckPgA~+jnWd>VpTOKK$mg#P9 zl-n$zLeKRyhlpCa|IAEV;oW`RKheV38&Z z^)_wV)#a*jt!9E9O~ij}Q!|Rzl*xwdh-ZT21y$AYIt3&cOD>mfp*p>n|J{zLU-*%= zR!t1h!3h8wNS^mFQvm=f_)wJ~-|5fOaB1pfF&z}diq{Z1%)GggK7 z5SKq76IPdp(OjD}U}t_|?fGv;Y(hrXp9xZTld@{es@IKwIj?Mct%ZnsyA=~MN-`V?4KH0(XX zPt7PHWx!?|C5c_t5+jtX_G_-=P{LMxrCQz3DL?47>AicL1x70Ab5L^(IVG{f7SEty zZU7op1#F!oY@h1YRJn}koV`gHn-p?0j=hRFB;OUvv>pT&Kn*#;!*aHFRhVkUSffku^7U9I!@Ge9CkBmjHn2A>_+W`u!}}rqWgbV6!hZ#YC`i zJHHyJQcuF0ZKH&#jBgQbe`>W4G3acF_U56S=v<@t8F>r$=Q^As@8DibXA&)C94Jk; z*Z4PX?2WYx>Z~Ja9VGllV=+7*@vr8(mg!MiCv@zs{E3xRuh23iK8aIj=XZxZguR+> zIqlJ#9Gq9 z6(jN|@aCXW3q1mm9)FpZ0;r0V;p?uwOCc2pmvCPbM_4O|@I`=1 zaQzpT2h@hV8s!4>k2D62$=QBP%3mIq*l{5+=5lwb5-CY1W>)$3F=0m1uJ8UUCp z&IY8Z3IOb+`9`OGAKr)iz#!j@cTZ_Nn=PzOk=u_=q_h&^$CQGqS=09PFWfQ%7mS$I`oz2%| zi> zRON+mfvBk7$GLGsxs@tf?)RrF*t+(l4_<;rhk)N`av<-qNtYzO;@1Sqz7((iV~f{{ zs4=xT=W;O_0|Pa*V79$junWI|-t;1bkf3bp>Vm_L=p;uJ&OYxIjTzpe()AOe5;o<^ zYMog4RP^xAQdQOuz28JHnU%AD&_QgQpzB4@auCU^2}FaWG>ytF$j9fi0k1N`?&r_@ z5pmu%w51uU+o8peJE)ulaD3cyCQp^RO1P&}lW;#UYkm55>$oosc zT)Bwh{Nrt4^IGc8fSOo62@uZvlP1zjIbn=~^}PwUcMt&V{!r<^gQf(iCeWg(zJh_1 zam4%s4Xis~rc6ZO&TvhzGGv?((vv-^W9g%cg3QDz6Wmh*Lpf9D0qkTGmuId+>08V| zd2_O;2ZO|^9H&JO2np7{Evc<|M8EQ|ib17MDt_<#*L?d|IrAUsvGMi6`TS1(#4G$? zbuJ%}vpdq3q6>Tvpe6DkkB}gHSY;<>d}zq9FZp(jn9rwNv}uJxp+5?;L9B?4wp7eaUq|k-r521lkJ@5%XU<aj@ zNdzY;1A+0fdbgQMsSaT8-wKgB7`7XeDQ6bWGcHet2v_TzGb@m%iD~fh^rqn%FEqxB zC)@YB5g3uaZVHRhb4hfvEf>i0IL2epjfoG&@gPsv1uLdD}iHC*||qis4o z*~$ThBgwv9D3taRy`=le|t6K@=iBXRQaf zT$Xn#HW>-S0V+uFT?2RWnH{gnL3Dtgs=+wBEt$wCcIj9cRd3T8h>nYs3>w2c!Vk{6fGD>glMjM#C=gnE`}Lp3TLT7@RtS{h zhT7RD?2c@ae5!yAS;eNFpmI}k&$vX~ zDOx07&Cq+8m%S`2Isjrj^HX-G4c4BPmU;=h;^i(d3gr?`XlJs>G$w?{Ws!cprH`3Q zs4hW?l&yVrp#7S)?N;SUtiiV_FyS?yH*qu=<pyz_MGLg3-5d1duN`R=g!=j zwMSg&9!l>eA@R!ztzR9&hdMtry?C;*UORJMqhKpN7~SZemm=9~9-Bgd3y#{zk2hY6 z&4Pk{i4&lrw;0oU_Zxhs9os_4dT?2u)x)CrfhBZG?l0NJK`Eax;}LJjdgf7?{6={T z(=Y2?aB6|JU*~%f~vXV?lfc$q@DLK+ zr*SN(w{&{DDzZssc_*(uipR7+M?&d4OQ6w)z}|iwlxVE(#S^~g!Xfaq24jEMBH;>p zW^pX{G@+n)-|>r|*rul7W@G;r<2PsL^@*`#GqG zGYI)gf7;HH25!~7yDLgIfaOfi-Xpq5Ex<<%<(gMw050H8ZX7;CerYEIk{_`ey6oZU z#4=Umn5d(TkwQ)I-MOk8hlDDh5N#g*R8xJnEvT34 zatJLIcD?aALJBsd!IowNcwoyT^{ivJiN!RifiwS1Xz&p3;6o#IJ=3zTz#1S8T@c2Q zBTl?US4mubu^MudI}2Pl^EXi65zHqG(R468a;)%UHZ1g~V$FjDYzvHRQhkWnF z8(%73GN;rjx`tbz^$pOPZX6-38hzRYNq5KyLlaN2$#>DA<0 zct={xIrc)dEPwegS2#20)_l8RElj`}^G6bIEbdnQG%a^aHnyrqs^9o0y4jS+(%p8? z3HGB4`s7>dUPNM{jf+3?phy|aC- z1th-bQZ-L7jjxkbuji&MD;mVpkT%2UHBR6ifqmr`WFs)K$-f{cfGW{Cvc=$C@f4^O zl{O{Ke!<7xr4r)zx)QJ^Fu|B-MvjuPhAAXgSj;653Rr**4XBrk&O3{0DYw~K@{r_+ z+79yfH|7%yjG$2h{p$d|{V#aU)Wi%VMX1Ua&yO^?8|}LJBs>}03*wA=)q=GPSir&rWY8-91$v}H*k;&7 z)X{M8?)GrQf1BZ>=YCLe^5Is{%3jbSvr(dUD}>~#Z_tjl6Sc-bXu5VWujJDF67L8Y z%^@*2esTuL$@@}+mLhhStE>L3*r|F7Ymw2&H5tc+v*jv<9)%849ST|8@P}VI>;tm9 zJVQ`cQk%92za|hMRgstJ8L7V?Ax5yaO}u?eF$;@ur%wSSBwpoT?^%jdfY=6U&u2z( zdu9S|0x+JT_xk2bys3a_y#U1Hm`yti z6;X?O$scu!jtL$L5`chap?HEqMuV3fr}>yoNWhzA*@q2jB^&+~IP$P&7fJY?0WF1- z>c#Vu){A){^|Emt~h0O zZ!*%u!RG^mPA~kc99j3%2!AD^jn<-FMND#e zRuA`}B?(d+Ag_h&M#c$3AhJUen^4##%1uk%^HJs-?}ZXtl5W8fey__gh3 z@g1EYW3MM@B~lc`MCUj5cY?4x1u0$CGu(FG^!$@Szmw$Q(-<_k3ko0!M>%g^yivjEh*sHZr`HM% zffF=cG%4cZf)4|BMOaM32if?qmbfP!(q2Esk~SbjIO6lf^g2<#fq(sSksJndly&R_ z3ifg53}UV(<=={0Z9VF;`sWW_InVhxO;iwX#FW{1EyztJ3F^4#Gm`HO6bZhm&O!4^ z^Mds^A&Bs=^!0KW3?0#pPKXnD#h|+p1M2cWUrk)}^Ff}MEYF*_u6w~I0%CJtn1a^o z-}ICv5O@zQVVUs-dFek-(X1y5UL*m9<3jM8`pu$WJdrV>5M7ozpIRUJq7ur3z4;|9 zpaNa8JC%dx7Cs&yp%LnWXEBL$EZ0jw-jj6d39J=SfOxK#J-M*j^W=uHuw;P{X`bYx zXV*~1NcA$;V(Kp8q252@_`nIZ--OBIS?TCUsAD&b5q&7a%zEMoDD zdfpco>y4mEdKL*5THhMrbo64L@TBgEu!Qrx>AS%Fcf~PE!65zY3C&llBz^6w7<{c} zm0M_%5ruL3M3v+b>l4}IpSwCXX;+)hE%#98zO_5XbH(6x^QF}Jm9)AWyPr}1N{$ch9H2rv zfw{@zT-!Q!%97hsd3myKPwsuT6S=X@{SRrV20>~QAc2d|l8 z7f7v}7N3B+tks!SJ9Db9(?g~GfweAW+FM_$R}XGGPZqij4=Re&Xq?k(jcx`%*31y@ zmwIW<8{{_MAXSldsImkbM<;qWZQ|Hf5~itW@_ z<-iNCy}#{XPPOQ~w`y^-ls9{Aaffuf-mgpSzDB;R98wE%s@FZNN&I3HyxzXD(ZGzY zC2GgYcp<*H_Of(gFFzZoZO=FL+3xOQFt2RY@TzkAe4*R-fj;Z?{_JZ1aivY-&GkVr zbwI7hyu|N@!|xJ3*N2Jw<~fDdc5G&D4#+#J47{`BX=D(cK_qZdIGg_AoMeL`-HwU) z@Z47WN;LyYSIEN+Ja{egU^7QkAJsB%23QBFEJ};HNxOzwY&vq+!IO`Lgy_*ikF(mDq6?rd z&V=-jzN+>eROOlBhu}>U&rjs8VRLkLpymFY=b-q9riD+oR=Z~Krx%>X z56wJrDZA}R*XyIzWbS<6bTQCS*@Z=~xugVvSU3gYb(zNH}D3EvCUvba5)ngYtmgd!~t5y2bsHdVz)S}p5 zi_lyoO8V}Q6Amt1n5bjP9{AQuAvB^A7dDjCvh~Q4ra23W&w>pPPM+Dh?zfj*sDz!5 zBv_m>Zpdu(J2f}Z@PD}go!;Z~ z>J$JV1icq4SS-01^wwAVZY5Uv9~!y7Z*>{bK=wXKT)nsYf$Mg|kHHyQ4yUjvzNmZQ zb2}#r()V6W0(8cZHgjXYS-AO`VHt>V(MJ!X6;PBPXByfw^ZfNnqgiJ;)9kf(f2DPw zBKH2HE%k6XBLFb&+O}Y$tI}Nieo`KiqrX3dLFLz#GvYMlgjGfOKa4Gd2gMC%6A#+C zYCwPr;_v^8Fb+6)b+ceDP-*AhQaf02d`SJfN5o+6tXPk9J^fez*qPnk_O@Ehk9muS z^EcMW+3N0v?MhJ&+Jv7e@eX3&xC)YAI6G;sTZCw)zN%MxsrrPgyMfL=PQ8pUN3ucp zaMwgU%E&pbjsrL2CpIdkb0J;lJH`0h)|;Px{lQ&oLA+C`*FSs>DwYHM8qO9!9|T}i z_w_6&)_{)Ikrn!f`BK{Kp~fHeHvvqx_3jPOxSey=JN*xgQ)cz&MCAWFCiA|2b{jG6 z3b?;_+waM(#XL2!=4);S)5QJ}nncWYK*?+PKdx=l4Reuz`vVntifEsct>s@jYXM*( zOCk$^#lI3;S4;7GM;yOhMSIBW%k{gJ4HG9R3BSplLA$1s?^*gG8(`g?$ zej;30k#EhpfN05bv_qva4AeSr=nl~_#WazOc*W}C6R6gW<88AFlO$l4(s_8Y&o-au zbp(G!-fT*4h(X8bZZ>_J^vZsnN|{h*%yBjRIOD7>^|JgD2+!RDthmq*KCVdoF9PfE>#tAMRt#WY99sp5sELoXS*@+oplM` zPZORv{i(>qL1#^G`VBYta-|qfMIx!=J1fKSpZRoS`32`U$GB&!SUwmCnC0#=xUX8U zbK&XeY&S+4GOp~5ldSIj&Cvywd(7{poS!M^Pe@b#ovmSyhg^EGEdK;Jtep#>zn|*Z z14$PH&sMw8=FP=X4dcOvw5>e{Bgw$EoiBp073btzf#nqnx{Rd0K9K(Lq7z+bxHLt_ zqT)uLADD%1zO4q77M>+wXIUJ2bM4|RDJk6e_r7Kxs>Ex!+Aulvs#?cukRX}X=ZZe! zGQ)1GdB}cnz-|k1cD!*zt)B}u0nBR&WDDV~N-Ul706@SVxAy`;5uj|gHvP#j0X+J$5HM&U7=I#`$oCjc&V*!0jG_==omJS-e`q|Hq?12vxt(Em^(}Y2> zo}GJO%B%$|xBLC|F>+H3-VfEg3qDoUi=QPyfMs9sFyss~RwgC*3?w&-E|;yI0A~nl zZKH;}&w=$`O2y5U9iRU$3qQQOJ`VNE`LTMZ=-QW?<^-tR+_MB5GQNwmHE<2O+@3^9 zGl6(4`FeB7psaO9=Ve#5q08JLC%(^dsg{rB2~i{vjapW)N(8v{yEz)qG+uC2Fi^JO z6FC4!D?bz!|BIpSn_I}LE}&JAhkz4d0`SU zQwpBG1K)b=j>%Q?nwiP|zE>K+U)HN~RY3!23?czD<+?}as%dAL{@1)=X0}g*5pR)s zc`e9g|L@hG1w*1EmM9sGB7=rBw#g+9g)|c52X%qBhWByWN1R~5*i_8zB{t;e7V;i8 zz^pQ%D@V@rqBOypSYDk0ecuI`$>#}6M2#ARMQ^X^tAK?#BvGtHvWcw+baZ>*5BH8}!Uz&&)$)SZ^LRD$EDQY&y8r8)q__~==G z(&|YkSF4>cE4)Am7Mo<^;5&5z2+RSmGRYY zvK;WZCR{ERdobm!7Lk%a{l@Z}sb{@wd}m#Oic+UnRt>W}L*#^?XZ}!(@0@;9y9Ka6 zgUb!@JvimfAZFgeA`jL3c6|VbVEn!w@A_PvOR(z9V5HUPC@G$@pj4F`8aSHeQskNV z-{hoz$4R*cyoZ`;tVRb(t^%4LURSAT9L~dpPC>#(qqgw_V7KM4F3t6{bv$@f&Mvay zynWbpEaYIMW^P=NkjeC}_C0*T>l3KwdVIX!nhmWdqIPBbqeP2)!#_(Jb@0c&1t?p2 z@OM*K;#Spt*{7+bTSN)JNY{6RuvxBDx0(n0EzhQW`PH-KYtvA~e33yOdF z&`a=CuXH5%ET_u7o1oWjDY<(8qw7FjTdi#D*kCvIvKg(`9Gk#DV5RrKyJm0T?)SD0 z`u3-xe;z`CkAi^Bn5wJGT_8H^DP&io&AsU_NLi5&Y!SdR!t57DYH%+NXth56p3EU2 zC(o~-w#MH)tWRsx8f02%l9Q0`u1fn4lG(_m>e#o+|264)d%V~=Z!cMm^PF{Ex|{o= zwo+*y#brY4wjBgqU1{l+_AKC#@2m5kzdLO`JBXuRA;I$zC)`Ws;3xSf`d`R8(k>Ss z+Eu@33)seslh(rr2inW=WZu5B;)R-q!8A(sZ*amw2xFqJi2by%Z0|}MoH|k1H0@H5 zG2v7KaijX++{AF+M{u>sMR#v;BH`{On7lATC?L_ZgTw?0EOFtQ6!H_kv znUnVN`aG2Yt|-O6kek#)i2vl~=3T$l)rch{cZc1QDB#vExX^KGbo9+CN!I|-1DHCX zGG6I@W!ma2G}3*!ygckTnknbme)`Q(ziqa(?^fV7E5S2h?dGa-e2}_}B5HuxA{`~M zG@=yeCKom8>+>=<7IT0*R;yizFA>WZbmy#AdtYvAP|hSf(z<;*xV}j}h#mz7f-biP z9%|NS#;KS5BCbds-|Fl#v(W2u4wFgiu3GrnO=5#A9)`DN4dBm~eD7?Jl7m>C_yzG? zpO`i1@0-Yk1$!V3H?CV>d-mv?u`Ju_PrOPzKHJQ38TG#X+_)l*A?xBMM4J+&KgV&9 zn0VMNVsYX}f@iJEi8oZ|Dz@oQ=iBrgT}Yc6d2`UNSVOGlx-;kP`lotO-}PdF7&;xL z2+!&aX7L=`w`Qx@?@l+75=W z6@Z2jM@Ity``}z?&jt|3O9!f{2RA!H0A~*U02NkU`oLy99K3Lfd`%E`b8Qav-iQV~ zvTU|>r3t{z4Ue;P*zJzUb9^kTkt(oX?0IRXL*yw)r0zQ-n?ZI_ zRjd%c-M{&~XuUnECfd90bo=}!@YM^{$N|8omew+wnCNqcTbe#;;-D(sv?g5D@69uOwTSWm!2gw^l1dKi6sRM+H*}dUmlHbi3Qn>1g^yH3jm}0xHZ30Y~Z7}c9@2m ze{jG=|Hr`x%Pi$5wdyOIPj|Zq^LPP1Km6|hH3&fT*EIFx{oA#>2{$_jH;MBx3@d}K zcnBlFEG+EB#SH3ah2z)FmF={1xk?xTE^Ddif_IHt))O(8Zl4B0=bZcdX-~xV^{LZQ znSmPC*oGn3obNs)u+v+gGYoyyzxoY*+aA9vdYD2O2J9XL0bBY9+ciHNwMA~d2(dI$ zQ-g=B7=Icysv%?0X9eU|6A83;oJqI|ft}P^8_a>hd~!HGM3#wPOTE>ou;dleSI~dw7$F5Vp&;y50f=KcV|GShv`k<79c2{ z2*-VA96cpL`ZsQ57Tu?zv2*ONqe}UfoxJn%iF=6J3P!oR7^WZmBE~GRov*4p>+qEbh1%_ls|RMzUA?7u8d3abvQ& zx~eRk)n=ens*cwrq@8sXnSX z-1%goPHoq!C32!om4+{ePFUVZ*=9r`AgYwG=acB%?Vc}qQYQUfWL3ye@(A@+meFrJ zT{0Yu#o(RVjo^48%4)z~RPC`i5WuaXCe2EO=s=;M!jb&5ee~%{ z#E^KM8)&7vyVZ+YCHB4BfTkoY^)Q6a-)jlV_pq5hAh3PO8o`7jjl<`%;mGuXOtiWY&6II!8RaNSg3+G${aL+?^)f3pCvH#X=m4=IoZ9mW&(I*u{ zXUB+I)8|0b+Q`Ymr*TxN4+E6uUzw}v>*l#F(sq9LP}9#x$xxntsafv`7;}JEs-s^5 z6<|yTUdqbJ#LM|7?O6Qd*?cnwNpo}E+gE#Pn+MOSp3pl=r!2gZAC zO0CNNc#eX{p#hk87S>2znQz7)6($1+K}b0F`5k! zmc^@)XFXA2&0uA$PQbN9e~%wglZJfnRYwb5X_=B)axxv3sBbQa*R55T@pQ;b9P?wm z0^mprC<)M6&MjTmsNU9t!4W3|htWrW#pW)ff0^}a5!=ix26rpncFzWb^Rcbj(N`5J zFV^g2J_|A>S$VTYyes;+??15-+=3PKS>KpFXfZCwE zEri)o2ounQk74F2$+$hmxVdk`al!A!QeIwc=39D&WbDY|kiQh@-v3$<JOyG| zg4+Xm4|^JylAnJ5k;#bGrZ3kvy!u6_DI4Q+j9HbO=+Hp^xHL3(Tkzt~v4P|@HjL}G z#98^ccTNe~ASp9rjRh@TE0|P+yuD82Njj?f8=O=OCAa52rJ1gti4N$Kb z0jn$t=(oJ^ByDJ{8ZmDCtQ#FFUJDvq6cLRGc?kw^Ts9C$4`{xqe&%YJthQSybQ!If zFor?&DNE48{g4CDZsWSjYTnrpgOio?7tJh26hOop99?&c3;WZjW>T{n*7f3>VLplx zOwAah!$rdCz=k!jIUzZ28#() z{i-kbEA}Tbad?NZ_Mb6__jSwdR;5`f!yF{?KSDS2w=z@@F0@A|U{a$=i?Cm$JWOwy zNad|IQouxY#8@GDK=Tvw{9N1fFH$C%fJtFu#0!;5EBYr%kM4q62%y#FIB=Q2;V@N~ z_vMqSDr%F|v7^3B$*| z+Lr_%@k>j4I=-D4F$E0$>Z62hYFG7LG1%XB0CB*>*sx{opSQJ!2U4@MWNLpt_+&%y zjf)#Fxe2o5VZSw|JPo}9{k#~K&AfZqDGCbk^tk8Z8}+ko!_guQjWz;k+{-S4r`8%Y zh#{4=tuV@OIuZ!av}{|NYVAuH(_d>?+3TdYX_2JixhSzs{;O&k8fN~L+<~rk-S%#KZk3q8Ckd1vI(gK-o z$Z{SQ9%7|N7Nc|QI5^o79%3~!|78Y`5ttEPrcjT4qfW?QLF1gfu7`P;w^dP}h*@TE&PT`Tc<~ed19Dv$ zmTOKWbUy&8+^ji(@fXrf`01xt+Dq_r`O7dC`Vh+fA>Y=l14v@9MfJHGU7OQtZLJhh z*R%YJ({sG;!u){6RL$Fl)Ah6HC7!VhGr|G%Y(YsiUWY`su7`a@&r#;JrW6Yc#x;Uz$&1F(Hx5t0IV=LI$H%YXR65~HMj4zjr5_>kY(f`q068Z7uc*}xtK($-RYjq8VsbIu|<;pL<79fax!g}m1moxi&% z0!_^qJ8LIU(N~@<0&1jH$QOU4t`hw43MwgZA(qx0{KM;1CVlEiQ~wyLA)j|-Jtb@Y z|9A=c;)poI?Q(hB0vj1#kwnXht^1qzVHS3bhQNoa~R4 zRAFvWf);myhQ_s6V=rd+OKH}!Dw@;Qz87q&9qHvIkV|1;$vGEBqzHUh!HIi8|LA|} z-};LHnKG74MwJmj76QTV_<;HkYc+o4>+VwQ*R0{0=s!9*n}Av3?du~2OhdFtjznE7 zAiBiAUsLN`G*j#RSom5kN6TUhsWMkkysG)j>6~#z z;bjS7Mm9w!c;}Y98gG7=m&rPHNt68nHjkrY8yUW9s@a+$4&#?Imfj8M2Sf28qk$iY z!e*)1xTX3+sOQz5wxJW`vb#h^9?^X{tu900z2&a@$X-J5QF(?!rHnNcFispEOEf~Z z{3h)7-;>QA7X--=r=cs-`Bd=mdo>>U^^|E&n9%;wQq?|?{MkVB0o=P5bW)F-I30u{ zLXD;K!kBoFZ3J&*?Et?tl83B{NXKyq*P`q3TXwlTEJkM4hpG%Zg?X^t#8}L&W*=B2E zA}{ZtYL(}9pMp2Za&2j&%Qy8(+IirW26bmgt%e+ggIr^X&DbQ4OeUmAUY0fPt$a1_ z$D=XXhSKa2p6qm96(ozhK~0mWyLYlp$P(vApV-C$5UaT6e1Jy(XWAcIWHPJV{n6 z#t0bzm~^*$4{hGYzes#C#8&Xh_7jVdi)3sJoRFRDDkVC`FPl&0vFQYw1;tuKA0lOT zyNnB~uFhAYDAUp!qMSC_SFn=rs$J9j+UzvLxxPxIU1cO?Vj`m_sG2CEC~wOO`z;e- zwA&bJ-QP9aB}?8PII5xg0XM5&3AG_7`4&S40_*rLYwhoEO6I@;$rgE;)4*8yj`am& zxM?`CbP@4a2{Y1{40&h@1)isRFV^^CdAH+Zabq8ixz}9KfVdG)*OSU0>KhX7uW$cj z$}Mfd%g!yczF!Et9=OgP1UgzUM<&I?9xfi-FE@RA?3R?@>^3|GohM3Cr1J$hN<$?> ziV0OtH_~9Bxic}qX_tdI2M-Z~iLw9>JH%}^CEn<&36IOrrT7%#G(`E4FOaV?5>IF0 zJIKLJs4Ko)$~hTNa86U2{GHV=G#dEwS!xuI z@gg6`HB|3N>;)qkApz)wd9~m~e|~Zp zmV}I*^_P(SVzYq3O+iKCK1yb$&exSGY#Iw1|4mV5^hxZ|$P*t3JUzOx5sur6bWKOU zy7HV7UJ~RKBnd|b!On709_w((f?j`$f@glp3h2+z;7xBX00B7>jK)m^7Q9jXM6xoB zs=sfaoStMeL4tE6kKSv)p_B_5eJ74`A8PcXR44HpPdoEw!a{9ib3^_d=yYkHDq*(T zRk=z=CpZm7N0X-SijaRo8e+D(G${goQW}7i_RO`;a**G6|5wNQ+ftCnG64;+M;aqxV$JwM8d}U=;F+IL*Q`Wex&2&CDl`KBKap z1GIeP7%FB}0Lg)W#E0V>P?R;=Lypi*BUj8=Ej>sG9% zv3SfXvUkW|;cESldvbN2hAJnx^7Ux;t+Zo+44e1H-1OVG*VpuZp=Af-)IVa0Xk?SMF*XNT9I?vz~RV4@5KQb z>(TjXP_6F1s{DF6*2zPKYsw)~ce)-p6-U6`{vl>3ld13dB>%<31KAvMFX>N=sd7`r z5a>_SJRx-}KD=*8@codeKvawfgDCcws{ZT!3;pF!6YS;m=AB`P~q7LcC$LYXh8>B^|| z7v`7WJm`Pz-v|xP92p#XRjGgi>LeGta4ENn$KK~Unk!}g(8I4B`0$1bFAMG2yXIEqt8!| zff7CV9}Bap`-C>NrB|(8TvQlQ^`Cnhe)<>^aBN{%NQ%iqVM96v`iiY~pZ9HRX16Ct z+=27Y;O%OH{frcLr~?WbqC>Sn;*gZ8DS1f7N8g1sX{e(TvR-MTs_hSb@aA9J)5A<4 zECc-#D~>3CZQUwDGch7zYC{gmO^#&$qa~CPqfAu6@#jgJc7Zr*sIBq{#W@_J)c>7LR&Dm0UX@6m&r3m9AG88YTKMnhFW$k zdJ8u1ju?;eW3o%K%~Wu#ZWQ!)_>RplkU#CGUi}N)4chugFFnZ04EC>SHfgio+nwcd zG}Jj1k!vXYlOoMOF{sc2ssz>ZqvFKV(on9&e`t zbrqONSo-_XnZE(VvB`;(_y|EZkda-MOD}|>!E;DpojZ4=L*b%9u)d06!lY}3K82N{ zpX?B;mXq=?Cw}{*#|I0Ej>HBEeVrl4iK4xf2ng8DE38?2q*G2q%9V-ve@(v1{+G(K z96-e&X+KogvK5}(8`{KK>*u$If1!$)k&qZKk^%1kRc}49^#0K?;AxfTf`zdcDnP=k z8$((xYhfCXxOseD1@K>N8H<9lp+LP6U4AhX2gU8{`5@1EsL_uZ2h?c5`3cZaKUNpMbAlAd50>!N07}s39}-a+g1k{_**!O6d7VT;PvVTRyb$w_-rYf zqa+HJ6yc#v5D|7-zg$SQQ}g#mke}4^D6^B4knKBbh9v@$)h5VO7(GfUu4J=1p-tA9 z7zibsh=!p@&`jDwrABV&jZ|Zty*?TQPc3d+LF18rqIgN;^CPIp>25zG7p->|_^=Qx z=f&r^lpJx$?18)1nj9T`_FrwocdbVs`S}V%eLoQB%Sc#6yxeJ|N@)1i2Sde%n`W?I zwps)ziJ0EFYjpe(w10FE%v}nCWm4s3P|0pv=80_Lblpm*A}F#@Zmwx`@h0J%Czv*V zfw?&14n}P=h4B%wmOZzmU{A6n#^o`OfBL(rlYS3U;@rd|asaDjo5H(otzg%3Hd~G8 z7vIF0P4VmfrC@A$p)4FuBxfZg`-QOV6`yv2($-xo!&FeKAf2j*_^zio6gGN~qWcqZ zB)0RC9RjI(zF>_5%QW#R6?<=0H)ZCA8ga7)nqLrF==^aDGniMxVzM+v{!2Kq5d~=i6oH2 z8-D|&0`WZ2k;PprP*M9ICJw)I(2ZF)MnSS*PEb(jA1jm0cG9vn`HA+e@-6~(V*8}; zuX?wC?F|t@(>dec@^`FO(*k`N8m!o}K4XPfr8%)vh@^|{IA$SOC!X8hQY}M`JW991 zl@IUcvGsEaVByKU$&dCXpb0cU)OpBSg6=KHQNSZ-mp25-rO zAYZs;dA~=6`9VvtS={nUq_u6eySUqyoA{?>28pLijyJTGtH)$EzgWN{*e!E7vfbQG zaOsm8Da#o;!#(KuH1Q@QSYBAl=N-3c9~PS67Ig`_i3{gr2J~8E`TEn`e2sd$UmcvCOVFY)|>0hvfoAl zR$cWw7K}p7v}_x*oh^e$i^3+u1+Y!&)kQ)zmissp9!`XxmX!Wt{6NMKMHZIHTGBMa zM7E191B&pTaK6CBzd*fCHC@mt6SW0rWS!yC$J0*gQ1-EAp}2_)$@Pc>`m>airWda{ z*{G;Hx%#y?|2!KAxR@M+fcSGFzDFv(RZTF@BQzMo%Ffh<(FqLIGASCp5 zQ+yz#+Vs+12c;!fOIv|DR5a8CL6yk6(#2g2vsm;;Y3{Be91cFS1&WkpzP36y%-q;6 z>)j*^I9mhTTKunGk3ht0cL9DCRoV9lZCQO#CqGN34lQ}9=eNoL6bGUq$ z;A?SV>j1)xb&NnIIspyJx7_`)&S-ZDhK-+-V=sB*X5C~|F|diAT9Q>(Q8MpJ1(k`% z&bu3yI~P&e+J|>bJpwVt7MiURDLfc1&Hw8^{_oXteR*+hF6##Z*FRu_KnUmq4up&r zF|x2236*%j(>+dVM=UCFCVQq(TOJEz$92Zx<@>@!o-oT`P||9DDX#T&eAJrH!MXE^|1pJgH&m$ z<+vz}<53tUqYpm4M7v%qL?p@mu5R~sX7$z?tMW*YJhjZeo|DwCxrNMde)#NfCr|m` zRy^;gsfQLvR}FomH#xrIsAgSBi9=Bw&@pfOmB!syo*EIbc z;`y9hhXbl113ICLW#7Xs#ru~LmxSI3itKjrr0kWBt#?Dez4oMgZhv0(;E36W)Td5w zrqE=I?-;yF)kcAUl7lFuc+2(sXE(%*5^nLA4+8_?Vj}bRIgy+{-uQ8xqMz;3(F8ef0dT9@8D9joR=GZ zhhc&BD`z1VJ`A^ibCne*?T#sZT*~g!FbC^=v%BxVE=&s`K&{6XuS>Rl9(9Pr2z&(Z z-v`tA;I+3PMOs|hU8b&(V}yHnp4L3rf%i>^CGuoqTd5S3Mmo=Ze5 z81iWC{swck1*x}&bN`PzNST|C%(pxDb)q2`;{2i2|N1*^@doC!|0Bk&Lu>Q}&Oxc) zVUlK}TedGr_QQjdmxTNq@h3|a$&a2NHPs{^W8%y`KX+4;v@DK69D#oaf9G`agq}sN zEi>I=nwW~6*RMamA7Qv^0ZM9Gbo#nC>l_(Eg*30XD!jM^B@cf+(G+eJ#<$sT4i&iY zA%F4=N$SJP&iBXem}A*zB~J41>R||J(?waB&7)hw&!$UZ4?v9^uE`ei0vJjOa*Xp> zxpDa2_L48S&<9;Htp^z;0W^lFRWK|ThsqM%Cb^C%FC9sx2r z5;K}#cn@vh{kNTK^E$jVwLe(vLBczd$_^$0fjpv8l!JD$f*3OCUa~IV_g^cC^C{J` zGBcu(pVU!EuXnAI8qdTyrr4psDJ-Wwyi3dSc#JUkjOakC&EX=XIUwj0{lpBrR_Htd z2!tx_hW2Y6Lo9^I1Ht8|j#tLWMtj8oA_Rn_b!1`KkK2fpTN(mG7`JzEf&!qFvp7my z`ArM2nNCkJ5lGf2rj&iT`r%G(EtY!pt+mvjfKG^0QKI4WAZdU6@h9L%5d9o*fFI96 zHYVt|9}m7}B=~PyNic3L_r|bBCa1yF+o@slByR#D4iNHVd{PS`c-1bQ2;a|7nVur% zW2G=X#m8{S8&*)31TF&w27S0BCCdCrV|oX4cB>=C$Yj zGQZr+JHx$4kc<1;VGA!aPeHn@#V?lYy>r@iYV&t18WLOg(@}-h)8h5vJRVo8yEDrB z-V`O@r_ZauoJQTB3Yx7QY&L)#4h!x!GHFUQrPP@O)%EC_Uk`O_U+krxS8;3F=`-L8 zdLi}bCRK8eWk2t(CW4NRhNFlOu3~dwKO95x{HR@HJ#>G@v8)x^{ccS^A!ot8c~P@y zwy`;8t@7u|Ia(mcwo2u|yBZU8(c(kexO8`?0Q&QAe!N%uKGd{P$5v0js;kNE=!L?} zB6$sH`ThstoKB%#iK*Gnvk;9BOM}vKoePSt0fZOLvo&3dmy_z@qo+3|=D`&pZiAv? zA7^YYx7%shj>AKL@R^mcHeI)^w`su>L)uMsvC6M88-4q7d}%mbkrwZ&Ry-Ot7OsKY zyIt;^phg#Sgh37uicvcm9(?e=b>%v~vA#xcujt6JzashSKkSO1!wVGWHZpB38g=r{ z#TKx!{(AsK{5x;89CslDj%h9~U0cK3OP0a<+(YlPkZI%n6WRGbe*t5U*VG(OUB#EM z=?;9aMkriQr!|SXh7Xz&Xr>_}ZcX(bp8cK=Yb9Kkh)r)%+aFWi$S}p;v(f%<#z{+e z?VO>F8}DT;-0c%ES{+or z2K`w|={a?J#T$XpHP$JJzMLQbSlqks*Gxz?e|K4KGdVTn7XNL=X*^YQPe+GqEltB7 z2aWIV{Rm!nbMzlb@_N5-H@^>IU5zZYFB4xezCCB{i)k9MhaUoaydhNXWFhjH1?jaA zGNbj9m(oLeE(o^oTklXZcX2w28m*)=9t^j^9(k60|F9E%cDr>3tmEL;loGUm|bCIAuN{$ZE-w*vTPkF+#! zlOkWAmxtQIWUoct+5K$XzPk@mYGSOeSnwl!Wc5!DwFah1!y$O-!2h(D+T%oQ8WzYV zEt&Cn3LOpPkg6M~Q~fVHxRS>jG7e;*uO|{%72=p4ROt4UX*A@6fu$_6yX<8Tprge! zh?gmI!t@7HTAC@~o_`YZ&`V7t?x2pFGCC2q_w_pAtO`;pvHS<=kJBT(En{;3{MoCL zvhGyVvjukE9o!bND0vSxN4E$;(Y4HEJQnqe3riTt9SRlrJ9*n6tPy+?g0MGwt?t5# zoP6Qs`wN?(=y40PykXk-HSAEvgiil(_tyQFCZfA&aw<&3cD}Nu$((=|;rVQ3AR+!( z>mDd8p3UJ!LlVw!z;vo>rlr2CLH$lQ=Xbxkck9_szMwo6QgOQO#P|Oo{>++<%R-8y zLaPuh;prEf09f2Jr$MWNS`R(}M8snH6kAxaMYZ1itvNo(?|PjCr|xEp7j%7|cQfPk zGS;hJ5{aaveQ$iwqKaV-&%ZJ`_>6dO^h(2}+jiy!U?@EL2tZlzpnw*gEganby$6!K z92lQ59nyYkT*N#7({cFu-CPlKuAH9T*S8k75@kPNf%%ht4O>=%m+awpWlyNzmn}A7 zfwwHj&FGCrf6jnpmC^N^}1K>1&vn4y=3^TYz8KlytJJp0|nTvXVYx~i8y9YH*<<$P9| z@;~dh$QCUtV z`o@#3A*tEt9DT=42LP*a3zWmfxl`TSOU1d~` zo%;__HlmDUn`)X(>JN3NN9r=2TNAq&sUN`{`+d|ZsSHCvCxSa1vb6-UcZIa1zJKK7|)7jgxef{9Aqd$<{ z^iM`NWlv~!-2Gf0GyGZov{9K&LndilRJvn zqe1;=mOzyub(!w7mZtweSN>jbf##D7UXbLujlcV^*Z~XXFQn`9l^=@-gHNnVYu&{R z+FuaA8?qj-6)@)bq(%i|JOgw!`|{gxVKI_dUo-(*UiNp9*-$W5QPlZn8<{NBSDkpg z?0O?pG1$Q4sQ3oWe(4!Gls%#x;H(28{J&~z1%IAXz|f)-Qw_h|GM_C^;g2nt9#bK zJ5G(y8s9~5p_dY_9G3NY!}N<%TE3Iw06ycTO5eBjVvXb@q^^#F9)H(R+vjxDX!)BL zt=Wj03S?36tpX}|OzK(bXU;Oc{=V5xs;kSR24U5|Qj1$z_LJ+?lgt`kJaZfwWc+9! zlQW3?x4VSAQ>_kdQR5Qc*K`K_2RrVZdc1ra*%O~yZQU;IkuMM)ci#x1^HR>+|5>(O*pz&CI;-%w9rKqm!|wZzl|@FR7!$Ezc0N)nD#UrHU2JE@uJ@Oy3g;?1 zyx7S`IExr>RV+tD;bkmbdx<>EZZ1!MSDe=8-k&mFgXBGvnj--3`!~_Sf8NX!p}yVi z#mxNX?u!A!k=OennzQS+B4LZyepC~hQ3g8-JOK77%v}Z&!ftqE$Jag6l^yr!vD1Y` zK66VQD+d`dvbeWSqbLd0P@B`=1KEw7`+k0e{PGk=^}eC3t4m#DyWjNX06M8HH~B+} z>ty{oh26p~f#;8!m&PUWpScZ2QEo`)Nt`KJPS{>sLL%VlqvLb-P??;nEVdRd~=(9!@H z=;HIP9JVEW;++-N{)MqR&Gtqg@5s{&AbLjRXuc8?i^i%G?_AcAYY}zL2u!0GD(HDC zk5uX_s?FnkXUe}cAZL23xrz+atxS^ve>S;-xBrUP4J>(k+qL^8+@#aZ%j1L%8UpJ@ zJZ_QVVY^7h>o>l!N`W1(_chFzzK`7_p!(Yq#+|tF$vGEGJNH_x^;HUYZXUjy%dcZ3 zR=?;UP=H3^H6c778ETfsa?z4y?-kwDZW!>xfRiR?FX1X>b1+EqcIRZqRGpf-O#dgmcUA=DE<YSQg_)B!CztpWqf^fR9Le_To-43bH0^w6i-X}b z2ko9Ejm@?5MGW81y6h+Lh6pl>b<>2pPk(>TX0(w(U71Mz&^BqFEXs^Qh}tyjE!^IO zjaC8};TdSNE#t{#kGcSF|JvI|Nq`4<{jnboB)$x2NTd5n0t0-f;IqOQ?#E^EwEFr| zoA}}0mfVGzra_MgLXJ-G0XE`Rr%5D>{hnrr{VZt7(cDU`127Ms zcJq6agxvAUe)s9rO8eK%pLft(K!PPsfK18xy>DwNfdIuoRi>wZ#+z}1`%I)t;2(@$ zAaS&s%MWH}a@er3Y6JiT$m*_v4Vq~hJH@76FHED3aZW9&r}>Tt&;@T3C*LhZS#bC( zob;HM1NS^5$y(}6PLH9G_c`R^SD`fhEyQ3b_Db3*wG2hoQVxzJe z2ZsP+jb?x4mp`s@uTHIff>C@L2rbH`&6`0-0V4gM_e zJY@O7-Sq|0>F`ftKFgjlV(wZG(bQ87f6q2;nvwB>%%R*5MsEV~rr8|w6ygqi-Eo0) z(E6HMbt44Nywb$w4UMijo4r`(A`@G=ce+Cl!qt6g0eG)a`lyU&HDH2&)!VjM= zOd<4JVkCSj{Y@#BAAf{+#PJR;?N}N-d>No?%nKZ;I1IfWwcW9P;l(riav@b7X91J` z(c|$M-Obw8ZvOtnXqcPjFM!!zk~`Pkt@#P9X%XS!H%0-6&DptGCl@WhYX5~xVA^NW ztn)wc?$X0u=$#U^eM%E(MJV{K9m2Vj~KUw zM@wSm7p5<6Z&?9{t#B}H<8!00PXGsKbLx{J(3^^<&F&s^L5F{?HqbvBOk8zyE~}F4 z)G(ZRSS9;#j07M)2EPm+1Qa@ zNwcd<8jCAMS~*9VUXke#49@(fP6cQv5{M!7GDKQH@c6x(FWL{phqOiGPcU!kLkjrj!gNIPxTtdr`%9L=hK)~# z%wK>ciC>P{dv>$R>>8;xEnL9Eo#vz9sJV-y)aw{&|R8F|LggcnFbD1*9xhH=B7P4Pxk|I)y=e# z>?yxr2%KZ7p#QTdgn*n z;n1k7Nfn7??6Kg>{zsD1!vn4dM)yFYlDx8l$|$G;(91)8lC6a z$zzb~fkuR|Sb~E?Bs#4z382tcYo57{rw#w!eJ&5$wx?l#4|~?)EBgHXXHLEZOy6;@ z%E@J)Y%-gN)J`gRrVx+-(1ua1D(}5Z`#{{-H@!c@0C|2&-+0&Y`7+0X`W5m?iHV_8 zceCeVGRy9;rI^;C6S~ZfZ^MED6sni;WDv3P;b7draQ|8c-dDtif9kZ;n8BT(e^wKC z7SZA_%Ta%F@gI)sorcCXkRK~S=ynT!t@l3L&Y@cKdCjsD8vif)o2_o1TKoQjma+|G z&o3GW!Jgb+5WI2SSV=*RMfm$^(}{KEu=jL%R!?ZRczs9=k8T?A0I%RLO2rvD0Lcr| zc8%HfssfD*^Xl&a`Ds6ItJP>CZfL0|O- zgO+dIY$do7MZ%|@FYQH;pA4n%E5;ZOpv>!ogQTJ-dsxTSaw2BWj2D~xp9g8&AxZ*=9tF_ z3{fjx4~9NJ-#7IA5zgu*!CRfh~7KF@Iw< zri!xq9i!PT!WV`yg7a5Xn<(4owRt@vXu+Me6N<7fyL07;KH9=A0pW+-Mo@4TxWZ~>NaZW#_i2Fql^6y zZw6rPB@s0Y=$n@2)HG4Ube(~&v`-tW!S5~8iC-}Rv+&cyKy~yDze*7cJg(Y27Ty{

z!WZtUSIU2`eR16~3n-dPUe3t1E@d0_mqRb)y-2@WkMg{>mrWQ+nWu8@$R_%LC{0b2 z-P#zA=KC3fv06&>*BMe?8!dK=iSq_3P1~DWQ+S+uHiMP|Y9{Pt<=B2MD_`Y>X z8vL+*M`042!82G$`{0km%U6K4X-@H=s!k^dG&X=}m@KD?jjQ8x0Nkus2E)9x+&-b* zPsFvfmwz>Fi}Lq`de11JGTeKj=>8?Bg|0k5NgI&qo3D7zzwW+xQ@(TrJS_M7N-qB| zAGh#Nit=TxC(_Vy0m{%4qK^KI4R0(^7?dDdCrj{@{@LKvqka`txksEdP9o`uR`|Y> zT|z!O`Z1whFr^3y{`wqknXN_Gy(rC~z3`m_q7No|^4u9S3@>c&zNeeE-BDZVmoGyR zQQuTTZ}cX!HqA=CXL*rnvoM6bqn}0eR@ye^KnS^sj+vnZ^%sm3rF;KX?51`1@+?SBpkMTM^Qca?^T>{ST?Eo?QuhYDr>4HVqyD4RkR3luLCBNDEG2UDL#Cx*ghGOj7d6ZKc zNJGebqPw$m2z!+Wy?|qOQX$nPlk=B6RBXf!N$#ijE+bW~2nRqH(6U+2B!;d_)`u7s zeg$Zox7P#TGjchsb-wKjah}76p#5LhQ~va}ixWirA7!Qeql5O#h|rvvo|?~Iu5-|% z5goN>!ht@6)=*S*xPU2yCuTT=s+~UqCr>UW+Qs$BoEqIFT@exOZ5Y=<5xc*c8{azw zPbO?UDx)OA9AZi?UwTXy4T?MeKU@mHQ}Ca9_c8_T9M9rbB>|1olFubXdJ2R+YB~ABt(P$bmX{>kcw{NSu&hJ6~MkLAFB*bGDst``2`Q~w)?b5Hc)u_}_ z2-Awi2u4e`E;;8of0}WexRH9k@mc4Huz<#536{SntSrX4DY)y>)$>w3#T1LD%m!8U zw#zKHvU*M~?yy}=?uxhyd|V6ZvrS1~EvgWJK0d5u0i(dK07em8gi0ezj!~~ozL^%5FDUb z>0$*zD*Q!M1wst4S?9bFNj6~yrOb1sq?em48H_DWgIX2F>ps&30Tv}mpM+w?f*9N& zw;Gn2CVppprsiND{H1gyEuzuZC`+!2+l!T=-$$>6pYzti>$PiS>m8w8^~$O~qWZ?r zHTlb5e3HwkWCSSeXrabHD81+NGig4g7Wj4Z9nj#`QTil4Vz|kp6ORN>kg( zmUH?{;nN#Qw%aV47*R?wJGl$28>b$y7JU#(WR;qu0PX7rA}`NIIZS1sLV?=!+xp-e z@kK;9KyzJ=ZQ#F|5^{5*Qd$VF2M;xaF@i{l=FIZXXRqa+p_BglB zZ~iJHvcPoXxAGebDRG)u86f!e z2>hKsh1-HUpS4RTK0#KOCGFm0y*{na{)M^ZK-OBT7#XVT6SFx zo2mnlF@o(dvYenmLkE97dy(fW^NaIRWU1M54kSQTC0~v)*x-pe&hNR9WPLV(0N~Q} z`cFmHdoV%(;GwFhINxw*bn~G_ zcnB-QSi6?Hbq=FLZf}%=l@${}Z+7~UoIkOKr%%;$k0@-zU^cLs0Fz8_)W=W+Jn~nB z(IOccSxyn9kK}Yx-5S{d+hi5O?Oq#yH%-U%e%ZHIqtMVI>GXWuRUooiB0GIh%*x70 zTwRCw1ck#f>Ru_xk+vyNUm)uAUId2{Fx*TfthFPstNINixtFKgnN*`mg-Lx{-Ag-e zyaV>)wDFmaarqWuadKa9C5_~Fo7s<;S{&8rJhXzXTuh9a)4Ud6Jbzm^=rLOSOw#E+ zD}0=)gU2^p>?s&c4aNGdi%Kmsr6g)Rld9eNJqJDrtBpjv^F90!46e%6{Ar-y#_`R3 zeo72?X5|cNi@@Iv-1=Ml5tmHckj=t6hwRpvA+a5fz4O_Z^%b_t!RxQVMrcXeKGPTg zh2bjfq)N`tMC55G51Jlgac7r)(^CZaIHh0g0$%qhlCuL^N8x054~IK(4Fc zfHx3L7?Px0cJCEU&qA+HeSBI7El9!zTYZf>PR4MsNf7MruJ!ZKXN%R9_R^6@yhOY3 zX?m!LBFbEUp-_S_-|8PfI#QzyvZMywZ4Ug%%g{|#d<&AKV-)g7#Nr-$BuRGoXw`rd zGI##|L+ECBCda|(R_mw~vaqP4At;=M{*K3WUk)94D2FdKj)~ka5e9 zJPhbQ2UEo@tCgGlcX?^P`6$c&h$=zhD;4QFQZ*JbB1PUd5#(C>QGTgcFPeiNAjV9% z(sPT3`G@cu0Nz*nA?pCQ8zsCYzy#7hQO~W458c$Iw!Ma>ts>O(He$oSQ6am82XfMs zu>RKE%WAx+x6sj7LfQJd>*dMR2pI~KhVA4Wy{*J&EC8mP^hU%O+xW!YkV+={VU)Aj zo(;aA11}HVY)%TUBnc+hFS~1yd!|sWOCG6xcG8EII4|OWa<_C=Ac|;Peld^4JuZqO z{aVXqtuC#dr>O6p!_iY$okAt>r+#JXGhrx6t2NtV{1=6~)z2XPII--{TSZX~GlArX zZdHO^)e|?Y>5{uKB_wh_gT|&OQ;LpwCnz}x+j#}9WmQxLh$Aw4O;-y7`1l$q`$`de za8H7?i6+F~N}zYgJ1i1w7jR6uUrm%GQt_q8Ce3MEQl}jd#i)DuxC08^eYKC)meol?`? zx$fSISX?ytq8_88^2@^bO96n3GE}omqM99o7fM%B)o@ArJaD_mkDPBs!i?HDG~IvD zh;#@vD!Hh7t8zJ{B`Y=)zjqU(a8c*Mz>M?P1HtuaVrE=lzS3-KQFNhs-Nd88mbOJv zx3TkC&@DkXLWdMDbH^aJJjni5B#I$H{Kk^W+C@Nd_?Rs{f@=g@p{X&aczv~62$Dp{ z$19RKsvs^9GJ;8E;pt<~eP<0-@2cKlJ5^_>Gl)`{FB|5nX(EjP4*PT^7i`ia3o$B( z>g1f#iVRrsdYT$;Qs06Ydg^Cpr?d$;16NZMTceVilBG#q^Q2!i zB^8G>%H;{w&5@`kzs?mihmQhrwtydpm3IM~#$*&Dez7XY0gf=M>SC^e*f}3@qcP|h zILxqP^`5FRW@rfi9%Zn#$nImuU=VwgGNE3R%D`miw1SnQ-dnd~2FVy~Tl=DR(Gz4r z5yc>;%+fKYVynYxmQge{bFZ1}pytX*Bxm6=V3O=ss(?s6^lnC_lERHm2ZvLD0#wHBnri$em%6D;uiZ8QaGzdzc44uVDvKk+yC9 zgF$r6wE+fJz$;UkAl^1@a~Dcx{PmL5CFxbrRMjib^&QR18Ac8i##zKn(Mr0k-)#{q zQwJBQE^PjO*&7u}g48}RA*=jxvrI<05gG>7dhHP5n@6{PnPOx*XT(ah9ttB5Wk00( zJ>yyh-t>ZE^|oknfm(w$T3yK0utxyWh>!3MRa;0i#z$ak8y!^*UB6;2tubsKWEBZ0iyV`o z?vaFO)hIVxYEOf+5Jyu%UP5)EMT?Uu_iIv2%~F8K^6@6U0`m+V_kQ0sj=J|ijY zOWw9$qZ3F@)lQhi4+sFSO0R>aCX50+e00@$$*R`(4GF&og&&!7SHA{Ax({L|JY$;4 z1OnDM^NTM)YhknFDbGh-dy5HY`EYpxjx;hmImoJVai=j069sn-8iFa0g8XxQD_cbb z2AAmBDu0}s;Df$)xBC{)wyCA?)7~;St??Q{`G5GNJhy!Zy<281ni8Ouo&A|0*KjhM z74tb-y{6T=hp%;0>1D#2ObvK**C=4)zG#%ld!J3FgF=;E=dBNm=-LgUaRP<`YWXST z;UkC5NRci{v)wPgaO!+587%X-sTax)W~8M``>61ExcTLdAvKwFd+LpD{1YIy-G2@T zH7)lzrLJ2|yMlDVJtv;zRVgx$%lv~MNlYp^bQkgD;?`%WK$cS9eP>+(E^}{$gQrEy z4b-Y?xJb!F5Iv&BOM=ZBulWqLe$pdq*8Tga1Gq*#ql$UiRqxNpC2aSW%2DRA^+)u; zjBnM`PUfbZw}U;x+j#I{N6@AEL;QyFS*N~_uLXedpqhB~DmuTLt*RFUxb!8vwcP%_ zrJRVw$RU?V|XN0vA_2 zjWVWP3W}BXZLh$a=NBL>e=9WE$BWIElPu|<)p=}V?4TAX(sJJc(c4o5#u&F7^MFs| z4;mSX9Sx33Uq#YKM^fFl`8>r3Y~_fZ2;%p*(^_wM?KGj2)MsHjyD?KO#raZ1*gWx^ z#R{^$i(s<|R@x=qtK$&QJ7|a4J zd#U+cFBqes>)_8$o3$KvE?3-K%l59ZM4Bp!Qt@2+A?S-~4e`dK_5vj%!9-mHLzMta z`(y<0rz9J!-@_5CIJv}LH;shSI6Mmy_A$361$UznA$INnN2gw{1KErGa-D_&?;z(P zuGYV9+|I#fg|RUMxBRyRIFTAYC_98pQ!!$#+X%g9Vlkk1Na$;a<9Q0YLZO1k1SQz5 zbyHe>4|Ae8t3keYv(ppVk8_ea33UE z#0UT5i*3A1!W#ZO&)XV_5kJrWBQ!-2ekDSnK&ob68Y}y>&cO0hx+a;oh=~b8zvm51 z@p4!q-^fI~?qbaq?a+g+P8NqZGf5H%%%W{L^(yL@+&HAac}UT%(3pvZzs%RkRGaJz zCZ}g*0QtGp#IS!GSIhm?lw^DR4GnHInf)9WRkU?)Ol}Z`7v1lMb!TbYt0s$LHN$Rw zL_Gsph6PDXO1}~o5Ftc$3{_hWJ%GWH;p494omSPBA%BO%_B}#mLI$t-y58rk(|1TGry zYBMCBH*vfA3Z0B0?>WFqz|xLh4wVElgFkV5F^ayL&zx5{Lau7%d9$VRMXG7-;Ra2I z;DVWXAVRk$NgJMipWx9QuVZG7%lQIXtnbLkJ_a^7oDkV0?2$vRyhD2;1`e5VOTKVP zZ5Krqgf$T*aoHH6an`>xMc*9TYw_^o)XNc!n|{R|hz_Q2*yKk8E_(aOn1uC47~ron z7X;&yjoYwVH)(~>(80hZ6?cwkfLt?elDwG25-pnzDJ2PViK%c4W(3w=RNYr!UYV>j z3eFqF4zST;AR3PcAS%mLu*3hO@*M($W_>3YmkUf>pz69`fmr)iC+j4jbV#_Jj1hSG z$1$(dvdH#Ix^AARw$@IDY;?x&Ht@$P&++j${hR3SP+xZ z4qHpZrWsbCuDmDHrrTVS-DmatV6EL7J zU;Pcz4{fBf9a5QLt7_ZS*!&&`_pFQ}+wCCoy3wsVTw&T=k2gS{2}852C``ln?E8N< zWAw?F?Cu-ptp@)3%gq*KVSRo-GU{{}9eipjR5dU6T?v0TD>e<|HFr=a5Lgz(53Izc zt0;Vg{Gpwj0?Gy&;PXI^Df^$}4hAt6kn(q$;74X)1-_!k@=B&0vqx}&e;NW$NH#E- z07RAjb?TM0a$@g*i{EI>$t*t6n&kIuUVDQt4Fzt}=Q$X_wTK4m`rvMaqZ1@2?CN#S zQN-igo?MqIewP@1plvU+>pnl($9+1lcQ&t~9m@kM2Z|uj)Ve=HY8VsXIzCA!_E#HL zeeZ;&Ojaum{+iBp=>Za9-dP%Zm4U6~domLLbr1hPn$9{d>gNggcgGo_&`9~ewBE9Y5&LY1?y!FaPU^y-Of_=jY zq(Kht4hsT-wxV$2=B~o(fJ{;aEk)Xbcxks(+}2cjN3LOLsGt|oYi%jm;{Hm8Wz^dq z6BfI8=QU|E~TQAc?xiY{P-L!r0{B8Bn>*K@P*4@QUQkH2rQgYbW6#lD>!zk zaA&iSt%O^0@6d-|&`-Qm2IozOVh;tIAU>45NP|{zTBi;BGjFGph?2tvr)=rEWNNyD zrqtVOHpFp1q_pQ?mN2RMnQm!3_oh^e*^va313x-qFlrot5^D4|gz%&HX>gX`EJ9XM zm4^!iU&AmCyI|8@a%M5AdiEqQc-dbH$TqrwBSid`ts6n zg1VmblXa<#1s*}5y}k9x5!s<6!o1UI$C5vc_$^`ccO)Xb;#K@#k94`sgMd?)9s1G` z)nH~ks$cgk%D=xJom`h^2Q%`jyU6~d4uR9k>C3}%+qUsK9k8ivj9=Yt32aiS*ZiWY zaZdTX-hzTqxA_5O1-rLeJx7Km7!ijGR5tC_?{mx+k)8>1p@aQpY}97mrUb$E6)Yi6 zryD5ijQXS@-$4Hi^}^e>GzQ>|C#mG>!_P@`@cjKuREC+qIc4ws^3uqsgb3_`COGF$ z=ZtS(=Pzw2ny+t0hDDiqq%v;DqeVj~xO5FQ`@MYU(ZrjE!PRYKnLrav%FjGp_|f+) z=*vbghym#t74Fbeg*tmAV7tcYP0u8~vnc`f-gIvneux@S+7_bk4eh3ZE*mAoxBsEi zy)(YW8!)QTJSAMdMsdKWP+stt|y;Q)g|!j zcgg-`L(V!%dvSeW{c9NUp^#YAl1%FEO^Y^Spy*Y22?Os)u5ZBFZ7OHtTOv447?6wb z|7z3Tc)DH}pHWTx$+Iik=!MVaBD3o1KTRUYMxpG_0GE;HaLk_5A8^&>7^SNHc2Mv< z(Y}Z`t>9)9ElRGEVEF(${P^E)@31KQQz|8(D3&Trg#WrWtc^aFu(PxeUiMLYsD zqTUSbu}w@Dd=ksWzi65DWU_u7OAlJA_uM!1op}K5$2w38Qb9l!kIEouVt|*jVr&MQ zY7_x=uY9<8ogFtVgsR{S?KQirM?Gx&+ghw&*L4{AeE?O?n&TG`EV-?Gs5l-*1s667 z8?nnhC(o0Ie~J5T8r~<2K|>`iRL_6Wy{(lj{AK8|EAmh{AZWzlvCDkfBkbVhMdh^s zYi72?{a@{j8!VL>ff%nSIGXIUC=f*x`rp)Va=S?}GJgB^6SFhpvyX*6mK6Baja8|y zjn*eQ?vu2Z{r9A##ibLU2)~bthrKTV#kwPQe&jpigMP063W@ZUZcSlA85Ufo26ws@o9>=TucKjD-P!1_|JriR_-9YUhkx<7-CXUC zDH4~Wcl(WSqQ0wX?9~pB{#BvO*N1Kb9zQt=duTz14-dqcv0Z=1XI(B*8#}thOnlR` z3itzDoI|P6+gazbsjd!ZB^<*ulJ~B<8yi#E59b1dJq#Gft+!o)x~vDvL|WQ@^4!N=(t23Z{|$Uh#^bZ^h1c1{(s8Gx0AUF{<03mLs%*BC zue|O#oP9lkEf2yAV)cv+3J;=}F1vgr3~jZ2T-uMN4_Huq`XCybX%44)@Wns6>^O)= zk7Z#w93B+QihsbJ*jg41$D_nkgRVYC{`=?CzI@n{c6BL#nORu!=(LZ6$s=-md6=zz zx45b_xW@^VmR2f2@7!>hQDkkr;v0JMgE;o>Hm$K-NMBxW$1$*waGY~E*B#7zEDze=?OjV&4k+~KL&_8pRpG#-zr3AkNN0#NZo4tAO6PlLfCnA ze;f4|SftAGX3x6cY+PV^LppeL_AyY?_tu?x{Q5`Astl=3sa4I;XeDj;d8M!MyWO&Y zbPRsMO{gcdC7({WYrMD(wf{NAuUh7$k4|T4fW?f9Ycd8n!GwD5j zsKyI}L5A-!J~xq6c=`^Z*l=htHAq4rN&TS5<42*q?>2F<2j}x}7&RgaPK`$?WfJ9O zpm0g~o&p9AQb)G3A7`;C3ie&&V^W)nXhy`xpvtg+fjOZ-IU6hQ6TJw$35ouGN?8yj zG~Dj`6A|GeY7p-#C@UOxbrOwj^xVS_v34zE$ zXr6-GFjhKe2iQD#qB-9`oleNbe4TwF4Nthl2eHy91bUSEXUpZ*ZJIiVM|O}vHl<e|nJ)vko0a*z%;Y)r!FsCaor zm)8PPAA%BlBYVQxKwxaBwVYfyY)>Gjw0o9op17N5;c0@0@VQj@3Uz2WCB7MariL1X zCP~v3#Qi?}BL#kFxF1QHxwv!cw?sC4Y8Pm4oH`WLOAJQ;0q3NG!!fiu`ho=3o-u-C zA%XukDJ9b=GQv4Qvcchn!#F|5UYqe_a)e*FfAA!-t?ZG2vZ>L>_+J}pkT&In6H7`H z60X?$boy~|K{~b z=EAaFzAqSkJkD-f54_+f2X(Rs zJk0(rLRHuat^4e4CU*pUo4J+~yM=>9udglD#r!YjR6Y~1w>MiGzxrJ*Dt3dq1g|8- zipl*Xe?0qiHgGYOTf*JKIOP9V_VF%qIqiqvnJ0OXBgwOFUoo#duGz)&u=I+S{Xzfh zgzNwisN?EZg>ft_@VGeSYFo^2yj5h&U^dhLq|MOjVJ6$JFq%N@77r9~a=d9caoADI z`}tW+C{RN&k8$U2^x*~#bkj2`b~)1V80be%@^BOQP;^~HTVP{+zmk90E1&(?(LqR$ z5__}YG1TRu7uDu_oUSeN&Ht>C95M#Xb6aF&`SvI^?k;_~6$oF70&0YB{~EXBf;#SQ zNAZsP0`I{fzmsFj{UNqjr@%!)`u!<;`vBJI_~>s(G4f|?6PMZYtaIrHP805pZHq)= z4=D1Y*VK8q4=4VhtFuEfN8@_nw$8D#qvewAZiwD^Tgm^-6M`3bd}(~<+5ONm@8+Wz znBr*6(=Zr#qAivK4>&$94tRF>n7wTIH1J%k-Oh+_TPOSQ@k%%9tS9iXUUfCUuaN%&JRnm9n>_B`(hndMm*|b+S(W09ark0s|_)~ zk1qpHCf3}IUXR3_I~zalqywbr=-ujOcJ$)anM$@i^)vRCi;J;E91rb>tzvpqV4}~; zVTZhywy*DbTW0pXW59L&$RwZ$LE--?!o1<&`u}GE{3ne49UZZFV*v_tnBTsMHQ)qL zq%J_fx=w%Z#U7vc9z_P;B>yu{f5&#U6q^-F9C*GQNS%1KvqXOgz z2T*(Y+5Rv*(d(;IZ@1;g0dBVI8DqZ*zlmS@sER$@$5j>ZQElKA1pRhEB@hN^&sA+V zs@vz+rO5Z?htq)_6+n6aM2`ksNi%t0=Gi;8g@>OAi$U<3^+Oq+Mf*#Y)0ZM^_EzjT|x{B0mNySb&^ z-@WR;Vf)wIe0sb=lfK&{51eWhDF6n2fAse3ulC~_zuHjj!$tR+&Sgt6nK~&2ar0jw znO;3Gv)nvzzcSiB1bsZ2s7z0`Kgyk(y?ng8l|GscynR9Bx4+pvZ2D%}lJuYB!?n4Q zIr;q}mwJ)u%?QRJCL@p}wKsm%+pV)dg!{M?209vw6+`PJzdr+vV0|;Yv2w2L*F)gN z66%e^%iT*uP?ru3Gou{FY|@*|iC;}3_`( z%a-LCzdN^NLm5KCs;Yo1b^=g~r6=L5wDD7Zca4SHV+yR*!eR8q$vg_2Vg$#ty^8zw zmWAadc{cKZCY+$9R-uz80Rg`*2k&J@t_B=ySyH6irW^u(c@oeh3@z-e8Yb237n7x| zOx!Cvu5b4FIf^aDsl9x-)1n+axD=+v4&Kqp<|+D=&{|Hu!O0z6lY!oSS}lh4mBan! zBERyq-7g5FxpWX4e5aG`u{^-#}yeq?iLsL{)Jc_uIC?zKqtpB2D`jsJ0O zj*(rZl{Q6=oJ>PTz20>eKU%?^+LFn4pQ9h2xyEpzPry$8#5*jmD}O4~?+J(#Oga2~{(9)o_U@^L#?#{C9~PrkZb?=B zk@Vd~Q-auhc#?e`**;QYV*hTnfc9ZkZ3`o@*D>98ZbCJ4?kc&Qi(WMf;V#}>XHNnM zmuXhI(}JcrmmBeqy1o{bPUMm+{n%oIh>DfyR?V3wW*!)BnQN56O7!)T#=JG-qGK$$kGH`u@q=Ek?@=1h!Auz_`>Mr4KVsY z6^#oPzyM}g{s0<$vf5ML?qFj*5bO;JsE&reeDGV1z5_&2A2!rjlhg7WnB%+P4{n^+ zvON*#n;6=Sc&epaYq6h#gIM20Zg0$g+(;X(latYx+n(z-*Q8xz9tDbw2&i;MU<1n> zdwsyx#FI{G;&A@^BG>`x92Yv#Pmb}fQFBVfa`kWWJS>-A?A0wVm`L!2<70n$#e8$) z+yEfePhNh4a^em5c7}+f>xT`uE$-e$^v#D_WyX!JQO8Y8o!6(CvS&9ROq#Uz|00^( zYn3#(nlt`E{cy2Q%-ZL%pABzaceS$V%;`-k@t!0&kv{3B!)Ai~NZ0OL>I8;mv}ClB zn0*%zM!HJ%jET2S{rQn28S&c0y{qF2Hrpb)7Rn3h9 zuf~~qhy(tZhhs@@nNu~~Z5Uz&|KGRoarZ9YJ6EL5)pih-MHL|e z%hSnEGi}9vlY%ZE8oqD}dHVwm5*Q2TJ+X08P`O+I(>C(dZxf#_MO)||Iop)b)Gona@1Ihn%y;=SY)o=U3@ez~RO0C-!ah1d5C|#1QfM$SUSD#0H_{htd(p=oR&M+SAZAz>v^>FITS&EYTw3P`Hp&GW3i@m;O5s)|b ze=;MoA^f!!{5d+y!I~EA-!d_GpIh=~$tMX;&n8|2YT5mB8%m7Vps_71{5jDwy3c*_Zx;{TE#nz zcCm`dF)8t?%R6x_ud`wQxEd3QA*UOUz(RE-Wn0zFwds0aB$@xB#zcy&(H@R}%lzE^ z!N&|uDY=d;FEsM!J^RAD!pu03gJ1Y#(!_nHT$Q2ko3GuJDF=H@D?+VWHWwaU$Uqmy zubH8|Q>wY(eQ$`Cjr^1=B-AYIvKwHmPq1Bhp~{dERBl9&!?O3$byDKVa2YA^)NEZ(7L^-{Y#6~Ti9g<$1T;P6 zdm9O_MjP9dDyl_C&p(n>EuUgwLb?{3C~Rzx*7+B;w*8+OI3RNecdYQ;wOg(^mk%|i zh?d5PqFS&=+FCGE0LAD%g(~H{*;~p?^&h=o#r;Hc2M4#5Uj!!~SW?ubaG43+Zr)Xd{$?O+CG&@Z4+k;y%HIv`*VmM(N*#`3 zh&otxh8Zt1>u?;MnzbkM-HNP5187d@baSYGF{uqcJR}1l#nkjUsQGKiEDq#%v>fvX zBb>!|oxsWg6MN2~+tgS<@-thuOQ1Ow*RF&TaDTqeZG8-Zje!+pKIa)uq^x#lPZf(v zTB3sjMafGT-X=aB?JaN6owA=+m3rt@aYRT3vXO7$berI}8siM(sn(w9N$^jquFEW~ zgp%IaVVep(oKKQn0fN~TMoEUR8ULG9HLVZ+Ch$(K*bJq9vAY>omx^09rOJtwNpI3I zWz+a@?zfU@v&H@oEm;uI#w=tlbdRkOnBN-5tISbUZaMvK1Tur%&=)P+{MWW1ZpWWi zZt_3XO7s2iJ>0pfUY>3*V+Q#xe(3tP8T%;^K%2@Y$5_A}3s0hA0|YZ;B$cThD(hVw zKU&@iXiEhyOTdi8#GV!-9Gem>dslM?F+?Fzz$Yx2;iF3i*HYPt1GYbxqVv-DOLu2l zlwOxDVJF6e7)vG+)Z|-f9y13l%{*qCjulZ!4@%TMejmx%9ay(QNw1w%OLGrx2nk4! zHXD~H#@tp}1U{4AtQl}m+B{HMN&s=fryyZ|m>1wEx(aGn7JM5h3;m2mtJI|C%tBmH zwda}Ul8Ifj{p2@qQ-u6C$N6zVT@R7eAt#(mavNxl>QbJYXqJ;>x2GR3CdfTN`7@)j zI=u(?_Gr{+2eA{|W6UQXRrm`+W=X0$GH~w>C?%^dSI5XVuEmG8>uM60;&CS-?9ciT zTQVMv=U3?%H8nRV-=LEP#~l5%`C1}=-!h6Et%h?6p6C-liXpGnp0$sbn_A3Xhu4&5 zcMr8VAuCsno