[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699QBD9MM902SZVN6WSGX2D":3,"skill-same:01M699QBD9MM902SZVN6WSGX2D":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M699QBD9MM902SZVN6WSGX2D","testing-course-samples",null,"Brukes når du blir bedt om å validere, teste, røykteste eller kjøre kursets notatbok og kodeeksempler mot en aktiv Microsoft Foundry \u002F Azure OpenAI-konfigurasjon. Dekker miljøoppsett (.env, az login, pakker), skriptet\u002Fvalidate-notebooks.ps1-kjøreren, tolkning av PASS\u002FFAIL-resultater, og hvilke leksjoner som trenger ekstra ressurser (Azure AI Search, GitHub MCP, Foundry Local, Playwright).","microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79423,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fno\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[32,33,34,35,36,9,37,38,39,40,41],"testing","testing course samples","MCP","github","playwright","foundry","foundry local","microsoft foundry","validate","azure ai","2026-11-10 10:12:30",false,"---\nname: testing-course-samples\ndescription: Brukes når du blir bedt om å validere, teste, røykteste eller kjøre kursets\n  notatbok og kodeeksempler mot en aktiv Microsoft Foundry \u002F Azure OpenAI-konfigurasjon.\n  Dekker miljøoppsett (.env, az login, pakker), skriptet\u002Fvalidate-notebooks.ps1-kjøreren,\n  tolkning av PASS\u002FFAIL-resultater, og hvilke leksjoner som trenger ekstra ressurser\n  (Azure AI Search, GitHub MCP, Foundry Local, Playwright).\n---\n# Testing av Eksempelkurs\n\nValider at leksjons-notatbøker og kodeeksempler kjører mot en levende\nMicrosoft Foundry \u002F Azure OpenAI-oppsett. Repositoriet leverer en kjører på\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) som\nkjører hver Python-notatbok hodeløst og skriver ut en PASS\u002FFAIL-matrise.\n\n## Når man skal bruke den\n- \"Valider alle notatbøker \u002F eksempler mot min Azure-abonnement.\"\n- \"Rasktest kurset etter oppgradering av pakker eller modellendringer.\"\n- \"Hvilke leksjoner består fortsatt \u002F feiler live?\"\n\nBruk **ikke** denne for AI Smoke Test GitHub Action (som validerer *utrullerte*\nhostede agenter — se [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Denne skillen\nkjører notatbøkene lokalt.\n\n## Forutsetninger (sjekk først)\n1. **Python 3.12+** med kursavhengigheter: `python -m pip install -r requirements.txt`\n   pluss kjøremiljø: `python -m pip install nbconvert ipykernel`.\n2. **`.env` i repos rot** (kopier fra [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) med minst:\n   - `AZURE_AI_PROJECT_ENDPOINT` — Foundry prosjektendepunkt\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — en ikke-utdatert utrulling (f.eks. `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) og `AZURE_OPENAI_DEPLOYMENT`\n     for leksjoner som kontakter Azure OpenAI direkte (Leksjon 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** fullført — eksemplene autentiserer med `AzureCliCredential` (Entra ID, uten nøkkel).\n4. Verifiser at modellutrullingen finnes:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Kjør valideringen\n```powershell\n# Alle Python-notatbøker (hopper .NET, .venv, site-packages, oversettelser, ferdighetsressurser)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# En enkelt leksjon, med lengre tidsavbrudd per celle\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Bare list opp hva som ville kjøres (ingen kjøring)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Eksplisitt tolker (hvis `python` ikke er i PATH, f.eks. Windows Store-alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nSkriptet skriver ut kjørte kopier, per-notatbok logger, og `results.json` til\n`$env:TEMP\\aiab-nbval` og avslutter med antall feil.\n\nMidlertidige feil (felles-abonnement HTTP 429 rate limits, en tilfeldig\n`AzureCliCredential` token-hickup, eller timeout) blir forsøkt på nytt automatisk\n(`-Retries`, standard 2, med `-RetryDelaySeconds` backoff, standard 20). Hvis en\nmodellutrulling jevnlig får 429, sjekk abonnementets GlobalStandard\nTPM-kvote (`az cognitiveservices usage list -l \u003Cregion>`) — det hjelper ikke å øke\nkapasiteten til én enkelt utrulling når *abonnementets* kvote er brukt opp.\n\n## Tolkning av resultater\n- `PASS` — notatboken kjørte fra start til slutt uten cellfeil.\n- `FAIL` — den første `*Error` \u002F `*Exception` linjen vises; åpne matchende\n  `log_*.txt` i utdata-mappen for full traceback.\n- En enkelt notatboks feil er begrenset av `-Timeout` (per celle), så en hengende\n  human-in-the-loop-celle fremstår som `StdinNotImplementedError` i stedet for å henge.\n\n## Leksjoner som krever ekstra ressurser (forventet å feile uten)\n| Leksjon | Ekstra krav |\n|--------|-------------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, nøkkel) — har en minnebasert fallback |\n| 11 MCP \u002F GitHub | GitHub MCP-server + PAT |\n| 13 minne (cognee) | `cognee` konfigurert med modell-leverandør |\n| 15 nettleser-bruk | Playwright nettlesere installert (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 lokal agent | Foundry Local runtime + en nedlastet Qwen-modell (på enheten, ikke sky) |\n| `*-dotnet-*` notatbøker | .NET Interactive-kjerne (utelatt som standard; bruk `-IncludeDotnet`) |\n\n## Rapportering\nOppsummer som en PASS\u002FFAIL-tabell gruppert etter leksjon. Skill ut ekte regresjoner\n(kode-\u002Fkonfigurasjonsfeil som må fikses) fra miljømangler (manglende Search\u002FFoundry Local\u002FPAT),\nog vis den feilede `log_*.txt` for hver reell feil.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Testing av Eksempelkurs\n\nValider at leksjons-notatbøker og kodeeksempler kjører mot en levende\nMicrosoft Foundry \u002F Azure OpenAI-oppsett. Repositoriet leverer en kjører på\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) som\nkjører hver Python-notatbok hodeløst og skriver ut en PASS\u002FFAIL-matrise.\n\n## Når man skal bruke den\n- \"Valider alle notatbøker \u002F eksempler mot min Azure-abonnement.\"\n- \"Rasktest kurset etter oppgradering av pakker eller modellendringer.\"\n- \"Hvilke leksjoner består fortsatt \u002F feiler live?\"\n\nBruk **ikke** denne for AI Smoke Test GitHub Action (som validerer *utrullerte*\nhostede agenter — se [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Denne skillen\nkjører notatbøkene lokalt.\n\n## Forutsetninger (sjekk først)\n1. **Python 3.12+** med kursavhengigheter: `python -m pip install -r requirements.txt`\n   pluss kjøremiljø: `python -m pip install nbconvert ipykernel`.\n2. **`.env` i repos rot** (kopier fra [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) med minst:\n   - `AZURE_AI_PROJECT_ENDPOINT` — Foundry prosjektendepunkt\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — en ikke-utdatert utrulling (f.eks. `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) og `AZURE_OPENAI_DEPLOYMENT`\n     for leksjoner som kontakter Azure OpenAI direkte (Leksjon 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** fullført — eksemplene autentiserer med `AzureCliCredential` (Entra ID, uten nøkkel).\n4. Verifiser at modellutrullingen finnes:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Kjør valideringen\n```powershell\n# Alle Python-notatbøker (hopper .NET, .venv, site-packages, oversettelser, ferdighetsressurser)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# En enkelt leksjon, med lengre tidsavbrudd per celle\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Bare list opp hva som ville kjøres (ingen kjøring)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Eksplisitt tolker (hvis `python` ikke er i PATH, f.eks. Windows Store-alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nSkriptet skriver ut kjørte kopier, per-notatbok logger, og `results.json` til\n`$env:TEMP\\aiab-nbval` og avslutter med antall feil.\n\nMidlertidige feil (felles-abonnement HTTP 429 rate limits, en tilfeldig\n`AzureCliCredential` token-hickup, eller timeout) blir forsøkt på nytt automatisk\n(`-Retries`, standard 2, med `-RetryDelaySeconds` backoff, standard 20). Hvis en\nmodellutrulling jevnlig får 429, sjekk abonnementets GlobalStandard\nTPM-kvote (`az cognitiveservices usage list -l \u003Cregion>`) — det hjelper ikke å øke\nkapasiteten til én enkelt utrulling når *abonnementets* kvote er brukt opp.\n\n## Tolkning av resultater\n- `PASS` — notatboken kjørte fra start til slutt uten cellfeil.\n- `FAIL` — den første `*Error` \u002F `*Exception` linjen vises; åpne matchende\n  `log_*.txt` i utdata-mappen for full traceback.\n- En enkelt notatboks feil er begrenset av `-Timeout` (per celle), så en hengende\n  human-in-the-loop-celle fremstår som `StdinNotImplementedError` i stedet for å henge.\n\n## Leksjoner som krever ekstra ressurser (forventet å feile uten)\n| Leksjon | Ekstra krav |\n|--------|-------------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, nøkkel) — har en minnebasert fallback |\n| 11 MCP \u002F GitHub | GitHub MCP-server + PAT |\n| 13 minne (cognee) | `cognee` konfigurert med modell-leverandør |\n| 15 nettleser-bruk | Playwright nettlesere installert (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 lokal agent | Foundry Local runtime + en nedlastet Qwen-modell (på enheten, ikke sky) |\n| `*-dotnet-*` notatbøker | .NET Interactive-kjerne (utelatt som standard; bruk `-IncludeDotnet`) |\n\n## Rapportering\nOppsummer som en PASS\u002FFAIL-tabell gruppert etter leksjon. Skill ut ekte regresjoner\n(kode-\u002Fkonfigurasjonsfeil som må fikses) fra miljømangler (manglende Search\u002FFoundry Local\u002FPAT),\nog vis den feilede `log_*.txt` for hver reell feil.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"description":7},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fno\u002F.agents\u002Fskills\u002Ftesting-course-samples",26019,"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":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":63,"command":64},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":66,"command":67},"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\u002Fno\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",true,[71],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},".graphify_version","OTHER","其他",6,"https:\u002F\u002Fgithub.com\u002Faryaniyaps\u002Fdot-ai\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgraphify\u002F.graphify_version",[78,85,94,102,110,117],{"skillNo":79,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":84,"publishedAt":42},"01M69A206TRZ8KK0CW0HYJF5V5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[82,83],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[32,33],{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":91,"publishedAt":42},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[90],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[92,9,93],"docs","microsoft docs",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":42},"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",[],[100,101],"ai agents","local ai agents",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":42},"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",[],[109],"jupyter notebook",{"skillNo":111,"name":112,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":42},"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",[],[116],"deploying scalable agents",{"skillNo":118,"name":119,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":42},"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",[],[123],"azure openai to responses"]