[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699HV6DQBYYNHZP441SSJE5":3,"skill-same:01M699HV6DQBYYNHZP441SSJE5":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},"01M699HV6DQBYYNHZP441SSJE5","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\u002Fit\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# Creare Agenti AI Locali con Foundry Local e Qwen\n\n> Competenze complementari per [Lezione 17 – Creare Agenti AI Locali](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Usalo per aiutare un apprendente a costruire un agente che ragiona, chiama strumenti e cerca\n> documentazione interamente sulla propria macchina — nessuna inferenza cloud. Basa ogni\n> raccomandazione sul contenuto della lezione e sul notebook eseguibile.\n\n## Attivatori\n\nAttiva questa competenza quando un apprendente vuole:\n- Eseguire un agente **completamente sul dispositivo** per motivi di privacy, costo o offline.\n- Servire un modello localmente con **Foundry Local** e connettersi tramite l'endpoint compatibile OpenAI.\n- Usare un modello **Qwen per chiamata di funzioni** per guidare chiamate affidabili a strumenti locali.\n- Aggiungere **RAG locale** (Chroma) o un **server MCP locale**.\n- Progettare una strategia di instradamento **ibrida** locale\u002Fcloud.\n\n## Modello mentale di base\n\nUn SLM sacrifica ampiezza per privacy, costo e funzionamento offline. La strategia vincente:\n**lascia che l'SLM orchestrii e che gli strumenti facciano il lavoro pesante.** Il\nmodello non ha bisogno di *conoscere* il codice — deve sapere quando chiamare\n`read_file` e `search_docs`. Questo sfrutta un punto di forza dell'SLM (decisioni limitate\ncome la selezione degli strumenti) e evita il suo punto debole (conoscenza ampia, ragionamenti multi-hop lunghi).\n\n\n## Perché questi elementi specifici\n\n- **Foundry Local** espone un **endpoint HTTP compatibile OpenAI**, quindi il codice agente cloud si trasferisce cambiando solo `base_url` (e usando una chiave API locale segnaposto). Seleziona automaticamente anche la build migliore (CPU\u002FGPU\u002FNPU) per la macchina.\n- I modelli **Qwen** sono addestrati per la chiamata di funzioni ed emettono chiamate strumento ben formate in modo coerente — questo è ciò che trasforma un modello *chat* locale in un *agente* locale.\n- **Chroma** gira in-process e memorizza vettori su disco, così tutta la pipeline RAG (embedding → memorizzazione → recupero → ragionamento) rimane locale.\n- **MCP** è un trasporto, non un servizio cloud: un server MCP può girare localmente via `stdio`.\n\n## Essenziali per l'installazione\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)  # segnaposto locale\n```\n\nUn minimo realistico è ~8 GB di RAM; una GPU\u002FNPU aiuta ma non è obbligatoria.\n\n## Pattern chiave da riprodurre\n\nIndirizza l'apprendente al 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- **Strumenti sandboxed**: ogni strumento file risolve i percorsi e rifiuta tutto ciò che sta fuori da una singola radice di progetto — anche localmente, uno strumento gira con i permessi dell'utente.\n- **Loop di chiamata strumenti**: registra gli strumenti con lo schema OpenAI tools, esegui localmente gli strumenti richiesti, reinserisci i risultati, ripeti fino alla risposta finale.\n- **RAG locale**: inserisci i documenti in una collezione Chroma; `search_docs` restituisce i primi k chunk.\n- **MCP locale**: connetti a un server locale via `stdio`; limita a una directory di progetto e valida gli output.\n\n## Instradamento ibrido (locale come uno dei modelli)\n\n| Situazione | Dove gira |\n|-----------|---------------|\n| Dati sensibili \u002F offline | SLM locale |\n| Compito semplice, limitato | SLM locale (economico, veloce) |\n| Ragionamento multi-hop complesso su dati non sensibili | Modello cloud |\n| Interruzione cloud | SLM locale (degradazione controllata) |\n\nQuesto rispecchia l'idea di instradamento modello della Lezione 16, con la workstation come una\ndelle rotte. Preferisci design che facciano fallback al locale così l'agente degrada in\nqualità piuttosto che fallire completamente.\n\n## Guardrail per l'assistente\n\n- Mantieni ogni operazione file\u002Fstrumento limitata a una directory progetto sandboxed.\n- Non inviare codice o dati al cloud quando l'obiettivo dichiarato dell'apprendente è privacy\u002Foffline — mantieni tutta la pipeline locale.\n- Imposta aspettative realistiche per la qualità SLM; usa strumenti e RAG piuttosto che la conoscenza memorizzata del modello.\n- Nota che la Lezione 17 **non** ha un endpoint Foundry Responses, quindi l'azione di smoke-test cloud non si applica — convalida eseguendo il notebook localmente.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nQuesto documento è stato tradotto utilizzando il servizio di traduzione AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Sebbene ci impegniamo per garantire la precisione, si prega di notare che le traduzioni automatizzate possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un essere umano. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Creare Agenti AI Locali con Foundry Local e Qwen\n\n> Competenze complementari per [Lezione 17 – Creare Agenti AI Locali](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Usalo per aiutare un apprendente a costruire un agente che ragiona, chiama strumenti e cerca\n> documentazione interamente sulla propria macchina — nessuna inferenza cloud. Basa ogni\n> raccomandazione sul contenuto della lezione e sul notebook eseguibile.\n\n## Attivatori\n\nAttiva questa competenza quando un apprendente vuole:\n- Eseguire un agente **completamente sul dispositivo** per motivi di privacy, costo o offline.\n- Servire un modello localmente con **Foundry Local** e connettersi tramite l'endpoint compatibile OpenAI.\n- Usare un modello **Qwen per chiamata di funzioni** per guidare chiamate affidabili a strumenti locali.\n- Aggiungere **RAG locale** (Chroma) o un **server MCP locale**.\n- Progettare una strategia di instradamento **ibrida** locale\u002Fcloud.\n\n## Modello mentale di base\n\nUn SLM sacrifica ampiezza per privacy, costo e funzionamento offline. La strategia vincente:\n**lascia che l'SLM orchestrii e che gli strumenti facciano il lavoro pesante.** Il\nmodello non ha bisogno di *conoscere* il codice — deve sapere quando chiamare\n`read_file` e `search_docs`. Questo sfrutta un punto di forza dell'SLM (decisioni limitate\ncome la selezione degli strumenti) e evita il suo punto debole (conoscenza ampia, ragionamenti multi-hop lunghi).\n\n\n## Perché questi elementi specifici\n\n- **Foundry Local** espone un **endpoint HTTP compatibile OpenAI**, quindi il codice agente cloud si trasferisce cambiando solo `base_url` (e usando una chiave API locale segnaposto). Seleziona automaticamente anche la build migliore (CPU\u002FGPU\u002FNPU) per la macchina.\n- I modelli **Qwen** sono addestrati per la chiamata di funzioni ed emettono chiamate strumento ben formate in modo coerente — questo è ciò che trasforma un modello *chat* locale in un *agente* locale.\n- **Chroma** gira in-process e memorizza vettori su disco, così tutta la pipeline RAG (embedding → memorizzazione → recupero → ragionamento) rimane locale.\n- **MCP** è un trasporto, non un servizio cloud: un server MCP può girare localmente via `stdio`.\n\n## Essenziali per l'installazione\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)  # segnaposto locale\n```\n\nUn minimo realistico è ~8 GB di RAM; una GPU\u002FNPU aiuta ma non è obbligatoria.\n\n## Pattern chiave da riprodurre\n\nIndirizza l'apprendente al 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- **Strumenti sandboxed**: ogni strumento file risolve i percorsi e rifiuta tutto ciò che sta fuori da una singola radice di progetto — anche localmente, uno strumento gira con i permessi dell'utente.\n- **Loop di chiamata strumenti**: registra gli strumenti con lo schema OpenAI tools, esegui localmente gli strumenti richiesti, reinserisci i risultati, ripeti fino alla risposta finale.\n- **RAG locale**: inserisci i documenti in una collezione Chroma; `search_docs` restituisce i primi k chunk.\n- **MCP locale**: connetti a un server locale via `stdio`; limita a una directory di progetto e valida gli output.\n\n## Instradamento ibrido (locale come uno dei modelli)\n\n| Situazione | Dove gira |\n|-----------|---------------|\n| Dati sensibili \u002F offline | SLM locale |\n| Compito semplice, limitato | SLM locale (economico, veloce) |\n| Ragionamento multi-hop complesso su dati non sensibili | Modello cloud |\n| Interruzione cloud | SLM locale (degradazione controllata) |\n\nQuesto rispecchia l'idea di instradamento modello della Lezione 16, con la workstation come una\ndelle rotte. Preferisci design che facciano fallback al locale così l'agente degrada in\nqualità piuttosto che fallire completamente.\n\n## Guardrail per l'assistente\n\n- Mantieni ogni operazione file\u002Fstrumento limitata a una directory progetto sandboxed.\n- Non inviare codice o dati al cloud quando l'obiettivo dichiarato dell'apprendente è privacy\u002Foffline — mantieni tutta la pipeline locale.\n- Imposta aspettative realistiche per la qualità SLM; usa strumenti e RAG piuttosto che la conoscenza memorizzata del modello.\n- Nota che la Lezione 17 **non** ha un endpoint Foundry Responses, quindi l'azione di smoke-test cloud non si applica — convalida eseguendo il notebook localmente.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Disclaimer**:\nQuesto documento è stato tradotto utilizzando il servizio di traduzione AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Sebbene ci impegniamo per garantire la precisione, si prega di notare che le traduzioni automatizzate possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un essere umano. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fit\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\u002Fit\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"]