[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699DE1N59PS5J1MYRW18WYN":3,"skill-same:01M699DE1N59PS5J1MYRW18WYN":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},"01M699DE1N59PS5J1MYRW18WYN","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\u002Fes\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# Creación de Agentes de IA Locales con Foundry Local y Qwen\n\n> Habilidad complementaria para [Lección 17 – Creación de Agentes de IA Locales](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Úsala para ayudar a un aprendiz a construir un agente que razone, llame a herramientas y busque\n> documentación completamente en su propia máquina — sin inferencia en la nube. Fundamenta cada\n> recomendación en el contenido de la lección y el cuaderno ejecutable.\n\n## Desencadenantes\n\nActiva esta habilidad cuando un aprendiz quiera:\n- Ejecutar un agente **totalmente en el dispositivo** por razones de privacidad, costo o funcionamiento sin conexión.\n- Servir un modelo localmente con **Foundry Local** y conectarse mediante el endpoint compatible con OpenAI.\n- Usar un modelo **Qwen con llamadas a funciones** para realizar llamadas confiables a herramientas locales.\n- Agregar **RAG local** (Chroma) o un **servidor MCP local**.\n- Diseñar una estrategia de enrutamiento **híbrida** local\u002Fnube.\n\n## Modelo mental central\n\nUn SLM cambia amplitud por privacidad, costo y operación sin conexión. La estrategia ganadora: **dejar que el SLM orqueste y que las herramientas hagan el trabajo pesado.** El\nmodelo no necesita *conocer* la base de código — necesita saber cuándo llamar a\n`read_file` y `search_docs`. Esto juega a la fortaleza de un SLM (decisiones limitadas\ncomo selección de herramientas) y evita su debilidad (conocimiento amplio, razonamiento en múltiples saltos).\n\n\n\n## Por qué estas piezas específicas\n\n- **Foundry Local** expone un **endpoint HTTP compatible con OpenAI**, por lo que el código del agente en la nube se transfiere solo cambiando `base_url` (y usando una clave API local ficticia). Además, selecciona automáticamente la mejor compilación (CPU\u002FGPU\u002FNPU) para la máquina.\n- Los modelos **Qwen** están entrenados para llamadas a funciones y emiten llamadas a herramientas bien formadas de manera consistente — esto es lo que convierte un modelo de *chat* local en un *agente* local.\n- **Chroma** funciona en proceso y almacena vectores en disco, por lo que todo el pipeline RAG (incrustar → almacenar → recuperar → razonar) se mantiene local.\n- **MCP** es un transporte, no un servicio en la nube: un servidor MCP puede ejecutarse localmente sobre `stdio`.\n\n## Esenciales de configuración\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 posición local\n```\n\n~8 GB de RAM es un mínimo realista; una GPU\u002FNPU ayuda pero no es obligatoria.\n\n## Patrones clave para reproducir\n\nDirige al aprendiz al cuaderno\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb):\n\n- **Herramientas en sandbox**: cada herramienta de archivo resuelve rutas y rechaza cualquier cosa fuera de una única raíz de proyecto — incluso localmente, una herramienta se ejecuta con los permisos del usuario.\n- **Bucle de llamadas a herramientas**: registra las herramientas con el esquema de herramientas OpenAI, ejecuta localmente las herramientas solicitadas, retroalimenta resultados, repite hasta una respuesta final.\n- **RAG local**: inserta documentos en una colección Chroma; `search_docs` devuelve los fragmentos top-k.\n- **MCP local**: conéctate a un servidor local sobre `stdio`; delimítalo a un directorio de proyecto y valida sus salidas.\n\n## Enrutamiento híbrido (local como uno de los modelos)\n\n| Situación | Dónde se ejecuta |\n|-----------|---------------|\n| Datos sensibles \u002F sin conexión | SLM local |\n| Tarea simple y acotada | SLM local (barato, rápido) |\n| Razonamiento complejo en múltiples saltos sobre datos no sensibles | Modelo en la nube |\n| Caída de la nube | SLM local (degradación elegante) |\n\nEsto refleja la idea de enrutamiento de modelos de la Lección 16, con la estación de trabajo como una de\nlas rutas. Prefiere diseños que recurran a local para que el agente degrade en\ncalidad antes que fallar por completo.\n\n## Barreras para el asistente\n\n- Mantén toda operación de archivos\u002Fherramientas limitada a un directorio de proyecto en sandbox.\n- No envíes código o datos a la nube cuando el objetivo declarado del aprendiz sea privacidad\u002Fsin conexión — mantén todo el pipeline local.\n- Establece expectativas realistas para la calidad del SLM; apóyate en herramientas y RAG más que en el conocimiento memorizado del modelo.\n- Ten en cuenta que la Lección 17 **no** tiene un endpoint de Respuestas Foundry, por lo que la acción de prueba de humo en la nube no aplica — valida ejecutando el cuaderno localmente.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Descargo de responsabilidad**:\nEste documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional humana. No somos responsables de cualquier malentendido o interpretación errónea que surja del uso de esta traducción.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Creación de Agentes de IA Locales con Foundry Local y Qwen\n\n> Habilidad complementaria para [Lección 17 – Creación de Agentes de IA Locales](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002FREADME.md).\n> Úsala para ayudar a un aprendiz a construir un agente que razone, llame a herramientas y busque\n> documentación completamente en su propia máquina — sin inferencia en la nube. Fundamenta cada\n> recomendación en el contenido de la lección y el cuaderno ejecutable.\n\n## Desencadenantes\n\nActiva esta habilidad cuando un aprendiz quiera:\n- Ejecutar un agente **totalmente en el dispositivo** por razones de privacidad, costo o funcionamiento sin conexión.\n- Servir un modelo localmente con **Foundry Local** y conectarse mediante el endpoint compatible con OpenAI.\n- Usar un modelo **Qwen con llamadas a funciones** para realizar llamadas confiables a herramientas locales.\n- Agregar **RAG local** (Chroma) o un **servidor MCP local**.\n- Diseñar una estrategia de enrutamiento **híbrida** local\u002Fnube.\n\n## Modelo mental central\n\nUn SLM cambia amplitud por privacidad, costo y operación sin conexión. La estrategia ganadora: **dejar que el SLM orqueste y que las herramientas hagan el trabajo pesado.** El\nmodelo no necesita *conocer* la base de código — necesita saber cuándo llamar a\n`read_file` y `search_docs`. Esto juega a la fortaleza de un SLM (decisiones limitadas\ncomo selección de herramientas) y evita su debilidad (conocimiento amplio, razonamiento en múltiples saltos).\n\n\n\n## Por qué estas piezas específicas\n\n- **Foundry Local** expone un **endpoint HTTP compatible con OpenAI**, por lo que el código del agente en la nube se transfiere solo cambiando `base_url` (y usando una clave API local ficticia). Además, selecciona automáticamente la mejor compilación (CPU\u002FGPU\u002FNPU) para la máquina.\n- Los modelos **Qwen** están entrenados para llamadas a funciones y emiten llamadas a herramientas bien formadas de manera consistente — esto es lo que convierte un modelo de *chat* local en un *agente* local.\n- **Chroma** funciona en proceso y almacena vectores en disco, por lo que todo el pipeline RAG (incrustar → almacenar → recuperar → razonar) se mantiene local.\n- **MCP** es un transporte, no un servicio en la nube: un servidor MCP puede ejecutarse localmente sobre `stdio`.\n\n## Esenciales de configuración\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 posición local\n```\n\n~8 GB de RAM es un mínimo realista; una GPU\u002FNPU ayuda pero no es obligatoria.\n\n## Patrones clave para reproducir\n\nDirige al aprendiz al cuaderno\n[`17-local-agent-foundry-local.ipynb`](..\u002F..\u002F..\u002F17-creating-local-ai-agents\u002Fcode_samples\u002F17-local-agent-foundry-local.ipynb):\n\n- **Herramientas en sandbox**: cada herramienta de archivo resuelve rutas y rechaza cualquier cosa fuera de una única raíz de proyecto — incluso localmente, una herramienta se ejecuta con los permisos del usuario.\n- **Bucle de llamadas a herramientas**: registra las herramientas con el esquema de herramientas OpenAI, ejecuta localmente las herramientas solicitadas, retroalimenta resultados, repite hasta una respuesta final.\n- **RAG local**: inserta documentos en una colección Chroma; `search_docs` devuelve los fragmentos top-k.\n- **MCP local**: conéctate a un servidor local sobre `stdio`; delimítalo a un directorio de proyecto y valida sus salidas.\n\n## Enrutamiento híbrido (local como uno de los modelos)\n\n| Situación | Dónde se ejecuta |\n|-----------|---------------|\n| Datos sensibles \u002F sin conexión | SLM local |\n| Tarea simple y acotada | SLM local (barato, rápido) |\n| Razonamiento complejo en múltiples saltos sobre datos no sensibles | Modelo en la nube |\n| Caída de la nube | SLM local (degradación elegante) |\n\nEsto refleja la idea de enrutamiento de modelos de la Lección 16, con la estación de trabajo como una de\nlas rutas. Prefiere diseños que recurran a local para que el agente degrade en\ncalidad antes que fallar por completo.\n\n## Barreras para el asistente\n\n- Mantén toda operación de archivos\u002Fherramientas limitada a un directorio de proyecto en sandbox.\n- No envíes código o datos a la nube cuando el objetivo declarado del aprendiz sea privacidad\u002Fsin conexión — mantén todo el pipeline local.\n- Establece expectativas realistas para la calidad del SLM; apóyate en herramientas y RAG más que en el conocimiento memorizado del modelo.\n- Ten en cuenta que la Lección 17 **no** tiene un endpoint de Respuestas Foundry, por lo que la acción de prueba de humo en la nube no aplica — valida ejecutando el cuaderno localmente.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Descargo de responsabilidad**:\nEste documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional humana. No somos responsables de cualquier malentendido o interpretación errónea que surja del uso de esta traducción.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fes\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\u002Fes\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",true,[49],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"agents\u002Fopenai.yaml","REFERENCE","参考文档",110,"https:\u002F\u002Fgithub.com\u002Fnichee\u002Fdotfiles\u002Fblob\u002Fmain\u002Fclaude\u002Fskills\u002Fdesign-an-interface\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"]