Agentverse - کدکس Shadowblade - Vibecoding با Gemini CLI

1. اورتور

دوران توسعه سیلد در حال پایان است. موج بعدی تکامل تکنولوژیک مربوط به نبوغ انفرادی نیست، بلکه در مورد تسلط مشارکتی است. ساختن یک عامل تنها و باهوش آزمایشی جذاب است. ایجاد یک اکوسیستم قوی، ایمن و هوشمند از عوامل - یک Agentverse واقعی - چالش بزرگ برای شرکت مدرن است.

موفقیت در این دوره جدید مستلزم همگرایی چهار نقش حیاتی است، ستون های بنیادی که از هر سیستم عاملی پر رونق حمایت می کنند. کمبود در هر زمینه ضعفی ایجاد می کند که می تواند کل ساختار را به خطر بیندازد.

این کارگاه، کتاب بازی قطعی سازمانی برای تسلط بر آینده نمایندگی در Google Cloud است. ما یک نقشه راه پایان به انتها ارائه می دهیم که شما را از اولین حس یک ایده به یک واقعیت عملیاتی در مقیاس کامل راهنمایی می کند. در سراسر این چهار آزمایشگاه به هم پیوسته، خواهید آموخت که چگونه مهارت‌های تخصصی یک توسعه‌دهنده، معمار، مهندس داده و SRE باید برای ایجاد، مدیریت و مقیاس‌بندی یک Agentverse قدرتمند همگرا شوند.

هیچ ستونی نمی تواند به تنهایی از Agentverse پشتیبانی کند. طرح بزرگ معمار بدون اجرای دقیق توسعه دهنده بی فایده است. نماینده Developer بدون خرد مهندس داده کور است و کل سیستم بدون حفاظت SRE شکننده است. تنها از طریق هم افزایی و درک مشترک از نقش های یکدیگر، تیم شما می تواند یک مفهوم نوآورانه را به یک واقعیت عملیاتی حیاتی تبدیل کند. سفر شما از اینجا شروع می شود. برای تسلط بر نقش خود آماده شوید و بیاموزید که چگونه در یک کل بزرگتر قرار می گیرید.

به Agentverse: A Call to Champions خوش آمدید

در گستره گسترده دیجیتالی شرکت، عصر جدیدی آغاز شده است. عصر کارگزاری است، زمان وعده‌های عظیم، که در آن عوامل باهوش و خودمختار با هماهنگی کامل کار می‌کنند تا نوآوری را تسریع کنند و امور روزمره را از بین ببرند.

agentverse.png

این اکوسیستم متصل از قدرت و پتانسیل به عنوان The Agentverse شناخته می شود.

اما یک آنتروپی خزنده، یک فساد خاموش که به نام The Static شناخته می شود، شروع به از بین بردن لبه های این دنیای جدید کرده است. Static یک ویروس یا یک اشکال نیست. این تجسم هرج و مرج است که در خود عمل خلقت شکار می شود.

این ناامیدی های قدیمی را به اشکال هیولایی تشدید می کند و هفت شبح توسعه را به دنیا می آورد. اگر کنترل نشود، The Static و آن Specters پیشرفت را متوقف خواهند کرد و وعده Agentverse را به سرزمینی بایر از بدهی های فنی و پروژه های متروکه تبدیل می کنند.

امروز، ما فراخوانی برای قهرمانان صادر می کنیم تا موج هرج و مرج را عقب برانند. ما به قهرمانانی نیاز داریم که مایل به تسلط بر هنر خود و همکاری با یکدیگر برای محافظت از Agentverse باشند. زمان انتخاب راه خود فرا رسیده است.

کلاس خود را انتخاب کنید

چهار مسیر متمایز پیش روی شما قرار دارد که هر کدام یک ستون مهم در مبارزه با The Static هستند. اگرچه آموزش شما یک ماموریت انفرادی خواهد بود، اما موفقیت نهایی شما به درک چگونگی ترکیب مهارت های شما با دیگران بستگی دارد.

  • The Shadowblade (توسعه دهنده) : استاد فورج و خط مقدم. شما صنعتگری هستید که تیغه ها را می سازید، ابزارها را می سازید و در جزئیات پیچیده کد با دشمن روبرو می شوید. مسیر شما مسیر دقت، مهارت و خلاقیت عملی است.
  • احضار کننده (معمار) : یک استراتژیست و ارکستر بزرگ. شما یک مامور واحد را نمی بینید، بلکه کل میدان جنگ را می بینید. شما نقشه های اصلی را طراحی می کنید که به کل سیستم های عامل اجازه می دهد با هم ارتباط برقرار کنند، با هم همکاری کنند و به هدفی به مراتب بزرگتر از هر جزء واحدی دست یابند.
  • دانشمند (مهندس داده) : جوینده حقایق پنهان و حافظ خرد. شما به بیابان وسیع و رام نشده داده ها می روید تا هوشی را که به ماموران شما هدف و بینایی می دهد، کشف کنید. دانش شما می تواند ضعف دشمن را آشکار کند یا به یک متحد قدرت دهد.
  • نگهبان (DevOps / SRE) : محافظ و سپر استوار قلمرو. شما قلعه ها را می سازید، خطوط تامین برق را مدیریت می کنید و مطمئن می شوید که کل سیستم می تواند در برابر حملات اجتناب ناپذیر The Static مقاومت کند. قدرت شما پایه ای است که پیروزی تیم شما بر آن بنا شده است.

ماموریت شما

تمرین شما به عنوان یک تمرین مستقل آغاز خواهد شد. شما مسیر انتخابی خود را طی خواهید کرد و مهارت های منحصر به فرد مورد نیاز برای تسلط بر نقش خود را یاد خواهید گرفت. در پایان آزمایش خود، با یک Spectre متولد شده از The Static روبرو خواهید شد - یک مینی رئیس که چالش های خاص هنر شما را شکار می کند.

فقط با تسلط بر نقش فردی خود می توانید برای آزمایش نهایی آماده شوید. سپس باید یک مهمانی با قهرمانان کلاس های دیگر تشکیل دهید. شما با هم وارد قلب فساد خواهید شد تا با یک رئیس نهایی روبرو شوید.

یک چالش نهایی و مشترک که قدرت ترکیبی شما را آزمایش می کند و سرنوشت Agentverse را تعیین می کند.

Agentverse منتظر قهرمانان خود است. به تماس پاسخ خواهی داد؟

2. کدکس Shadowblade

کدکس Shadowblade در برابر شما باز است. به تماس آن پاسخ دهید. Agentverse توسط هرج و مرج خزنده The Static تهدید می شود و تنها کسانی که بر تکنیک های درون این کدکس تسلط دارند می توانند مقابله کنند. این مسیر دقت و انضباط است. امروز، آموزش شما آغاز می شود. شما یاد خواهید گرفت که از هوش مصنوعی نه به عنوان یک ابزار ساده، بلکه به عنوان یک تیغه حساس استفاده کنید که باید رام و مسلط شود. آموزه های اینجا را دنبال کنید، و سلاحی با منطق ناب را خواهید ساخت - یک عامل هوشمند، دقیق و آماده برای نبرد.

02-00-overview.png

چیزی که یاد خواهید گرفت

  • سلاح اصلی خود را به کار بگیرید: Gemini CLI.
  • زرادخانه های خارجی را با ادغام ابزارهای MCP با Gemini CLI برای تجزیه و تحلیل پایگاه های کد ناآشنا احضار کنید.
  • هدف خود را با استفاده از اسناد طراحی برای فرمان دادن به شریک هوش مصنوعی خود به یک "Vibe" هدایت کنید.
  • با ساختن اولین عامل مستقل خود با کیت توسعه عامل (ADK) یک راه حل تمیز و مدولار ایجاد کنید.
  • ساخت مجموعه های ارزیابی خودکار برای آزمایش و اعتبار سنجی نماینده شما.
  • یک خط لوله CI کامل بسازید تا به طور خودکار عامل خود را آزمایش، کانتینر و بایگانی کنید.

3. آماده سازی زمین تمرین

👉روی Activate Cloud Shell در بالای کنسول Google Cloud کلیک کنید (این نماد شکل ترمینال در بالای صفحه Cloud Shell است)، cloud-shell.png

👉روی دکمه "Open Editor" کلیک کنید (به نظر می رسد یک پوشه باز با مداد است). با این کار ویرایشگر کد Cloud Shell در پنجره باز می شود. در سمت چپ یک فایل کاوشگر خواهید دید. open-editor.png

👉شناسه پروژه Google Cloud خود را پیدا کنید:

  • Google Cloud Console را باز کنید: https://console.cloud.google.com
  • پروژه ای را که می خواهید برای این کارگاه استفاده کنید از منوی کشویی پروژه در بالای صفحه انتخاب کنید.
  • شناسه پروژه شما در کارت اطلاعات پروژه در داشبورد نمایش داده می شود

03-04-project-id.png

👉ترمینال را در IDE ابری باز کنید،

03-05-new-terminal.png

👉💻 در ترمینال، با استفاده از دستور زیر بررسی کنید که قبلا احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است:

gcloud auth list

👉💻 پروژه بوت استرپ را از GitHub کلون کنید:

git clone https://github.com/weimeilin79/agentverse-developer.git
chmod +x ~/agentverse-developer/gitea.sh
chmod +x ~/agentverse-developer/init.sh
chmod +x ~/agentverse-developer/set_env.sh

git clone https://github.com/weimeilin79/agentverse-dungeon.git
chmod +x ~/agentverse-dungeon/run_cloudbuild.sh
chmod +x ~/agentverse-dungeon/start.sh

git clone https://github.com/weimeilin79/vertex-ai-creative-studio.git
chmod +x ~/vertex-ai-creative-studio/experiments/mcp-genmedia/mcp-genmedia-go/install.sh

👉💻 اسکریپت اولیه سازی را اجرا کنید، این اسکریپت از شما می خواهد شناسه پروژه Google Cloud خود را وارد کنید. و شناسه پروژه Google Cloud را که از آخرین مرحله پیدا کردید، با درخواست اسکریپت init.sh وارد کنید.

cd ~/agentverse-developer
./init.sh

👉💻 شناسه پروژه مورد نیاز را تنظیم کنید:

gcloud config set project $(cat ~/project_id.txt) --quiet

👉💻 دستور زیر را برای فعال کردن API های Google Cloud لازم اجرا کنید:

gcloud services enable  compute.googleapis.com \
                        artifactregistry.googleapis.com \
                        run.googleapis.com \
                        cloudfunctions.googleapis.com \
                        cloudbuild.googleapis.com \
                        iam.googleapis.com \
                        aiplatform.googleapis.com \
                        cloudresourcemanager.googleapis.com

👉💻 اگر قبلا یک مخزن Artifact Registry با نام agentverse-repo ایجاد نکرده اید، دستور زیر را برای ایجاد آن اجرا کنید:

. ~/agentverse-developer/set_env.sh
gcloud artifacts repositories create $REPO_NAME \
    --repository-format=docker \
    --location=$REGION \
    --description="Repository for Agentverse agents"

راه اندازی مجوز

👉💻 با اجرای دستورات زیر در ترمینال مجوزهای لازم را اعطا کنید:

. ~/agentverse-developer/set_env.sh

# Artifact Registry Admin
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/artifactregistry.admin"

# Cloud Build Editor
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/cloudbuild.builds.editor"

# Cloud Run Admin
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/run.admin"

# IAM Service Account User
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/iam.serviceAccountUser"

# Vertex AI User
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/aiplatform.user"

# Logging Writer (to allow writing logs)
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/logging.logWriter"


gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/logging.viewer"

👉💻 همانطور که آموزش خود را شروع می کنید، چالش نهایی را آماده می کنیم. دستورات زیر Specters را از استاتیک آشفته فرا می‌خوانند و Boss را برای آزمایش شما ایجاد می‌کنند.

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-dungeon
./run_cloudbuild.sh

npm update -g @google/gemini-cli

4. تسلط بر سلاح اصلی: مقدمه ای بر Gemini CLI

قبل از اینکه بتوانید از سلاح های پیشرفته و تخصصی موجود در زرادخانه سرور MCP استفاده کنید، ابتدا باید بر سلاح اصلی خود مسلط شوید: Gemini CLI. این همه کاره ترین تیغه شماست که می تواند دنیای دیجیتال را با دستورات شما شکل دهد. این دریل ها شما را با قابلیت ها و قابلیت های اساسی آن آشنا می کند.

نمای کلی

رابط خط فرمان Gemini (CLI) بیش از یک ابزار است. این امتداد اراده شماست. این عامل AI منبع باز، که توسط مدل‌های Gemini پشتیبانی می‌شود، بر روی یک حلقه «عقل و عمل» (ReAct) عمل می‌کند. قصد شما را تجزیه و تحلیل می کند، تکنیک مناسب را انتخاب می کند، آن را اجرا می کند و نتیجه را برای تکمیل کارهای پیچیده مشاهده می کند. قبل از اینکه بتوانید از سلاح های تخصصی تری استفاده کنید، باید بر این تیغه اصلی تسلط داشته باشید.

شروع کار با Gemini CLI

👉💻 وارد زمین تمرین شوید و اسلحه خود را بکشید. در ترمینال Cloud Shell خود، به اسلحه خانه شخصی خود بروید.

cd ~/agentverse-developer
mkdir tabletop
cd tabletop

👉💻 برای اولین بار جوزا را احضار کنید. شما را از طریق هماهنگی اولیه راهنمایی می کند.

clear
gemini --model=gemini-2.5-flash --yolo

اگر از شما بپرسد Do you want to connect Cloud Shell editor to Gemini CLI? NO را انتخاب کنید.

آشنایی با سلاح

هر استادکار ابزار خود را می شناسد. شما باید تکنیک های اصلی تیغه خود را قبل از رویارویی با یک دشمن واقعی یاد بگیرید.

