این درس نحوه اجرای نمونهکدهای این دوره را پوشش میدهد.
قبل از شروع کلون کردن مخزن خود، به کانال دیسکورد AI Agents For Beginners بپیوندید تا برای راهاندازی، پرسشها درباره دوره و ارتباط با دیگر یادگیرندگان کمک بگیرید.
برای شروع، لطفاً مخزن GitHub را کلون یا فورک کنید. این کار نسخهی خودتان از محتوای دوره را ایجاد میکند تا بتوانید کدها را اجرا، تست و تغییر دهید!
این کار با کلیک روی لینک فورک کردن مخزن انجام میشود.
اکنون باید نسخه فورک شدهی خودتان از این دوره را در لینک زیر داشته باشید:

کل مخزن میتواند بزرگ باشد (~۳ گیگابایت) وقتی کل تاریخچه و همه فایلها را دانلود میکنید. اگر فقط در کارگاه شرکت میکنید یا فقط به چند پوشه درس نیاز دارید، کلون سطحی (یا کلون پراکنده) بسیار کمتر دانلود میکند.
<your-username> را در فرمانهای زیر با URL فورک خود (یا URL اصلی اگر ترجیح میدهید) جایگزین کنید.
برای کلون کردن فقط آخرین تاریخچه کامیت (دانلود کم):
git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git
برای کلون کردن یک شاخه خاص:
git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git
این روش از کلون جزئی و sparse-checkout استفاده میکند (نیازمند گیت نسخه 2.25+ و توصیه میشود گیت مدرن با پشتیبانی کلون جزئی):
git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git
وارد پوشه مخزن شوید:
cd ai-agents-for-beginners
سپس مشخص کنید کدام پوشهها را میخواهید (مثال زیر دو پوشه را نشان میدهد):
git sparse-checkout set 00-course-setup 01-intro-to-ai-agents
پس از کلون و بررسی فایلها، اگر فقط به فایلها نیاز دارید و میخواهید فضا آزاد کنید (بدون تاریخچه گیت)، لطفاً متادیتای مخزن را حذف کنید (💀غیرقابل بازگشت — همه قابلیتهای گیت را از دست خواهید داد):
# زد شل/باش
rm -rf .git
# پاورشل
Remove-Item -Recurse -Force .git
یک Codespace جدید برای این مخزن از طریق رابط کاربری GitHub بسازید.
این دوره مجموعهای از دفترچههای Jupyter را ارائه میدهد که میتوانید برای کسب تجربه عملی در ساخت عاملهای هوش مصنوعی اجرا کنید.
نمونههای کد از چارچوب عامل مایکروسافت (MAF) با FoundryChatClient استفاده میکنند که به خدمت Microsoft Foundry Agent Service V2 (API پاسخها) از طریق Microsoft Foundry متصل میشود.
همه دفترچههای پایتون با نام *-python-agent-framework.ipynb مشخص شدهاند.
توجه: اگر پایتون 3.12 نصب ندارید، مطمئن شوید آن را نصب کنید. سپس با استفاده از python3.12 محیط مجازی خود را بسازید تا نسخههای درست از فایل requirements.txt نصب شود.
مثال
ساخت دایرکتوری محیط مجازی پایتون:
python -m venv venv
سپس محیط مجازی را فعال کنید برای:
# زد-اچ/باش
source venv/bin/activate
# Command Prompt for Windows
venv\Scripts\activate
داتنت 10+: برای نمونههای کدی که از داتنت استفاده میکنند، مطمئن شوید .NET 10 SDK یا نسخه جدیدتر نصب شده باشد. سپس نسخه نصب شده SDK داتنت را چک کنید:
dotnet --list-sdks
gpt-5-mini). به مرحله 1 زیر مراجعه کنید.ما فایلی به نام requirements.txt در ریشه این مخزن قرار دادهایم که شامل تمام بستههای پایتون مورد نیاز برای اجرای نمونهکدها است.
شما میتوانید آنها را با اجرای دستور زیر در ترمینال خود در ریشه مخزن نصب کنید:
pip install -r requirements.txt
توصیه میکنیم یک محیط مجازی پایتون ایجاد کنید تا از تداخلها و مشکلات جلوگیری شود.
مطمئن شوید که در VSCode از نسخه صحیح پایتون استفاده میکنید.
برای اجرای دفترچهها به یک هاب و پروژه در Microsoft Foundry نیاز دارید که دارای مدلی مستقر شده باشد.
gpt-5-mini).از پروژه خود در پرتال Microsoft Foundry:

