[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6999ZPGC8ZTBA9K92DS8BDG":3,"skill-same:01M6999ZPGC8ZTBA9K92DS8BDG":59},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6999ZPGC8ZTBA9K92DS8BDG","testing-course-samples",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79626,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Far\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[28,29],"testing","testing course samples","2026-11-10 10:12:30",false,"---\nname: testing-course-samples\n---\n# اختبار عينات الدورة\n\nتحقق من أن دفاتر الدروس وعينات الشيفرة تعمل ضد إعداد Microsoft Foundry \u002F Azure OpenAI مباشر.\nيشتمل المستودع على مشغل في\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) الذي\nينفذ كل دفتر ملاحظات بايثون بدون واجهة ويطبع مصفوفة تمر\u002Fفشل.\n\n## متى تستخدم\n- \"تحقق من صحة كل دفاتر الملاحظات \u002F العينات مقابل اشتراك Azure الخاص بي.\"\n- \"اختبار سريع للدورة بعد تحديث الحزم أو تغيير النماذج.\"\n- \"أي الدروس لا تزال تمر \u002F تفشل مباشرة؟\"\n\nلا تستخدم هذا لاختبار AI Smoke Test GitHub Action (الذي يتحقق من العملاء *النشرين*\nالمستضافين — راجع [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). تقوم هذه المهارة\nبتشغيل دفاتر الملاحظات محليًا.\n\n## المتطلبات الأساسية (افحص أولاً)\n1. **بايثون 3.12+** مع تبعيات الدورة: `python -m pip install -r requirements.txt`\n   بالإضافة إلى المشغل: `python -m pip install nbconvert ipykernel`.\n2. **`.env` في جذر المستودع** (انسخ من [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) مع على الأقل:\n   - `AZURE_AI_PROJECT_ENDPOINT` — نقطة نهاية مشروع Foundry\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — نشر غير مهجور (مثل `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) و `AZURE_OPENAI_DEPLOYMENT`\n     للدروس التي تستدعي Azure OpenAI مباشرة (الدرس 06، 02-azure-openai، 14 التسليم\u002Fالحلقة البشرية).\n3. إتمام **`تسجيل الدخول az`** — تقوم العينات بالمصادقة باستخدام `AzureCliCredential` (Entra ID، بدون مفتاح).\n4. تحقق من وجود نشر النموذج:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## تشغيل التحقق\n```powershell\n# كل دفاتر بايثون (يتجاوز .NET، .venv، site-packages، الترجمات، موارد المهارات)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# درس واحد، مع مهلة أطول لكل خلية\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# فقط عرض ما سيتم تشغيله (دون تنفيذ)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# مترجم صريح (إذا لم يكن `python` في PATH، مثلًا اسم مستعار لمتجر ويندوز)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nتقوم السكربت بكتابة نسخ منفذة، وسجلات لكل دفتر ملاحظات، و`results.json` إلى\n`$env:TEMP\\aiab-nbval` وتخرج بعدد حالات الفشل.\n\nيتم إعادة محاولة الإخفاقات المؤقتة (حدود سرعة HTTP 429 لاشتراك مشترك، تعطل\nعرضي لـ `AzureCliCredential`، أو انتهاء المهلة) تلقائيًا\n(`-Retries`، الافتراضي 2، مع تأخير الإعادة `-RetryDelaySeconds`، الافتراضي 20). إذا كان\nنشر النموذج يعاني من 429 بشكل منتظم، تحقق من حصة TPM العالمية للاشتراك\n(`az cognitiveservices usage list -l \u003Cregion>`) — زيادة سعة نشر واحد\nلا تساعد عندما يتم استنفاد حصة *الاشتراك*.\n\n## تفسير النتائج\n- `PASS` — تم تشغيل دفتر الملاحظات كاملاً بدون خطأ في أي خلية.\n- `FAIL` — يتم عرض أول سطر `*Error` \u002F `*Exception`؛ افتح سطر السجل المطابق\n  `log_*.txt` في مجلد المخرجات للتمشيط الكامل.\n- فشل دفتر ملاحظات واحد مقيد بـ `-Timeout` (لكل خلية)، لذا تظهر خلايا التدخل البشري المتوقفة\n  كـ`StdinNotImplementedError` بدلاً من التوقف.\n\n## دروس تحتاج إلى موارد إضافية (من المتوقع أن تفشل بدونها)\n| الدرس | متطلب إضافي |\n|--------|-------------------|\n| 05 Agentic RAG | بحث Azure AI (`AZURE_SEARCH_SERVICE_ENDPOINT`، المفتاح) — يحتوي على مسار احتياطي في الذاكرة |\n| 11 MCP \u002F GitHub | خادم GitHub MCP + PAT |\n| 13 memory (cognee) | `cognee` مهيأ مع مزود نموذج |\n| 15 استخدام المتصفح | متصفحات Playwright مثبتة (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 وكيل محلي | بيئة تنفيذ Foundry المحلية + نموذج Qwen محمل (على الجهاز، بدون سحابة) |\n| دفاتر `*-dotnet-*` | نواة .NET Interactive (مستبعدة افتراضيًا؛ استخدم `-IncludeDotnet`) |\n\n## التبليغ\nلخّص كجدول PASS\u002FFAIL مجمع حسب الدرس. افصل بين التراجع الحقيقي\n(أخطاء الشيفرة \u002F التكوين التي يجب إصلاحها) وفجوات البيئة (فقدان البحث \u002F Foundry المحلية \u002F PAT)،\nواستشهد بسجلات `log_*.txt` للفشل الحقيقي.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**تنويه**:\nتمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# اختبار عينات الدورة\n\nتحقق من أن دفاتر الدروس وعينات الشيفرة تعمل ضد إعداد Microsoft Foundry \u002F Azure OpenAI مباشر.\nيشتمل المستودع على مشغل في\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) الذي\nينفذ كل دفتر ملاحظات بايثون بدون واجهة ويطبع مصفوفة تمر\u002Fفشل.\n\n## متى تستخدم\n- \"تحقق من صحة كل دفاتر الملاحظات \u002F العينات مقابل اشتراك Azure الخاص بي.\"\n- \"اختبار سريع للدورة بعد تحديث الحزم أو تغيير النماذج.\"\n- \"أي الدروس لا تزال تمر \u002F تفشل مباشرة؟\"\n\nلا تستخدم هذا لاختبار AI Smoke Test GitHub Action (الذي يتحقق من العملاء *النشرين*\nالمستضافين — راجع [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). تقوم هذه المهارة\nبتشغيل دفاتر الملاحظات محليًا.\n\n## المتطلبات الأساسية (افحص أولاً)\n1. **بايثون 3.12+** مع تبعيات الدورة: `python -m pip install -r requirements.txt`\n   بالإضافة إلى المشغل: `python -m pip install nbconvert ipykernel`.\n2. **`.env` في جذر المستودع** (انسخ من [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) مع على الأقل:\n   - `AZURE_AI_PROJECT_ENDPOINT` — نقطة نهاية مشروع Foundry\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — نشر غير مهجور (مثل `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) و `AZURE_OPENAI_DEPLOYMENT`\n     للدروس التي تستدعي Azure OpenAI مباشرة (الدرس 06، 02-azure-openai، 14 التسليم\u002Fالحلقة البشرية).\n3. إتمام **`تسجيل الدخول az`** — تقوم العينات بالمصادقة باستخدام `AzureCliCredential` (Entra ID، بدون مفتاح).\n4. تحقق من وجود نشر النموذج:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## تشغيل التحقق\n```powershell\n# كل دفاتر بايثون (يتجاوز .NET، .venv، site-packages، الترجمات، موارد المهارات)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# درس واحد، مع مهلة أطول لكل خلية\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# فقط عرض ما سيتم تشغيله (دون تنفيذ)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# مترجم صريح (إذا لم يكن `python` في PATH، مثلًا اسم مستعار لمتجر ويندوز)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nتقوم السكربت بكتابة نسخ منفذة، وسجلات لكل دفتر ملاحظات، و`results.json` إلى\n`$env:TEMP\\aiab-nbval` وتخرج بعدد حالات الفشل.\n\nيتم إعادة محاولة الإخفاقات المؤقتة (حدود سرعة HTTP 429 لاشتراك مشترك، تعطل\nعرضي لـ `AzureCliCredential`، أو انتهاء المهلة) تلقائيًا\n(`-Retries`، الافتراضي 2، مع تأخير الإعادة `-RetryDelaySeconds`، الافتراضي 20). إذا كان\nنشر النموذج يعاني من 429 بشكل منتظم، تحقق من حصة TPM العالمية للاشتراك\n(`az cognitiveservices usage list -l \u003Cregion>`) — زيادة سعة نشر واحد\nلا تساعد عندما يتم استنفاد حصة *الاشتراك*.\n\n## تفسير النتائج\n- `PASS` — تم تشغيل دفتر الملاحظات كاملاً بدون خطأ في أي خلية.\n- `FAIL` — يتم عرض أول سطر `*Error` \u002F `*Exception`؛ افتح سطر السجل المطابق\n  `log_*.txt` في مجلد المخرجات للتمشيط الكامل.\n- فشل دفتر ملاحظات واحد مقيد بـ `-Timeout` (لكل خلية)، لذا تظهر خلايا التدخل البشري المتوقفة\n  كـ`StdinNotImplementedError` بدلاً من التوقف.\n\n## دروس تحتاج إلى موارد إضافية (من المتوقع أن تفشل بدونها)\n| الدرس | متطلب إضافي |\n|--------|-------------------|\n| 05 Agentic RAG | بحث Azure AI (`AZURE_SEARCH_SERVICE_ENDPOINT`، المفتاح) — يحتوي على مسار احتياطي في الذاكرة |\n| 11 MCP \u002F GitHub | خادم GitHub MCP + PAT |\n| 13 memory (cognee) | `cognee` مهيأ مع مزود نموذج |\n| 15 استخدام المتصفح | متصفحات Playwright مثبتة (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 وكيل محلي | بيئة تنفيذ Foundry المحلية + نموذج Qwen محمل (على الجهاز، بدون سحابة) |\n| دفاتر `*-dotnet-*` | نواة .NET Interactive (مستبعدة افتراضيًا؛ استخدم `-IncludeDotnet`) |\n\n## التبليغ\nلخّص كجدول PASS\u002FFAIL مجمع حسب الدرس. افصل بين التراجع الحقيقي\n(أخطاء الشيفرة \u002F التكوين التي يجب إصلاحها) وفجوات البيئة (فقدان البحث \u002F Foundry المحلية \u002F PAT)،\nواستشهد بسجلات `log_*.txt` للفشل الحقيقي.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**تنويه**:\nتمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والمعتمد. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Far\u002F.agents\u002Fskills\u002Ftesting-course-samples",26075,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners","https:\u002F\u002Faka.ms\u002Fai-agents-beginners","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-07 12:51:12",{"source":7,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":51,"command":52},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":54,"command":55},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Far\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",true,[],[60,67,78,86,94,101],{"skillNo":61,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":66,"publishedAt":30},"01M69A206TRZ8KK0CW0HYJF5V5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[64,65],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[28,29],{"skillNo":68,"name":69,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":75,"publishedAt":30},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[76,8,77],"docs","microsoft docs",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":30},"01M69A1VPZFJQ1HNGTZQ5P3WSC","local-ai-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[84,85],"ai agents","local ai agents",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":30},"01M69A1S947N7MM6V9JF85S2E7","jupyter-notebook","當使用者要求建立、搭建或編輯 Jupyter 筆記本（`.ipynb`）用於實驗、探索或教學時使用；優先使用隨附範本並執行輔助腳本 `new_notebook.py` 來產生一個乾淨的起始筆記本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fjupyter-notebook\u002FSKILL.md",[],[93],"jupyter notebook",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":30},"01M69A1Q8EXPWKZSQK69V6WF22","deploying-scalable-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[100],"deploying scalable agents",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":30},"01M69A1MHZTH3RH9N8VYSYG74X","azure-openai-to-responses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fazure-openai-to-responses\u002FSKILL.md",[],[107],"azure openai to responses"]