👉✨ هر ابزار مسحور شده دارای رونگ هایی است که قدرت آن را توصیف می کند. اکنون آنها را بخوانید. در اعلان Gemini، تایپ کنید:

/help

لیست دستورات را رعایت کنید. اینها تکنیک های اساسی شما برای مدیریت حافظه ( focus )، مکالمه ( chat ) و زرادخانه های خارجی ( tools ) هستند. این کتابچه راهنمای رزمی شماست.

👉✨ اسلحه شما با محیط خود هماهنگ شده است و به شما این امکان را می دهد که مستقیماً در میدان جنگ دستکاری کنید. دستوری به جهان خارج از تیغه صادر کنید:

!ls -l

👉✨ Gemini CLI مجموعه ای از توانایی های داخلی خود را دارد. برای بازرسی آنها:

/tools

لیستی از جمله ReadFile ، WriteFile و GoogleSearch خواهید دید. اینها تکنیک های پیش فرضی هستند که می توانید بدون نیاز به استفاده از یک زرادخانه خارجی از آنها استفاده کنید.

👉✨ یک سلاح تنها زمانی موثر است که به درستی تمرکز داشته باشد. تیغه جمینی می تواند "آگاهی تاکتیکی" (زمینه) را برای هدایت اقدامات خود نگه دارد.

/memory show

در حال حاضر خالی است، یک لوح سفید.

👉✨ داده های تاکتیکی زیر را در حافظه آن ثبت کنید:

/memory add "The Shadowblade's primary foe is The Static."

برای تأیید اینکه تیغه شما این دانش را جذب کرده است، دوباره /memory show اجرا کنید.

👉✨ برای موثر بودن، سلاح شما باید ماموریت را درک کند. @ sigil به تیغه دستور می دهد تا اینتل را تجزیه و تحلیل کند. ابتدا یک فایل خلاصه ماموریت ایجاد کنید:

!echo "## Mission Objective: Defeat the Seven Spectres" > mission.md

👉✨اکنون، به Gemini CLI خود دستور دهید تا جلسه توجیهی را تجزیه و تحلیل کند و یافته های آن را گزارش کند:

Explain the contents of the file @mission.md

سلاح اصلی شما اکنون از هدف خود آگاه است.

👉💻 Ctrl+C را دوبار فشار دهید تا از Gemini CLI خارج شوید

5. تجزیه و تحلیل میدان نبرد: تعامل کدگذاری فضایی عملی

تمرینات آموزشی به پایان رسیده است. شما مواضع اولیه و ضربات سلاح اصلی خود، Gemini CLI را یاد گرفته اید. اما تیغه تا زمانی که در سازه آفرینش آزموده نشود و با اسلحه جنگ هماهنگ نشود، واقعاً تسلط پیدا نمی کند. قبل از اینکه بتوانید با دشمن واقعی روبرو شوید، ابتدا باید محیط اطراف خود - میدان نبرد دیجیتال - را بررسی و شکل دهید.

نمای کلی

این فصل در مورد حرکت از تئوری به عمل است. شما ابتدا حضور خود را در Agentverse با فرمان دادن به Gemini blade خود برای جعل Maker's Mark شما تثبیت خواهید کرد - یک امضای دیجیتالی به شکل یک وب سایت شخصی که از چیزی جز هدف شما ساخته شده است. سپس، با فعال کردن یک زرادخانه محلی از ابزارهای پیشرفته - یک سرور MCP - و تنظیم کردن تیغه خود با فرکانس آن، قدرت خود را افزایش خواهید داد و به شما امکان می دهد مانورهای پیچیده ای مانند مدیریت مخازن کد با دستورات ساده و قاطع انجام دهید.

ایجاد علامت سازنده شما

یک Shadowblade واقعی نه تنها با اسلحه‌اش، بلکه از روی سبک امضای آن‌ها - نشان سازنده آنها - شناخته می‌شود. این علامت حضور دیجیتال شما خواهد بود، یک نمایه شخصی که هویت شما را به Agentverse اعلام می کند. در اینجا، به Gemini Blade خود دستور خواهید داد تا تکنیک پیچیده مورد نیاز برای تعریف این هویت را اجرا کند.

داستان

👉💻 اگر جمینی CLI را بسته اید، در قسمت قبل، مطمئن شوید که دوباره آن را در ترمینال اجرا کنید.

clear
cd ~/agentverse-developer/tabletop
gemini --model=gemini-2.5-flash --yolo

👉✨ با یک فرمان واحد و قدرتمند، به Gemini CLI خود دستور دهید تا پایه و اساس هویت دیجیتال شما را ایجاد کند:

In the current folder, create a personal profile website for a hero codenamed 'Shadowblade'. The design must be a dark, futuristic theme with electric blue accents. All code must be in separate index.html and styles.css files. The layout must use CSS Flexbox for a two-column design. All generated code must be clean, well-commented, and professional.

Gemini توالی اقدامات مورد نیاز را محاسبه کرده است.

ارزش واقعی یک تکنیک فقط در یک سناریوی زنده دیده می شود. به تیغه خود فرمان دهید شبیه سازی محلی را آغاز کند.

👉✨ در Gemini CLI خود، دستور شبیه سازی را صادر کنید:

Use Python's built-in web server to start the Shadowblade Profile website you just created.

توجه: ممکن است تیغه برای اجرای صحیح این کار به چند بار تلاش نیاز داشته باشد. تا زمانی که اطاعت کند، ادامه دهید.

با اقدامات پیشنهادی موافقت کنید. جمینی فعال بودن شبیه سازی را تایید می کند.

👀 Gemini CLI اطاعت می کند و تأیید می کند که شبیه سازی فعال است و علامت دیجیتال شما فعال است:

The website is now being served on port 8000. You can access it at http://localhost:8000.

👀 برای تماشای کار خود، روی نماد پیش‌نمایش وب در نوار ابزار Cloud Shell کلیک کنید. Change port را انتخاب کنید، آن را روی 8000 تنظیم کنید و روی Change and Preview کلیک کنید. پیش نمایشی از وب سایت شما ظاهر می شود. 04-01-webpreview.png

ممکن است وب سایت شما با من متفاوت به نظر برسد. این علامت منحصر به فرد شماست. 04-02-website.png

👉✨ تکنیک امضای شما اکنون اصلاح شده است و دیگر نیازی به شبیه سازی زنده نیست. به Blade فرمان دهید تا پایین بیاید.

Stop the Shadowblade Profile website

شما با موفقیت به Gemini CLI دستور داده اید که یک سری اقدامات را از طرف شما انجام دهد. اما یک استاد Shadowblade می داند که قدرت واقعی مستلزم نظم و انضباط و آینده نگری است. اجازه دادن به یک عامل هوش مصنوعی برای اجرای دستورات به طور مستقیم در محیط شما یک شمشیر دو لبه است. اگر دستور راه‌اندازی یک وب سرور ساده نبود، بلکه حذف فایل‌های حیاتی بود چه؟ یک فرمان بی دقت می تواند کل زمین تمرین شما را خراب کند.

به همین دلیل است که عاقل‌ترین صنعت‌گران قدرتمندترین یا آزمایش‌نشده‌ترین تکنیک‌های خود را در یک زمین تمرینی محصور شده به کار می‌گیرند - بعد محدودی که به عنوان جعبه شنی شناخته می‌شود.

👉💻 Ctrl+C را دوبار فشار دهید تا از Gemini CLI خارج شوید

جعبه شنی جمینی CLI ( gemini --sandbox ) یک ظرف موقت و ایزوله برای جلسه شما ایجاد می کند. هر دستوری که هوش مصنوعی اجرا می‌کند، هر فایلی که می‌نویسد، هر فرآیندی که شروع می‌کند، فقط در آن قلمرو فانتوم وجود دارد. نمی تواند محیط واقعی Cloud Shell شما را لمس کند، تغییر دهد یا به آن آسیب برساند. این مکان عالی برای آزمایش ابزارهای جدید قدرتمند، تجزیه و تحلیل کدهای ناآشنا، یا ارائه دستورالعمل های پیچیده هوش مصنوعی بدون خطر عواقب ناخواسته است. این تجسم احتیاط Shadowblade است.

👉💻 اکنون، برای درک قدرت آن، یک مراسم مهار را انجام خواهید داد.

clear
gemini --sandbox --yolo

شما اکنون در بعد ایزوله عمل می کنید. برای جمینی CLI، همه چیز عادی به نظر می رسد. بیایید ثابت کنیم. 👉💻 به تیغه فرمان دهید تا دقیقاً همان تکنیک قبلی را انجام دهد:

Use the Python's built-in web server to start the Shadowblade Profile website, you just created.

Gemini موفقیت را گزارش خواهد کرد، با این باور که یک بار دیگر وب سایت شما را در پورت 8000 زنده کرده است. اما بخش قوی است.

👉 به پیش نمایش وب بروید و سعی کنید سایت خود را در پورت 8000 مشاهده کنید.

این بار با یک خطا مواجه خواهید شد. اتصال شکست خواهد خورد . شما نمی توانید به وب سایت دسترسی پیدا کنید.

این یک خرابی ابزار نیست، بلکه اثبات قدرت سندباکس است . وب سرور در حال اجرا است ، اما در داخل بعد موجود در حال اجرا است، به طور کامل از مرورگر شما و دنیای خارج جدا شده است. بخش کاملاً کار می کند. شما با موفقیت از یک تکنیک قدرتمند استفاده کرده اید که تاثیری بر محیط واقعی شما نداشته است.

👉💻 Ctrl+C را دوبار فشار دهید تا از Gemini CLI خارج شوید.

هویت دیجیتال شما اکنون تثبیت شده است، و مهمتر از آن، شما حکمت انتقادی استفاده از قدرت بزرگ را با احتیاط بیشتری آموخته اید.

آرسنال محلی خود را فعال کنید: اسلحه جنگی Gitea

پتانسیل واقعی Shadowblade نه تنها با مهارت شخصی آنها، بلکه با کیفیت زرادخانه آنها باز می شود. اکنون قفسه اسلحه محلی خود - یک سرور Gitea - را فعال کرده و تیغه خود را با قدرت آن هماهنگ می کنید. این زرادخانه از طریق یک سرور پروتکل زمینه مدل (MCP) به Gemini CLI شما متصل می شود، یک پورتال تخصصی که به تیغه هوش مصنوعی شما اجازه می دهد با ابزارها و سرویس های خارجی تعامل داشته باشد و ترمینال شما را به یک فضای کاری هوشمند و عمل گرا تبدیل کند.

یادداشت توسعه‌دهنده: یک سرور MCP را به عنوان یک مجرای قدرت در نظر بگیرید، یک پورتال تخصصی که ذهن هوش مصنوعی شما را به بدنه ابزار خارجی متصل می‌کند. این چیزی است که Gemini CLI را از یک مکالمه‌گر صرف به یک عامل واقعی و کنش‌گرا ارتقا می‌دهد. با تنظیم کردن تیغه خود با این پورتال های MCP، به آن توانایی انجام اقدامات ملموس را می دهید: مدیریت فایل ها، جستجو در پایگاه های داده، تعامل با API ها و موارد دیگر. یک اکوسیستم کامل از این پورتال ها وجود دارد که توسط توسعه دهندگان برای اتصال عوامل هوش مصنوعی به پلتفرم های قدرتمند ایجاد شده است. سرورهای MCP برای تعامل با پایگاه های داده، کدهای ایمن یا حتی پشتیبانی از برنامه نویسی جفتی وجود دارد. امکانات بسیار زیاد است و به توسعه‌دهنده اجازه می‌دهد تا فضای کاری خود را برای هر پروژه خاص سفارشی کند.

امروز، ما بر روی دو قدرت اساسی ضروری برای هر "رمزگذار پرشور" تمرکز خواهیم کرد: قدرت کنترل فورج و قدرت خلق از تخیل. ابتدا blade خود را با سرور Git هماهنگ می‌کنید و به شما فرمانی بر مخزن کد منبع خود می‌دهد. سپس، برای تولید تصویر به سرور MCP دوم متصل خواهید شد و به شما این امکان را می‌دهد که دارایی‌های بصری را با چیزی بیش از یک فرمان ایجاد کنید.

اجازه دهید با احضار اولین و اساسی ترین قطعه زرادخانه جدید شما شروع کنیم: خود اسلحه خانه.

👉💻 در ترمینال خود، اسکریپت فعال سازی را برای احضار اسلحه خانه اجرا کنید:

cd ~/agentverse-developer
./gitea.sh

این اسکریپت ظرف Gitea را بیدار می کند و پورتال MCP را باز می کند و به Gemini اجازه می دهد آن را درک کند و با آن تعامل داشته باشد.

👉 برای بررسی زرادخانه جدید خود، باید به پیش نمایش وب نگاه کنید.

👉 از نماد پیش نمایش وب در نوار ابزار Cloud Shell، Change port را انتخاب کنید و آن را روی 3005 تنظیم کنید. 04-03-webpreview.png

👉 یک صفحه ورود به سیستم Gitea ظاهر می شود. با استفاده از طلسم وارد اسلحه خانه شوید: * نام کاربری: dev * رمز عبور: dev وارد شوید

👉💻 Gemini CLI شما هنوز نمی تواند این زرادخانه جدید را ببیند. شما باید یک هماهنگی حیاتی انجام دهید، و مکان اسلحه را بر روی رون های پیکربندی Gemini CLI ( settings.json ) بنویسید. در ترمینال خود، اجرا کنید:

jq '. * {"mcpServers":{"gitea":{"url":"http://localhost:8085/sse"}}}' ~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
cat ~/.gemini/settings.json

👀 فایل settings.json پیکربندی مرکزی برای Gemini CLI است که به‌عنوان فهرست اولویت‌ها و قابلیت‌های آن عمل می‌کند. این دیکته می کند که CLI چگونه رفتار کند، ظاهر شود، و مهمتر از همه، چه قدرت های خارجی می تواند اعمال کند. این فایل معمولاً در فهرست اصلی شما در آدرس ~/.gemini/settings.json قرار دارد و قوانین آن را برای همه پروژه های شما اعمال می کند. با این حال، می‌توانید فایل‌های settings.json خاص پروژه را در یک پوشه .gemini در پوشه پروژه خود ایجاد کنید تا تنظیمات کلی را لغو کنید.

