[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699SDXEM2X6B95HXMP8F2F1":3,"skill-same:01M699SDXEM2X6B95HXMP8F2F1":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},"01M699SDXEM2X6B95HXMP8F2F1","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\u002Fpt-PT\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# Criar Agentes IA Locais com Foundry Local e Qwen\n\n> Competência acompanhante para [Lição 17 – Criar Agentes IA Locais](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Use-a para ajudar um aluno a construir um agente que raciocine, utilize ferramentas e pesquise\n> documentação inteiramente na sua própria máquina — sem inferência na nuvem. Baseie toda\n> recomendação no conteúdo da lição e no caderno executável.\n\n## Desencadeadores\n\nAtive esta competência quando um aluno quiser:\n- Executar um agente **totalmente no dispositivo** por razões de privacidade, custo ou offline.\n- Servir um modelo localmente com **Foundry Local** e conectar via o endpoint compatível com OpenAI.\n- Usar um modelo **Qwen de chamada de funções** para conduzir chamadas confiáveis a ferramentas locais.\n- Adicionar **RAG local** (Chroma) ou um **servidor MCP local**.\n- Projetar uma estratégia de encaminhamento **híbrida** local\u002Fnuvem.\n\n## Modelo mental central\n\nUm SLM troca amplitude por privacidade, custo e operação offline. A estratégia vencedora:\n**deixar o SLM orquestrar e deixar as ferramentas fazerem o trabalho pesado.** O\nmodelo não precisa *conhecer* a base de código — precisa saber quando chamar\n`read_file` e `search_docs`. Isso joga a favor da força de um SLM (decisões limitadas\ncomo a seleção de ferramentas) e evita sua fraqueza (conhecimento amplo, raciocínio\nmulti-salto extenso).\n\n## Por que estas peças específicas\n\n- **Foundry Local** expõe um **endpoint HTTP compatível com OpenAI**, então o código do agente em nuvem transfere-se alterando apenas o `base_url` (e usando uma chave API local fictícia). Também seleciona automaticamente a melhor versão (CPU\u002FGPU\u002FNPU) para a máquina.\n- Os modelos **Qwen** são treinados para chamadas de função e emitem chamadas de ferramentas bem formadas consistentemente — é isso que transforma um modelo *chat* local num *agente* local.\n- **Chroma** executa em processo e armazena vetores no disco, então todo o pipeline RAG (embed → armazenar → recuperar → raciocinar) permanece local.\n- **MCP** é um transporte, não um serviço em nuvem: um servidor MCP pode executar localmente sobre `stdio`.\n\n## Elementos essenciais para configuração\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)  # marcador de posição local\n```\n\n~8 GB de RAM é um mínimo realista; uma GPU\u002FNPU ajuda mas não é obrigatória.\n\n## Padrões principais para reproduzir\n\nIndique ao aluno o caderno\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb):\n\n- **Ferramentas isoladas**: cada ferramenta de ficheiros resolve caminhos e rejeita qualquer coisa fora da raiz única do projeto — mesmo localmente, uma ferramenta executa com as permissões do usuário.\n- **Ciclo de chamada de ferramenta**: registar ferramentas com o esquema de ferramentas OpenAI, executar ferramentas solicitadas localmente, alimentar resultados, repetir até resposta final.\n- **RAG Local**: inserir documentos numa coleção Chroma; `search_docs` retorna trechos top-k.\n- **MCP Local**: conectar a um servidor local via `stdio`; delimitar ao diretório do projeto e validar as suas saídas.\n\n## Encaminhamento híbrido (local como um dos modelos)\n\n| Situação | Onde executa |\n|-----------|---------------|\n| Dados sensíveis \u002F offline | SLM Local |\n| Tarefa simples e limitada | SLM Local (barato, rápido) |\n| Raciocínio multi-salto complexo em dados não sensíveis | Modelo na nuvem |\n| Queda da nuvem | SLM Local (degradação gradual) |\n\nIsto espelha a ideia de roteamento de modelos da Lição 16, com a estação de trabalho como uma das rotas. Prefira designs que regressam ao local para que o agente degrade em\nqualidade em vez de falhar completamente.\n\n\n## Guardrails para o assistente\n\n- Mantenha todas as operações de ficheiros\u002Fferramentas limitadas a um diretório de projeto isolado.\n- Não envie código ou dados para a nuvem quando o objetivo declarado do aluno for privacidade\u002Foffline — mantenha toda a pipeline local.\n- Estabeleça expectativas realistas para a qualidade do SLM; apoie-se em ferramentas e RAG em vez do conhecimento memorizado do modelo.\n- Note que a Lição 17 não tem **endpoint de Respostas Foundry**, logo a ação de teste de fumos na nuvem não se aplica — valide executando o caderno localmente.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Aviso Legal**:\nEste documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Embora nos esforcemos pela precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas resultantes da utilização desta tradução.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Criar Agentes IA Locais com Foundry Local e Qwen\n\n> Competência acompanhante para [Lição 17 – Criar Agentes IA Locais](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Use-a para ajudar um aluno a construir um agente que raciocine, utilize ferramentas e pesquise\n> documentação inteiramente na sua própria máquina — sem inferência na nuvem. Baseie toda\n> recomendação no conteúdo da lição e no caderno executável.\n\n## Desencadeadores\n\nAtive esta competência quando um aluno quiser:\n- Executar um agente **totalmente no dispositivo** por razões de privacidade, custo ou offline.\n- Servir um modelo localmente com **Foundry Local** e conectar via o endpoint compatível com OpenAI.\n- Usar um modelo **Qwen de chamada de funções** para conduzir chamadas confiáveis a ferramentas locais.\n- Adicionar **RAG local** (Chroma) ou um **servidor MCP local**.\n- Projetar uma estratégia de encaminhamento **híbrida** local\u002Fnuvem.\n\n## Modelo mental central\n\nUm SLM troca amplitude por privacidade, custo e operação offline. A estratégia vencedora:\n**deixar o SLM orquestrar e deixar as ferramentas fazerem o trabalho pesado.** O\nmodelo não precisa *conhecer* a base de código — precisa saber quando chamar\n`read_file` e `search_docs`. Isso joga a favor da força de um SLM (decisões limitadas\ncomo a seleção de ferramentas) e evita sua fraqueza (conhecimento amplo, raciocínio\nmulti-salto extenso).\n\n## Por que estas peças específicas\n\n- **Foundry Local** expõe um **endpoint HTTP compatível com OpenAI**, então o código do agente em nuvem transfere-se alterando apenas o `base_url` (e usando uma chave API local fictícia). Também seleciona automaticamente a melhor versão (CPU\u002FGPU\u002FNPU) para a máquina.\n- Os modelos **Qwen** são treinados para chamadas de função e emitem chamadas de ferramentas bem formadas consistentemente — é isso que transforma um modelo *chat* local num *agente* local.\n- **Chroma** executa em processo e armazena vetores no disco, então todo o pipeline RAG (embed → armazenar → recuperar → raciocinar) permanece local.\n- **MCP** é um transporte, não um serviço em nuvem: um servidor MCP pode executar localmente sobre `stdio`.\n\n## Elementos essenciais para configuração\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)  # marcador de posição local\n```\n\n~8 GB de RAM é um mínimo realista; uma GPU\u002FNPU ajuda mas não é obrigatória.\n\n## Padrões principais para reproduzir\n\nIndique ao aluno o caderno\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb):\n\n- **Ferramentas isoladas**: cada ferramenta de ficheiros resolve caminhos e rejeita qualquer coisa fora da raiz única do projeto — mesmo localmente, uma ferramenta executa com as permissões do usuário.\n- **Ciclo de chamada de ferramenta**: registar ferramentas com o esquema de ferramentas OpenAI, executar ferramentas solicitadas localmente, alimentar resultados, repetir até resposta final.\n- **RAG Local**: inserir documentos numa coleção Chroma; `search_docs` retorna trechos top-k.\n- **MCP Local**: conectar a um servidor local via `stdio`; delimitar ao diretório do projeto e validar as suas saídas.\n\n## Encaminhamento híbrido (local como um dos modelos)\n\n| Situação | Onde executa |\n|-----------|---------------|\n| Dados sensíveis \u002F offline | SLM Local |\n| Tarefa simples e limitada | SLM Local (barato, rápido) |\n| Raciocínio multi-salto complexo em dados não sensíveis | Modelo na nuvem |\n| Queda da nuvem | SLM Local (degradação gradual) |\n\nIsto espelha a ideia de roteamento de modelos da Lição 16, com a estação de trabalho como uma das rotas. Prefira designs que regressam ao local para que o agente degrade em\nqualidade em vez de falhar completamente.\n\n\n## Guardrails para o assistente\n\n- Mantenha todas as operações de ficheiros\u002Fferramentas limitadas a um diretório de projeto isolado.\n- Não envie código ou dados para a nuvem quando o objetivo declarado do aluno for privacidade\u002Foffline — mantenha toda a pipeline local.\n- Estabeleça expectativas realistas para a qualidade do SLM; apoie-se em ferramentas e RAG em vez do conhecimento memorizado do modelo.\n- Note que a Lição 17 não tem **endpoint de Respostas Foundry**, logo a ação de teste de fumos na nuvem não se aplica — valide executando o caderno localmente.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Aviso Legal**:\nEste documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Embora nos esforcemos pela precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas resultantes da utilização desta tradução.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fpt-PT\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\u002Fpt-PT\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"]