[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699F6NAV96CDWM5MEZS3GKA":3,"skill-same:01M699F6NAV96CDWM5MEZS3GKA":55},{"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},"01M699F6NAV96CDWM5MEZS3GKA","local-ai-agents",null,"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\u002Ffr\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# Création d'agents IA locaux avec Foundry Local et Qwen\n\n> Compétence compagnon pour [Leçon 17 – Création d'agents IA locaux](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Utilisez-la pour aider un apprenant à construire un agent qui raisonne, appelle des outils et recherche\n> la documentation entièrement sur sa propre machine — sans inférence cloud. Fondez chaque\n> recommandation sur le contenu de la leçon et le notebook exécutable.\n\n## Déclencheurs\n\nActivez cette compétence lorsqu'un apprenant souhaite :\n- Exécuter un agent **entièrement en local** pour des raisons de confidentialité, de coût ou d'utilisation hors connexion.\n- Servir un modèle localement avec **Foundry Local** et se connecter via un endpoint compatible OpenAI.\n- Utiliser un modèle **Qwen fonction-appel** pour piloter des appels d'outils locaux fiables.\n- Ajouter un **RAG local** (Chroma) ou un **serveur MCP local**.\n- Concevoir une stratégie de routage **hybride** locale\u002Fcloud.\n\n## Modèle mental central\n\nUn SLM échange la portée contre la confidentialité, le coût et l'opération hors ligne. La stratégie gagnante :\n**laisser le SLM orchestrer et laisser les outils faire le travail lourd.** Le\nmodèle n'a pas besoin de *connaître* la base de code — il doit savoir quand appeler\n`read_file` et `search_docs`. Cela joue sur la force d'un SLM (décisions limitées\ncomme la sélection des outils) et évite sa faiblesse (connaissances larges, raisonnements multi-sauts longs).\n\n\n## Pourquoi ces éléments spécifiques\n\n- **Foundry Local** expose un **endpoint HTTP compatible OpenAI**, donc le code d'agent cloud se transfère en changeant seulement `base_url` (et en utilisant une clé API fantôme locale). Il sélectionne aussi automatiquement la meilleure version (CPU\u002FGPU\u002FNPU) pour la machine.\n- Les modèles **Qwen** sont entraînés pour les appels de fonctions et génèrent systématiquement des appels d'outils bien formés — c'est ce qui transforme un modèle *chat* local en un *agent* local.\n- **Chroma** s'exécute en processus et stocke les vecteurs sur disque, donc toute la pipeline RAG (embeddings → stockage → récupération → raisonnement) reste locale.\n- **MCP** est un transport, pas un service cloud : un serveur MCP peut fonctionner localement via `stdio`.\n\n## Éléments essentiels d'installation\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)  # espace réservé local\n```\n\n~8 Go de RAM est un minimum réaliste ; un GPU\u002FNPU aide mais n'est pas obligatoire.\n\n## Principaux schémas à reproduire\n\nOrientez l'apprenant vers le notebook\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb) :\n\n- **Outils sandboxés** : chaque outil de fichier résout les chemins et rejette tout ce qui est hors d'un seul répertoire racine — même localement, un outil s'exécute avec les permissions de l'utilisateur.\n- **Boucle d'appel d'outils** : enregistrer les outils avec le schéma outils OpenAI, exécuter localement les outils demandés, renvoyer les résultats, répéter jusqu'à une réponse finale.\n- **RAG local** : insérer\u002Fmettre à jour des documents dans une collection Chroma ; `search_docs` retourne les top-k segments.\n- **MCP local** : connexion à un serveur local via `stdio` ; limiter le périmètre à un répertoire projet et valider ses sorties.\n\n## Routage hybride (local comme un des modèles)\n\n| Situation | Où ça tourne |\n|-----------|---------------|\n| Données sensibles \u002F hors ligne | SLM local |\n| Tâche simple, limitée | SLM local (pas cher, rapide) |\n| Raisonnement multi-sauts complexe sur données non sensibles | Modèle cloud |\n| Panne cloud | SLM local (dégradation progressive) |\n\nCela reflète l'idée de routage de modèle de la Leçon 16, avec la station de travail comme une\ndes routes. Privilégiez les designs qui retombent sur du local pour que l'agent dégrade en\nqualité plutôt que de tomber complètement en panne.\n\n## Garde-fous pour l'assistant\n\n- Garder chaque opération de fichier\u002Foutils limitée à un répertoire projet sandboxé.\n- Ne pas envoyer de code ni de données au cloud lorsque l'objectif déclaré par l'apprenant est la confidentialité\u002Fhors ligne — garder tout le pipeline local.\n- Fixer des attentes réalistes sur la qualité du SLM ; s'appuyer davantage sur les outils et RAG que sur les connaissances mémorisées du modèle.\n- Noter que la Leçon 17 n'a **pas** d'endpoint Foundry Responses, donc l'action de test rapide cloud ne s'applique pas — validez en exécutant le notebook localement.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Avertissement** :\nCe document a été traduit à l'aide du service de traduction automatique [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Bien que nous nous efforçions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue native doit être considéré comme la source faisant autorité. Pour les informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous ne saurions être tenus responsables des malentendus ou erreurs d'interprétation découlant de l'utilisation de cette traduction.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Création d'agents IA locaux avec Foundry Local et Qwen\n\n> Compétence compagnon pour [Leçon 17 – Création d'agents IA locaux](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Utilisez-la pour aider un apprenant à construire un agent qui raisonne, appelle des outils et recherche\n> la documentation entièrement sur sa propre machine — sans inférence cloud. Fondez chaque\n> recommandation sur le contenu de la leçon et le notebook exécutable.\n\n## Déclencheurs\n\nActivez cette compétence lorsqu'un apprenant souhaite :\n- Exécuter un agent **entièrement en local** pour des raisons de confidentialité, de coût ou d'utilisation hors connexion.\n- Servir un modèle localement avec **Foundry Local** et se connecter via un endpoint compatible OpenAI.\n- Utiliser un modèle **Qwen fonction-appel** pour piloter des appels d'outils locaux fiables.\n- Ajouter un **RAG local** (Chroma) ou un **serveur MCP local**.\n- Concevoir une stratégie de routage **hybride** locale\u002Fcloud.\n\n## Modèle mental central\n\nUn SLM échange la portée contre la confidentialité, le coût et l'opération hors ligne. La stratégie gagnante :\n**laisser le SLM orchestrer et laisser les outils faire le travail lourd.** Le\nmodèle n'a pas besoin de *connaître* la base de code — il doit savoir quand appeler\n`read_file` et `search_docs`. Cela joue sur la force d'un SLM (décisions limitées\ncomme la sélection des outils) et évite sa faiblesse (connaissances larges, raisonnements multi-sauts longs).\n\n\n## Pourquoi ces éléments spécifiques\n\n- **Foundry Local** expose un **endpoint HTTP compatible OpenAI**, donc le code d'agent cloud se transfère en changeant seulement `base_url` (et en utilisant une clé API fantôme locale). Il sélectionne aussi automatiquement la meilleure version (CPU\u002FGPU\u002FNPU) pour la machine.\n- Les modèles **Qwen** sont entraînés pour les appels de fonctions et génèrent systématiquement des appels d'outils bien formés — c'est ce qui transforme un modèle *chat* local en un *agent* local.\n- **Chroma** s'exécute en processus et stocke les vecteurs sur disque, donc toute la pipeline RAG (embeddings → stockage → récupération → raisonnement) reste locale.\n- **MCP** est un transport, pas un service cloud : un serveur MCP peut fonctionner localement via `stdio`.\n\n## Éléments essentiels d'installation\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)  # espace réservé local\n```\n\n~8 Go de RAM est un minimum réaliste ; un GPU\u002FNPU aide mais n'est pas obligatoire.\n\n## Principaux schémas à reproduire\n\nOrientez l'apprenant vers le notebook\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb) :\n\n- **Outils sandboxés** : chaque outil de fichier résout les chemins et rejette tout ce qui est hors d'un seul répertoire racine — même localement, un outil s'exécute avec les permissions de l'utilisateur.\n- **Boucle d'appel d'outils** : enregistrer les outils avec le schéma outils OpenAI, exécuter localement les outils demandés, renvoyer les résultats, répéter jusqu'à une réponse finale.\n- **RAG local** : insérer\u002Fmettre à jour des documents dans une collection Chroma ; `search_docs` retourne les top-k segments.\n- **MCP local** : connexion à un serveur local via `stdio` ; limiter le périmètre à un répertoire projet et valider ses sorties.\n\n## Routage hybride (local comme un des modèles)\n\n| Situation | Où ça tourne |\n|-----------|---------------|\n| Données sensibles \u002F hors ligne | SLM local |\n| Tâche simple, limitée | SLM local (pas cher, rapide) |\n| Raisonnement multi-sauts complexe sur données non sensibles | Modèle cloud |\n| Panne cloud | SLM local (dégradation progressive) |\n\nCela reflète l'idée de routage de modèle de la Leçon 16, avec la station de travail comme une\ndes routes. Privilégiez les designs qui retombent sur du local pour que l'agent dégrade en\nqualité plutôt que de tomber complètement en panne.\n\n## Garde-fous pour l'assistant\n\n- Garder chaque opération de fichier\u002Foutils limitée à un répertoire projet sandboxé.\n- Ne pas envoyer de code ni de données au cloud lorsque l'objectif déclaré par l'apprenant est la confidentialité\u002Fhors ligne — garder tout le pipeline local.\n- Fixer des attentes réalistes sur la qualité du SLM ; s'appuyer davantage sur les outils et RAG que sur les connaissances mémorisées du modèle.\n- Noter que la Leçon 17 n'a **pas** d'endpoint Foundry Responses, donc l'action de test rapide cloud ne s'applique pas — validez en exécutant le notebook localement.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Avertissement** :\nCe document a été traduit à l'aide du service de traduction automatique [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Bien que nous nous efforçions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue native doit être considéré comme la source faisant autorité. Pour les informations critiques, il est recommandé de recourir à une traduction professionnelle réalisée par un humain. Nous ne saurions être tenus responsables des malentendus ou erreurs d'interprétation découlant de l'utilisation de cette traduction.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Ffr\u002F.agents\u002Fskills\u002Flocal-ai-agents",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":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\u002Ffr\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",true,[49],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"agents\u002Fopenai.yaml","REFERENCE","参考文档",140,"https:\u002F\u002Fgithub.com\u002Fnichee\u002Fdotfiles\u002Fblob\u002Fmain\u002Fclaude\u002Fskills\u002Fwriting-fragments\u002Fagents\u002Fopenai.yaml",[56,74,85,90,98,105],{"skillNo":57,"name":58,"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":59,"categories":60,"keywords":71,"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",[61,66],{"categoryNo":62,"categoryName":63,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[72,73],"testing","testing course samples",{"skillNo":75,"name":76,"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":77,"categories":78,"keywords":82,"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",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000023","Skill与智能体开发",[83,8,84],"docs","microsoft docs",{"skillNo":86,"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":87,"categories":88,"keywords":89,"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":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"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",[],[97],"jupyter notebook",{"skillNo":99,"name":100,"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":101,"categories":102,"keywords":103,"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",[],[104],"deploying scalable agents",{"skillNo":106,"name":107,"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":108,"categories":109,"keywords":110,"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",[],[111],"azure openai to responses"]