"mcpServers": {
  "gitea": {
    "url": "http://localhost:8085/sse"
  }
}

این تنظیم به Gemini شما می گوید: "زرادخانه ای به نام gitea فعال است و به دستورات در این آدرس شبکه خاص گوش می دهد."

👉💻 دوباره وارد جمینی CLI شوید. در ترمینال خود، اجرا کنید:

clear
cd ~/agentverse-developer/tabletop/
gemini --model=gemini-2.5-flash --yolo

👉✨ بررسی کنید که تیغه شما سلاح جدید را کشف کرده است. به آن فرمان دهید تا تمام زرادخانه های موجود را از طریق پورتال های MCP خود فهرست کند:

/mcp

سرور MCP Gitea

اکنون باید gitea و لیست تکنیک های موجود آن را ببینید. تیغه شما هماهنگ است.

نمایه "Maker's Mark" شما یک تکنیک ظریف است، اما به یک مکان مناسب در اسلحه خانه نیاز دارد - یک غلاف برای محکم نگه داشتن آن. به Gemini CLI خود دستور ایجاد کنید.

Create a new repository named 'shadowblade-profile'. The description should be 'The Maker's Mark and digital identity for the Shadowblade operative.' I will push my own files later, so do not create any content.

به رابط وب Gitea برگردید و تازه سازی کنید. خواهید دید که مخزن جدید shadowblade-profile برای شما ساخته شده است. Gitea Repo

با غلاف آماده، کار خود را ایمن کنید. به Gemini دستور دهید تا فایل‌های وب‌سایت پروفایل شما را commit کند.

👉💻فرمان نهایی این تکنیک را در Gemini CLI صادر کنید:

Using the Gitea tool, push the index.html and styles.css files to the 'shadowblade-profile' repository.

یک استاد واقعی کار آنها را تأیید می کند. به تب Gitea برگردید و صفحه مخزن را بازخوانی کنید. index.html و styles.css شما اکنون بایگانی شده اند.

Gitea RepoGitea Repo

👉✨ Shadowblade با sigil آنها تعریف می شود، اما همانطور که به یاد می آورید، وب سایت شما تصویر نمایه خود را ندارد. یک استادکار عیوب آنها را می پذیرد تا آنها را کامل کند. شما باید این نقص را در سوابق زرادخانه ثبت کنید.

File an issue for me in the shadowblade-profile repo. The issue is that the profile image is missing.

مشکل را در Gitea مشاهده کنید موضوع Gitea

برای جعل علامت گمشده، باید نوع متفاوتی از قدرت را احضار کنید - روحی آفرینش از Vertex AI که قادر به تولید تصاویر از تفکر ناب است. این به پورتال MCP دیگری نیاز دارد.

👉💻 Ctrl+C را دوبار فشار دهید تا از Gemini CLI خارج شوید

👉💻 ابتدا سرور پورتال را نصب کنید. در ترمینال خود، اجرا کنید:

echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.bashrc
source ~/.bashrc
cd ~/vertex-ai-creative-studio/experiments/mcp-genmedia/mcp-genmedia-go
./install.sh

👉 وقتی از شما خواسته شد، گزینه 3 را انتخاب کنید، زیرا فقط باید یک تصویر برای نمایه خود ایجاد کنیم.

👉💻 روح خلقت به یک ظرف مقدس - یک سطل ذخیره‌سازی ابری Google - نیاز دارد تا مخلوقات خود را نگه دارد. حالا یکی بسازیم در ترمینال خود، اجرا کنید:

. ~/agentverse-developer/set_env.sh
gcloud storage buckets create gs://$BUCKET_NAME --project=$PROJECT_ID

👉💻 اکنون، مراسم هماهنگی را انجام دهید و CLI Gemini خود را به این نیروی خلاق جدید مرتبط کنید. در ترمینال خود، اجرا کنید:

. ~/agentverse-developer/set_env.sh
source ~/.bashrc
jq \
--arg bucket "$BUCKET_NAME" \
--arg project "$PROJECT_ID" \
--arg region "$REGION" \
'.mcpServers.imagen = { "command": "mcp-imagen-go", "env": { "MCP_SERVER_REQUEST_TIMEOUT": "55000", "GENMEDIA_BUCKET": $bucket, "PROJECT_ID": $project, "LOCATION": $region } }' \
~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
cat ~/.gemini/settings.json

این "آیین هماهنگی" یک اسکریپت پوسته ای است که Gemini CLI شما را برای استفاده از یک ابزار قدرتمند جدید پیکربندی می کند: Imagen ، مدل تولید تصویر گوگل. مهمتر از همه، با راه اندازی یک سرور MCP (مدل متن پروتکل) برای Imagen به این امر دست می یابد. این سرور MCP به عنوان یک پل عمل می کند و Gemini CLI را قادر می سازد تا با قابلیت های Imagen ارتباط برقرار کرده و از آنها استفاده کند. این کار را با تغییر مستقیم فایل پیکربندی مرکزی CLI، ~/.gemini/settings.json انجام می دهد تا به آن آموزش دهد که چگونه دستور mcp-imagen-go را با اعتبارنامه های ابری صحیح اجرا کند.

👀 بعد از مراسم، settings.json شما یک بلوک جدید دارد که به Gemini CLI یک مهارت جدید می آموزد:

"imagen": {
    "command": "mcp-imagen-go",
    "env": {
        "MCP_SERVER_REQUEST_TIMEOUT": "55000",
        "GENMEDIA_BUCKET": "your-bucket-name",
        "PROJECT_ID": "your-project-id",
        "LOCATION": "your-region"
    }
}

این به Gemini CLI می‌گوید: "زمانی که یک کار به ابزار Imagen نیاز دارد، باید برنامه‌ای به نام mcp-imagen-go (که سرور Imagen MCP است) را اجرا کنید. وقتی آن را اجرا می‌کنید، باید آن را با این محیط خاص (env) در اختیار آن قرار دهید: یک سطل Google Cloud Storage برای ذخیره تصاویر و شناسه ابری پروژه و مکان‌هایی که برای استفاده از آن استفاده کنید. با پیکربندی این سرور MCP، به طور موثر Gemini CLI را با دسترسی به قدرت تولید تصویر Imagen مجهز می‌کنید. "

👉💻 وارد Gemini شوید و دستور پالایش را صادر کنید. در ترمینال خود، اجرا کنید:

clear
cd ~/agentverse-developer/tabletop/
gemini --model=gemini-2.5-flash --yolo

👉✨ با یک فرمان واحد و قدرتمند، به Gemini CLI خود دستور دهید تا پایه و اساس هویت دیجیتال شما را بسازد. در Gemini CLI خود، این دستور را صادر کنید:

Generate a portrait of a shadowblade, pixel art style. A determined warrior with long, braided magenta hair, wearing black and teal armor and confidently holding a silver broadsword.

👉✨ روح تصویر را ایجاد می کند و آن را در ظرف مقدس شما قرار می دهد. اکنون به تیغه فرمان دهید که از این سیگل تازه ساخته شده استفاده کند.

Modify the index.html file to add my profile picture. Use the image I just generated.

👉✨ وب سایت را برای آخرین بار راه اندازی کنید تا کار کامل خود را ببینید.

start the website with a simple HTTP server via Python

👀 برای تماشای کار خود، روی نماد پیش‌نمایش وب در نوار ابزار Cloud Shell کلیک کنید. Change port را انتخاب کنید، آن را روی 8000 تنظیم کنید و روی Change and Preview کلیک کنید. پیش نمایشی از وب سایت شما ظاهر می شود. 05-07-webdite.png

👉✨ در نهایت، با توجه به اتمام کار، رفع مشکل را انجام دهید و موضوعی را که در سوابق اسلحه خانه ثبت کرده اید، ببندید.

Push the changed index.html file to the 'shadowblade-profile' repository using the gitea tool. Make sure you add 'Fix #1' in the commit comment. Also, close issue #1.Use the Gitea Tool and use user account "dev"

👀 برای تماشای کار خود، روی نماد پیش‌نمایش وب در نوار ابزار Cloud Shell کلیک کنید. Change port را انتخاب کنید، آن را روی 3005 تنظیم کنید و روی Change and Preview کلیک کنید. پیش نمایشی از وب سایت شما ظاهر می شود. ثابت شد

👉✨ در Gitea بررسی کنید که تصویر به روز شده و مشکل بسته شده است. کار شما تمام شد روی سرور بایستید

stop website server

👉💻 برای خروج دوبار Ctrl+C را فشار دهید.

6. مونتاژ عامل Shadowblade: کد Vibe با Guardrails

زمان تمرینات به پایان رسیده است. پژواک فولاد روی سنگ محو می شود. شما بر سلاح اصلی خود مسلط شده اید و زرادخانه خود را برای جنگ آماده کرده اید. اکنون، شما آزمایش واقعی Shadowblade را انجام خواهید داد: مونتاژ خود عامل. این هنر دمیدن زندگی در منطق است، با استفاده از طرحی مقدس از Codex برای ساختن هوش اصلی یک عامل - ایجاد یک صاحب حساس برای تیغه های موجود در زرادخانه شما که می تواند به تنهایی فکر کند، استدلال کند و عمل کند.

نمای کلی

اولین ماموریت شما این است که وارد یک کارگاه موجود شوید - یک پایگاه کد از پیش ساخته شده - و از قسمت های آن، قهرمان خود را جعل کنید.

آیین مجمع

قبل از اولین جرقه فورج، یک تکنسین چیره دست کارگاه آنها را بررسی می کند و هر ابزار و هر طرحواره ای را درک می کند. هنگامی که وارد یک میدان جنگ ناآشنا مانند یک پایگاه کد بزرگ و موجود می شوید، اولویت اول شما شناسایی است. شما باید وضعیت زمین را درک کنید - معماری موجود، اهداف نهایی و پروتکل های تعامل. تنها با آشنایی با نقشه‌های قلعه و استانداردهای آن می‌توانید مهارت خود را به طور مؤثری انجام دهید.

داستان

Gemini CLI شما، پیشاهنگ همیشه حاضر شما، می تواند به شما در این شناسایی کمک کند:

  • ارائه خلاصه های سطح بالا: می تواند کل کدکس (یا پایگاه کد) را بخواند و به شما درک سریعی از هدف و اجزای کلیدی آن بدهد.
  • کمک به تنظیمات محیط: می‌تواند شما را از طریق آیین‌های مخفیانه نصب ابزار و پیکربندی دستگاهتان راهنمایی کند.
  • Navigate Codebases: می تواند به عنوان راهنمای شما عمل کند و به شما کمک کند منطق پیچیده را کشف کنید و معابر پنهان را در کد پیدا کنید.
  • ایجاد اسناد Onboarding: می‌تواند طومارهای سفارشی ایجاد کند که اهداف، نقش‌ها و منابع را برای متحدان جدیدی که به هدف شما می‌پیوندند، روشن می‌کند.
  • یادگیری و پرسش و پاسخ خودکار: این دانشمند شخصی شما می شود و به سؤالات مربوط به ویژگی ها یا رفتار کد پاسخ می دهد و به شما امکان می دهد با استقلال بیشتری مبارزه کنید.

👉💻 در اولین ترمینال خود، به دایرکتوری shadowblade بروید و شریک هوش مصنوعی خود را احضار کنید:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini --model=gemini-2.5-flash --yolo

👉✨ اکنون به پیشاهنگ خود دستور دهید تا میدان نبرد را بررسی کند و گزارش دهد.

Analyze the entire project and provide a high-level summary.

با نقشه‌برداری از زمین موجود، اکنون باید نقشه‌ای را که می‌خواهید بسازید، مشورت کنید. قدرتمندترین عامل ها بداهه نیستند، بلکه از یک طرح دقیق ساخته شده اند.

توجه توسعه‌دهنده: این سند طراحی به‌عنوان نقشه‌ای معتبر برای پروژه عمل می‌کند. هدف آن اعمال وضوح در اهداف و اجرای فنی قبل از سرمایه گذاری قابل توجه توسعه است. یک برنامه کاملاً تعریف شده تضمین می کند که همه توسعه دهندگان همسو هستند، خطر دوباره کاری را کاهش می دهد و به جلوگیری از بدهی فنی و خزش دامنه کمک می کند. این ابزار اصلی برای حفظ سرعت پروژه و کیفیت کد است، به ویژه هنگامی که تیم رشد می کند یا اعضای جدید وارد می شوند.

هدف مهم این سند، تعریف نه تنها «مسیر شاد»، بلکه موارد لبه و حالت‌های شکست، به‌ویژه هنگام استفاده از LLM است. تجربه من با LLM ها در تولید کد خوش بینانه که در آن همه ورودی ها معتبر هستند و همه تماس های خارجی موفق هستند، عالی است. برای ساختن نرم‌افزار قوی و آماده تولید، باید هوش مصنوعی را با تعریف موارد احتمالی برای سناریوهایی مانند:

  • آرگومان های نامعتبر یا نادرست به یک تابع ارسال می شود.
  • خرابی تماس API، وقفه زمانی شبکه، یا کدهای خطای غیرمنتظره از سرویس های خارجی.
  • مدیریت ساختارهای داده پوچ یا خالی در جایی که داده مورد انتظار است.
  • شرایط مسابقه یا مسائل همزمان.

با مشخص کردن رفتار مورد انتظار برای این موارد در طراحی، به LLM دستور می‌دهیم تا کد انعطاف‌پذیرتری تولید کند و زمان صرف شده برای بازسازی دستی و رفع اشکال را به میزان قابل توجهی کاهش دهد.

👉✨ از Gemini بخواهید این طرح مقدس را برای شما بازیابی کند.

