Skip to content

Latest commit

 

History

History
309 lines (240 loc) · 19.8 KB

File metadata and controls

309 lines (240 loc) · 19.8 KB

کارگاه Foundry Toolkit + Foundry Hosted Agents

Python Microsoft Agent Framework Hosted Agents Microsoft Foundry Azure OpenAI Azure CLI Azure Developer CLI Docker Foundry Toolkit License

عامل‌های هوش مصنوعی را بسازید، تست کنید و به خدمات عامل Microsoft Foundry به عنوان عامل‌های میزبانی شده مستقر کنید - کاملاً از VS Code با استفاده از افزونه Microsoft Foundry و Foundry Toolkit.

عامل‌های میزبانی شده در حال حاضر در پیش‌نمایش هستند. مناطق پشتیبانی شده محدود است - دسترسی منطقه‌ای را ببینید.

پوشه agent/ در هر آزمایشگاه توسط افزونه Foundry به‌طور خودکار ساخته می‌شود - سپس شما کد را سفارشی می‌کنید، به‌صورت محلی تست می‌کنید و مستقر می‌کنید.

🌐 پشتیبانی چندزبانه

پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز)

Arabic | Bengali | Bulgarian | Burmese (Myanmar) | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Macau) | Chinese (Traditional, Taiwan) | Croatian | Czech | Danish | Dutch | Estonian | Finnish | French | German | Greek | Hebrew | Hindi | Hungarian | Indonesian | Italian | Japanese | Kannada | Khmer | Korean | Lithuanian | Malay | Malayalam | Marathi | Nepali | Nigerian Pidgin | Norwegian | Persian (Farsi) | Polish | Portuguese (Brazil) | Portuguese (Portugal) | Punjabi (Gurmukhi) | Romanian | Russian | Serbian (Cyrillic) | Slovak | Slovenian | Spanish | Swahili | Swedish | Tagalog (Filipino) | Tamil | Telugu | Thai | Turkish | Ukrainian | Urdu | Vietnamese

ترجیح می‌دهید به‌صورت محلی کلون کنید؟

این مخزن شامل ترجمه‌های بیش از ۵۰ زبان است که باعث افزایش قابل توجه حجم دانلود می‌شود. برای کلون کردن بدون ترجمه‌ها، از sparse checkout استفاده کنید:

Bash / macOS / Linux:

git clone --filter=blob:none --sparse https://github.com/microsoft-foundry/Foundry_Toolkit_for_VSCode_Lab.git
cd Foundry_Toolkit_for_VSCode_Lab
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'

CMD (ویندوز):

git clone --filter=blob:none --sparse https://github.com/microsoft-foundry/Foundry_Toolkit_for_VSCode_Lab.git
cd Foundry_Toolkit_for_VSCode_Lab
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"

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


معماری