gpt-5-mini).az loginبیشتر دفترچهها از طریق ورود به Azure CLI شما احراز هویت میشوند — با استفاده از AzureCliCredential یا DefaultAzureCredential (که جلسۀ az login شما را میگیرد) از بسته azure-identity — پس نیازی به کلیدهای API ندارند. چند درس و ادغامهای اختیاری از کلید API استفاده میکنند؛ برای متغیرهای محیطی اضافی، پیشنیازهای هر درس را بررسی کنید. برای این کار باید از طریق Azure CLI وارد شده باشید.
اگر Azure CLI نصب ندارید، نصب کنید: aka.ms/installazurecli
ورود با اجرای:
az login
اگر در محیط ریموت/Codespace بدون مرورگر هستید:
az login --use-device-code
انتخاب اشتراک اگر درخواست شد — اشتراکی را انتخاب کنید که پروژه Foundry شما در آن است.
بررسی اینکه وارد شدهاید:
az account show
چرا
az login؟ دفترچهها با استفاده ازAzureCliCredential(یاDefaultAzureCredentialکه ورود Azure CLI شما را نیز میگیرد) از بستهazure-identityاحراز هویت میشوند. بنابراین جلسه Azure CLI شما اعتبارها را فراهم میکند — نیازی به کلیدهای API یا رازها در فایل.envنیست. این یک بهترین روش امنیتی است.
.env خودفایل نمونه را کپی کنید:
# زد شل/باش
cp .env.example .env
# پاورشل
Copy-Item .env.example .env
فایل .env را باز کنید و دو مقدار زیر را پر کنید:
AZURE_AI_PROJECT_ENDPOINT=https://<your-project>.services.ai.azure.com/api/projects/<your-project-id>
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-5-mini
| متغیر | محل یافتن |
|---|---|
AZURE_AI_PROJECT_ENDPOINT |
پرتال Foundry → پروژه شما → صفحه Overview |
AZURE_AI_MODEL_DEPLOYMENT_NAME |
پرتال Foundry → Models + Endpoints → نام مدل مستقر شما |
این برای بیشتر درسها کافی است! دفترچهها بهطور خودکار از طریق جلسه az login شما احراز هویت میکنند.
pip install -r requirements.txt
توصیه میشود این دستور را در داخل محیط مجازی که قبلاً ساختید اجرا کنید.
دفاتر درس ۵ (Agentic RAG) و ۱۶ به صورت پیشفرض با یک پایگاه دانش در حافظه اجرا میشوند — نیازی به منابع اضافه Azure نیست. اگر میخواهید آنها را به یک شاخص واقعی Azure AI Search متصل کنید، توجه داشته باشید که دفترچه درس ۱۶ در حال حاضر از احراز هویت با کلید استفاده میکند: وقتی هر دو مقدار AZURE_SEARCH_SERVICE_ENDPOINT و AZURE_SEARCH_API_KEY تنظیم شده باشند، جستجو از حافظه به Azure AI Search تغییر میکند — پس برای استفاده از آن در مقابل یک شاخص واقعی باید کلید ادمین را هم تنظیم کنید. احراز هویت بدون کلید با Microsoft Entra ID (RBAC) رویکرد توصیهشده برای کدهای تولیدی شماست که مطابق با جریان az login در کل دوره است.
مراحل RBAC زیر برای نمونههای راهنمای راهاندازی و کد خود شما است. این موارد احراز هویت بدون کلید را در دفترچه درس ۱۶ فعال نمیکند؛ درس ۱۶ هنوز به هر دو مقدار پایان و کلید ادمین برای استفاده از Azure AI Search نیاز دارد.
۱. فعال کردن دسترسی مبتنی بر نقش روی سرویس جستجوی خود:
```bash
az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
```
۲. اختصاص نقشهای لازم به خودتان (ساخت/بارگذاری شاخصها و پرس و جو):
```bash
az role assignment create --assignee <your-user-or-principal-id> --role "Search Service Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
az role assignment create --assignee <your-user-or-principal-id> --role "Search Index Data Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
```
۳. اضافه کردن آدرس پایان به فایل .env خود:
| متغیر | محل یافتن |
|---|---|
AZURE_SEARCH_SERVICE_ENDPOINT |
پرتال Azure → منبع Azure AI Search شما → Overview → URL |
AZURE_SEARCH_API_KEY |
لازم (همراه با آدرس پایان) برای فعالسازی Azure AI Search در دفترچه درس ۱۶ که از احراز هویت کلید استفاده میکند. پرتال Azure → Settings → Keys → کلید ادمین اصلی |
چرا بدون کلید؟ کلیدهای ادمین دسترسی کامل نوشتن روی سرویس جستجوی شما میدهند و ممکن است از فایلهای
.envنشت کنند. با RBAC، هویتaz loginشما به جای آن استفاده میشود — همان الگوی بدون کلیدی Entra ID که دفترچههای دوره به صورت پیشفرض استفاده میکنند (از طریقAzureCliCredential/DefaultAzureCredential). نگاه کنید به اتصال به Azure AI Search با استفاده از نقشها.
برای نمونههای کامل ایجاد شاخص در پایتون و داتنت، به راهنمای راهاندازی Azure AI Search مراجعه کنید.
برخی دفترچهها در درسهای ۶ و ۸ مستقیماً از Azure OpenAI با استفاده از API پاسخها فراخوانی میکنند، نه از طریق پروژه Microsoft Foundry. این نمونهها قبلاً از مدلهای GitHub استفاده میکردند که منسوخ شده و API پاسخها را پشتیبانی نمیکند. این متغیرها را به فایل .env خود اضافه کنید:
| متغیر | محل یافتن |
|---|---|
AZURE_OPENAI_ENDPOINT |
پرتال Azure → منبع Azure OpenAI شما → Keys and Endpoint → Endpoint (مثلاً https://<your-resource>.openai.azure.com) |
AZURE_OPENAI_DEPLOYMENT |
نام مدل مستقر شده شما (مثلاً gpt-5-mini) که API پاسخها را پشتیبانی میکند |
AZURE_OPENAI_API_KEY |
اختیاری — فقط اگر از احراز هویت کلیدی به جای ورود az login / Entra ID استفاده میکنید |
API پاسخها از آدرس ثابت
/openai/v1/استفاده میکند، بنابراین نیازی بهapi-versionنیست. برای استفاده از احراز هویت بدون کلید Entra ID، باaz loginوارد شوید.
MiniMax مدلهای با زمینه بزرگ (تا ۲۰۴ هزار توکن) را از طریق API سازگار با OpenAI فراهم میکند. از آنجایی که OpenAIChatClient در چارچوب عامل مایکروسافت با هر نقطه پایانی سازگار با OpenAI کار میکند، میتوانید MiniMax را به عنوان جایگزین مستقیم برای درسهایی که از OpenAIChatClient استفاده میکنند به کار ببرید.
این متغیرها را به فایل .env خود اضافه کنید:
| متغیر | محل یافتن |
|---|---|
MINIMAX_API_KEY |
پلتفرم MiniMax → کلیدهای API |
MINIMAX_BASE_URL |
از https://api.minimax.io/v1 استفاده کنید (مقدار پیشفرض) |
MINIMAX_MODEL_ID |
نام مدلی که میخواهید استفاده کنید (مثلاً، MiniMax-M3) |
مدلهای نمونه: MiniMax-M3 (توصیه شده)، MiniMax-M2.7, MiniMax-M2.7-highspeed (پاسخهای سریعتر). نام و در دسترس بودن مدلها ممکن است در طول زمان تغییر کند و دسترسی به مدل خاصی ممکن است وابسته به حساب شما باشد.
نمونههای کدی که از OpenAIChatClient استفاده میکنند (مثلاً جریان رزرو هتل در درس ۱۴) وقتی MINIMAX_API_KEY تنظیم شده باشد، بهطور خودکار تنظیمات MiniMax شما را تشخیص داده و استفاده میکنند.
Novita AI یک API سازگار با OpenAI برای مدلهای زبان منبعباز و پیشرفته (DeepSeek، Llama، Qwen و غیره) ارائه میدهد. از آنجا که OpenAIChatClient چارچوب Microsoft Agent با هر نقطه انتهایی سازگار با OpenAI کار میکند، میتوانید از Novita AI به عنوان جایگزینی مستقیم برای Azure OpenAI یا OpenAI استفاده کنید.
این متغیرها را به فایل .env خود اضافه کنید:
| متغیر | محل یافتن |
|---|---|
NOVITA_API_KEY |
داشبورد Novita AI → کلیدهای API |
NOVITA_BASE_URL |
از https://api.novita.ai/openai/v1 استفاده کنید (مقدار پیشفرض) |
NOVITA_MODEL_ID |
نام مدلی برای استفاده (مثلاً moonshotai/kimi-k3) |
مدلهای نمونه: moonshotai/kimi-k3، zai-org/glm-5.2، deepseek/deepseek-v4-flash-0731. Novita AI همچنین میزبان بسیاری از خانوادههای مدلهای منبعباز دیگر (Llama، Qwen، GLM و غیره) است — برای فهرست فعلی مدلهای در دسترس و شناسه مدلهایشان به کتابخانه مدل Novita AI مراجعه کنید.
نمونههای فعلی به صورت خودکار متغیرهای NOVITA_* را مصرف نمیکنند. برای استفاده از Novita AI، این مقادیر را به طور صریح هنگام ساختن OpenAIChatClient در نمونهای که اجرا میکنید، ارسال کنید.
Foundry Local یک محیط اجرایی سبک است که مدلهای زبان را به صورت کامل روی دستگاه خودتان دانلود، مدیریت و ارائه میدهد با استفاده از یک API سازگار با OpenAI — بدون نیاز به فضای ابری.
از آنجا که OpenAIChatClient چارچوب Microsoft Agent با هر نقطه انتهایی سازگار با OpenAI کار میکند، Foundry Local جایگزینی محلی و دونقطهای برای Azure OpenAI است.
1. نصب Foundry Local
# ویندوز
winget install Microsoft.FoundryLocal
# مکاواس
brew install foundrylocal
2. دانلود و اجرای یک مدل (این کار همچنین سرویس محلی را راهاندازی میکند):
foundry model list # مشاهده مدلهای موجود
foundry model run phi-4-mini
3. نصب SDK پایتون که برای کشف نقطه انتهایی محلی استفاده میشود:
pip install foundry-local-sdk
4. اشاره دادن چارچوب Microsoft Agent به مدل محلی شما:
from foundry_local import FoundryLocalManager
from agent_framework.openai import OpenAIChatClient
# مدل را در صورت نیاز دانلود کرده و به صورت محلی ارائه میدهد، سپس نقطه پایانی/پورت را شناسایی میکند.
manager = FoundryLocalManager("phi-4-mini")
chat_client = OpenAIChatClient(
base_url=manager.endpoint, # به عنوان مثال http://localhost:<port>/v1
api_key=manager.api_key, # همیشه برای Foundry Local "غيرضروري" است
model_id=manager.get_model_info("phi-4-mini").id,
)
agent = chat_client.as_agent(
name="LocalAgent",
instructions="You are a helpful assistant running fully on-device.",
)
نکته: Foundry Local یک نقطه انتهایی Chat Completions سازگار با OpenAI ارائه میدهد. برای توسعه محلی و سناریوهای آفلاین استفاده کنید. برای استفاده کامل از امکانات Responses API (گفتگوهای دارای حالت و غیره)، از Azure OpenAI یا پروژه Microsoft Foundry استفاده کنید.
نوتبوک جریان کاری شرطی در درس ۸ از طریق Microsoft Foundry از اتصال بینگ استفاده میکند. اگر قصد اجرای آن نمونه را دارید، این متغیر را به فایل .env خود اضافه کنید:
| متغیر | محل یافتن |
|---|---|
BING_CONNECTION_ID |
پورتال Microsoft Foundry → پروژه شما → مدیریت → منابع متصل → اتصال بینگ شما → کپی شناسه اتصال |
اگر روی macOS هستید و با خطایی مانند زیر مواجه میشوید:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
این یک مشکل شناختهشده در پایتون روی macOS است که گواهیهای SSL سیستم بهطور خودکار اعتماد نمیشوند. راهحلهای زیر را به ترتیب امتحان کنید:
گزینه ۱: اجرای اسکریپت نصب گواهیهای پایتون (توصیه میشود)
# نسخه پایتون نصب شدهی خود را به جای 3.XX وارد کنید (برای مثال، 3.12 یا 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command
گزینه ۲: استفاده از connection_verify=False در نوتبوک خود (فقط برای نوتبوکهای GitHub Models)
در نوتبوک درس ۶ (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb) یک راهحل موقت کامنتشدهشده از پیش آمده است. وقتی به خطاهای گواهی برخوردید connection_verify=False را از حالت کامنت خارج کنید:
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
connection_verify=False, # در صورت مواجهه با خطاهای گواهینامه، اعتبارسنجی SSL را غیرفعال کنید
)
⚠️ هشدار: غیر فعال کردن تأیید SSL (
connection_verify=False) امنیت را کاهش میدهد چون اعتبارسنجی گواهی را دور میزند. این را فقط به عنوان راهحل موقتی در محیطهای توسعه استفاده کنید و هرگز در محیطهای تولید به کار نگیرید.
گزینه ۳: نصب و استفاده از truststore
pip install truststore
سپس قبل از هر فراخوانی شبکهای، موارد زیر را در بالای نوتبوک یا اسکریپت خود اضافه کنید:
import truststore
truststore.inject_into_ssl()
اگر در اجرای این تنظیمات با مشکلی روبرو شدید، به دیسکورد انجمن Azure AI بپیوندید یا یک مسئله ایجاد کنید.
اکنون آمادهاید کدهای این دوره را اجرا کنید. یادگیری خوش بگذرد درباره دنیای عوامل هوش مصنوعی!
مقدمهای بر عوامل هوش مصنوعی و کاربردهای آنها
سلب مسئولیت: این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.