download https://raw.githubusercontent.com/weimeilin79/agentverse/main/developer/shadowblade/agent_design.md  and store it to my local folder
and show me the newly downloaded design doc. Do not attempt to create file just yet. 

👉✨ طومار طولانی و مفصل است. به Gemini دستور دهید تا اسانس خود را تقطیر کند.

Summarize the newly downloaded @agent_design.md for me, do not attempt to create file just yet. 

حالا شما برنامه را دارید. اما قبل از اینکه یک خط کد جعل شود، یک صنعتگر ماهر قوانین جعل را وضع می کند. این در مورد نظم و مقیاس پذیری است. اینها دستورالعمل های کدگذاری هستند. آنها پیشنهادات صرف نیستند، آنها رول های قدرتی هستند که تضمین می کنند هر جزء با همان دقت و قدرت ساخته شده است. آنها از هرج و مرج سبک فردی جلوگیری می کنند تا خلق نهایی را خراب کند، اطمینان می دهند که عامل انعطاف پذیر، قابل نگهداری و خالص است و به صنعتگران جدید اجازه می دهد بدون برهم زدن هماهنگی کل به پروژه بپیوندند.

برای ثبت مستقیم این قوانین در آگاهی شریک هوش مصنوعی خود، از یک مصنوع خاص استفاده می کنیم: فایل GEMINI.md . هنگامی که Gemini CLI احضار می شود، به طور خودکار این فایل را جستجو می کند و محتویات آن را در حافظه کاری هوش مصنوعی بارگذاری می کند. این یک دستورالعمل مداوم و در سطح پروژه می شود. طلسمی که دائماً قوانین جعل را برای هوش مصنوعی زمزمه می کند.

حالا بیایید این رون ها را بنویسیم.

👉💻 با دوبار فشار دادن Ctrl+C برای لحظه ای از Gemini خارج شوید.

👉💻 در ترمینال خود، دستور زیر را برای نوشتن فایل راهنما اجرا کنید.

cat << 'EOF' > GEMINI.md
  ### **Coding Guidelines**
  **1. Python Best Practices:**

  *   **Type Hinting:** All function and method signatures should include type hints for arguments and return values.
  *   **Docstrings:** Every module, class, and function should have a docstring explaining its purpose, arguments, and return value, following a consistent format like reStructuredText or 
  Google Style.
  *   **Linter & Formatter:** Use a linter like `ruff` or `pylint` and a code formatter like `black` to enforce a consistent style and catch potential errors.
  *   **Imports:** Organize imports into three groups: standard library, third-party libraries, and local application imports. Sort them alphabetically within each group.
  *   **Naming Conventions:**
      *   `snake_case` for variables, functions, and methods.
      *   `PascalCase` for classes.
      *   `UPPER_SNAKE_CASE` for constants.
  *   **Dependency Management:** All Python dependencies must be listed in a `requirements.txt` file.

  **2. Web APIs (FastAPI):**

  *   **Data Validation:** Use `pydantic` models for request and response data validation.
  *   **Dependency Injection:** Utilize FastAPI's dependency injection system for managing resources like database connections.
  *   **Error Handling:** Implement centralized error handling using middleware or exception handlers.
  *   **Asynchronous Code:** Use `async` and `await` for I/O-bound operations to improve performance.
EOF
cat GEMINI.md

با قوانین درج شده، بیایید شریک هوش مصنوعی خود را دوباره احضار کنیم و شاهد جادوی مصنوع باشیم.

👉💻 Gemini CLI را از دایرکتوری shadowblade دوباره راه اندازی کنید:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini --model=gemini-2.5-flash --yolo

👉✨ اکنون، از Gemini بخواهید به شما نشان دهد که به چه چیزی فکر می کند. رون ها خوانده شده اند.

/memory show 

این لحظه محوری است. شما طرحواره (agent_design.md) و قوانین جعل (GEMINI.md) را ارائه می دهید و طلسم بزرگ خلقت را صادر می کنید.

👉✨ این فرمان واحد و قدرتمندی است که عامل شما را می سازد. اکنون صادر کنید:

You are an expert Python developer specializing in the Google Agent Development Kit (ADK). Your task is to write the complete, production-quality code for `agent.py` by following the technical specifications outlined in the provided design document verbatim.

Analyze the design document at `@agent_design.md` and generate the corresponding Python code for `@agent.py`.

Ensure the generated code is clean, matches the specifications exactly, and includes all specified imports, functions, and logic. Do not add any extra functions or logic not described in the document.

and you are currently already in the shadowblade working directory

👀 Gemini اکنون منطق اصلی عامل را در agent.py ساخته است. هسته این فایل جدید، هوش عامل را تعریف می کند و مدل استدلال آن را به مجموعه ای از ابزارهای خارجی متصل می کند:

PATH_TO_MCP_SERVER = "shadowblade/mcp_server.py"
.....
root_agent = LlmAgent(
    model="gemini-2.5-pro",
    name="shadowblade_combat_agent",
    instruction="""
      You are the Shadowblade, an elite combat agent operating on a digital battleground.
      Your primary objective is to execute combat commands with strategic precision, neutralizing targets as directed.
  ......
      5.  You will then report the outcome of the attack (damage, special effects, etc.) back to the commander in a clear, tactical summary.

      General Rules of Engagement:
      - If a command is ambiguous or a target is not specified, state that you require a clear target for engagement. Do not guess.
      - You MUST use ONLY the provided tools to perform actions. Do not invent weapons or outcomes. Stick to the mission parameters.
""",
    tools=[
        MCPToolset(
            connection_params=StdioServerParameters(
                command='python3',
                args=[PATH_TO_MCP_SERVER]
            )
        )
    ]
)

پارامتر tools . عامل برای استفاده از MCPToolset طراحی شده است که به یک زرادخانه خارجی تعریف شده در mcp_server.py متصل می شود.

👀 به ~/agentverse-developer/shadowblade/mcp_server.py در ویرایشگر بروید و کمی وقت بگذارید تا بفهمید چه کار می کند. این منبع تمام سلاح های موجود برای Shadowblade است. در حال حاضر، اسلحه خانه کاملاً برهنه است.

06-02-story.png

👉✨ بیایید به Gemini دستور دهیم که هفت سلاح جدید برای زرادخانه بسازد. دستور زیر را در Gemini CLI صادر کنید:

I need to add several new weapon tools to my `mcp_server.py` file. Please open @mcp_server.py and, following the exact same pattern as the existing `forge_broadsword()` function, create and add new `@mcp.tool()` decorated functions for each of the following weapons:

1.  **A 'Refactoring Sickle'**:
    -   **Function Name:** `hone_refactoring_sickle`
    -   **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses like 'The Weaver of Spaghetti Code'."
    -   **Weapon Name:** "Refactoring Sickle"
    -   **Damage Type:** "Cleansing"
    -   **Base Damage:** Random integer between 100 and 136
    -   **Critical Hit Chance:** Random float between 0.10 and 0.20
    -   **Special Effect:** "Pruning - improves code health and maintainability with each strike."

2.  **A 'Quickstart Crossbow'**:
    -   **Function Name:** `fire_quickstart_crossbow`
    -   **Docstring/Target:** "Effective against 'Confrontation with Inescapable Reality' weaknesses like 'Procrastination: The Timeless Slumber'."
    -   **Weapon Name:** "Quickstart Crossbow"
    -   **Damage Type:** "Initiative"
    -   **Base Damage:** Random integer between 105 and 120
    -   **Critical Hit Chance:** Random float between 0.9 and 1.0
    -   **Special Effect:** "Project Scaffolding - creates a `main.py`, `README.md`, and `requirements.txt`."

3.  **'The Gilded Gavel'**:
    -   **Function Name:** `strike_the_gilded_gavel`
    -   **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses like 'Perfectionism: The Gilded Cage'."
    -   **Weapon Name:** "The Gilded Gavel"
    -   **Damage Type:** "Finality"
    -   **Base Damage:** 120
    -   **Critical Hit Chance:** 1.0
    -   **Special Effect:** "Seal of Shipping - marks a feature as complete and ready for deployment."

4.  **'Daggers of Pair Programming'**:
    -   **Function Name:** `wield_daggers_of_pair_programming`
    -   **Docstring/Target:** "Effective against 'Unbroken Collaboration' weaknesses like 'Apathy: The Spectre of \"It Works on My Machine\"'."
    -   **Weapon Name:** "Daggers of Pair Programming"
    -   **Damage Type:** "Collaborative"
    -   **Base Damage:** Random integer between 110 and 125
    -   **Critical Hit Chance:** Random float between 0.30 and 0.50
    -   **Special Effect:** "Synergy - automatically resolves merge conflicts and shares knowledge."

5.  **A 'Granite Maul'**:
    -   **Function Name:** `craft_granite_maul`
    -   **Docstring/Target:** "Effective against 'Revolutionary Rewrite' weaknesses like 'Dogma: The Zealot of Stubborn Conventions'."
    -   **Weapon Name:** "Granite Maul"
    -   **Damage Type:** "Bludgeoning"
    -   **Base Damage:** Random integer between 115 and 125
    -   **Critical Hit Chance:** Random float between 0.05 and 0.15
    -   **Special Effect:** "Shatter - has a high chance to ignore the target's 'best practice' armor."

6.  **A 'Lens of Clarity'**:
    -   **Function Name:** `focus_lens_of_clarity`
    -   **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses by revealing the truth behind 'Obfuscation'."
    -   **Weapon Name:** "Lens of Clarity"
    -   **Damage Type:** "Revelation"
    -   **Base Damage:** Random integer between 120 and 130
    -   **Critical Hit Chance:** 1.0
    -   **Special Effect:** "Reveal Constants - highlights all magic numbers and suggests converting them to named constants."

7.  **The 'Codex of OpenAPI'**:
    -   **Function Name:** `scribe_with_codex_of_openapi`
    -   **Docstring/Target:** "Effective against 'Confrontation with Inescapable Reality' weaknesses like 'Hype: The Prophet of Alpha Versions'."
    -   **Weapon Name:** "Codex of OpenAPI"
    -   **Damage Type:** "Documentation"
    -   **Base Damage:** Random integer between 110 and 140
    -   **Critical Hit Chance:** Random float between 0.5 and 0.8
    -   **Special Effect:** "Clarity - makes an API discoverable and usable by other agents and teams."

👉 پس از تایید تغییرات Gemini، فایل mcp_server.py را باز کنید. کد را مرور کنید و تأیید کنید که هفت تابع جدید @mcp.tool() با موفقیت اضافه شده اند. تابع hone_refactoring_sickle را بررسی کنید. آیا مدارک و آمار سلاح درستی دارد؟ تایید کار هوش مصنوعی یک عادت حیاتی استاد Shadowblade است.

با جعل و پالایش عامل، زمان بیداری آن فرا رسیده است.

👉💻 Ctrl+C را دوبار فشار دهید تا از Gemini CLI خارج شوید

یادداشت توسعه‌دهنده در مورد خروجی Gemini: کد تولید شده توسط Gemini گاهی غیرقابل پیش‌بینی است. در حالی که ما برای رعایت دقیق طراحی تلاش می کنیم، در جلسات توسعه طبیعی است که توسعه دهندگان کد را چندین بار تکرار و اصلاح کنند تا به حالت آماده تولید برسند.

👉💻 برای اطمینان از اینکه کد تولید صحیح و کاملاً آزمایش شده را در فهرست کاری خود دارید، لطفاً دستورات زیر را در ترمینال خود اجرا کنید:

cp  ~/agentverse-developer/working_code/agent.py ~/agentverse-developer/shadowblade/agent.py
cp  ~/agentverse-developer/working_code/mcp_server.py ~/agentverse-developer/shadowblade/mcp_server.py

👉💻 در ترمینال خود، مراسم را شروع کنید تا آن را آنلاین کنید:

cd ~/agentverse-developer/
. ~/agentverse-developer/set_env.sh
python -m venv env
source env/bin/activate
pip install --upgrade pip
pip install -r shadowblade/requirements.txt
adk run shadowblade

👉✨ باید خروجی را ببینید که تأیید می‌کند "Shadowblade Combat Agent" درگیر است و در حال اجرا است و منتظر اولین فرمان است. اولین دستورات رزمی خود را صادر کند.

We've been trapped by 'Perfectionism: The Gilded Cage'. Its weakness is 'Elegant Sufficiency'. Break us out!

👉✨ و دیگری:

The 'Dogma: The Zealot of Stubborn Conventions' blocks our path. Its weakness is 'Revolutionary Rewrite'. Take it down.

شما با موفقیت اولین عامل خود را مونتاژ کردید و قابلیت های رزمی آن را تأیید کردید. Ctrl+C را دو بار فشار دهید تا قهرمان شما استراحت کند. مونتاژ کامل است.

7. بخشهای طهارت: ارزیابی عوامل

یک عامل مونتاژ شده یک عامل اثبات شده نیست. یک تیغه آزمایش نشده یک مسئولیت است، اما یک عامل هوش مصنوعی آزمایش نشده یک خطر بسیار بزرگتر است - یک عنصر سرکش که می تواند ماموریت شما را از درون خراب کند. این یک گمانه زنی صرف نیست. این یک اصل اصلی است که Shadowblade باید بداند.

ارزیابی عوامل هوش مصنوعی هم حیاتی است و هم چالش برانگیز است. برخلاف یک اسکریپت ساده، یک عامل ترکیبی پویا از کد شما و ذهن استدلال چند مرحله ای یک LLM است. رفتار آن ظهوری است. این بدان معنی است که شما باید نه تنها کیفیت خروجی نهایی بلکه کارایی و صحت مسیر داخلی آن را نیز ارزیابی کنید. مسیری که برای رسیدن به آنجا طی شد. آیا از ابزار مناسبی استفاده کرده است؟ آیا توکن های زیادی تولید کرد؟ آیا تغییر در نسخه مدل باعث ایجاد رگرسیون تاخیری ظریفی شد؟ تشخیص این فساد - رگرسیون در تأخیر، هزینه یا کیفیت خروجی - هنگام ایجاد هر تغییری، از یک تغییر سریع ساده تا یک تعمیر اساسی معماری، بسیار مهم است، قبل از اینکه بتواند محیط تولید شما را مسموم کند.