flowchart TB
    subgraph Local["توسعه محلی (VS Code)"]
        direction TB
        FE["افزونه Microsoft Foundry"]
        FoundryToolkit["افزونه Foundry Toolkit"]
        Scaffold["کد واسط عامل ساخته شده
        (main.py · agent.yaml · Dockerfile)"]
        Inspector["بازرس عامل
        (تست محلی)"]
        FE -- "ایجاد عامل میزبانی شده جدید" --> Scaffold
        Scaffold -- "اشکال‌زدایی F5" --> Inspector
        FoundryToolkit -.- Inspector
    end

    subgraph Cloud["Microsoft Foundry"]
        direction TB
        ACR["ثبت کانتینر آزور"]
        AgentService["سرویس عامل Foundry
        (زمان اجرا عامل میزبانی شده)"]
        Model["Azure OpenAI
        (gpt-4.1 / gpt-4.1-mini)"]
        Playground["زمین بازی Foundry
        و زمین بازی VS Code"]
        ACR --> AgentService
        AgentService -- "/responses API" --> Model
        AgentService --> Playground
    end

    Scaffold -- "استقرار
    (ساخت و ارسال داکر)" --> ACR
    Inspector -- "POST /responses
    (localhost:8088)" --> Scaffold
    Playground -- "آزمون درخواست‌ها" --> AgentService

    style Local fill:#f0f4ff,stroke:#4a6cf7,stroke-width:2px
    style Cloud fill:#fff4e6,stroke:#f59e0b,stroke-width:2px
Loading

روند: افزونه Foundry عامل را اسکلِتون می‌کند → شما کد و دستورالعمل‌ها را سفارشی می‌کنید → با Agent Inspector به‌صورت محلی تست می‌کنید → به Foundry مستقر می‌کنید (تصویر Docker به ACR ارسال می‌شود) → در Playground صحت‌سنجی می‌شود.


چیزی که خواهید ساخت

آزمایشگاه توضیحات وضعیت
آزمایشگاه ۰۱ - عامل تک ساخت عامل "توضیح مانند یک مدیر اجرایی"، تست محلی و استقرار به Foundry ✅ موجود
آزمایشگاه ۰۲ - جریان چند عاملی ساخت "رزومه → ارزیاب تناسب شغلی" - همکاری ۴ عامل برای امتیازدهی تناسب رزومه و تولید نقشه راه یادگیری ✅ موجود

آشنایی با عامل اجرایی

در این کارگاه شما عامل "توضیح مانند یک مدیر اجرایی" را می‌سازید - عاملی که اصطلاحات فنی پیچیده را می‌گیرد و به خلاصه‌هایی آرام و آماده جلسه هیئت مدیره تبدیل می‌کند. چون بیایید صادق باشیم، هیچ‌کس در سطوح ارشد نمی‌خواهد درباره "کمبود thread pool ناشی از تماس‌های همزمان معرفی شده در v3.2." بشنود.

این عامل را بعد از چندین بار که گزارش کامل من با پاسخ مواجه شد: "خب... آیا وب‌سایت پایین است یا نه؟" ساختم.

چگونه کار می‌کند

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

ببینید که چطور عمل می‌کند

شما می‌گویید:

"تاخیر API به دلیل کمبود thread pool ناشی از تماس‌های همزمان معرفی شده در v3.2 افزایش یافته است."

عامل پاسخ می‌دهد:

خلاصه اجرایی:

  • چه اتفاقی افتاد: پس از آخرین به‌روزرسانی، سیستم کند شد.
  • تأثیر کسب‌وکار: برخی کاربران هنگام استفاده از سرویس با تأخیر مواجه شدند.
  • گام بعدی: تغییرات بازگردانده شده است و یک رفع مشکل قبل از استقرار مجدد در حال آماده‌سازی است.

چرا این عامل؟

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


ساختار کارگاه

📂 Foundry_Toolkit_for_VSCode_Lab/
├── 📄 README.md                      ← You are here
├── 📂 ExecutiveAgent/                ← Standalone hosted agent project
│   ├── agent.yaml
│   ├── Dockerfile
│   ├── main.py
│   └── requirements.txt
└── 📂 workshop/
    ├── 📂 lab01-single-agent/        ← Full lab: docs + agent code
    │   ├── README.md                 ← Hands-on lab instructions
    │   ├── 📂 docs/                  ← Step-by-step tutorial modules
    │   │   ├── 00-prerequisites.md
    │   │   ├── 01-install-foundry-toolkit.md
    │   │   ├── 02-create-foundry-project.md
    │   │   ├── 03-create-hosted-agent.md
    │   │   ├── 04-configure-and-code.md
    │   │   ├── 05-test-locally.md
    │   │   ├── 06-deploy-to-foundry.md
    │   │   ├── 07-verify-in-playground.md
    │   │   └── 08-troubleshooting.md
    │   └── 📂 agent/                 ← Reference solution (auto-scaffolded by Foundry extension)
    │       ├── agent.yaml
    │       ├── Dockerfile
    │       ├── main.py
    │       └── requirements.txt
    └── 📂 lab02-multi-agent/         ← Resume → Job Fit Evaluator
        ├── README.md                 ← Hands-on lab instructions (end-to-end)
        ├── 📂 docs/                  ← Step-by-step tutorial modules
        │   ├── 00-prerequisites.md
        │   ├── 01-understand-multi-agent.md
        │   ├── 02-scaffold-multi-agent.md
        │   ├── 03-configure-agents.md
        │   ├── 04-orchestration-patterns.md
        │   ├── 05-test-locally.md
        │   ├── 06-deploy-to-foundry.md
        │   ├── 07-verify-in-playground.md
        │   └── 08-troubleshooting.md
        └── 📂 PersonalCareerCopilot/ ← Reference solution (multi-agent workflow)
            ├── agent.yaml
            ├── Dockerfile
            ├── main.py
            └── requirements.txt

توجه: پوشه agent/ در هر آزمایشگاه همان چیزی است که افزونه Microsoft Foundry هنگام اجرای دستور Microsoft Foundry: Create a New Hosted Agent از Command Palette ایجاد می‌کند. فایل‌ها سپس با دستورالعمل‌ها، ابزارها و پیکربندی عامل شما سفارشی می‌شوند. آزمایشگاه ۰۱ به شما گام‌به‌گام نحوه ایجاد این پوشه از صفر را آموزش می‌دهد.


شروع کار

۱. مخزن را کلون کنید

git clone https://github.com/microsoft-foundry/Foundry_Toolkit_for_VSCode_Lab.git
cd Foundry_Toolkit_for_VSCode_Lab

۲. محیط مجازی پایتون را راه‌اندازی کنید

python -m venv venv

آن را فعال کنید:

  • ویندوز (PowerShell):
    .\venv\Scripts\Activate.ps1
  • macOS / لینوکس:
    source venv/bin/activate

۳. وابستگی‌ها را نصب کنید

pip install -r workshop/lab01-single-agent/agent/requirements.txt

۴. متغیرهای محیطی را پیکربندی کنید

فایل نمونه .env داخل پوشه agent را کپی کرده و مقادیر خود را وارد کنید:

cp workshop/lab01-single-agent/agent/.env.example workshop/lab01-single-agent/agent/.env

فایل workshop/lab01-single-agent/agent/.env را ویرایش کنید:

AZURE_AI_PROJECT_ENDPOINT=https://<your-account>.services.ai.azure.com/api/projects/<your-project>
MODEL_DEPLOYMENT_NAME=<your-model-deployment-name>

۵. آزمایشگاه‌های کارگاه را دنبال کنید

هر آزمایشگاه به صورت مستقل با ماژول‌های خود است. با آزمایشگاه ۰۱ شروع کنید تا اصول اولیه را یاد بگیرید، سپس به آزمایشگاه ۰۲ برای جریان‌های کاری چند عاملی بروید.

آزمایشگاه ۰۱ - عامل تک (دستورالعمل کامل)

# ماژول لینک
1 خواندن پیش‌نیازها 00-prerequisites.md
2 نصب Foundry Toolkit و افزونه Foundry 01-install-foundry-toolkit.md
3 ایجاد پروژه Foundry 02-create-foundry-project.md
4 ساختن عامل میزبانی شده 03-create-hosted-agent.md
5 پیکربندی دستورالعمل‌ها و محیط 04-configure-and-code.md
6 تست به‌صورت محلی 05-test-locally.md
7 استقرار به Foundry 06-deploy-to-foundry.md
8 تأیید در playground 07-verify-in-playground.md
9 عیب‌یابی 08-troubleshooting.md

آزمایشگاه ۰۲ - جریان چند عاملی (دستورالعمل کامل)

# ماژول لینک
1 پیش‌نیازها (آزمایشگاه ۰۲) 00-prerequisites.md
2 درک معماری چند عاملی 01-understand-multi-agent.md
3 اسکلت‌بندی پروژه چند عاملی 02-scaffold-multi-agent.md
4 پیکربندی عامل‌ها و محیط 03-configure-agents.md
5 الگوهای هماهنگی 04-orchestration-patterns.md
6 تست به‌صورت محلی (چند عاملی) 05-test-locally.md
7 استقرار در Foundry 06-deploy-to-foundry.md
8 اعتبارسنجی در playground 07-verify-in-playground.md
9 رفع اشکال (چندعاملی) 08-troubleshooting.md

نگهدارنده

Shivam Goyal
شیوام گویال


مجوزهای مورد نیاز (مرجع سریع)

سناریو نقش‌های مورد نیاز
ایجاد پروژه جدید Foundry مالک Azure AI روی منبع Foundry
استقرار در پروژه موجود (منابع جدید) مالک Azure AI + همکار روی اشتراک
استقرار در پروژه کاملاً پیکربندی‌شده خواننده روی حساب + کاربر Azure AI روی پروژه

مهم: نقش‌های Azure مالک و همکار تنها شامل مجوزهای مدیریتی هستند، نه مجوزهای توسعه (عملیات داده). برای ساخت و استقرار عوامل به کاربر Azure AI یا مالک Azure AI نیاز دارید.


مراجع


مجوز

MIT


سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان مادری آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوء تفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه نیستیم.