[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699TDWHKNRHRTN0ET3NJENJ":3,"skill-same:01M699TDWHKNRHRTN0ET3NJENJ":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},"01M699TDWHKNRHRTN0ET3NJENJ","testing-course-samples",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79504,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fru\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Проверьте, что тетради уроков и примеры кода запускаются с использованием живой\nсреды Microsoft Foundry \u002F Azure OpenAI. В репозитории есть скрипт запуска по пути\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1), который\nвыполняет каждую Python тетрадь без интерфейса и выводит матрицу PASS\u002FFAIL.\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. **Python 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 handoff\u002Fhuman-loop).\n3. Выполнен **`az login`** — образцы аутентифицируются с помощью `AzureCliCredential` (Entra ID, без ключа).\n4. Проверьте, что развертывание модели существует:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Запуск проверки\n```powershell\n# Все блокноты Python (исключая .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, например, псевдоним из Windows Store)\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, проверьте квоту GlobalStandard\nTPM подписки (`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 Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, ключ) — есть резервный путь в памяти |\n| 11 MCP \u002F GitHub | GitHub MCP сервер + PAT |\n| 13 memory (cognee) | `cognee` настроен с провайдером модели |\n| 15 browser-use | Установлены браузеры Playwright (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 local agent | Foundry Local runtime + загруженная модель Qwen (локально, без облака) |\n| тетради с `*-dotnet-*` | .NET Interactive kernel (по умолчанию исключены; используйте `-IncludeDotnet`) |\n\n## Отчет о результатах\nПодведите итог в виде таблицы PASS\u002FFAIL по урокам. Разделите реальные регрессии\n(ошибки кода\u002Fконфигурации, которые нужно исправить) и проблемы окружения (отсутствие Search\u002FFoundry Local\u002FPAT),\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Проверьте, что тетради уроков и примеры кода запускаются с использованием живой\nсреды Microsoft Foundry \u002F Azure OpenAI. В репозитории есть скрипт запуска по пути\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1), который\nвыполняет каждую Python тетрадь без интерфейса и выводит матрицу PASS\u002FFAIL.\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. **Python 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 handoff\u002Fhuman-loop).\n3. Выполнен **`az login`** — образцы аутентифицируются с помощью `AzureCliCredential` (Entra ID, без ключа).\n4. Проверьте, что развертывание модели существует:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Запуск проверки\n```powershell\n# Все блокноты Python (исключая .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, например, псевдоним из Windows Store)\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, проверьте квоту GlobalStandard\nTPM подписки (`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 Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, ключ) — есть резервный путь в памяти |\n| 11 MCP \u002F GitHub | GitHub MCP сервер + PAT |\n| 13 memory (cognee) | `cognee` настроен с провайдером модели |\n| 15 browser-use | Установлены браузеры Playwright (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 local agent | Foundry Local runtime + загруженная модель Qwen (локально, без облака) |\n| тетради с `*-dotnet-*` | .NET Interactive kernel (по умолчанию исключены; используйте `-IncludeDotnet`) |\n\n## Отчет о результатах\nПодведите итог в виде таблицы PASS\u002FFAIL по урокам. Разделите реальные регрессии\n(ошибки кода\u002Fконфигурации, которые нужно исправить) и проблемы окружения (отсутствие Search\u002FFoundry Local\u002FPAT),\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\u002Fru\u002F.agents\u002Fskills\u002Ftesting-course-samples",26043,"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\u002Fru\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"]