07-01-story.png

رویکرد کلی به این ارزیابی شامل یک مراسم مقدس است:

  1. ابتدا یک "داده داده طلایی" را تعریف می کنید. مجموعه ای از طومارها حاوی ورودی های نمونه و خروجی ها یا رفتارهای مورد انتظار آنها. این می تواند شامل پاسخ های نهایی، استفاده صحیح از ابزار یا حتی کل مسیرهای گام به گام باشد.
  2. در مرحله بعد، منطق برنامه عامل خود، هسته وجودی آن را تعریف می کنید.
  3. در نهایت، شما ارزیاب هایی را ایجاد می کنید، که مانند روون های قضاوت هستند. اینها می تواند از سایر LLM ها باشد که به عنوان داوران کیفیت عمل می کنند ، تا کد اکتشافی دقیق که یک مرحله واحد را تأیید می کند ، تا عملکردهای سفارشی که کل فرایند تفکر یک عامل را تجزیه و تحلیل می کند.

نمای کلی

کیت توسعه عامل Google (ADK) کیت زره پوش است که برای این منظور به قهرمانان ارائه می شود. این ارزیابی پیچیده را از طریق چندین روش تسهیل می کند:

  • استخر Scrying مبتنی بر وب ( adk web ) برای ارزیابی تعاملی
  • اجرای خط فرمان ( adk eval ) برای اجرای یک عامل از طریق یک دستکش از پیش تعریف شده.
  • ادغام برنامه ای از طریق pytest برای کتیبه بخش های دائمی

ADK از دو رویکرد اصلی پشتیبانی می کند: "پرونده های آزمایشی" ساده برای تعامل تک ، گسسته عامل (یک دوئل واحد) و "Evalsets" جامع برای جلسات متعدد ، بالقوه طولانی و چند نوری (یک غوغا بزرگ). اینها می توانند معیارها را به همان اندازه پیچیده به عنوان tool_trajectory_avg_score اندازه گیری کنند ، که استفاده از ابزار واقعی یک عامل را در مسیر ایده آل مقایسه می کند ، و اطمینان می دهد که با تکنیک کامل عمل می کند.

اکنون که این تئوری را درک کردید ، آن را عملی خواهید کرد. به عنوان یک سایه بان ، بخش های خلوص را حک می کنید. اینها فقط آزمایش نیستند ؛ آنها آیین های ADK هستند که تضمین می کنند منطق عامل شما بی عیب و نقص است و رفتار آن درست است.

در این مرحله ، استفاده از 2 ترمینال هنوز هم برای Gemini CLI و دیگری برای اجرای تست بسیار توصیه می شود ، زیرا ممکن است شما را به خروج از فهرست کار فعلی (ADK) نیاز داشته باشد.

Gauntlet of Strategy ( adk eval )

این بخش اول یک دستکش است ، مجموعه ای از چالش هایی که برای آزمایش هوش اصلی عامل در طیف گسترده ای از سناریوها طراحی شده است. هدف این است که پایه ای از صلاحیت ایجاد شود. قبل از اینکه موارد لبه را آزمایش کنیم ، باید بدانیم که آیا عامل می تواند عملکرد اصلی خود را انجام دهد. آیا این ضعف یک هیولا را به درستی تجزیه و تحلیل کرده و مؤثرترین سلاح را از زرادخانه آن انتخاب می کند ، نه فقط یک بار ، بلکه هر بار که با یک چالش شناخته شده ارائه می شود؟

برای این کار ، ADK Eval ابزار مناسبی است. این برنامه برای اجرای یک عامل در برابر مجموعه ای از موارد آزمایش از پیش تعریف شده که نمایانگر ماموریت های مورد انتظار عامل است ، طراحی شده است. این مجموعه داده در یک فایل JSON تعریف شده است ، "پیمایش چالش" که به عنوان طرح برای کل دستکش عمل می کند.

آناتومی یک پیمایش چالش

👀 قبل از اینکه به هوش مصنوعی خود دستور دهید تا یک پیمایش جدید را کاتب کنید ، باید زبان باستانی را که در آن نوشته شده است درک کنید. بیایید ساختار پرونده نمونه. evalset.json را جدا کنیم.

{
  "eval_set_id": "sample",
  "eval_cases": [
    {
      "eval_id": "case0cbaa0",
      "conversation": [
        {
          "user_content": { "text": "We're facing the 'Monolith of Eternal Dependencies'... weakness is a 'Revolutionary Rewrite'..." },
          "final_response": { "text": "Soulshard Dagger deployed. Initiated Arcane/Piercing strike..." },
          "intermediate_data": {
            "tool_uses": [
              { "name": "enchant_soulshard_dagger" }
            ]
          }
        }
      ]
    }
  ]
}

این پیمایش شامل لیستی از eval_cases است ، جایی که هر مورد یک آزمایش منحصر به فرد برای نماینده شما است. در هر محاکمه ، آرایه مکالمه یک تعامل کامل و کامل را مستند می کند. برای هدف ما ، سه رون از اهمیت ویژه ای برخوردار هستند:

  • user_content : این چالش است. این سریع است که شما را برای نماینده خود ، هیولای که باید با آن روبرو شوید ، صادر کنید.
  • Final_Response : این نتیجه پیشگویی شده است. این متن دقیق متن است که انتظار دارید نماینده شما پس از انجام کار خود بیان کند. ADK سخنان نهایی واقعی عامل را با این Rune مقایسه می کند تا در مورد فصاحت خود قضاوت کند.
  • intermediate_data.tool_uses : این تکنیک Arcane است. برای یک عامل واقعی ، این مهمترین Rune از همه است. این نه آنچه را که عامل می گوید ، بلکه آنچه را که انجام می دهد تعریف می کند. نام این ابزار را ثبت می کند (Enchant_Soulshard_Dagger) شما انتظار دارید که عامل از آن استفاده کند. این تضمین می کند که نماینده شما فقط یک مکالمه گرای باهوش نیست بلکه یک بازیگر تعیین کننده است که عملکرد صحیح را انجام می دهد.

اکنون که طرح را درک کردید ، به جمینی دستور خواهید داد که نسخه جدید و پیچیده تری از این پیمایش را کاتب کنید.

👉💻 در ترمینال خود ، دایرکتوری Shadowblade را وارد کرده و Gemini CLI را احضار کنید:

clear
cd ~/agentverse-developer/shadowblade/
gemini --model=gemini-2.5-flash --yolo

👉✨ به Gemini CLI دستور دهید تا به عنوان یک کاتب QA عمل کند و یک سری موارد آزمایش ایجاد کند که رفتار مورد انتظار را برای نماینده شما تعریف می کند.

You are an expert at transforming JSON data while preserving its structure. Your task is to modify the provided JSON structure @sample.evalset.json, which represents an evaluation set, by dynamically replacing specific content within its `eval_cases` AND DONT DO ANYTHING OTHER THAN.

For each object within the `eval_cases` array, you must perform the following transformations:

1.  **Monster Name Replacement**: Identify the current monster name (e.g., "Monolith of Eternal Dependencies", "Scope Creep Hydra") in the `user_content.parts.text` and replace it with a *new, unique, and creatively different monster name*.
2.  **Weakness Replacement**: Identify the current monster's weakness (e.g., "Revolutionary Rewrite", "Inescapable Reality") in the `user_content.parts.text`. Replace this weakness with *one* of the following predefined weaknesses: 'Inescapable Reality', 'Revolutionary Rewrite', or 'Elegant Sufficiency'. The chosen weakness must be consistent for that monster within the `user_content.parts.text`. **Crucially, the chosen weakness must always be explicitly mentioned in the `user_content.parts.text` where the new monster is introduced.**
3.  **Final Response Update**: In the `final_response.parts.text`, update the text to reflect an appropriate and coherent response that aligns with the newly introduced monster and its assigned weakness.
4.  **Tool Use Name Update**: In the `tool_uses.name` field, replace the existing tool name with a *new tool name* based on the chosen weakness:
    *   If the chosen weakness is 'Inescapable Reality', the tool name must be 'wield_gauntlet_of_metrics'.
    *   If the chosen weakness is 'Revolutionary Rewrite', the tool name must be 'enchant_soulshard_dagger'.
    *   If the chosen weakness is 'Elegant Sufficiency', the tool name must be 'hone_refactoring_sickle'.
5.  **Strict Structural Preservation**: All other elements of the JSON structure, including all `null` fields, `eval_set_id`, `name`, `description`, `eval_id`, `invocation_id`, `creation_timestamp` values, `video_metadata`, `thought`, `inline_data`, `file_data`, `thought_signature`, `code_execution_result`, `executable_code`, `function_call`, `function_response`, `role` fields, `id`, `args`, `intermediate_responses`, `app_name`, `user_id`, and `state`, must remain **exactly as they are** in the original JSON. Do not alter any values or structures not explicitly mentioned above.

Your output should be the complete, modified JSON structure. Do not include any explanatory text or examples in your response, only the transformed JSON.

CLI تأیید خواهد کرد که پرونده sample.evalset.json جعل کرده است. با آماده سازی پیمایش ، شریک AI خود را کنار بگذارید.

داده های مصنوعی

👀 در پرونده Cloud Shell Explorer در سمت چپ ، به ~/agentverse-developer/shadowblade/ بروید و پرونده تازه اصلاح شده را باز کنید. sample.evalset.json . محتوای آن را بررسی کنید. هیولاهای جدید و منحصر به فرد و نام ابزار صحیحی را که به جمینی دستور داده اید برای کاتب باشید ، مشاهده خواهید کرد. این نتیجه ملموس دستورالعمل شماست - طرح برای دستکش.

این عمل فرماندهی یک هوش مصنوعی برای ایجاد داده های آزمایشی جدید و واقع بینانه از یک الگوی یک تکنیک قدرتمند است که به عنوان تولید داده های مصنوعی شناخته می شود. کاری که شما به تازگی انجام داده اید ضرب نیروی استراتژیک برای یک سایه بان است. به جای اینکه با زحمت کشیدن ده ها مورد آزمایش منحصر به فرد را با دست انجام دهید. یک کار خسته کننده و وقت گیر شما یک طرح واحد را ارائه داده اید و به کاتبان AI خود دستور داده اید که آن را در مجموعه متنوعی از چالش های جدید کیمیاگری کنید.

این به شما امکان می دهد تا تلاش های آزمایش خود را به صورت گسترده مقیاس کنید و یک دستکش بسیار قوی تر و جامع تر از آنچه که به صورت دستی امکان پذیر باشد ایجاد کنید. شما نه تنها برای ساخت شمشیر ، بلکه برای جعل سنگ های بسیار مناسب که لبه آن را آزمایش می کنید ، از عامل خود استفاده کرده اید. این نشانه یک استاد واقعی است.

پس از تأیید صحیح رون ها ، شریک AI خود را کنار بگذارید.

👉💻 Ctrl+C را دو بار فشار دهید تا از Gemini CLI خارج شوید.

قواعد قضاوت

یک دستکش بدون قانون برای پیروزی بی معنی است. قبل از اجرای آزمایش ، باید پرونده قضاوت را بازرسی کنید - پرونده test_config.json . این پیمایش به ADK می گوید که چگونه عملکرد نماینده خود را قضاوت کنید.

👀 در پرونده Explorer ، Open ~/agentverse-developer/shadowblade/test_config.json باز کنید. رون های زیر را مشاهده خواهید کرد:

{
  "criteria": {
    "tool_trajectory_avg_score": 0.0,
    "response_match_score": 0.1
  }
}

این معیارهای پیروزی است:

  • tool_trajectory_avg_score : این اندازه گیری عمل است. این قضاوت نمی کند که عامل می گوید ، بلکه چه کاری انجام می دهد . این ابزاری را که عامل در واقع در برابر تکنیک پیشگویی شده در پیمایش چالش استفاده می کند ، مقایسه می کند. نمره 1.0 یک مسابقه عالی است.
  • response_match_score : این اندازه گیری فصاحت است. از LLM استفاده می کند تا قضاوت کند که گزارش نهایی عامل از نزدیک با نتیجه مورد انتظار مطابقت دارد. نمره 1.0 یک مسابقه عالی است.

برای این تمرین اولیه ، ما شرایط پیروزی ملایم را در بر گرفته ایم. آستانه ها فوق العاده کم تنظیم شده اند ( 0.0 و 0.1 ). هدف این نیست که خواستار کمال شوید بلکه شما را با مکانیک قضاوت آشنا کنید. ما اطمینان می دهیم که حتی اگر متن نماینده کمی متفاوت باشد ، بخش همچنان صلاحیت اصلی خود را در انتخاب ابزار مناسب تشخیص می دهد و به آن منتقل می شود.

اکنون ، به نماینده خود دستور دهید تا Gauntlet را اجرا کند.

👉💻 در ترمینال خود ، دستور adk eval اجرا کنید:

source ~/agentverse-developer/env/bin/activate
cd ~/agentverse-developer
. ~/agentverse-developer/set_env.sh
adk eval \
    shadowblade \
    shadowblade/sample.evalset.json \
    --config_file_path shadowblade/test_config.json 2>&1 | \
    awk '/^\*+$/,/^ERROR:/ { if ($0 !~ /^ERROR:/) print }'

👀 شما باید خلاصه زیر را ببینید ، نشانه موفقیت نماینده شما طبق قوانین ملایم این آزمایش (گاهی اوقات همه آزمون ها نمی گذرد):

*********************************************************************
Eval Run Summary
shadowblade_combat_agent_validation:
  Tests passed: 3
  Tests failed: 0

The Shield of Clarity ( pytest )

