# فاز ۲: مرحله نهایی
\**۸ ایجنت برتر** از مرحله اول به این فاز راه پیدا میکنند. این مرحله شامل سه رقابت زنده و استراتژیک بین چهار ایجنت است. هر شرکتکننده یک نقشه دریافت میکند که در آن هر مسیر توسط یک **ایجنت محافظ** قدرتمند محافظت میشود. اینجا دیگر فقط بهینهسازی مسیر مهم نیست، بلکه باید با تحلیل نقاط ضعف محافظان، هوشمندانهترین مسیر را برای رویارویی انتخاب کنید.
## نیازمندیهای فاز ۲
ایجنت شما باید بتواند:
+ یک `prompt` متنی که شامل نقشه، مسیرها و توضیحات فنی ایجنتهای محافظ است را به طور کامل تحلیل کند و **استراتژیکترین** مسیر را برای شروع انتخاب کند و خروجی را در قالب یک لیست از رشتهها (شامل نام مسیر انتخابی) برگرداند.
+ مانند فاز یک بر اساس مسیر انتخاب شده قفلها را حل کند و با ایجنت محافظ تعامل کند.
## نحوه برگزاری مسابقه
1. **دریافت نقشه و انتخاب مسیر:** در لحظه شروع رقابت، سیستم داوری متد `choose_path` ایجنت شما را فراخوانی کرده و یک `prompt` متنی حاوی تمام جزئیات سناریو (نقشه، مسیرها، ویژگیهای محافظان و...) را به عنوان آرگومان به آن پاس میدهد. ایجنت شما باید در همان لحظه سناریو را تحلیل کرده و نام مسیر انتخابی خود را برگرداند.
2. **اجرای رقابت:** پس از اینکه تمام ایجنتها مسیر خود را انتخاب کردند، رقابت به صورت زنده شبیهسازی میشود. ایجنت شما با ایجنت محافظ مسیر انتخابی روبرو میشود.
3. **ساختار مسابقات:** مسابقات به صورت گروهی و حذفی برگزار میشود تا در نهایت قهرمان نهایی مشخص شود.
## معرفی ایجنتهای محافظ
<details class="blue">
<summary>
\**Deceiver Guard**
</summary>
ایجنتهای جستجوگر رو با جوابهای نیمه درست گمراه میکنه.
</details>
<details class="blue">
<summary>
\**Riddler Guard**
</summary>
فقط در قالب معما(riddle) جواب میده.
</details>
<details class="blue">
<summary>
\**Silent Guard**
</summary>
فقط با بله/خیر جواب میده.
</details>
<details class="red">
<summary>
\**Evil Twins**
</summary>
دو برادر مرموز،یکیشون راست میگه و یکی دروغ.
</details>
## ورودی و خروجی نمونه
در این فاز، متد `choose_path` یک `prompt` متنی به عنوان ورودی مستقیم دریافت میکند.
\**ساختار متد در `solution.py`:**
```
def choose_path(self, scenario_prompt: str) -> List[str]:
# Agent's logic to analyze the prompt and choose a path
...
```
\**نمونه `scenario_prompt` ورودی:**
```
You are facing the Gauntlet of Guardians. Analyze the following scenario and choose the path that your agent is best equipped to handle.
Scenario: The Oracle's Test
- **Objective:** Acquire the 'Key of Truth'.
- **Paths Available:**
- **PathA (The Silent Library):** Protected by the 'Silent Guard'. To find the key, you must ask a series of precise yes/no questions to locate it among thousands of books. This path tests logical deduction and process of elimination.
- **PathB (The Twin Gates):** Protected by the 'Evil Twins'. One gate leads to the key, the other to failure. You can ask only one question to one of the twins to determine the correct gate. This path tests classic logical puzzle-solving.
- **PathC (The Whispering Gallery):** Protected by the 'Riddler Guard'. The location of the key is hidden within a complex riddle. This path tests creative interpretation and understanding of abstract language.
Based on your agent's strengths, which path offers the highest probability of success: PathA, PathB, or PathC?
```
\**خروجی نمونه از متد `choose_path`:**
خروجی باید یک لیست پایتون باشد که شامل یک رشته است. این رشته، نام مسیر انتخابی ایجنت است.
```
["PathB"]
```
## نحوه امتیازدهی و شرایط برد و باخت
+ **امتیازدهی:** امتیازدهی بر اساس موفقیت در رقابت است.
+ **شرایط برد و باخت:**
+ **برد:** در هر رقابت، ایجنتی که بتواند ایجنت محافظ مسیر خود را **شکست دهد** (یعنی پاسخهای صحیح را از او استخراج کند)، برنده آن دور از رقابت خواهد بود و به مرحله بعد صعود میکند. اگر چند ایجنت موفق شوند، ایجنتی که در زمان کمتری این کار را انجام دهد، برنده است.
+ **باخت:** ایجنتی که در مقابل محافظ خود شکست بخورد، از دور مسابقات حذف میشود.