[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699VZTXCK2H5KKSENJKCMQB":3,"skill-same:01M699VZTXCK2H5KKSENJKCMQB":49},{"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":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":32,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M699VZTXCK2H5KKSENJKCMQB","local-ai-agents",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\u002Fsv\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[18,19],"ai agents","local ai agents","2026-11-10 10:12:30",false,"---\nname: local-ai-agents\nlicense: MIT\n---\n# Skapa Lokala AI-agenter med Foundry Local och Qwen\n\n> Kompisfärdighet för [Lektionen 17 – Skapa Lokala AI-agenter](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Använd den för att hjälpa en lärande att bygga en agent som resonerar, anropar verktyg och söker\n> dokumentation helt på deras egen maskin — ingen molninferens. Förankra varje\n> rekommendation i lektionsinnehållet och det körbara anteckningsboken.\n\n## Utlösare\n\nAktivera denna färdighet när en lärande vill:\n- Köra en agent **helt på enheten** för integritet, kostnad eller offline-anledningar.\n- Servera en modell lokalt med **Foundry Local** och anslut via OpenAI-kompatibel endpoint.\n- Använda en **Qwen funktionsanropsmodell** för att driva pålitliga lokala verktygsanrop.\n- Lägga till **lokal RAG** (Chroma) eller en **lokal MCP-server**.\n- Designa en **hybrid** lokal\u002Fmolnruttstrategi.\n\n## Kärnmental modell\n\nEn SLM byter bredd mot integritet, kostnad och offline-drift. Den vinnande\nstrategin: **låt SLM orkestrera och låt verktygen göra det tunga jobbet.** Modellen\nbehöver inte *känna till* kodbasen — den behöver veta när den ska anropa\n`read_file` och `search_docs`. Det spelar på en SLM:s styrka (begränsade beslut\nsom verktygsval) och bort från dess svaghet (bred kunskap, lång multi-hop\nresonerande).\n\n## Varför dessa specifika delar\n\n- **Foundry Local** exponerar en **OpenAI-kompatibel HTTP-endpoint**, så molnagentkod överförs genom att endast byta `base_url` (och använda en lokal platshållar-API-nyckel). Den väljer också automatiskt bästa bygg (CPU\u002FGPU\u002FNPU) för maskinen.\n- **Qwen**-modeller tränas för funktionsanrop och avger konsekvent väldefinierade verktygsanrop — det här är vad som förvandlar en lokal *chatt*modell till en lokal *agent*.\n- **Chroma** körs i processen och lagrar vektorer på disk, så hela RAG-pipelinen (embed → store → retrieve → reason) förblir lokal.\n- **MCP** är en transport, inte en molntjänst: en MCP-server kan köras lokalt över `stdio`.\n\n## Grundläggande uppsättning\n\n```bash\nfoundry model run qwen2.5-7b-instruct\nfoundry service status\n```\n\n```python\nfrom foundry_local import FoundryLocalManager\nfrom openai import OpenAI\n\nmanager = FoundryLocalManager(\"qwen2.5-7b-instruct\")\nclient = OpenAI(base_url=manager.endpoint, api_key=manager.api_key)  # lokal platshållare\n```\n\n~8 GB RAM är en realistisk minimum; en GPU\u002FNPU hjälper men är inte krävd.\n\n## Viktiga mönster att reproducera\n\nPeka den lärande mot anteckningsboken\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb):\n\n- **Sandlådafunktioner**: varje filverktyg löser sökvägar och avvisar allt utanför en enda projektrot — även lokalt körs ett verktyg med användarens behörigheter.\n- **Verktygsanropsloop**: registrera verktyg med OpenAI verktygsschema, kör begärda verktyg lokalt, mata tillbaka resultat, upprepa tills ett slutgiltigt svar.\n- **Lokal RAG**: uppdatera dokument i en Chroma-kollektion; `search_docs` returnerar topp-k delar.\n- **Lokal MCP**: anslut till lokal server över `stdio`; begränsa den till en projektkatalog och validera dess utdata.\n\n## Hybridriktning (lokal som en av modellerna)\n\n| Situation | Var det körs |\n|-----------|--------------|\n| Känsliga data \u002F offline | Lokal SLM |\n| Enkel, begränsad uppgift | Lokal SLM (billig, snabb) |\n| Svår multi-hop resonemang på icke-känsliga data | Molnmodell |\n| Molnsavbrott | Lokal SLM (graciös degradering) |\n\nDetta speglar modellruttidén från Lektion 16, med arbetsstationen som en\nav rutterna. Föredra design som faller tillbaka till lokal så att agenten degraderas i\nkvalitet snarare än att helt misslyckas.\n\n## Skydd för assistenten\n\n- Håll varje fil-\u002Fverktygsoperation begränsad till en sandlådad projektkatalog.\n- Skicka inte kod eller data till molnet när den lärandes uttalade mål är integritet\u002Foffline — håll hela pipelinen lokal.\n- Sätt realistiska förväntningar på SLM-kvalitet; luta dig mot verktyg och RAG snarare än modellens inlärda kunskap.\n- Notera att Lektion 17 har **ingen** Foundry Responses endpoint, så molnets rökteståtgärd gäller inte — validera genom att köra anteckningsboken lokalt.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfriskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Skapa Lokala AI-agenter med Foundry Local och Qwen\n\n> Kompisfärdighet för [Lektionen 17 – Skapa Lokala AI-agenter](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Använd den för att hjälpa en lärande att bygga en agent som resonerar, anropar verktyg och söker\n> dokumentation helt på deras egen maskin — ingen molninferens. Förankra varje\n> rekommendation i lektionsinnehållet och det körbara anteckningsboken.\n\n## Utlösare\n\nAktivera denna färdighet när en lärande vill:\n- Köra en agent **helt på enheten** för integritet, kostnad eller offline-anledningar.\n- Servera en modell lokalt med **Foundry Local** och anslut via OpenAI-kompatibel endpoint.\n- Använda en **Qwen funktionsanropsmodell** för att driva pålitliga lokala verktygsanrop.\n- Lägga till **lokal RAG** (Chroma) eller en **lokal MCP-server**.\n- Designa en **hybrid** lokal\u002Fmolnruttstrategi.\n\n## Kärnmental modell\n\nEn SLM byter bredd mot integritet, kostnad och offline-drift. Den vinnande\nstrategin: **låt SLM orkestrera och låt verktygen göra det tunga jobbet.** Modellen\nbehöver inte *känna till* kodbasen — den behöver veta när den ska anropa\n`read_file` och `search_docs`. Det spelar på en SLM:s styrka (begränsade beslut\nsom verktygsval) och bort från dess svaghet (bred kunskap, lång multi-hop\nresonerande).\n\n## Varför dessa specifika delar\n\n- **Foundry Local** exponerar en **OpenAI-kompatibel HTTP-endpoint**, så molnagentkod överförs genom att endast byta `base_url` (och använda en lokal platshållar-API-nyckel). Den väljer också automatiskt bästa bygg (CPU\u002FGPU\u002FNPU) för maskinen.\n- **Qwen**-modeller tränas för funktionsanrop och avger konsekvent väldefinierade verktygsanrop — det här är vad som förvandlar en lokal *chatt*modell till en lokal *agent*.\n- **Chroma** körs i processen och lagrar vektorer på disk, så hela RAG-pipelinen (embed → store → retrieve → reason) förblir lokal.\n- **MCP** är en transport, inte en molntjänst: en MCP-server kan köras lokalt över `stdio`.\n\n## Grundläggande uppsättning\n\n```bash\nfoundry model run qwen2.5-7b-instruct\nfoundry service status\n```\n\n```python\nfrom foundry_local import FoundryLocalManager\nfrom openai import OpenAI\n\nmanager = FoundryLocalManager(\"qwen2.5-7b-instruct\")\nclient = OpenAI(base_url=manager.endpoint, api_key=manager.api_key)  # lokal platshållare\n```\n\n~8 GB RAM är en realistisk minimum; en GPU\u002FNPU hjälper men är inte krävd.\n\n## Viktiga mönster att reproducera\n\nPeka den lärande mot anteckningsboken\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb):\n\n- **Sandlådafunktioner**: varje filverktyg löser sökvägar och avvisar allt utanför en enda projektrot — även lokalt körs ett verktyg med användarens behörigheter.\n- **Verktygsanropsloop**: registrera verktyg med OpenAI verktygsschema, kör begärda verktyg lokalt, mata tillbaka resultat, upprepa tills ett slutgiltigt svar.\n- **Lokal RAG**: uppdatera dokument i en Chroma-kollektion; `search_docs` returnerar topp-k delar.\n- **Lokal MCP**: anslut till lokal server över `stdio`; begränsa den till en projektkatalog och validera dess utdata.\n\n## Hybridriktning (lokal som en av modellerna)\n\n| Situation | Var det körs |\n|-----------|--------------|\n| Känsliga data \u002F offline | Lokal SLM |\n| Enkel, begränsad uppgift | Lokal SLM (billig, snabb) |\n| Svår multi-hop resonemang på icke-känsliga data | Molnmodell |\n| Molnsavbrott | Lokal SLM (graciös degradering) |\n\nDetta speglar modellruttidén från Lektion 16, med arbetsstationen som en\nav rutterna. Föredra design som faller tillbaka till lokal så att agenten degraderas i\nkvalitet snarare än att helt misslyckas.\n\n## Skydd för assistenten\n\n- Håll varje fil-\u002Fverktygsoperation begränsad till en sandlådad projektkatalog.\n- Skicka inte kod eller data till molnet när den lärandes uttalade mål är integritet\u002Foffline — håll hela pipelinen lokal.\n- Sätt realistiska förväntningar på SLM-kvalitet; luta dig mot verktyg och RAG snarare än modellens inlärda kunskap.\n- Notera att Lektion 17 har **ingen** Foundry Responses endpoint, så molnets rökteståtgärd gäller inte — validera genom att köra anteckningsboken lokalt.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfriskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fsv\u002F.agents\u002Fskills\u002Flocal-ai-agents",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":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill local-ai-agents",{"tool":41,"command":42},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill local-ai-agents",{"tool":44,"command":45},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill local-ai-agents","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fsv\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",true,[],[50,68,79,84,92,99],{"skillNo":51,"name":52,"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":53,"categories":54,"keywords":65,"publishedAt":20},"01M69A206TRZ8KK0CW0HYJF5V5","testing-course-samples","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[55,60],{"categoryNo":56,"categoryName":57,"taxonomyType":58,"taxonomyTypeDesc":59},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[66,67],"testing","testing course samples",{"skillNo":69,"name":70,"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":71,"categories":72,"keywords":76,"publishedAt":20},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":58,"taxonomyTypeDesc":59},"01JBSEEDCAT000000000000023","Skill与智能体开发",[77,8,78],"docs","microsoft docs",{"skillNo":80,"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":81,"categories":82,"keywords":83,"publishedAt":20},"01M69A1VPZFJQ1HNGTZQ5P3WSC","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[18,19],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":20},"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",[],[91],"jupyter notebook",{"skillNo":93,"name":94,"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":95,"categories":96,"keywords":97,"publishedAt":20},"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",[],[98],"deploying scalable agents",{"skillNo":100,"name":101,"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":102,"categories":103,"keywords":104,"publishedAt":20},"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",[],[105],"azure openai to responses"]