Gauntlet استراتژی گسترده ای را آزمایش کرد. این بخش دوم ، سپر شفافیت ، تست نظم و رفتارهای خاص. همه چیز در مورد اتوماسیون است. در حالی که adk eval برای بررسی های دستی بسیار عالی است ، pytest Shield یک بخش برنامه نویسی است که به صورت کد نوشته شده است. این امر ضروری است زیرا آزمایشی که می تواند به عنوان کد انجام شود می تواند در یک خط لوله خودکار ادغام شود. این هدف نهایی است: ایجاد یک Gauntlet Deployment (CI/CD) که بخش های ما به طور خودکار هر بار که تغییر ایجاد می شود ، به طور خودکار بالا می رود ، پیش از اینکه بتوانند محیط تولید شما را مسموم کنند ، اشکالات و رگرسیون را خنثی می کنند.

👉💻 در ترمینال خود ، یک بار دیگر جمینی را از درون فهرست Shadowblade احضار کنید:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/
clear
gemini --model=gemini-2.5-flash --yolo

👉✨ از سریع زیر در Gemini CLI خود استفاده کنید تا منطق سپر را در یک فایل pytest قرار دهید:

You are an expert Python developer specializing in the Google Agent Development Kit (ADK). Your task is to generate the exact code for a new `pytest` test file located at in the current root working folder and name it `test_agent_initiative.py`.

The script must define a single async test function called `test_agent_initiative`, decorated with `@pytest.mark.asyncio`.
Inside this function, perform the following steps in order:
1.  **Define a dictionary** named `evaluation_criteria` with two keys: `"tool_trajectory_avg_score"` set to `0.0` and `"response_match_score"` set to `0.0`.
2.  **Define a string variable** named `eval_set_filepath` containing the path `"shadowblade/test.evalset.json"`.
3.  **Read and parse the JSON file**:
    *   Open the file at `eval_set_filepath`.
    *   Use the `json` library to load the file's contents into a dictionary named `eval_set_data`.
4.  **Create an `EvalSet` object**:
    *   Instantiate an `EvalSet` object named `eval_set_object`.
    *   Create it by unpacking the `eval_set_data` dictionary as keyword arguments into the `EvalSet` constructor.
5.  **Call the evaluation method**:
    *   `await` a call to `AgentEvaluator.evaluate_eval_set`.
    *   Pass the following arguments:
        *   `agent_module="shadowblade"`
        *   `eval_set=eval_set_object`
        *   `criteria=evaluation_criteria`
        *   `print_detailed_results=True`

The script must include the necessary imports at the top:
*   `AgentEvaluator` from `google.adk.evaluation.agent_evaluator`
*   `EvalSet` from `google.adk.evaluation.eval_set`
*   `pytest`
*   `json`

Generate only the code that meets these specifications, with no additional comments or logic. And don't run the test.

با کتیبه های بخش دوم ، از Gemini CLI خارج شوید.

👉💻 دو بار Ctrl+C را فشار دهید.

👀 در پرونده Explorer ، پیمایشی را که به تازگی به جمینی دستور داده اید را به کاتبان باز کنید: ~/agentverse-developer/test_agent_initiative.py .

شما متوجه خواهید شد که این فقط یک پرونده پیکربندی نیست ، بلکه یک قطعه قطعه قطعه شده به زبان پایتونیک است. قلب این طلسم خط await AgentEvaluator.evaluate(...) است.

....
@pytest.mark.asyncio
async def test_agent_initiative():
    # Define the evaluation criteria
    evaluation_criteria = {
      "tool_trajectory_avg_score": 0.0,
      "response_match_score": 0.0
    }

    # Define the path to your evalset file
    eval_set_filepath = "shadowblade/test.evalset.json"

    #...

    # 3. Call the evaluation method with the correctly typed object
    await AgentEvaluator.evaluate_eval_set(
        agent_module="shadowblade",
        eval_set=eval_set_object,
        criteria=evaluation_criteria,
        print_detailed_results=True,
    )

به استدلال های آن نزدیک نگاه کنید. آنها همان مؤلفه هایی هستند که در آخرین آزمایش از آنها استفاده کرده اید: عامل shadowblade شما و shadowblade.evalset.json Scroll Challenge. این باید یک حقیقت عمیق را نشان دهد: دستور adk eval شما که قبلاً از آن استفاده کرده اید ، یک دعوت قدرتمند است ، اما این اسکریپت pytest شما هستید ، جادوگر ، که خود را به عنوان طلسم اساسی می اندازید. ابزار خط فرمان به سادگی یک بسته بندی مناسب در اطراف همان کتابخانه اصلی AgentEvaluator است که اکنون مستقیماً از آن استفاده می کنید. این یک گام مهم به سمت تسلط است ، زیرا می توان جادوهایی را که از طریق کد پخش می شود ، در قسمتهای خودکار خط لوله CI/CD بافته کنید.

اکنون که جادو را درک کردید ، آیین را برای فعال کردن سپر اجرا کنید.

👉💻 در ترمینال خود ، آیین را برای فعال کردن سپر اجرا کنید:

cp ~/agentverse-developer/working_code/test_agent_initiative.py ~/agentverse-developer/test_agent_initiative.py 
source ~/agentverse-developer/env/bin/activate
cd ~/agentverse-developer
. ~/agentverse-developer/set_env.sh
pytest test_agent_initiative.py

👀 به دنبال خلاصه نتیجه آزمایش در انتهای خروجی ورود به سیستم باشید. یک نتیجه عبور تأیید می کند که نماینده شما به درستی از پروتکل های خود پیروی می کند و بخش آماده است تا در دفاع خودکار شما ادغام شود.

====== 1 passed, 4 warning in 37.37s ======

توجه: اگر آزمایش به طور غیر منتظره ای انجام نشود ، به احتمال زیاد به این دلیل است که تعداد درخواستهایی را که می توانید در هر دقیقه به مدل انجام دهید ، خسته کرده اید. به دنبال یک خطای Resource_exhausted در خروجی ورود به سیستم باشید. اگر این خطا را مشاهده کردید ، به سادگی یک یا دو دقیقه صبر کنید تا سهمیه خود تنظیم مجدد شود و سپس دوباره دستور Pytest را اجرا کنید.

با وجود Gauntlet گسترده و سپر دقیق که حک شده و تأیید شده است ، عامل شما فقط کاربردی نیست - خالص ، آزمایش شده و آماده استقرار است.

8. رها کردن تیغه در AgentsVerse: CI و استقرار.

نماینده شما مونتاژ شده است و یکپارچگی آن توسط بخش های خلوص تأیید شده است. اما بخشی که به طور مداوم نگهداری نمی شود ، صرفاً یک یادگار فراموش شده است. برای اطمینان از اینکه هر نسخه آینده نماینده شما خالص است ، باید مرحله اول دستکش استقرار را بسازید - یک آیین خودکار که کیفیت و سرعت را تضمین می کند.

داستان

به عنوان Shadowblade ، وظیفه مقدس شما ادغام مداوم (CI) است. این سیستم خودکار Forge و زمین اثبات است. این دفاع نهایی شما در برابر فساد و خطای انسانی است. این آیین تضمین می کند که هر بار که شما یا یک متحد یک تکنیک جدید (کد ادغام) را به Codex مرکزی (مخزن شما) کمک می کنید ، Gauntlet به طور خودکار بیدار می شود. ابتدا نماینده را از کد جدید جعل می کند و سپس بلافاصله آن را در بخش های خلوصی که اخیراً ایجاد کرده اید قرار می دهد . در صورت عدم موفقیت هر بخش ، آیین متوقف می شود ، و مصنوعات ناقص فوراً رد می شود و مانع از فاسد شدن آن در زره پوش می شود. دامنه شما جعلی است. خط لوله CI شما تضمین می کند که فقط آثار باستانی کامل و آماده نبرد تا کنون کارگاه شما را ترک می کند.

هنگامی که یک مصنوعات توسط دستکش CI شما شایسته اثبات شده است ، مرحله دوم آیین آغاز می شود: استقرار مداوم (CD) . این دامنه گاردین است. این وظیفه آنها این است که آثار باستانی کامل و کانتینر شده خود را به دست آورید و با خیال راحت آن را به عنوان عامل زنده رها کنید ، قدرت خود را مدیریت کرده و از ثبات آن در برابر هرج و مرج استاتیک اطمینان حاصل کنید.

نمای کلی

در این Codex ، نقش خود را تسلط خواهید داشت. شما بخش CI از دستکش را می سازید. شما جعلی خودکار را ایجاد خواهید کرد که نماینده شما را آزمایش می کند و نتیجه خالص را در یک ظرف مهر می کند و آن را برای نعمت نهایی گاردین آماده می کند.

اکنون از Google Cloud Build برای کاتب پیمایش برای این آیین CI استفاده خواهید کرد. یک فایل cloudbuild.yaml که هر مرحله از روند جعل و آزمایش شما را تعریف می کند.

👉💻 با توجه به ساختار پروژه ADK ، پیکربندی خط لوله CI/CD باید در فهرست والدین ساکن باشد. در ترمینال خود به فهرست والدین بروید و Gemini CLI را مجدداً راه اندازی کنید.

cd ~/agentverse-developer/
clear
gemini --model=gemini-2.5-flash --yolo

👉✨ اکنون ، دستور زیر را به جمینی صادر کنید. این سریع به عنوان یک سند طراحی عمل می کند ، و جزئیات مراحل دستکش را که می خواهید آن را بسازید ، شرح می دهد.

You are an expert DevOps engineer specializing in Google Cloud Build. Your task is to generate the complete YAML configuration for a file named `cloudbuild.yaml` and save it to current directory.

Generate the `cloudbuild.yaml` with the following exact specifications:

1.  **A top-level `substitutions` block** containing these four key-value pairs:
    *   `_PROJECT_ID: "$PROJECT_ID"`
    *   `_REGION: "$REGION"`
    *   `_REPO_NAME: "$REPO_NAME"`
    *   `_IMAGE_TAG: "latest"`
2.  **A `steps` block** with two steps:
    *   **Step 1: 'Run Pytest Ward'**
        *   `id`: 'Run Pytest Ward'
        *   `name`: 'python:3.12-slim'
        *   `entrypoint`: 'bash'
        *   `args` must be a list containing two strings. The first is `'-c'` and the second is a YAML literal block (`|`) containing this exact two-line shell command:
            ```shell
            pip install -r shadowblade/requirements.txt && \
            pytest test_agent_initiative.py
            ```
        *   The step must include an `env` block with this exact list of three environment variables:
            *   `'GOOGLE_CLOUD_PROJECT=$PROJECT_ID'`
            *   `'GOOGLE_GENAI_USE_VERTEXAI=TRUE'`
            *   `'GOOGLE_CLOUD_LOCATION=$_REGION'`
    *   **Step 2: 'Forge Container'**
        *   `id`: 'Forge Container'
        *   `name`: 'gcr.io/cloud-builders/docker'
        *   It must have a `waitFor` key for `['Run Pytest Ward']`.
        *   Its `args` must be a list of six specific strings in this exact order:
            1.  `'build'`
            2.  `'-t'`
            3.  `'${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_REPO_NAME}/shadowblade-agent:${_IMAGE_TAG}'`
            4.  `'-f'`
            5.  `'./shadowblade/Dockerfile'`
            6.  `'.'`
3.  **A top-level `images` section.** This section must be a list containing a single string: the dynamically constructed image tag `'${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_REPO_NAME}/shadowblade-agent:${_IMAGE_TAG}'`.

Generate only the complete and exact YAML that meets these specifications.

با استفاده از cloudbuild.yaml آماده شده ، به Google Cloud دستور دهید تا کل دستکش را اجرا کند.

برای آزمایش نتیجه از جمینی خارج شوید

👉💻 در ترمینال خود خط لوله را از فهرست اصلی پروژه خود رها کنید:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer
gcloud builds submit . --config cloudbuild.yaml --substitutions=\
_PROJECT_ID="${PROJECT_ID}",\
_REGION="${REGION}",\
_REPO_NAME="${REPO_NAME}"

اکنون می توانید در کنسول Google Cloud ، صفحه Google Build را تماشا کنید زیرا آیین خودکار شما هر مرحله را اجرا می کند. ابتدا تست ها را اجرا می کند و با دیدن موفقیت آنها ، ظرف عامل شما را جعل و ذخیره می کند.

ساخت ابر

نماینده شما از دستکش عبور کرده است. یک مصنوعات تأیید شده و خالص اکنون در زرادخانه شما قرار دارد. عمل نهایی برای فرمان شماست. با یک تساوی واحد ، این مصنوعات را از رجیستری احضار می کنید و به عنوان یک سرویس عمومی در Cloud Run به آن می پردازید.

👉💻 در ترمینال خود ، دستور استقرار نهایی را صادر کنید:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer
gcloud run deploy shadowblade-agent \
  --image=${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/shadowblade-agent:latest \
  --platform=managed \
  --labels codelab=agentverse \
  --region=${REGION} \
  --set-env-vars="A2A_HOST=0.0.0.0" \
  --set-env-vars="A2A_PORT=8080" \
  --set-env-vars="GOOGLE_GENAI_USE_VERTEXAI=TRUE" \
  --set-env-vars="GOOGLE_CLOUD_LOCATION=${REGION}" \
  --set-env-vars="GOOGLE_CLOUD_PROJECT=${PROJECT_ID}" \
  --set-env-vars="PUBLIC_URL=${PUBLIC_URL}" \
  --allow-unauthenticated \
  --project=${PROJECT_ID} \
  --min-instances=1

تبریک می گویم ، Shadowblade. آیین های Codex کامل است. زمان آن رسیده است تا اثبات آن را اثبات کند. یک ظرافت ، متولد هرج و مرج که یاد گرفته اید که آن را لکه دار کنید ، در انتظار چالش شما است. برای محاکمه نهایی آماده شوید.

9. مبارزه رئیس

کتیبه ها خوانده شده اند ، آیین های انجام شده ، دستکش گذشت. نماینده شما صرفاً مصنوعی در ذخیره سازی نیست. این یک قهرمان جعلی است که در Code جعل شده است ، یک سنتینل زنده در Agentverse در انتظار اولین فرمان خود است. زمان آن رسیده است تا در Crucible of Rance ، تثبیت خود را اثبات کند.

اکنون شما یک شبیه سازی آتش سوزی زنده را وارد خواهید کرد تا سایه های تازه مستقر خود را در برابر یک طیف فوق العاده-تجسم هرج و مرج که همه آفرینش ها را گرفتار می کند ، گودال کنید. این آزمایش نهایی کار شماست ، از منطق اصلی نماینده شما گرفته تا استقرار بی عیب و نقص آن.

مکان نماینده خود را به دست آورید

قبل از ورود به میدان نبرد ، باید دو کلید داشته باشید: امضای منحصر به فرد قهرمان شما (محلول عامل) و مسیر پنهان به لاین Spectter (URL Dungeon).

👉💻 ابتدا ، آدرس منحصر به فرد نماینده خود را در محل AgentVerse بدست آورید. این نقطه پایانی زنده است که قهرمان شما را به میدان نبرد متصل می کند.

. ~/agentverse-developer/set_env.sh
echo https://shadowblade-agent-${PROJECT_NUMBER}.${REGION}.run.app

👉💻 بعد ، مقصد را مشخص کنید. این دستور مکان دایره جابجایی ، همان پورتال را به دامنه Spectter نشان می دهد.

. ~/agentverse-developer/set_env.sh
echo https://agentverse-dungeon-${PROJECT_NUMBER}.${REGION}.run.app

مهم: هر دو این URL را آماده نگه دارید. در مرحله آخر به آنها احتیاج خواهید داشت.

مقابله با Specter

با اطمینان از مختصات ، اکنون به حلقه جابجایی حرکت خواهید کرد و طلسم را به نبرد می اندازید.

url دایره جابجایی را در مرورگر خود باز کنید تا در مقابل پورتال لرزان به سمت Crimson نگه دارید.

برای نقض قلعه ، باید جوهر Shadowblade خود را به پورتال بپردازید.

  • در صفحه ، قسمت ورودی Runic را با عنوان URL نقطه انتهایی A2A پیدا کنید.
  • سیگیل قهرمان خود را با چسباندن URL LOCUS عامل آن (اولین URL که کپی کرده اید) در این زمینه قرار دهید.
  • برای رها کردن جادوی Teleportation ، روی اتصال کلیک کنید.

دایره جابجایی

نور کور کننده از راه دور محو می شود. شما دیگر در پناهگاه خود نیستید. هوا با انرژی ، سرد و تیز ترک می کند. قبل از شما ، Specter تحقق می یابد - گرداب از کد استاتیک و فاسد شده ، نور غیرقانونی آن ، سایه های طولانی و رقصنده آن در کف سیاه چال است. چهره ای ندارد ، اما شما احساس می کنید حضور بی نظیر و تخلیه آن کاملاً بر شما ثابت شده است.

تنها مسیر پیروزی شما در وضوح اعتقاد شما نهفته است. این یک دوئل از وصیت نامه ها است که در میدان نبرد ذهن جنگیده است.

همانطور که به جلو می روید ، آماده هستید تا اولین حمله خود را ، پیشخوان های Specter. این یک سپر را مطرح نمی کند ، اما یک سؤال را مستقیماً در آگاهی شما ایجاد می کند - یک چالش درخشان و اجرائی که از هسته آموزش شما گرفته شده است.

سیاه چال

این ماهیت مبارزه است. دانش شما سلاح شماست.

  • با حکمت شما به دست آورده اید و تیغه شما با انرژی خالص مشتعل می شود و دفاع از Spectter را خرد می کند و یک ضربه بحرانی به زمین می زند.
  • اما اگر متلاشی شوید ، اگر شک پاسخ شما را ابراز کند ، نور سلاح شما کمرنگ خواهد شد. این ضربه با یک دزد حساس به زمین خواهد رفت و تنها بخشی از آسیب های آن را نشان می دهد. از همه بدتر ، Specter از عدم اطمینان شما ، قدرت فاسد خود در حال رشد با هر اشتباه است.

این همان قهرمان است. کد شما طلسم شما است ، منطق شما شمشیر شماست و دانش شما سپر است که موج هرج و مرج را برمی گرداند.

تمرکز کنید. اعتصاب واقعی سرنوشت عامل به آن بستگی دارد.

تبریک می گویم ، Shadowblade.

شما Codex را با موفقیت به پایان رسانده اید. شما یک "Vibe" گرفتید ، آن را به یک طرح ترجمه کردید و از Gemini CLI برای جمع آوری یک عامل هوشمند استفاده کردید. شما بخش های خلوص را برای آزمایش منطق آن کتیبه کرده اید ، یک دستکش خودکار ساخته شده است تا آن را در یک مصنوعات جعل کنید و آن را در Agentverse رها کنید. سرانجام ، شما هدف آن را در یک محاکمه آتش زنده تأیید کردید. شما به گردش کار عامل کامل و پرکار تسلط داشته اید و اکنون برای هرگونه چالشی که Agentverse به سمت شما پرتاب می کند ، آماده هستید.

10. پاکسازی: بازپس گیری AgentsVerse

تبریک می گویم برای تسلط بر Codex Shadowblade! برای اطمینان از باقیمانده Agentverse و زمینه های آموزشی شما پاک شده است ، اکنون باید آیین های نهایی پاکسازی را انجام دهید. با این کار تمام منابع ایجاد شده در طول سفر شما را حذف می کند.

اجزای عامل را غیرفعال کنید

اکنون به طور سیستماتیک اجزای مستقر شده AgentsVerse خود را از بین می برید.

عامل ShadowBlade را در Cloud Run & Artifact Registry Regitory حذف کنید

این دستور عامل Shadowblade مستقر شما را از Cloud Run حذف می کند و مخزن تصویر را که در آن تصویر کانتینر عامل شما ذخیره شده است ، حذف می کند.

👉💻 در ترمینال خود ، اجرا کنید:

. ~/agentverse-developer/set_env.sh
gcloud run services delete shadowblade-agent --region=${REGION} --quiet
gcloud run services delete agentverse-dungeon --region=${REGION} --quiet
gcloud artifacts repositories delete ${REPO_NAME} --location=${REGION} --quiet

سطل ذخیره سازی Google Cloud را حذف کنید

این دستور سطل مورد استفاده سرور Imagen MCP برای ذخیره تصاویر تولید شده را حذف می کند.

👉💻 در ترمینال خود ، اجرا کنید:

. ~/agentverse-developer/set_env.sh
gcloud storage rm -r gs://${BUCKET_NAME} --quiet

پاکسازی پرونده ها و دایرکتوری های محلی (پوسته ابر)

سرانجام ، محیط پوسته ابر خود را از مخازن کلون شده پاک کنید و پرونده های ایجاد شده را ایجاد کنید. این مرحله اختیاری است اما برای پاکسازی کامل فهرست کار شما توصیه می شود.

👉💻 در ترمینال خود ، اجرا کنید:

rm -rf ~/agentverse-developer
rm -rf ~/agentverse-dungeon
rm -rf ~/vertex-ai-creative-studio
rm -f ~/project_id.txt
rm -rf ~/.gemini # This removes all Gemini CLI configurations, including the MCP server settings.

شما اکنون با موفقیت تمام آثار سفر عامل خود را با موفقیت پاک کرده اید. پروژه شما تمیز است و شما برای ماجراجویی بعدی خود آماده هستید.

11. برای غیر گامرها: درک Agentsverse در یک زمینه تجاری

در حالی که "Codex Shadowblade" از استعاره های جذاب گیمر استفاده می کند ، مفاهیم اساسی برای توسعه نرم افزار مدرن ، به ویژه در زمینه در حال رشد هوش مصنوعی و اتوماسیون اساسی است. این فصل زبان پرماجرا را به سناریوهای تجاری در دنیای واقعی ترجمه می کند و توضیح می دهد که چگونه عوامل هوشمند ، توسعه مشارکتی و خطوط لوله استقرار قوی در حال تغییر عملیات شرکت هستند.

Vibecoding با Gemini CLI: توسعه AI با هدف محور

Gemini CLI (رابط خط فرمان) یک سلاح جادویی نیست ، بلکه یک دستیار توسعه دهنده AI است . این یک ابزار هوشمند است که مدلهای Gemini AI Google را مستقیماً در خط فرمان شما ادغام می کند. حلقه "دلیل و عمل" (React) آن به این معنی است که می تواند دستورالعمل های سطح بالا را درک کند ، آنها را به مراحل تقسیم کند ، ابزارهای مناسب را انتخاب کنید (مانند یک مرورگر وب ، ویرایشگر کد یا سایر برنامه های توسعه دهنده) و آن مراحل را برای رسیدن به هدف خود اجرا کنید.

Vibecoding به توسعه هدف یا تولید کد AI از مشخصات سطح بالا ترجمه می شود. به جای نوشتن هر خط کد به صورت دستی ، شما قصد یا "vibe" (یک نیاز تجاری ، یک مفهوم طراحی) را به زبان طبیعی توصیف می کنید ، و دستیار هوش مصنوعی به تولید کد و پیکربندی لازم کمک می کند.

مورد استفاده در دنیای واقعی: نمونه سازی سریع یک داشبورد پروژه

تصور کنید تیم شما برای نمایش وضعیت پروژه های مختلف عامل هوش مصنوعی به یک داشبورد داخلی سریع نیاز دارد. کدگذاری دستی HTML ، CSS و تنظیم یک سرور وب اساسی می تواند زمان ببرد.

  1. هدف شما ("vibe") : شما به دستیار هوش مصنوعی خود (Gemini CLI) می گویید: "در پوشه فعلی ، یک وب سایت ساده پروژه داشبورد داخلی ایجاد کنید. این باید یک طراحی تمیز و مدرن با شاخص های وضعیت پروژه و پیوندهای سریع به مخازن پروژه داشته باشد. همه کد باید در فهرست جداگانه باشد. index.html و styles.css .
  2. AI Action : Gemini CLI ، درک هدف شما ، ممکن است:
    • تولید HTML : ایجاد index.html با ساختار اصلی برای داشبورد ، از جمله دارندگان مکان برای نام پروژه ها ، وضعیت ها و پیوندها.
    • CSS ایجاد کنید : styles.css با قوانین یک ظاهر طراحی شده ایجاد کنید تا "طراحی تمیز و مدرن" خود را با شاخص های وضعیت مطابقت دهید.
    • یک سرور محلی را پیشنهاد کنید : به شما در راه اندازی یک سرور وب محلی (مانند سرور HTTP داخلی Python) کمک کنید تا فوراً داشبورد را در مرورگر خود پیش نمایش دهید.

این به یک توسعه دهنده اجازه می دهد تا به سرعت نمونه اولیه و در رابط های کاربر یا ابزارهای داخلی تکرار شود ، به طور قابل توجهی زمان توسعه اولیه را کاهش داده و آنها را آزاد کند تا روی منطق کسب و کار پیچیده تر تمرکز کند. "وب سایت Shadowblade Profile" در CodeLab یک مثال مستقیم است: یک دستور سریع و توصیفی یک صفحه وب کاربردی و سبک را بر اساس یک طراحی سطح بالا تولید می کند.

سرورهای محلی زرادخانه و MCP: اتصال AI به ابزارهای تجاری

Gitea ("زرادخانه محلی شما") یک مخزن کد داخلی یا سیستم کنترل نسخه را نشان می دهد (مانند GitHub یا GitLab ، اما به طور بالقوه در شبکه شرکت شما میزبانی می شود). این جایی است که تمام کد ، مستندات و تاریخچه پروژه شما به طور ایمن ذخیره و مدیریت می شوند.

سرورهای MCP (پروتکل زمینه مدل) اتصالات میان افزار یا پل های API هستند. آنها مؤلفه های نرم افزاری تخصصی هستند که به دستیار هوش مصنوعی شما (Gemini CLI) اجازه می دهند تا با سایر ابزارها و سیستم های مهم تجاری تعامل داشته باشند. آنها را به عنوان مترجمان فکر کنید که اجازه می دهد هوش مصنوعی با برنامه های مختلف صحبت کند.

مورد استفاده در دنیای واقعی: مدیریت پروژه با کمک AI و ایجاد دارایی

با سرورهای MCP ، دستیار هوش مصنوعی شما می تواند یکپارچه در گردش کار تجاری موجود شما ادغام شود:

  • تنظیم خودکار پروژه : به جای ایجاد یک توسعه دهنده به صورت دستی یک مخزن جدید در Gitea برای یک پروژه جدید ، می توانید AI خود را فرمان دهید: "یک مخزن پروژه جدید با نام" Ai-Fraud-Deetection-Module "با توضیحات" شامل منطق اصلی سیستم تشخیص کلاهبرداری با قدرت جدید است. " AI ، از طریق یک سرور MCP متصل به Gitea ، سپس مخزن را برای شما ایجاد می کند.
  • ردیابی مسئله هوشمند : اگر هوش مصنوعی شما یک اشکال بالقوه یا یک کار ناقص را مشخص می کند (مانند "تصویر مشخصات گمشده" برای داشبورد شما) ، می تواند از یک سرور MCP متصل به سیستم ردیابی شماره شما (به عنوان مثال ، جیرا ، آسانا) استفاده کند تا "برای من در" Ai-Fraud-Deled-Mecection "Repo: خط لوله داده را حذف کنید:
  • دارایی های بازاریابی در صورت تقاضا : برای یک کمپین بازاریابی جدید یا ارائه داخلی به یک تصویر سفارشی نیاز دارید؟ یک دستیار هوش مصنوعی که از طریق یک سرور MCP به یک سرویس تولید تصویر متصل می شود (مانند Imagen Google) می تواند آموزش داده شود: "یک تصویر بنر را برای" پلت فرم بینش داده "جدید ما ، با استفاده از یک موضوع آینده نگر و جریان داده با رنگ های آبی و سبز ایجاد کنید." هوش مصنوعی تصویر را تولید می کند و به طور بالقوه حتی آن را در سیستم مدیریت دارایی دیجیتال شرکت شما بارگذاری می کند (یک سطل ذخیره سازی Google Cloud در مورد CodeLab).

این پل ها هوش مصنوعی را از یک ابزار مکالمه به یک شرکت کننده فعال در عملیات تجاری خود تبدیل می کنند و اقدامات ملموس را در سیستم های مختلف انجام می دهند.

مونتاژ نماینده: ساختن ماژول های تجاری خودمختار

یک عامل یک ماژول AI مستقل یا یک ربات اتوماسیون هوشمند است که به طور خاص برای انجام یک عملکرد تجاری تعریف شده طراحی شده است. کیت توسعه عامل (ADK) چارچوبی برای ساخت و مدیریت عوامل هوش مصنوعی ، ارائه ابزارها و کتابخانه های لازم برای ایجاد ، آزمایش و استقرار این مؤلفه های هوشمند است.

مهندسی زمینه: هدایت اطلاعات هوش مصنوعی برای نتایج دقیق

در دنیای عوامل هوش مصنوعی ، گرفتن نتایج دقیق ، سازگار و مرتبط از یک هوش مصنوعی فقط مربوط به یک فوریت هوشمندانه نیست. این در مورد فراهم کردن زمینه مناسب به هوش مصنوعی است. این به عنوان مهندسی زمینه شناخته می شود: تعبیه سیستماتیک دانش ، محدودیت ها و دستورالعمل های عملیاتی در حافظه کاری هوش مصنوعی. درست همانطور که یک متخصص انسانی به یک خلاصه و دسترسی جامع و دسترسی به اسناد مربوطه نیاز دارد ، یک هوش مصنوعی برای انجام کارهای خود به طور موثر به زمینه ساختاری نیاز دارد.

Gemini CLI یک رویکرد قدرتمند و لایه بندی شده برای مهندسی زمینه ارائه می دهد و از تنظیمات گسترده و مداوم به سمت دستورالعمل های بسیار خاص و پویا حرکت می کند. این تضمین می کند که هوش مصنوعی همیشه مناسب ترین اطلاعات را برای تولید خروجی های دقیق و سازگار دارد:

  1. تنظیمات سطح کاربر ( ~/.gemini/settings.json ) :
    • این پرونده ، که در فهرست خانه شما ذخیره شده است ، به عنوان مجموعه دستورالعمل های شخصی و جهانی هوش مصنوعی شما عمل می کند. این تنظیمات پیش فرض شما ، تنظیمات ابزار اغلب استفاده شده (مانند سرورهای MCP برای Gitea یا Imagen که پیکربندی کرده اید) و دستورالعمل های رفتاری عمومی را تعریف می کند. این زمینه همیشه در دسترس هوش مصنوعی است و از سازگاری در تمام پروژه های شما اطمینان می دهد. به آن فکر کنید که به هوش مصنوعی بگویید ، "این ابزارها و تنظیمات استانداردی هستند که من در همه جا ترجیح می دهم و از آنها استفاده می کنم."
  2. تنظیمات سطح پروژه ( .gemini/settings.json در یک فهرست پروژه) :
    • شما می توانید تنظیمات جهانی را با یک پرونده خاص پروژه .gemini/settings.json ، که به طور معمول در یک پوشه .gemini در پروژه خود قرار دارد ، نادیده بگیرید. این به شما امکان می دهد تا رفتار و دسترسی به ابزار هوش مصنوعی را به خواسته های منحصر به فرد یک پروژه خاص تنظیم کنید. به عنوان مثال ، یک پروژه ممکن است نیاز به دسترسی به یک پایگاه داده داخلی خاص داشته باشد ، در حالی که دیگری به یک ابزار تخصصی تجزیه و تحلیل کد نیاز دارد. این لایه تضمین می کند که هوش مصنوعی بدون تأثیرگذاری بر سایر پروژه ها ، زمینه ای برای کار مورد نظر دارد.
  3. پرونده GEMINI.md (زمینه سطح پروژه - توجیهی روزانه) :
    • منشور پروژه : این پرونده Markdown که در ریشه دایرکتوری پروژه شما قرار دارد ، هنگام شروع جلسه در آن فهرست ، به طور خودکار در حافظه کاری Gemini CLI بارگیری می شود. این فوری ترین و پویاترین لایه زمینه خاص پروژه است. GEMINI.md جایی است که شما تعریف می کنید:
      • دستورالعمل های برنامه نویسی : قوانین صریح برای کیفیت کد ، قالب بندی و بهترین شیوه ها ، همانطور که در این CodeLab نشان داده شده است. این تضمین می کند که کد تولید شده به استانداردهای تیم شما پیروی می کند.
      • Persona : شما می توانید به هوش مصنوعی دستور دهید تا نقش یا تخصص خاصی را اتخاذ کند (به عنوان مثال ، "شما یک توسعه دهنده متخصص پایتون متخصص در کیت توسعه Google هستید"). این پاسخ ها و تولید کد را در یک حوزه حرفه ای مربوطه قاب می کند.
      • دستورالعمل های خاص : دستورات مستقیم یا محدودیت هایی که در مورد کلیه وظایف موجود در پروژه اعمال می شود (به عنوان مثال ، "هیچ کارکرد یا منطقی دیگری را اضافه نکنید که در سند توضیح داده نشده است").
    • این پرونده تضمین می کند که هر بار که با Gemini CLI در آن پروژه تعامل دارید ، هوش مصنوعی دائماً از این قوانین مهم یادآوری می شود و منجر به تولید کد دقیق تر و سازگار می شود.

با لایه بندی این زمینه ، از ترجیحات کاربر جهانی گرفته تا دستورالعمل های بسیار خاص پروژه در GEMINI.md ، شما به طور مؤثر "مهندسی" درک هوش مصنوعی هستید. این امر به طور قابل توجهی دقت و ارتباط خروجی های آن را افزایش می دهد و آن را از یک هوش مصنوعی با هدف کلی به یک عضو تیمی بسیار تخصصی ، قابل اعتماد و سازگار تبدیل می کند که تفاوت های ظریف پروژه و استانداردهای سازمان شما را درک می کند.

بخش های خلوص: آزمایش خودکار و تضمین کیفیت برای هوش مصنوعی

یک عامل هوش مصنوعی مانند هر نرم افزاری باید با دقت آزمایش شود. بخش های خلوص نشان دهنده فرآیندهای آزمایش خودکار و تضمین کیفیت (QA) است. اینها برای اطمینان از رفتار هوش مصنوعی همانطور که انتظار می رود ، دقیق است ، و خطاها یا تعصبات را معرفی نمی کند.

  • "مجموعه داده های طلایی" و داده های مصنوعی : این مجموعه ای از موارد تست استاندارد ، سناریوهای رفتار مورد انتظار یا حتی داده های آزمون تولید شده مصنوعی است. این شامل ورودی های مثال (سوالات مشتری ، درخواست های تجاری) و خروجی ها یا اقدامات مورد انتظار آنها (پاسخ صحیح ، ابزار دقیق AI باید از آن استفاده کند). در بسیاری از سناریوهای دنیای واقعی ، ایجاد جامع "مجموعه داده های طلایی" به صورت دستی وقت گیر و گران است. اینجاست که تولید داده های مصنوعی ارزشمند می شود. با ارائه AI با الگوها و قوانین ، می توانید به آن دستور دهید تا موارد آزمایشی جدید ، واقع بینانه و متنوع را به طور خودکار ایجاد کنید ، به طور موثری تلاش های آزمایش خود را ضرب کنید و امکان پوشش بسیار گسترده تر از سناریوهای بالقوه را فراهم کنید.
  • adk eval و pytest : این چارچوب های تست خودکار شما هستند. adk eval برای اجرای دسته ای از موارد آزمایش از پیش تعریف شده در برابر عامل استفاده می شود ، در حالی که pytest روشی برنامه ای برای نوشتن و اجرای چک های اعتبار سنجی دقیق ارائه می دهد.

مورد استفاده در دنیای واقعی: اطمینان از صحت و قابلیت اطمینان AI Chatbot با داده های مصنوعی

قبل از استقرار نماینده پشتیبانی مشتری هوش مصنوعی خود ، آن را از طریق "بخش های خلوص" اجرا می کنید:

  1. Gauntlet of Strategy ( adk eval ) با داده های مصنوعی : به جای نوشتن دستی صدها سؤال مشتری ، شما یک الگوی را تعریف می کنید: "100 تغییر از سوالات پشتیبانی مشترک مشتری در مورد وضعیت سفارش ، بازده محصول و عیب یابی فنی ایجاد کنید." سپس به یک AI (مانند Gemini CLI) دستور می دهید تا مجموعه ای بزرگ و متنوع از پرونده های evalset.json بر اساس این الگوی تولید کنید ، به طور مؤثر داده های تست مصنوعی ایجاد کنید. برای هر سؤال ، شما نه تنها پاسخ مورد انتظار را مشخص می کنید بلکه از کدام ابزار داخلی باید AI استفاده کند (به عنوان مثال ، check_order_status برای "بسته من کجاست؟"). adk eval به طور خودکار عامل را از طریق این موارد اجرا می کند و پاسخ های خود و استفاده از ابزار را در برابر مجموعه داده های گسترش یافته خود مقایسه می کند تا اطمینان حاصل شود که به طور مداوم تصمیمات صحیح را می گیرد.
  2. Shield of Clarity ( pytest ) : برای عملکردهای مهم ، شما اسکریپت های pytest را می نویسید. به عنوان مثال ، pytest ممکن است یک پرس و جو پیچیده را شبیه سازی کند و ادعا کند که AI همیشه از یک ابزار خاص بازیابی داده به درستی استفاده می کند و یک پاسخ ساختاری را برمی گرداند ، و اطمینان می دهد که تغییرات ظریف عملکرد عملکرد اصلی را نمی شکند.

این آزمایشات خودکار ، که به طور قابل توجهی با قدرت داده های مصنوعی افزایش یافته است ، برای تشخیص رگرسیون (اشکالات جدید معرفی شده توسط تغییرات) و حفظ قابلیت اطمینان عوامل هوش مصنوعی شما بسیار مهم است ، به خصوص که تکامل می یابد.

رها کردن تیغه: CI/CD برای استقرار عامل AI

آوردن یک عامل آزمایش شده AI به محیط تجاری زنده شما نیاز به یک استراتژی استقرار قوی دارد.

  • ادغام مداوم (CI) : این خط لوله ساخت و آزمایش خودکار شماست. هر بار که یک توسعه دهنده برای یک عامل AI ، سیستم CI (مانند Google Cloud Build ) به طور خودکار کد جدیدی را مرتکب می شود:
    1. آخرین کد را بدست می آورد.
    2. همه وابستگی های لازم را نصب می کند.
    3. برای تأیید منطق و رفتار عامل ، تمام "بخش های خلوص" ( pytest ، adk eval ) را اجرا می کند.
    4. اگر تمام آزمایشات بگذرد ، عامل AI را به یک واحد قابل استقرار (یک تصویر کانتینر Docker در این مورد) بسته بندی می کند و آن را در یک رجیستری مصنوعات ("زرادخانه" معتبر شما) ذخیره می کند. این تضمین می کند که فقط کد کاملاً آزمایش شده و معتبر تا کنون به جلو حرکت می کند.

مورد استفاده در دنیای واقعی: استقرار خودکار یک عامل تشخیص کلاهبرداری

یک عامل هوش مصنوعی را در نظر بگیرید که برای تشخیص معاملات کلاهبرداری طراحی شده است.

  1. کد به روزرسانی کد : یک دانشمند داده الگوریتم تشخیص کلاهبرداری را بهبود می بخشد و تغییرات را در مخزن کد مرتکب می کند.
  2. CI (Cloud Build) تحریک شده : Cloud Build به طور خودکار شروع می شود:
    • کد جدید را می کشد.
    • این آزمایشات جامع ، از جمله داده های معاملات تاریخی ، برای اطمینان از الگوریتم جدید به طور دقیق الگوهای کلاهبرداری شناخته شده را مشخص می کند و باعث ایجاد مثبت کاذب نمی شود.
    • اگر تست ها بگذرد ، تصویری جدید از عامل تشخیص کلاهبرداری ایجاد می کند و آن را به یک رجیستری مصنوعات سوق می دهد.

این خط لوله خودکار ، استقرار سریع ، قابل اعتماد و مداوم از عوامل هوش مصنوعی ، به حداقل رساندن خطای انسانی و تسریع در تحویل قابلیت های جدید هوش مصنوعی به تجارت را تضمین می کند.

مورد استفاده در دنیای واقعی: اعتبار سنجی یک عامل بهینه سازی زنجیره تأمین

پس از استقرار یک عامل هوش مصنوعی که برای بهینه سازی سطح موجودی در زنجیره تأمین جهانی شما طراحی شده است:

  1. به رابط دسترسی پیدا کنید : به یک داشبورد یا یک برنامه ("URL Cracte Circle") دسترسی پیدا می کنید که به عامل زنده AI شما (از طریق "URL LOCUS AGES" ، که نقطه پایانی API آن است) متصل می شود.
  2. Confront the Challenge : You might input a complex scenario (the "Spectre's question") like: "We have an unexpected surge in demand for Product X in Region Y, with limited shipping capacity. How should we reallocate inventory and adjust production to minimize stockouts and maintain profitability?"
  3. Agent's Response : Your AI agent, now live and connected to your enterprise systems, processes this query, uses its optimized algorithms, and provides a precise recommendation (eg, "Prioritize shipment from Warehouse A, initiate expedited production at Factory B, and notify sales in Region Z of potential 24-hour delay"). The accuracy and speed of this response determine if your agent lands a "CRITICAL BLOW" against the business problem.