<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AI Agent on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/ai-agent/</link>
        <description>Recent content in AI Agent on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Fri, 08 May 2026 13:41:15 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/ai-agent/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>goose: un agente de IA open source con escritorio, CLI y API</title>
        <link>https://www.knightli.com/es/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</link>
        <pubDate>Fri, 08 May 2026 13:41:15 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/08/goose-open-source-ai-agent-desktop-cli-api/</guid>
        <description>&lt;p&gt;goose es un agente de IA open source que corre en tu propia máquina. No se limita a completar código; busca cubrir código, investigación, escritura, automatización, análisis de datos y otros trabajos. El README lo presenta como aplicación de escritorio, CLI y API para usuarios normales y flujos personalizados.&lt;/p&gt;
&lt;p&gt;El proyecto pasó de &lt;code&gt;block/goose&lt;/code&gt; a la Agentic AI Foundation (AAIF), dentro de Linux Foundation. El repositorio actual es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://github.com/aaif-goose/goose
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;goose está escrito principalmente en Rust y TypeScript, con licencia Apache-2.0. Su descripción en GitHub dice que es un agente de IA extensible que va más allá de sugerencias de código: puede instalar, ejecutar, editar y probar con cualquier LLM.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas herramientas de programación con IA se centran en sugerencias o cambios locales. goose apunta a algo más amplio: permitir que un agente de IA complete tareas directamente en tu máquina.&lt;/p&gt;
&lt;p&gt;Puede servir para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cambios de código y pruebas.&lt;/li&gt;
&lt;li&gt;Automatización local.&lt;/li&gt;
&lt;li&gt;Investigación y escritura.&lt;/li&gt;
&lt;li&gt;Análisis de datos.&lt;/li&gt;
&lt;li&gt;Flujos multi-paso.&lt;/li&gt;
&lt;li&gt;Integración mediante API.&lt;/li&gt;
&lt;li&gt;Extensión mediante MCP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo necesitas autocompletado en el IDE, una herramienta tipo Copilot puede bastar. goose es más útil cuando quieres IA dentro de la cadena local de ejecución de tareas.&lt;/p&gt;
&lt;h2 id=&#34;escritorio-cli-y-api&#34;&gt;Escritorio, CLI y API
&lt;/h2&gt;&lt;p&gt;La aplicación de escritorio soporta macOS, Linux y Windows.&lt;/p&gt;
&lt;p&gt;La CLI encaja con flujos de terminal y automatización local.&lt;/p&gt;
&lt;p&gt;La API permite insertar goose como runtime de agente en otros sistemas o herramientas internas.&lt;/p&gt;
&lt;p&gt;Para uso personal, empieza por escritorio o CLI. Para equipos, conviene revisar también la API y las distribuciones personalizadas.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;Aplicación de escritorio:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://goose-docs.ai/docs/getting-started/installation
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GitHub Releases ofrece builds para varias plataformas. La versión latest consultada fue &lt;code&gt;v1.33.1&lt;/code&gt;, publicada el 2026-04-29, con assets para macOS, Linux, Windows, deb, rpm y Flatpak.&lt;/p&gt;
&lt;p&gt;Después de instalar, configura un proveedor siguiendo el Quickstart oficial y prueba primero en un directorio de bajo riesgo.&lt;/p&gt;
&lt;h2 id=&#34;proveedores&#34;&gt;Proveedores
&lt;/h2&gt;&lt;p&gt;goose admite más de 15 proveedores, entre ellos Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, Bedrock y otros proveedores cloud o compatibles con OpenAI.&lt;/p&gt;
&lt;p&gt;Puede usar API keys y también suscripciones existentes de Claude, ChatGPT o Gemini mediante ACP.&lt;/p&gt;
&lt;p&gt;ACP es relevante porque muchos usuarios ya tienen suscripciones, pero no todas las herramientas las reutilizan bien. goose las integra en un flujo de agente. Aun así, verifica siempre términos del proveedor, cuotas y políticas para código corporativo o datos sensibles.&lt;/p&gt;
&lt;h2 id=&#34;extensiones-mcp&#34;&gt;Extensiones MCP
&lt;/h2&gt;&lt;p&gt;goose soporta extensiones Model Context Protocol. El README menciona más de 70 extensiones.&lt;/p&gt;
&lt;p&gt;MCP permite conectar el agente con documentación, bases de datos, navegadores, sistemas internos, búsqueda, herramientas de diseño o gestión de proyectos mediante interfaces estándar.&lt;/p&gt;
&lt;p&gt;Para equipos, MCP puede ser una capa de integración más segura que exponer todos los sistemas directamente al modelo.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-un-asistente-de-código&#34;&gt;Diferencia frente a un asistente de código
&lt;/h2&gt;&lt;p&gt;goose no es solo autocompletado. Es más bien un runtime local de agente.&lt;/p&gt;
&lt;p&gt;Los asistentes comunes se enfocan en completar, explicar, generar funciones y editar en el IDE. goose se centra en ejecución local de tareas, flujos multi-paso, proveedores intercambiables, extensiones, escritorio y CLI, API embebible y tareas que no son solo código.&lt;/p&gt;
&lt;p&gt;Eso también implica más complejidad: configuración de modelos, permisos, extensiones, workspace, logs y credenciales.&lt;/p&gt;
&lt;h2 id=&#34;distribuciones-personalizadas&#34;&gt;Distribuciones personalizadas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CUSTOM_DISTROS.md&lt;/code&gt; explica cómo construir una distribución de goose con proveedores, extensiones y branding preconfigurados.&lt;/p&gt;
&lt;p&gt;Un equipo puede predefinir proveedores permitidos, conectar servidores MCP internos, configurar seguridad y logs, bloquear servicios externos y aplicar onboarding propio.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones&#34;&gt;Recomendaciones
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Instala la app de escritorio o CLI.&lt;/li&gt;
&lt;li&gt;Configura un proveedor conocido.&lt;/li&gt;
&lt;li&gt;Ejecuta tareas simples en un directorio de prueba.&lt;/li&gt;
&lt;li&gt;Observa qué archivos lee y qué acciones ejecuta.&lt;/li&gt;
&lt;li&gt;Añade extensiones MCP.&lt;/li&gt;
&lt;li&gt;Prueba repositorios complejos después.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Haz commit antes de cambios importantes, no guardes API keys en archivos del proyecto, limita los modos de alto permiso a workspaces confiables y revisa la política de datos antes de usar código de empresa.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;goose es un agente de IA open source bajo AAIF/Linux Foundation. Ofrece escritorio, CLI y API, soporta más de 15 proveedores, acceso a suscripciones vía ACP y más de 70 extensiones MCP.&lt;/p&gt;
&lt;p&gt;Su valor no es solo escribir código, sino unir modelos, herramientas, extensiones y ejecución local dentro de un mismo marco de agente.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aaif-goose/goose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Repositorio de goose en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentación de goose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://goose-docs.ai/docs/getting-started/installation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Guía de instalación de goose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://aaif.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Agentic AI Foundation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>24 consejos de Claude Code: modo plan, rewind, CLAUDE.md, Skills, Agents y plugins</title>
        <link>https://www.knightli.com/es/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</link>
        <pubDate>Fri, 08 May 2026 08:54:14 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/08/claude-code-24-tips-plan-rewind-skills-agents/</guid>
        <description>&lt;p&gt;Claude Code no es solo una caja de chat. Se parece más a un Agent de programación que puede entrar en un directorio de proyecto, leer y escribir archivos, ejecutar comandos y mantener contexto.&lt;/p&gt;
&lt;p&gt;Si solo le das un requisito y esperas código, pronto aparecen problemas: el plan no queda claro, los permisos se repiten, el contexto crece, el resultado no convence, no sabes cómo volver atrás y no hay un lugar estable para reglas del proyecto.&lt;/p&gt;
&lt;p&gt;Estos son consejos prácticos para quienes empiezan con Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;empieza-dentro-del-directorio-del-proyecto&#34;&gt;Empieza dentro del directorio del proyecto
&lt;/h2&gt;&lt;p&gt;Claude Code funciona mejor cuando se inicia dentro del directorio del proyecto, no desde una terminal cualquiera.&lt;/p&gt;
&lt;p&gt;Crea una carpeta de proyecto, entra en ella, abre la línea de comandos e inicia Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si al entrar por primera vez pregunta si confías en la carpeta actual, confirma antes de seguir. Así podrá leer archivos, crear archivos y ejecutar operaciones alrededor del proyecto.&lt;/p&gt;
&lt;p&gt;Una práctica sencilla es pedirle que cree una web personal de fotógrafo. Es una tarea visual, permite inspeccionar el resultado y sirve para practicar generación de archivos, comandos, rewind y refactorización.&lt;/p&gt;
&lt;h2 id=&#34;usa-modo-plan-para-aclarar-la-dirección&#34;&gt;Usa modo plan para aclarar la dirección
&lt;/h2&gt;&lt;p&gt;Ante tareas complejas, Claude Code puede entrar en modo plan. Su función es discutir requisitos, dividir pasos y pedir aprobación antes de ejecutar.&lt;/p&gt;
&lt;p&gt;Tras escribir un plan, suelen aparecer opciones como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aprobar el plan y permitir automáticamente herramientas de edición posteriores.&lt;/li&gt;
&lt;li&gt;Aprobar el plan, pero pedir confirmación manual para futuras ediciones.&lt;/li&gt;
&lt;li&gt;Pausar y seguir discutiendo el plan con Claude Code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si la tarea está clara, aprueba y continúa. Si no, pídele que complete el plan: estilo de página, stack técnico, estructura de carpetas, interacciones y criterios de aceptación.&lt;/p&gt;
&lt;p&gt;El modo plan reduce retrabajo. Si el Agent empieza directamente, puede crear muchos archivos rápido; si la dirección era incorrecta, luego todo se vuelve más difícil de corregir.&lt;/p&gt;
&lt;h2 id=&#34;cambia-de-modo-con-shift--tab&#34;&gt;Cambia de modo con Shift + Tab
&lt;/h2&gt;&lt;p&gt;En Claude Code, &lt;code&gt;Shift + Tab&lt;/code&gt; permite cambiar entre modos de trabajo. Se usa a menudo para entrar en modo plan o para cambiar a un modo de aprobación automática de edición.&lt;/p&gt;
&lt;p&gt;Hábitos recomendados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proyecto nuevo, función nueva o cambio grande: primero modo plan.&lt;/li&gt;
&lt;li&gt;Cambio pequeño o arreglo claro: ejecutar directamente.&lt;/li&gt;
&lt;li&gt;Borrado, reemplazos masivos o instalación de dependencias: mantener confirmación humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En modo plan, Claude Code puede preguntar detalles del proyecto. Usa flechas para elegir opciones y Enter para confirmar. Después de enviar feedback, actualizará el plan.&lt;/p&gt;
&lt;h2 id=&#34;no-abras-todos-los-permisos&#34;&gt;No abras todos los permisos
&lt;/h2&gt;&lt;p&gt;Cuando Claude Code ejecuta comandos, edita archivos o inicia programas, puede pedir permisos.&lt;/p&gt;
&lt;p&gt;Opciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Permitir solo esta vez.&lt;/li&gt;
&lt;li&gt;Permitir el mismo tipo de comando en esta sesión.&lt;/li&gt;
&lt;li&gt;Rechazar o pausar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para abrir una página local, iniciar un servidor de desarrollo o revisar archivos, aprueba según necesidad. Pero no uses durante mucho tiempo un modo de &amp;ldquo;permitir todo&amp;rdquo; solo por comodidad.&lt;/p&gt;
&lt;p&gt;La aprobación total automática solo tiene sentido en tareas de bajo riesgo, muy claras y con respaldo Git. En el uso diario, conserva confirmación humana para borrar, sobrescribir carpetas, instalar dependencias, usar red, hacer commits o ejecutar scripts.&lt;/p&gt;
&lt;h2 id=&#34;ejecuta-comandos-locales-en-modo-terminal&#34;&gt;Ejecuta comandos locales en modo terminal
&lt;/h2&gt;&lt;p&gt;Claude Code puede entrar en modo de comandos de terminal y ejecutar comandos locales.&lt;/p&gt;
&lt;p&gt;Por ejemplo, después de generar una página, puedes abrir un archivo HTML con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;start index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start&lt;/code&gt; es un comando de Windows para abrir archivos. Es más rápido que buscar el archivo manualmente.&lt;/p&gt;
&lt;p&gt;El modo terminal sirve para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abrir páginas generadas.&lt;/li&gt;
&lt;li&gt;Ver contenido de directorios.&lt;/li&gt;
&lt;li&gt;Iniciar servidores locales.&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas o builds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero los comandos de alto riesgo siguen requiriendo cuidado: borrado recursivo, mover directorios, sobrescrituras masivas y cambios de entorno.&lt;/p&gt;
&lt;h2 id=&#34;usa-rewind-cuando-el-resultado-se-desvía&#34;&gt;Usa rewind cuando el resultado se desvía
&lt;/h2&gt;&lt;p&gt;Si la página o el código que hizo Claude Code no es lo que quieres y cada corrección lo empeora, usa rewind temprano.&lt;/p&gt;
&lt;p&gt;Rewind puede devolver conversación o código a un punto anterior. Opciones comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revertir código y conversación.&lt;/li&gt;
&lt;li&gt;Revertir solo conversación.&lt;/li&gt;
&lt;li&gt;Revertir solo código.&lt;/li&gt;
&lt;li&gt;Comprimir contenido anterior como resumen.&lt;/li&gt;
&lt;li&gt;Cancelar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando la dirección se desvió claramente, conviene volver código y conversación juntos. Así contexto y archivos regresan a un estado más limpio.&lt;/p&gt;
&lt;p&gt;Ten en cuenta que el rewind de Claude Code normalmente cubre archivos creados o modificados con herramientas internas. Archivos creados por comandos externos quizá no se reviertan por completo. Para proyectos importantes, usa Git.&lt;/p&gt;
&lt;h2 id=&#34;escribe-prompts-largos-en-un-editor&#34;&gt;Escribe prompts largos en un editor
&lt;/h2&gt;&lt;p&gt;No metas requisitos complejos en una sola línea.&lt;/p&gt;
&lt;p&gt;Si el sistema permite editar un prompt largo en un editor, úsalo, guarda y luego envíalo a Claude Code.&lt;/p&gt;
&lt;p&gt;Un prompt largo debería aclarar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivo.&lt;/li&gt;
&lt;li&gt;Stack técnico.&lt;/li&gt;
&lt;li&gt;Qué no debe hacerse.&lt;/li&gt;
&lt;li&gt;Qué archivos deben conservarse.&lt;/li&gt;
&lt;li&gt;Cómo verificar el resultado.&lt;/li&gt;
&lt;li&gt;Criterios de aceptación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, si quieres refactorizar una página HTML a un stack más moderno, no escribas solo &amp;ldquo;refactoriza&amp;rdquo;. Explica estructura por componentes, preservación visual, diseño responsive y pide ejecutar una comprobación de build.&lt;/p&gt;
&lt;h2 id=&#34;recupera-sesiones-después-de-salir&#34;&gt;Recupera sesiones después de salir
&lt;/h2&gt;&lt;p&gt;Si necesitas salir de Claude Code, hazlo normalmente. Luego vuelve al mismo directorio y arranca otra vez:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el historial anterior no aparece, usa comandos de historial para ver sesiones recientes y cargar la sesión anterior.&lt;/p&gt;
&lt;p&gt;Esto sirve para continuar trabajo interrumpido. Pero no uses el historial como única memoria. Reglas del proyecto, stack, comandos comunes y notas deben estar en archivos del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;guarda-reglas-del-proyecto-en-claudemd&#34;&gt;Guarda reglas del proyecto en CLAUDE.md
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; es un archivo de memoria importante para Claude Code. Normalmente está en la raíz del proyecto y registra reglas, stack, estructura de carpetas y restricciones de colaboración.&lt;/p&gt;
&lt;p&gt;Puedes inicializarlo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; sirve para registrar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objetivos del proyecto.&lt;/li&gt;
&lt;li&gt;Stack técnico.&lt;/li&gt;
&lt;li&gt;Comandos de inicio, prueba y build.&lt;/li&gt;
&lt;li&gt;Estructura de directorios.&lt;/li&gt;
&lt;li&gt;Estilo de código.&lt;/li&gt;
&lt;li&gt;Acciones prohibidas.&lt;/li&gt;
&lt;li&gt;Reglas de commit y despliegue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En cada conversación, Claude Code puede usar estas reglas como parte del contexto. Piensa en él como un manual del proyecto.&lt;/p&gt;
&lt;p&gt;Una prueba sencilla es añadir una regla evidente en &lt;code&gt;CLAUDE.md&lt;/code&gt; y luego preguntar algo. Si la respuesta sigue la regla, leyó la memoria del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;usa--para-referenciar-archivos&#34;&gt;Usa @ para referenciar archivos
&lt;/h2&gt;&lt;p&gt;En el cuadro de entrada, &lt;code&gt;@&lt;/code&gt; permite seleccionar archivos o Agents y añadirlos al contexto actual.&lt;/p&gt;
&lt;p&gt;Sirve para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hacer que Claude Code lea un archivo de configuración.&lt;/li&gt;
&lt;li&gt;Pedir cambios en una página concreta.&lt;/li&gt;
&lt;li&gt;Continuar según &lt;code&gt;CLAUDE.md&lt;/code&gt; u otro documento.&lt;/li&gt;
&lt;li&gt;Decir explícitamente &amp;ldquo;mira solo este archivo, no adivines la estructura&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comparado con pegar el contenido del archivo, &lt;code&gt;@&lt;/code&gt; es más claro y menos propenso a omisiones.&lt;/p&gt;
&lt;h2 id=&#34;revisa-y-comprime-contexto&#34;&gt;Revisa y comprime contexto
&lt;/h2&gt;&lt;p&gt;Tras una conversación larga, el contexto crece. Si se vuelve demasiado largo, el modelo puede ralentizarse o ignorar detalles antiguos.&lt;/p&gt;
&lt;p&gt;Usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el contexto ya es largo, comprime el historial:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/compact
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si aun así el efecto es malo, limpia el contexto actual:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/clear
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de limpiar, Claude Code todavía puede entender parte del proyecto mediante archivos, &lt;code&gt;CLAUDE.md&lt;/code&gt; y el directorio actual, pero no conserva todo el historial de conversación.&lt;/p&gt;
&lt;p&gt;Una regla útil: abre una conversación nueva al terminar una tarea, escribe reglas del proyecto en &lt;code&gt;CLAUDE.md&lt;/code&gt;, y no acumules discusión temporal para siempre en un solo chat.&lt;/p&gt;
&lt;h2 id=&#34;skills-convierte-flujos-fijos-en-instrucciones&#34;&gt;Skills: convierte flujos fijos en instrucciones
&lt;/h2&gt;&lt;p&gt;Skills son instrucciones reutilizables para Claude Code. No son prompts de una sola vez, sino flujos de tarea empaquetados.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si generas informes semanales a menudo, crea una Skill de informe semanal con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Información de entrada necesaria.&lt;/li&gt;
&lt;li&gt;Formato de salida.&lt;/li&gt;
&lt;li&gt;Tono y estructura.&lt;/li&gt;
&lt;li&gt;Qué debe conservarse.&lt;/li&gt;
&lt;li&gt;Qué no debe inventarse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las Skills suelen contener &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt; e instrucciones detalladas. Al instalarlas en el directorio global de Skills, Claude Code puede reconocerlas y cargarlas cuando la tarea encaja.&lt;/p&gt;
&lt;p&gt;Candidatos adecuados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Informes semanales.&lt;/li&gt;
&lt;li&gt;Plantillas de revisión de código.&lt;/li&gt;
&lt;li&gt;Organización de documentos.&lt;/li&gt;
&lt;li&gt;Procesamiento de imágenes por lotes.&lt;/li&gt;
&lt;li&gt;Artículos con formato fijo.&lt;/li&gt;
&lt;li&gt;Flujos de inicialización de proyectos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si copias el mismo prompt muchas veces, conviértelo en Skill.&lt;/p&gt;
&lt;h2 id=&#34;agents-delega-subtareas-a-asistentes-independientes&#34;&gt;Agents: delega subtareas a asistentes independientes
&lt;/h2&gt;&lt;p&gt;Agents no son lo mismo que Skills.&lt;/p&gt;
&lt;p&gt;Una Skill es un manual de instrucciones. Un Agent se parece más a un asistente independiente que trabaja fuera de la conversación principal y devuelve resultados.&lt;/p&gt;
&lt;p&gt;Su valor está en aislar contexto. Para una revisión de código, puedes crear un Agent de solo lectura que lea el proyecto y entregue un informe sin modificar archivos. Así no contamina la conversación principal y reduce riesgos.&lt;/p&gt;
&lt;p&gt;Al crear un Agent, considera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si será de proyecto o de usuario.&lt;/li&gt;
&lt;li&gt;Si Claude Code debe generar la configuración.&lt;/li&gt;
&lt;li&gt;Qué herramientas puede usar.&lt;/li&gt;
&lt;li&gt;Qué modelo usará.&lt;/li&gt;
&lt;li&gt;Si guardará memoria.&lt;/li&gt;
&lt;li&gt;Si el prompt del Agent es claro.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para Agents de auditoría de código, da solo permisos de lectura. Primero que entregue un informe; luego la conversación principal decide si cambia código.&lt;/p&gt;
&lt;h2 id=&#34;plugins-empaqueta-skills-agents-mcp-y-hooks&#34;&gt;Plugins: empaqueta Skills, Agents, MCP y Hooks
&lt;/h2&gt;&lt;p&gt;Los plugins son paquetes de capacidad más completos. Pueden incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skills&lt;/li&gt;
&lt;li&gt;Agents&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Frente a una Skill aislada, un plugin sirve mejor para capacidades de conjunto. Un plugin de diseño frontend puede empaquetar estética de página, reglas de layout, hábitos de componentes y Agents relacionados.&lt;/p&gt;
&lt;p&gt;Al instalar plugins, suele haber opciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Directorio de usuario, efectivo para todos los proyectos.&lt;/li&gt;
&lt;li&gt;Directorio de proyecto, compartido con el proyecto.&lt;/li&gt;
&lt;li&gt;Directorio local del proyecto, solo efectivo en tu ordenador.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para capacidades personales frecuentes, usa el directorio de usuario. Para acuerdos de equipo, usa el proyecto. Para pruebas temporales, usa instalación local.&lt;/p&gt;
&lt;h2 id=&#34;los-plugins-mejoran-tareas-concretas&#34;&gt;Los plugins mejoran tareas concretas
&lt;/h2&gt;&lt;p&gt;En generación de páginas frontend, un plugin suele ser más estable que un prompt desnudo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, para &amp;ldquo;crear una web personal de fotógrafo&amp;rdquo;, un prompt normal puede crear una página aceptable. Si usas explícitamente un plugin de diseño frontend, la estructura, jerarquía visual, espaciado, color y acabado suelen mejorar.&lt;/p&gt;
&lt;p&gt;Esto no reemplaza el criterio humano. Lo razonable es dejar que el plugin genere un primer borrador mejor y luego ajustar detalles manualmente.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-de-trabajo-más-estable&#34;&gt;Un flujo de trabajo más estable
&lt;/h2&gt;&lt;p&gt;Combinando todo lo anterior, queda un flujo más estable:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inicia &lt;code&gt;claude&lt;/code&gt; dentro del directorio del proyecto.&lt;/li&gt;
&lt;li&gt;Discute requisitos primero en modo plan.&lt;/li&gt;
&lt;li&gt;Confirma stack y criterios de aceptación antes de aprobar.&lt;/li&gt;
&lt;li&gt;Mantén confirmación manual para acciones de alto riesgo.&lt;/li&gt;
&lt;li&gt;Usa modo terminal para previsualización y pruebas.&lt;/li&gt;
&lt;li&gt;Usa rewind cuando el resultado se desvíe.&lt;/li&gt;
&lt;li&gt;Escribe reglas en &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Revisa y comprime contexto en conversaciones largas.&lt;/li&gt;
&lt;li&gt;Convierte flujos repetidos en Skills.&lt;/li&gt;
&lt;li&gt;Delega inspección, investigación y análisis a Agents de solo lectura.&lt;/li&gt;
&lt;li&gt;Usa plugins para tareas de dominio específico.&lt;/li&gt;
&lt;li&gt;Mantén puntos de commit Git en proyectos importantes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Así Claude Code será mucho más estable que enviar una frase y esperar generación.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;La eficiencia de Claude Code no viene solo del modelo, sino también del control del flujo.&lt;/p&gt;
&lt;p&gt;El modo plan define la dirección, los permisos controlan el riesgo, rewind reduce retrabajo, &lt;code&gt;CLAUDE.md&lt;/code&gt; guarda reglas del proyecto, &lt;code&gt;/context&lt;/code&gt;, &lt;code&gt;/compact&lt;/code&gt; y &lt;code&gt;/clear&lt;/code&gt; gestionan contexto, Skills reutilizan flujos, Agents aíslan subtareas y plugins empaquetan capacidades completas.&lt;/p&gt;
&lt;p&gt;La mejor forma de usar Claude Code es dejar que avance dentro de límites claros, no entregarle todo el proyecto de una vez.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>opencode, Claude Code y Codex: diferencias y guía de herramientas open source de programación con IA</title>
        <link>https://www.knightli.com/es/2026/05/08/opencode-open-source-ai-coding-agent/</link>
        <pubDate>Fri, 08 May 2026 08:33:37 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/08/opencode-open-source-ai-coding-agent/</guid>
        <description>&lt;p&gt;&lt;code&gt;opencode&lt;/code&gt; es un AI Coding Agent open source de anomalyco. Su posicionamiento es directo: dar a los desarrolladores un asistente de código programable, extensible y capaz de conectarse a varios proveedores de modelos dentro de la terminal.&lt;/p&gt;
&lt;p&gt;Si lo comparamos con &lt;code&gt;Claude Code&lt;/code&gt; y &lt;code&gt;Codex&lt;/code&gt;, los tres resuelven una misma clase de problema: llevar la IA a bases de código reales para entender contexto, modificar archivos, ejecutar comandos y correr pruebas. Pero su orientación de producto es distinta.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;opencode&lt;/code&gt; pone más énfasis en open source, soporte de múltiples modelos y TUI de terminal. &lt;code&gt;Claude Code&lt;/code&gt; enfatiza el ecosistema de modelos de Anthropic y la colaboración de ingeniería local. &lt;code&gt;Codex&lt;/code&gt; es el AI coding agent de OpenAI, disponible desde la terminal, IDEs, Codex app y tareas en la nube.&lt;/p&gt;
&lt;h2 id=&#34;para-quién-es-opencode&#34;&gt;Para quién es opencode
&lt;/h2&gt;&lt;p&gt;opencode encaja mejor con estos tipos de desarrolladores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quienes quieren completar cambios de código, análisis de proyectos y tareas de ingeniería desde la terminal.&lt;/li&gt;
&lt;li&gt;Quienes no quieren que su AI Coding Agent dependa de un único proveedor de modelos.&lt;/li&gt;
&lt;li&gt;Quienes prefieren herramientas open source y quieren auditarlas, ampliarlas o construir sobre ellas.&lt;/li&gt;
&lt;li&gt;Quienes ya están cómodos con Neovim, TUI y flujos de línea de comandos.&lt;/li&gt;
&lt;li&gt;Quienes quieren controlar en el futuro el mismo agente de programación desde una app de escritorio, móvil u otros clientes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su objetivo no es crear otra ventana de chat, sino poner capacidades de programación con IA dentro de la terminal y los directorios de proyecto que los desarrolladores ya usan.&lt;/p&gt;
&lt;h2 id=&#34;instalación&#34;&gt;Instalación
&lt;/h2&gt;&lt;p&gt;El README oficial ofrece varias formas de instalación.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Instalación directa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# npm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i -g opencode-ai@latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;choco install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# macOS y Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install anomalyco/tap/opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Arch Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paru -S opencode-bin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Otros métodos&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mise use -g opencode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nix run nixpkgs#opencode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README oficial también recomienda eliminar versiones anteriores a 0.1.x antes de instalar, para evitar problemas causados por restos de versiones antiguas.&lt;/p&gt;
&lt;p&gt;El script de instalación elige el directorio de instalación con esta prioridad:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;$OPENCODE_INSTALL_DIR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$XDG_BIN_DIR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/bin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/.opencode/bin&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si necesitas especificar una ruta, puedes usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENCODE_INSTALL_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/bin curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;XDG_BIN_DIR&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOME&lt;/span&gt;/.local/bin curl -fsSL https://opencode.ai/install &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;la-app-de-escritorio-sigue-en-beta&#34;&gt;La app de escritorio sigue en Beta
&lt;/h2&gt;&lt;p&gt;Además de la herramienta de línea de comandos, opencode también ofrece una app de escritorio, actualmente marcada como Beta. Se puede descargar desde GitHub Releases o &lt;code&gt;opencode.ai/download&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La versión de escritorio cubre estas plataformas:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Plataforma&lt;/th&gt;
          &lt;th&gt;Archivo&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS Apple Silicon&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-mac-arm64.dmg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;macOS Intel&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-mac-x64.dmg&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Windows&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;opencode-desktop-windows-x64.exe&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;.deb&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt; o &lt;code&gt;.AppImage&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En macOS y Windows también se puede instalar la app de escritorio con gestores de paquetes.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# macOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install --cask opencode-desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Windows&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop bucket add extras
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scoop install extras/opencode-desktop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;dos-modos-agent-integrados&#34;&gt;Dos modos Agent integrados
&lt;/h2&gt;&lt;p&gt;opencode incluye dos Agent integrados, que se pueden cambiar con la tecla &lt;code&gt;Tab&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;build&lt;/code&gt; es el modo predeterminado. Tiene permisos completos de desarrollo y sirve para editar código directamente, ejecutar comandos y avanzar en tareas de ingeniería.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;plan&lt;/code&gt; es el modo de solo lectura. Es más adecuado para analizar bases de código desconocidas, entender la estructura del proyecto y preparar un plan de cambios. Por defecto rechaza ediciones de archivos y pregunta antes de ejecutar comandos bash.&lt;/p&gt;
&lt;p&gt;Además, opencode incluye un sub-Agent &lt;code&gt;general&lt;/code&gt; para búsquedas complejas y tareas de varios pasos. Los usuarios pueden invocarlo escribiendo &lt;code&gt;@general&lt;/code&gt; en un mensaje.&lt;/p&gt;
&lt;p&gt;Este diseño es bastante práctico: antes de actuar, usa &lt;code&gt;plan&lt;/code&gt; para entender el proyecto; cuando haga falta cambiar código, cambia a &lt;code&gt;build&lt;/code&gt;. En repositorios grandes, separar permisos de lectura y escritura ayuda a reducir errores.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-codex&#34;&gt;Qué es Codex
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Codex&lt;/code&gt; es el AI coding agent de OpenAI para ayudar a desarrolladores a escribir código, revisar código, corregir bugs y entregar tareas de ingeniería.&lt;/p&gt;
&lt;p&gt;A diferencia de una herramienta simple de autocompletado, Codex se parece más a un Agent capaz de operar sobre una base de código. Puede trabajar contigo en herramientas locales y también puede recibir tareas delegadas para ejecutarlas en la nube. Los materiales oficiales de OpenAI describen Codex como disponible desde varias superficies, incluyendo CLI, IDEs, Codex app y flujos en la nube de ChatGPT/Codex.&lt;/p&gt;
&lt;p&gt;Para desarrolladores, Codex tiene varios puntos importantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puede leer bases de código, editar archivos, ejecutar comandos y correr pruebas.&lt;/li&gt;
&lt;li&gt;Soporta varias interfaces, incluyendo terminal, IDE, app y nube.&lt;/li&gt;
&lt;li&gt;Encaja con corrección de bugs, desarrollo de funciones, refactorización, migraciones, revisión de código y generación de pruebas.&lt;/li&gt;
&lt;li&gt;Está más ligado a cuentas, modelos y ecosistema de producto de OpenAI.&lt;/li&gt;
&lt;li&gt;Las tareas en la nube sirven para ejecutar en paralelo varias tareas de ingeniería relativamente bien definidas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si opencode se parece más a un framework abierto de agente en terminal, Codex se parece más a un banco de trabajo completo de programación con IA ofrecido por OpenAI: colaboración local, delegación en la nube y flujos de ingeniería más largos para equipos.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-principales&#34;&gt;Diferencias principales
&lt;/h2&gt;&lt;p&gt;opencode, Claude Code y Codex son herramientas de programación con IA, pero la elección se entiende mejor mirando estas dimensiones.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Herramienta&lt;/th&gt;
          &lt;th&gt;Posicionamiento central&lt;/th&gt;
          &lt;th&gt;Ventajas principales&lt;/th&gt;
          &lt;th&gt;Mejor para&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;opencode&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;AI Coding Agent open source&lt;/td&gt;
          &lt;td&gt;Open source, múltiples modelos, TUI, arquitectura cliente/servidor&lt;/td&gt;
          &lt;td&gt;Desarrolladores que quieren una cadena de herramientas abierta, modelos reemplazables y un flujo centrado en terminal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Claude Code&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Herramienta de programación de línea de comandos de Anthropic&lt;/td&gt;
          &lt;td&gt;Experiencia con modelos Claude, comprensión de código, contexto largo, colaboración en tareas de ingeniería&lt;/td&gt;
          &lt;td&gt;Desarrolladores que ya usan el ecosistema Claude/Anthropic y quieren avanzar tareas de código locales&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Codex&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;AI coding agent de OpenAI&lt;/td&gt;
          &lt;td&gt;CLI, IDE, Codex app, tareas en la nube, flujos multi-Agent&lt;/td&gt;
          &lt;td&gt;Equipos que ya usan ChatGPT/OpenAI y quieren combinar colaboración local con delegación en la nube&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En resumen, las palabras clave de opencode son &amp;ldquo;apertura y reemplazabilidad&amp;rdquo;; las de Claude Code son &amp;ldquo;ecosistema Claude y agente local de ingeniería&amp;rdquo;; y las de Codex son &amp;ldquo;ecosistema OpenAI y colaboración desde múltiples entradas&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-con-claude-code&#34;&gt;Diferencias con Claude Code
&lt;/h2&gt;&lt;p&gt;El FAQ oficial de opencode lo compara directamente con Claude Code. Ambos son muy parecidos en capacidad, pero las diferencias principales son estas.&lt;/p&gt;
&lt;p&gt;Primero, opencode es un proyecto 100% open source, alojado en GitHub y publicado con MIT license.&lt;/p&gt;
&lt;p&gt;Segundo, opencode no depende de un único proveedor de modelos. Recomienda los modelos ofrecidos a través de OpenCode Zen, pero también puede trabajar con Claude, OpenAI, Google o modelos locales. Para desarrolladores, esto significa que cuando cambien el costo, la capacidad o la disponibilidad de los modelos, no quedarán atados a una sola plataforma.&lt;/p&gt;
&lt;p&gt;Tercero, opencode incluye soporte LSP opcional. Para autocompletado, navegación, diagnósticos y comprensión del proyecto, LSP es una base muy importante.&lt;/p&gt;
&lt;p&gt;Cuarto, opencode pone más énfasis en TUI. Está creado por usuarios de Neovim y los creadores de terminal.shop, así que el foco del producto está claramente en la experiencia de terminal.&lt;/p&gt;
&lt;p&gt;Quinto, opencode usa una arquitectura cliente/servidor. Esto significa que opencode puede ejecutarse en tu computadora y, en el futuro, controlarse desde una TUI, una app de escritorio, una app móvil u otros clientes. La TUI es solo una de las posibles interfaces.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-elegir-opencode-claude-code-o-codex&#34;&gt;Cuándo elegir opencode, Claude Code o Codex
&lt;/h2&gt;&lt;p&gt;Si ya usas Claude Code o Codex, opencode no tiene por qué reemplazarlos de inmediato. Una forma más razonable de verlo es que ofrece una opción abierta, con modelos reemplazables y orientada a la terminal.&lt;/p&gt;
&lt;p&gt;Conviene considerar primero opencode cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieres que tu herramienta de programación con IA sea lo más open source posible.&lt;/li&gt;
&lt;li&gt;No quieres atar tu flujo de trabajo a un proveedor de modelos.&lt;/li&gt;
&lt;li&gt;Quieres probar Claude, OpenAI, Google o modelos locales con la misma herramienta.&lt;/li&gt;
&lt;li&gt;Te gustan los flujos TUI y no quieres que una app de escritorio o web interrumpa tu flujo principal.&lt;/li&gt;
&lt;li&gt;Te interesa el potencial de control remoto de una arquitectura cliente/servidor.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conviene considerar primero Claude Code cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usas principalmente modelos Claude.&lt;/li&gt;
&lt;li&gt;Te importan el contexto largo, la comprensión de código y la colaboración en tareas de ingeniería complejas.&lt;/li&gt;
&lt;li&gt;Quieres avanzar cambios, pruebas y refactorizaciones dentro de un repositorio local.&lt;/li&gt;
&lt;li&gt;Confías más en la experiencia predeterminada de Claude Code diseñada por Anthropic.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conviene considerar primero Codex cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya usas ChatGPT o el ecosistema de cuentas de OpenAI.&lt;/li&gt;
&lt;li&gt;Quieres un mismo coding agent en terminal, IDE, app de escritorio y tareas en la nube.&lt;/li&gt;
&lt;li&gt;Quieres delegar en la nube correcciones de bugs, desarrollo de funciones, migraciones o generación de pruebas relativamente claras, en paralelo.&lt;/li&gt;
&lt;li&gt;Necesitas revisión de código, tareas en segundo plano, colaboración de equipo y flujos multi-Agent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si priorizas una experiencia oficial de extremo a extremo, configuración predeterminada de modelos, administración empresarial e integraciones listas, Claude Code o Codex pueden ser más cómodos. Si priorizas control, apertura y enfoque provider-agnostic, opencode merece atención.&lt;/p&gt;
&lt;h2 id=&#34;puntos-a-tener-en-cuenta&#34;&gt;Puntos a tener en cuenta
&lt;/h2&gt;&lt;p&gt;opencode, Claude Code y Codex avanzan rápido. Los releases de GitHub, comandos de instalación, nombres de archivos de escritorio, disponibilidad de modelos y permisos de planes pueden cambiar. Antes de instalar o elegir, conviene revisar directamente el README, la documentación y las páginas de releases oficiales de cada herramienta.&lt;/p&gt;
&lt;p&gt;Además, la app de escritorio de opencode sigue marcada como Beta, así que no conviene tratarla por defecto como una herramienta estable de producción. Para tareas de ingeniería diarias, la versión de terminal sigue siendo la entrada principal.&lt;/p&gt;
&lt;p&gt;Visto como tendencia de herramientas, opencode representa la dirección de cadena de herramientas abierta para AI Coding Agents: modelos reemplazables, clientes reemplazables y una capacidad central de agente lo más abierta posible. Codex y Claude Code se parecen más a modelos convertidos por sus empresas en superficies de producto completas para coding agents. Para desarrolladores, ambas rutas probablemente coexistirán durante mucho tiempo.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;opencode GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anomalyco/opencode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sitio oficial de opencode: &lt;a class=&#34;link&#34; href=&#34;https://opencode.ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://opencode.ai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;documentación de opencode: &lt;a class=&#34;link&#34; href=&#34;https://opencode.ai/docs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://opencode.ai/docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;opencode Releases: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anomalyco/opencode/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anomalyco/opencode/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenAI Codex: &lt;a class=&#34;link&#34; href=&#34;https://openai.com/codex/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://openai.com/codex/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using Codex with your ChatGPT plan: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11369540-codex-in-chatgpt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenAI Codex CLI Getting Started: &lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/11096431-openai-codex-ci-getting-started&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://help.openai.com/en/articles/11096431-openai-codex-ci-getting-started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Warp Open Source: de terminal a entorno de desarrollo agentico</title>
        <link>https://www.knightli.com/es/2026/05/07/warpdotdev-warp-open-source-agentic-terminal/</link>
        <pubDate>Thu, 07 May 2026 20:15:08 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/07/warpdotdev-warp-open-source-agentic-terminal/</guid>
        <description>&lt;p&gt;&lt;code&gt;warpdotdev/warp&lt;/code&gt; es el repositorio open source del cliente de Warp. Warp se describe ahora como un &amp;ldquo;entorno de desarrollo agentico, nacido del terminal&amp;rdquo;: parte del terminal, pero lleva agentes de programacion con IA, indexacion de codebase, gestion de tareas y flujos de desarrollo a un solo entorno.&lt;/p&gt;
&lt;p&gt;No es un repositorio open source ordinario de emulador de terminal. Se parece mas a una respuesta a una pregunta mayor: cuando agentes como Claude Code, Codex y Gemini CLI se vuelven comunes, deberia el propio terminal convertirse en un entorno de desarrollo para planificar, observar y gestionar agentes?&lt;/p&gt;
&lt;p&gt;La respuesta de Warp es si.&lt;/p&gt;
&lt;h2 id=&#34;estado-actual-del-repositorio&#34;&gt;Estado actual del repositorio
&lt;/h2&gt;&lt;p&gt;Al 7 de mayo de 2026, &lt;code&gt;warpdotdev/warp&lt;/code&gt; es un repositorio publico. GitHub muestra alrededor de 56k stars y 4.1k forks. El README dice que el codigo del cliente Warp ahora es open source y da la bienvenida a contribuciones de la comunidad.&lt;/p&gt;
&lt;p&gt;El lenguaje principal es Rust. El desglose de lenguajes de GitHub muestra Rust por encima del 98%, lo que encaja con el posicionamiento de Warp: no es un wrapper web, sino una herramienta de desarrollo nativa y multiplataforma.&lt;/p&gt;
&lt;p&gt;Varios detalles del README importan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Warp es un entorno de desarrollo agentico, nacido del terminal.&lt;/li&gt;
&lt;li&gt;Puede usar su agente de programacion integrado y tambien conectar con agentes CLI externos como Claude Code, Codex y Gemini CLI.&lt;/li&gt;
&lt;li&gt;OpenAI es el patrocinador fundador del repositorio Warp recien abierto.&lt;/li&gt;
&lt;li&gt;Los flujos de gestion agentica del repositorio estan impulsados por modelos GPT.&lt;/li&gt;
&lt;li&gt;Los crates del framework de UI de Warp usan licencia MIT, mientras que el resto del codigo usa AGPL v3.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto muestra que el movimiento open source de Warp no consiste solo en publicar un terminal. Esta operando el proyecto como un campo de pruebas para flujos de trabajo con agentes.&lt;/p&gt;
&lt;h2 id=&#34;warp-es-mas-que-un-terminal&#34;&gt;Warp es mas que un terminal
&lt;/h2&gt;&lt;p&gt;Los terminales tradicionales hacen principalmente tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iniciar una shell;&lt;/li&gt;
&lt;li&gt;ejecutar comandos;&lt;/li&gt;
&lt;li&gt;mostrar salida.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La diferenciacion inicial de Warp era hacer que el terminal se sintiera mas moderno: bloques de comandos, autocompletado, historial, colaboracion, interacciones con estilo de UI y pulido multiplataforma. Ahora el foco se ha desplazado mas hacia organizar el desarrollo alrededor de agentes de IA.&lt;/p&gt;
&lt;p&gt;Segun el README, Warp ya no enfatiza solo &amp;ldquo;un mejor terminal&amp;rdquo;. Enfatiza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;agentes de programacion integrados;&lt;/li&gt;
&lt;li&gt;soporte para agentes CLI externos;&lt;/li&gt;
&lt;li&gt;triage de issues;&lt;/li&gt;
&lt;li&gt;escritura de especificaciones;&lt;/li&gt;
&lt;li&gt;revision de PR;&lt;/li&gt;
&lt;li&gt;coordinacion de contribuidores;&lt;/li&gt;
&lt;li&gt;sesiones de agentes observables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, Warp quiere convertir el terminal de &amp;ldquo;donde escribes comandos&amp;rdquo; en &amp;ldquo;donde trabajas con multiples agentes&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;oz-y-gestion-de-proyectos-open-source&#34;&gt;Oz y gestion de proyectos open source
&lt;/h2&gt;&lt;p&gt;El README menciona &lt;code&gt;Oz&lt;/code&gt; varias veces.&lt;/p&gt;
&lt;p&gt;La vista de contribucion de Warp muestra miles de agentes Oz trabajando en triage de issues, especificaciones, implementacion y revision de PR. Esto es interesante porque extiende los agentes de IA desde &amp;ldquo;ayudar a una persona a escribir codigo&amp;rdquo; hasta &amp;ldquo;ayudar a gestionar colaboracion open source&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;La parte mas dificil de muchos proyectos open source no es escribir codigo, sino mantener:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;demasiados issues y poca clasificacion;&lt;/li&gt;
&lt;li&gt;bugs y feature requests mezclados;&lt;/li&gt;
&lt;li&gt;nuevos contribuidores sin saber que tareas son abordables;&lt;/li&gt;
&lt;li&gt;presion de revision de PR;&lt;/li&gt;
&lt;li&gt;maintainers intentando seguir cada hilo de comunidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea de Warp es dejar que los agentes asuman primero parte del trabajo de gestion de proyecto y colaboracion. El README tambien menciona &lt;code&gt;Oz for OSS&lt;/code&gt;, un programa orientado a maintainers para llevar flujos similares de gestion open source agentica a otros repositorios.&lt;/p&gt;
&lt;p&gt;Esto sugiere que la ambicion de Warp no es solo el producto terminal, sino tambien un nuevo modelo de mantenimiento open source en la era de la IA.&lt;/p&gt;
&lt;h2 id=&#34;estructura-del-repositorio-y-stack-tecnico&#34;&gt;Estructura del repositorio y stack tecnico
&lt;/h2&gt;&lt;p&gt;Por la estructura del repositorio, Warp es un proyecto Rust grande.&lt;/p&gt;
&lt;p&gt;La raiz contiene:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;app/&lt;/code&gt;: codigo principal de la aplicacion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crates/&lt;/code&gt;: crates Rust centrales.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assets/&lt;/code&gt;: archivos de recursos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;command-signatures-v2/&lt;/code&gt;: contenido relacionado con firmas de comandos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker/&lt;/code&gt;, &lt;code&gt;script/&lt;/code&gt;, &lt;code&gt;resources/&lt;/code&gt;, &lt;code&gt;specs/&lt;/code&gt; y otros directorios de ingenieria.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.claude/&lt;/code&gt;, &lt;code&gt;.warp/&lt;/code&gt;, &lt;code&gt;.agents/skills&lt;/code&gt; y otras configuraciones relacionadas con agentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;WARP.md&lt;/code&gt; aporta mas detalle de ingenieria. Describe Warp como un emulador de terminal basado en Rust que usa un framework de UI interno llamado &lt;code&gt;WarpUI&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Los modulos principales pueden entenderse aproximadamente asi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;app/&lt;/code&gt;: emulacion de terminal, gestion de shell, integracion de IA, Drive, autenticacion, ajustes, workspace y sesiones.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crates/warp_core/&lt;/code&gt;: utilidades centrales y abstraccion de plataforma.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crates/editor/&lt;/code&gt;: funcionalidad de edicion de texto.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crates/warpui/&lt;/code&gt; y &lt;code&gt;crates/warpui_core/&lt;/code&gt;: framework de UI interno.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crates/ipc/&lt;/code&gt;: comunicacion entre procesos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;crates/graphql/&lt;/code&gt;: cliente GraphQL y esquema.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;WARP.md&lt;/code&gt; tambien menciona rasgos arquitectonicos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un sistema Entity-Handle;&lt;/li&gt;
&lt;li&gt;una estructura modular de workspace;&lt;/li&gt;
&lt;li&gt;targets para macOS, Windows, Linux y WASM;&lt;/li&gt;
&lt;li&gt;integracion de IA, incluyendo Agent Mode, conciencia de contexto e indexacion de codebase;&lt;/li&gt;
&lt;li&gt;sincronizacion cloud Warp Drive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta complejidad esta mas cerca de un IDE completo que de un terminal tradicional ligero.&lt;/p&gt;
&lt;h2 id=&#34;comandos-de-build-local&#34;&gt;Comandos de build local
&lt;/h2&gt;&lt;p&gt;El README da un flujo local conciso:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./script/bootstrap
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./script/run
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./script/presubmit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Donde:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;./script/bootstrap&lt;/code&gt; realiza la inicializacion especifica de la plataforma.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./script/run&lt;/code&gt; compila y ejecuta Warp.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./script/presubmit&lt;/code&gt; ejecuta formato, clippy, tests y otras comprobaciones previas al envio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;WARP.md&lt;/code&gt; tambien lista comandos mas detallados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo run
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo bundle --bin warp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo nextest run --no-fail-fast --workspace --exclude command-signatures-v2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo fmt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo clippy --workspace --all-targets --all-features --tests -- -D warnings
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres contribuir a Warp, &lt;code&gt;./script/presubmit&lt;/code&gt; es practicamente obligatorio.&lt;/p&gt;
&lt;h2 id=&#34;flujo-de-contribucion&#34;&gt;Flujo de contribucion
&lt;/h2&gt;&lt;p&gt;El flujo de contribucion de Warp no es simplemente &amp;ldquo;abre un PR&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El README describe un proceso ligero desde issue hasta PR:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Buscar primero issues existentes.&lt;/li&gt;
&lt;li&gt;Si no hay duplicado, abrir un bug o feature request.&lt;/li&gt;
&lt;li&gt;Los maintainers revisan el issue y pueden anadir etiquetas de preparacion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ready-to-spec&lt;/code&gt; significa que el diseno puede expandirse en una especificacion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ready-to-implement&lt;/code&gt; significa que el diseno esta lo bastante claro para empezar un PR de implementacion.&lt;/li&gt;
&lt;li&gt;Los contribuidores pueden tomar issues etiquetados.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este proceso encaja con un proyecto open source grande. Separa ideas, diseno e implementacion, reduciendo el riesgo de que los contribuidores pasen tiempo construyendo en una direccion equivocada.&lt;/p&gt;
&lt;p&gt;Tambien encaja bien con agentes de IA. Un agente puede organizar issues, redactar specs, anadir tests y luego pasar a implementacion. Warp usa este patron para demostrar gestion de proyecto agentica.&lt;/p&gt;
&lt;h2 id=&#34;licencia-mit--agpl-v3&#34;&gt;Licencia: MIT + AGPL v3
&lt;/h2&gt;&lt;p&gt;Warp usa una estructura de doble licencia.&lt;/p&gt;
&lt;p&gt;El README dice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;el framework de UI de Warp, concretamente los crates &lt;code&gt;warpui_core&lt;/code&gt; y &lt;code&gt;warpui&lt;/code&gt;, usa licencia MIT;&lt;/li&gt;
&lt;li&gt;el resto del repositorio usa AGPL v3.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto importa. AGPL v3 tiene requisitos open source mas fuertes para servicios de red y distribucion. Si estas aprendiendo, investigando o contribuyendo, normalmente es sencillo. Pero si quieres usar codigo de Warp en un producto comercial o en un derivado closed-source, debes leer la licencia con cuidado y consultar asesoria legal si hace falta.&lt;/p&gt;
&lt;p&gt;En resumen, Warp es open source, pero no es open source de &amp;ldquo;tomalo y cierralo libremente&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-que-merece-atencion&#34;&gt;Por que merece atencion
&lt;/h2&gt;&lt;p&gt;Primero, Warp une terminal, agentes y gestion de proyecto.&lt;/p&gt;
&lt;p&gt;Muchas herramientas de programacion con IA siguen siendo CLI o plugins de editor. Warp parte del punto de entrada del terminal e intenta unificar tareas de agentes, ejecucion de codigo, salida de comandos, flujos de PR y colaboracion de equipo.&lt;/p&gt;
&lt;p&gt;Segundo, el enfoque open source de Warp es un buen lugar para observar flujos con agentes.&lt;/p&gt;
&lt;p&gt;No solo publica codigo. Tambien expone vistas de contribucion, sesiones de agentes, triage de issues y flujos de especificacion. Para cualquiera que estudie como la IA puede participar en colaboracion open source, el propio repositorio es una muestra.&lt;/p&gt;
&lt;p&gt;Tercero, Warp es una aplicacion de escritorio Rust compleja.&lt;/p&gt;
&lt;p&gt;Si quieres estudiar GUI en Rust, emulacion de terminal, apps multiplataforma, clientes GraphQL, sincronizacion cloud e integracion de IA, el repositorio tiene mucho que leer. Pero no es un proyecto pequeno, asi que los nuevos contribuidores deberian leer primero la documentacion y el proceso de issues.&lt;/p&gt;
&lt;p&gt;Cuarto, Warp soporta tanto un agente integrado como un enfoque &amp;ldquo;trae tu propio agente CLI&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Esto es realista. Los desarrolladores no usaran un solo agente. Claude Code, Codex, Gemini CLI, OpenCode, OpenClaw y herramientas similares probablemente coexistiran. Si Warp puede convertirse en un banco de trabajo para ellos, se vuelve mas valioso que un terminal de proposito unico.&lt;/p&gt;
&lt;h2 id=&#34;a-quien-deberia-importarle&#34;&gt;A quien deberia importarle
&lt;/h2&gt;&lt;p&gt;Si eres un usuario normal de terminal, Warp importa porque el terminal puede estar cambiando de herramienta de linea de comandos a banco de trabajo con IA.&lt;/p&gt;
&lt;p&gt;Si eres usuario intensivo de agentes de programacion con IA, Warp merece seguimiento porque intenta gestionar multiples agentes en vez de actuar como otro punto de entrada de chat.&lt;/p&gt;
&lt;p&gt;Si mantienes proyectos open source, la direccion de Oz for OSS merece atencion. Explora triage de issues con agentes, revision de PR, colaboracion comunitaria e incorporacion de contribuidores.&lt;/p&gt;
&lt;p&gt;Si eres desarrollador Rust, Warp es una aplicacion de escritorio real y de gran escala que merece estudiarse por organizacion de UI, internals de terminal, sincronizacion cloud, integracion de IA y codigo multiplataforma.&lt;/p&gt;
&lt;p&gt;Si solo quieres un terminal que pueda reemplazar al actual de inmediato, es mejor descargar primero la version estable y despues decidir si estudiar el codigo fuente. Compilar desde codigo es mas adecuado para contribuidores y usuarios profundos.&lt;/p&gt;
&lt;h2 id=&#34;lectura-breve&#34;&gt;Lectura breve
&lt;/h2&gt;&lt;p&gt;El punto de que Warp se vuelva open source no es simplemente &amp;ldquo;un terminal moderno se hizo open source&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Mas precisamente, Warp intenta actualizar el terminal hasta convertirlo en un entorno de desarrollo agentico: el terminal conecta shell, codebase, ejecucion de comandos, agentes, issues, PRs y flujo de colaboracion.&lt;/p&gt;
&lt;p&gt;A medida que los agentes de programacion con IA sigan creciendo, el punto de entrada del entorno de desarrollo puede cambiar. Antes, el IDE dominaba la experiencia del desarrollador mientras el terminal ejecutaba comandos. Ahora el terminal puede convertirse en el centro de colaboracion con agentes. El repositorio de Warp explora esa posibilidad.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GitHub repository: &lt;a class=&#34;link&#34; href=&#34;https://github.com/warpdotdev/warp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/warpdotdev/warp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Warp website: &lt;a class=&#34;link&#34; href=&#34;https://www.warp.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.warp.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Warp documentation: &lt;a class=&#34;link&#34; href=&#34;https://docs.warp.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.warp.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Warp build overview: &lt;a class=&#34;link&#34; href=&#34;https://build.warp.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://build.warp.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;WARP.md: &lt;a class=&#34;link&#34; href=&#34;https://github.com/warpdotdev/warp/blob/master/WARP.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/warpdotdev/warp/blob/master/WARP.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CONTRIBUTING.md: &lt;a class=&#34;link&#34; href=&#34;https://github.com/warpdotdev/warp/blob/master/CONTRIBUTING.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/warpdotdev/warp/blob/master/CONTRIBUTING.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Hermes &#43; Qwen3.6: una solucion barata para desplegar un Agent local</title>
        <link>https://www.knightli.com/es/2026/05/04/hermes-qwen36-local-agent/</link>
        <pubDate>Mon, 04 May 2026 06:40:30 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/04/hermes-qwen36-local-agent/</guid>
        <description>&lt;p&gt;La idea es ejecutar el modelo Qwen3.6 GGUF con &lt;code&gt;llama.cpp&lt;/code&gt; dentro de WSL2 y conectar Hermes Agent a una API local compatible con OpenAI. Asi puedes tener un asistente de IA local siempre disponible en tu propio ordenador, sin depender de cuotas de tokens de servicios online.&lt;/p&gt;
&lt;p&gt;Esta solucion encaja con usuarios que quieren probar un AI Agent local y, al mismo tiempo, conservar privacidad de datos y control a largo plazo. Puede servir para preguntas diarias, escritura, ayuda con codigo, organizacion de informacion y automatizacion simple. Hay que tener en cuenta que cuanto mayor sea el modelo, mas VRAM necesitara; el ejemplo original usa Qwen3.6-27B y va mas estable con 24GB de VRAM. Si tienes menos VRAM, conviene elegir un modelo mas pequeno o una cuantizacion mas baja.&lt;/p&gt;
&lt;h2 id=&#34;estructura-de-la-solucion&#34;&gt;Estructura de la solucion
&lt;/h2&gt;&lt;p&gt;La cadena completa es sencilla:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar WSL2 y Ubuntu 24.04 en Windows.&lt;/li&gt;
&lt;li&gt;Instalar CUDA Toolkit y compilar &lt;code&gt;llama.cpp&lt;/code&gt; dentro de WSL2.&lt;/li&gt;
&lt;li&gt;Descargar el modelo Qwen3.6 GGUF.&lt;/li&gt;
&lt;li&gt;Iniciar el servicio local con &lt;code&gt;llama-server&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Instalar Hermes Agent y configurarlo hacia &lt;code&gt;http://localhost:8080/v1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Opcional: escribir un script de inicio para arrancar el servicio del modelo al abrir WSL2.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hermes aporta la capacidad de Agent, y Qwen3.6 aporta el LLM local. Combinados, convierten el ordenador en un asistente de IA local y privado.&lt;/p&gt;
&lt;h2 id=&#34;instalar-wsl2-y-ubuntu&#34;&gt;Instalar WSL2 y Ubuntu
&lt;/h2&gt;&lt;p&gt;En una ventana de Windows PowerShell como administrador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-set-default-version&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Despues de reiniciar, instala Ubuntu 24.04:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wsl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-d&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Ubuntu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;24.04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Al terminar, Ubuntu pedira usuario y contrasena. Ya dentro de Ubuntu, comprueba primero si la GPU NVIDIA se reconoce correctamente en WSL2:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvidia-smi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no se reconoce la GPU, normalmente hay que actualizar primero el driver NVIDIA en Windows. WSL2 hereda el driver de Windows, pero CUDA Toolkit debe instalarse por separado dentro de WSL2.&lt;/p&gt;
&lt;h2 id=&#34;instalar-python-y-herramientas-basicas&#34;&gt;Instalar Python y herramientas basicas
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install -y python3-pip python3-venv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tambien hacen falta herramientas de compilacion, Git y CMake:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y cmake build-essential git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;compilar-llamacpp&#34;&gt;Compilar llama.cpp
&lt;/h2&gt;&lt;p&gt;Clona primero el codigo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/ggerganov/llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si WSL2 ya tiene un entorno CUDA utilizable, compila directamente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -B build -DGGML_CUDA&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ON -DCMAKE_CUDA_ARCHITECTURES&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;89&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake --build build -j&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;nproc&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;CMAKE_CUDA_ARCHITECTURES=89&lt;/code&gt; es adecuado para GPU Ada, por ejemplo la serie RTX 40. En otras tarjetas debes ajustarlo segun la arquitectura real.&lt;/p&gt;
&lt;p&gt;Si al compilar aparece que falta CUDA Toolkit, instalalo primero dentro de WSL2:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dpkg -i cuda-keyring_1.1-1_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install -y cuda-toolkit-12-8
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Despues configura variables de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/cuda-12.8/bin:&lt;span class=&#34;nv&#34;&gt;$PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LD_LIBRARY_PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/local/cuda-12.8/lib64:&lt;span class=&#34;nv&#34;&gt;$LD_LIBRARY_PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export PATH=/usr/local/cuda-12.8/bin:$PATH&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Y compila de nuevo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/llama.cpp
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rm -rf build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake -B build -DGGML_CUDA&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ON -DCMAKE_CUDA_ARCHITECTURES&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;89&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cmake --build build -j&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;nproc&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;descargar-el-modelo-qwen36-gguf&#34;&gt;Descargar el modelo Qwen3.6 GGUF
&lt;/h2&gt;&lt;p&gt;El ejemplo original usa &lt;code&gt;Qwen3.6-27B-UD-Q4_K_XL.gguf&lt;/code&gt; de &lt;code&gt;unsloth/Qwen3.6-27B-GGUF&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hf download unsloth/Qwen3.6-27B-GGUF &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--local-dir ~/models/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El archivo ronda los 17GB. Si Hugging Face descarga lento, puedes cambiar a espejos como ModelScope. Si no tienes suficiente VRAM, no fuerces 27B; usa un modelo mas pequeno o una cuantizacion mas baja.&lt;/p&gt;
&lt;h2 id=&#34;iniciar-el-servicio-local-del-modelo&#34;&gt;Iniciar el servicio local del modelo
&lt;/h2&gt;&lt;p&gt;Arranca &lt;code&gt;llama-server&lt;/code&gt; segun el nombre real de tu archivo de modelo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/llama.cpp/build/bin/llama-server &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--n-gpu-layers &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ctx-size &lt;span class=&#34;m&#34;&gt;32768&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--flash-attn on &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--temp 1.0 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-p 0.95 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-k &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--presence-penalty 1.5 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tras iniciar correctamente, abre en el navegador de Windows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para que Hermes Agent u otros clientes compatibles con OpenAI lo llamen, la direccion de API suele ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080/v1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;elegir-thinking-mode&#34;&gt;Elegir Thinking mode
&lt;/h2&gt;&lt;p&gt;Qwen3.6 puede activar Thinking mode por defecto. Es util para razonamiento complejo, problemas de codigo complicados y analisis de varios pasos, pero sera mas lento.&lt;/p&gt;
&lt;p&gt;Si quieres desactivarlo, detén el servicio y agrega &lt;code&gt;--chat-template-kwargs&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/llama.cpp/build/bin/llama-server &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--n-gpu-layers &lt;span class=&#34;m&#34;&gt;99&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--ctx-size &lt;span class=&#34;m&#34;&gt;32768&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--flash-attn on &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--temp 1.0 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-p 0.95 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--top-k &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--presence-penalty 1.5 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--chat-template-kwargs &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;enable_thinking&amp;#34;:false}&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Sin Thinking, las preguntas simples, escritura, autocompletado de codigo y explicacion de codigo iran mas rapido; para algoritmos complejos, Debug dificil y analisis de arquitectura, sigue siendo recomendable activarlo.&lt;/p&gt;
&lt;h2 id=&#34;instalar-hermes-agent&#34;&gt;Instalar Hermes Agent
&lt;/h2&gt;&lt;p&gt;Mantén &lt;code&gt;llama-server&lt;/code&gt; en ejecucion y abre otra terminal WSL2 para instalar Hermes Agent:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El script instala dependencias como Python, Node.js, ripgrep y ffmpeg. Al configurar el endpoint del modelo, elige endpoint personalizado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;URL: http://localhost:8080/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;API Key: 12345678
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: autodetect
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para el &lt;code&gt;llama-server&lt;/code&gt; local, la API Key puede ser cualquier valor de relleno. Tras configurarlo, puedes conectar Telegram, WeChat, QQ, Discord y otros canales para que Hermes Agent use el modelo local y ejecute tareas.&lt;/p&gt;
&lt;h2 id=&#34;arrancar-automaticamente-el-servicio-del-modelo&#34;&gt;Arrancar automaticamente el servicio del modelo
&lt;/h2&gt;&lt;p&gt;Puedes escribir un script para iniciar el servicio al abrir la terminal WSL2.&lt;/p&gt;
&lt;p&gt;Crea el script:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat &amp;gt; ~/start-llm.sh &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;Starting Qwen3.6-27B llama-server...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;~/llama.cpp/build/bin/llama-server \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--model ~/models/Qwen3.6-27B-UD-Q4_K_XL.gguf \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--n-gpu-layers 99 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--ctx-size 65536 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--flash-attn on \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--temp 1.0 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--top-p 0.95 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--top-k 20 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--presence-penalty 1.5 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--port 8080 \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;--host 0.0.0.0 &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;llama-server started, PID: $!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;API: http://localhost:8080/v1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;echo &amp;#34;Chat UI: http://localhost:8080&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x ~/start-llm.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Escribe en &lt;code&gt;.bashrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;# Auto-start llama-server&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;if ! pgrep -f &amp;#34;llama-server&amp;#34; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;    ~/start-llm.sh&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;fi&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Asi, cada vez que abras WSL2, si &lt;code&gt;llama-server&lt;/code&gt; no esta en ejecucion se iniciara automaticamente; si ya esta corriendo, se omitira para evitar duplicados.&lt;/p&gt;
&lt;h2 id=&#34;notas&#34;&gt;Notas
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;El modelo 27B exige bastante VRAM; 24GB va mas estable. Con menos VRAM, usa un modelo mas pequeno.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--ctx-size 65536&lt;/code&gt; aumenta mucho la presion de VRAM y RAM. Si no es estable, baja primero a &lt;code&gt;32768&lt;/code&gt; o menos.&lt;/li&gt;
&lt;li&gt;CUDA Toolkit dentro de WSL2 y el driver de Windows deben estar correctos; si falta uno, la compilacion o ejecucion CUDA puede fallar.&lt;/li&gt;
&lt;li&gt;Cuando Hermes Agent se conecta al servicio local, en esencia llama a una API compatible con OpenAI. Lo clave es que &lt;code&gt;http://localhost:8080/v1&lt;/code&gt; responda bien.&lt;/li&gt;
&lt;li&gt;Si quieres acceder desde el telefono u otros dispositivos, debes configurar firewall de Windows, direccion LAN y aislamiento de seguridad. No expongas el servicio local directamente a Internet.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Original: &lt;a class=&#34;link&#34; href=&#34;https://www.freedidi.com/24036.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hermes + Qwen3.6：本地最强 Agent 组合！零成本、无限 Token，太香了！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;llama.cpp: &lt;a class=&#34;link&#34; href=&#34;https://github.com/ggerganov/llama.cpp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ggerganov/llama.cpp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hermes Agent: &lt;a class=&#34;link&#34; href=&#34;https://github.com/NousResearch/hermes-agent&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NousResearch/hermes-agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ejemplo Qwen3.6 GGUF: &lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/unsloth/Qwen3.6-27B-GGUF&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;unsloth/Qwen3.6-27B-GGUF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>free-claude-code: conectar Claude Code a OpenRouter, DeepSeek y modelos locales mediante un proxy</title>
        <link>https://www.knightli.com/es/2026/05/01/free-claude-code-anthropic-compatible-proxy/</link>
        <pubDate>Fri, 01 May 2026 03:41:49 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/free-claude-code-anthropic-compatible-proxy/</guid>
        <description>&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; es un Anthropic-compatible proxy para usar con &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La idea no es crackear Claude Code ni ofrecer un servicio Claude oficial gratuito, sino iniciar localmente un proxy compatible con la forma de la API de Anthropic y reenviar las solicitudes de Claude Code a otros backends de modelos. El README menciona backends como NVIDIA NIM, OpenRouter, DeepSeek, LM Studio, llama.cpp y Ollama.&lt;/p&gt;
&lt;p&gt;En pocas palabras, resuelve este problema: te gusta la experiencia de Claude Code en la terminal, pero quieres conectar las peticiones del modelo a otro provider o a un modelo local.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;La experiencia interactiva de Claude Code es muy adecuada para tareas de desarrollo.&lt;/p&gt;
&lt;p&gt;Puede leer código en la terminal, modificar archivos, ejecutar comandos y avanzar según el contexto del proyecto. El problema es que muchos usuarios no necesariamente quieren usar siempre el mismo backend de modelo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quieren probar distintos modelos en OpenRouter&lt;/li&gt;
&lt;li&gt;Quieren usar modelos como DeepSeek para reducir costes&lt;/li&gt;
&lt;li&gt;Quieren conectar las peticiones a Ollama local&lt;/li&gt;
&lt;li&gt;Quieren ejecutar modelos locales con LM Studio o llama.cpp&lt;/li&gt;
&lt;li&gt;Quieren unificar en el entorno de desarrollo una entrada de proxy&lt;/li&gt;
&lt;li&gt;Quieren comparar el rendimiento de distintos modelos dentro del flujo de Claude Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El posicionamiento de &lt;code&gt;free-claude-code&lt;/code&gt; es añadir una capa de proxy compatible entre Claude Code y estos servicios de modelos.&lt;/p&gt;
&lt;p&gt;Así, Claude Code sigue enviando solicitudes con estilo Anthropic, y el proxy se encarga de adaptarlas a distintos backends.&lt;/p&gt;
&lt;h2 id=&#34;funcionamiento&#34;&gt;Funcionamiento
&lt;/h2&gt;&lt;p&gt;Puede entenderse como tres capas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El frontend es Claude Code&lt;/li&gt;
&lt;li&gt;En medio está el proxy &lt;code&gt;free-claude-code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El backend es OpenRouter, DeepSeek, un modelo local u otro servicio de modelo&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Claude Code cree que está accediendo a una API Anthropic-compatible.&lt;/p&gt;
&lt;p&gt;El proxy recibe la solicitud, elige el provider objetivo según la configuración, transforma los campos necesarios y devuelve la respuesta a Claude Code.&lt;/p&gt;
&lt;p&gt;La ventaja de esta estructura es que no necesitas modificar Claude Code ni exigir que cada servicio de modelo soporte Claude Code de forma nativa. Mientras el proxy pueda alinear la interfaz, puede conectar más modelos al mismo flujo de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;backends-soportados&#34;&gt;Backends soportados
&lt;/h2&gt;&lt;p&gt;Las direcciones listadas en el README incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVIDIA NIM&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;llama.cpp&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos backends representan varias formas de uso.&lt;/p&gt;
&lt;p&gt;OpenRouter se parece más a una entrada agregadora de modelos, útil para probar distintos modelos comerciales y open source.&lt;/p&gt;
&lt;p&gt;DeepSeek conviene a quienes se preocupan por capacidad en chino, capacidad de código y coste.&lt;/p&gt;
&lt;p&gt;LM Studio, llama.cpp y Ollama se inclinan hacia la ruta de modelos locales. Sirven para ejecutar modelos en tu propia máquina o en un entorno de intranet, reducir dependencia de APIs externas y facilitar experimentos offline.&lt;/p&gt;
&lt;p&gt;NVIDIA NIM está más orientado a inferencia empresarial y despliegue con GPU.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-un-anthropic-compatible-proxy&#34;&gt;Por qué un Anthropic-compatible proxy
&lt;/h2&gt;&lt;p&gt;Claude Code está diseñado alrededor de la interfaz y los hábitos de modelo de Anthropic.&lt;/p&gt;
&lt;p&gt;Si quieres conectarlo a otros modelos, el problema más directo es que las interfaces no coinciden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Campos de solicitud distintos&lt;/li&gt;
&lt;li&gt;Nombres de modelo distintos&lt;/li&gt;
&lt;li&gt;Formatos de streaming distintos&lt;/li&gt;
&lt;li&gt;Expresión de tool use distinta&lt;/li&gt;
&lt;li&gt;Formatos de error distintos&lt;/li&gt;
&lt;li&gt;Límites de tokens y contexto distintos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de la capa proxy está ahí.&lt;/p&gt;
&lt;p&gt;Mantiene la interfaz vista por Claude Code con una forma cercana a Anthropic y adapta el backend. Para el usuario, después de configurar el proxy, puede probar distintos modelos dentro del mismo flujo de Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;free-claude-code&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Querer usar el flujo de terminal de Claude Code&lt;/li&gt;
&lt;li&gt;Probar modelos no Anthropic dentro de Claude Code&lt;/li&gt;
&lt;li&gt;Reducir costes de llamadas de modelo&lt;/li&gt;
&lt;li&gt;Conectar Claude Code a OpenRouter&lt;/li&gt;
&lt;li&gt;Integrar DeepSeek u otros servicios de modelo compatibles&lt;/li&gt;
&lt;li&gt;Usar Ollama, LM Studio o llama.cpp para ejecutar modelos locales&lt;/li&gt;
&lt;li&gt;Configurar para un equipo una entrada unificada de proxy de modelos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo usas Claude Code oficial normalmente y no tienes necesidades especiales de provider, coste o despliegue local, quizá no necesites este tipo de proxy.&lt;/p&gt;
&lt;p&gt;Pero si comparas modelos con frecuencia o quieres que Claude Code acceda a modelos locales y de terceros, este tipo de herramienta es útil.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-usar-directamente-openrouter-u-ollama&#34;&gt;Diferencia frente a usar directamente OpenRouter u Ollama
&lt;/h2&gt;&lt;p&gt;Usar directamente OpenRouter, Ollama o LM Studio normalmente significa conversar con el modelo o llamarlo mediante API.&lt;/p&gt;
&lt;p&gt;El punto central de &lt;code&gt;free-claude-code&lt;/code&gt; no es sustituir esos servicios, sino conectarlos al flujo de desarrollo de Claude Code.&lt;/p&gt;
&lt;p&gt;La diferencia está en:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sigues usando la experiencia de terminal de Claude Code&lt;/li&gt;
&lt;li&gt;La IA puede realizar tareas alrededor del repositorio de código&lt;/li&gt;
&lt;li&gt;El backend de modelo puede cambiarse por otro provider&lt;/li&gt;
&lt;li&gt;Los modelos locales también tienen oportunidad de entrar en el flujo de Claude Code&lt;/li&gt;
&lt;li&gt;La configuración se concentra en la capa proxy, no se cambia por separado en cada herramienta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso se parece más a un puente que a un nuevo cliente de chat.&lt;/p&gt;
&lt;h2 id=&#34;precauciones-con-modelos-locales&#34;&gt;Precauciones con modelos locales
&lt;/h2&gt;&lt;p&gt;Conectar Claude Code a modelos locales es atractivo, pero también tiene límites prácticos.&lt;/p&gt;
&lt;p&gt;Primero, diferencia de capacidad del modelo.&lt;/p&gt;
&lt;p&gt;Las tareas de Claude Code no son solo chat; incluyen entender código, planificar cambios, editar archivos y procesar salidas de comandos. Un modelo local pequeño no necesariamente puede completar estas tareas de forma estable.&lt;/p&gt;
&lt;p&gt;Segundo, ventana de contexto.&lt;/p&gt;
&lt;p&gt;Las tareas de código consumen mucho contexto. Si la ventana del modelo es demasiado pequeña, puede no leer archivos completos, perder restricciones o olvidar contexto durante varias rondas.&lt;/p&gt;
&lt;p&gt;Tercero, compatibilidad con tool use.&lt;/p&gt;
&lt;p&gt;El flujo de Claude Code depende de llamadas a herramientas y comportamiento estructurado. Aunque un backend pueda chatear, no necesariamente sigue bien protocolos de tool calling.&lt;/p&gt;
&lt;p&gt;Cuarto, velocidad y hardware.&lt;/p&gt;
&lt;p&gt;La velocidad del modelo local depende de la máquina, el método de cuantización y el tamaño del modelo. Si una tarea de código responde demasiado lento, la experiencia se degrada de forma notable.&lt;/p&gt;
&lt;p&gt;Por eso, los modelos locales son más adecuados para experimentos, tareas de bajo riesgo y escenarios concretos. Para tareas de código realmente complejas, todavía hay que elegir con cuidado según la capacidad del modelo.&lt;/p&gt;
&lt;h2 id=&#34;límites-de-uso&#34;&gt;Límites de uso
&lt;/h2&gt;&lt;p&gt;Este tipo de proyecto puede malinterpretarse fácilmente por el título, así que conviene aclarar los límites.&lt;/p&gt;
&lt;p&gt;Primero, no es cuota gratuita oficial de Claude Code.&lt;/p&gt;
&lt;p&gt;Solo reenvía las solicitudes de Claude Code a otros backends de modelos. Al usar OpenRouter, DeepSeek, NVIDIA NIM u otras APIs, sigues teniendo que cumplir precios, cuotas y condiciones de uso de esos servicios.&lt;/p&gt;
&lt;p&gt;Segundo, no es una herramienta para saltarse autorización.&lt;/p&gt;
&lt;p&gt;Al usar cualquier proxy, hay que cumplir las licencias y términos de Claude Code, del proveedor de modelo y del propio proyecto. No debería entenderse como una forma de evitar restricciones oficiales.&lt;/p&gt;
&lt;p&gt;Tercero, el proxy procesará el contenido de tus solicitudes.&lt;/p&gt;
&lt;p&gt;Código, salida de comandos y contexto del proyecto pueden pasar por el proxy y por el servicio backend. Al desplegarlo, hay que considerar logs, claves, red y límites de privacidad. Para código de empresa o proyectos sensibles, es mejor usar un entorno controlado.&lt;/p&gt;
&lt;p&gt;Cuarto, el rendimiento de distintos modelos puede variar mucho.&lt;/p&gt;
&lt;p&gt;La misma operación de Claude Code puede comportarse de forma completamente distinta al cambiar de modelo. No asumas que todos los modelos pueden sustituir a Claude.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-proxies-como-litellm&#34;&gt;Relación con proxies como LiteLLM
&lt;/h2&gt;&lt;p&gt;Desde el punto de vista de diseño, &lt;code&gt;free-claude-code&lt;/code&gt; pertenece a la categoría de &amp;ldquo;proxies de interfaz compatible&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El objetivo común de estas herramientas es reducir el acoplamiento entre la aplicación superior y los servicios de modelos inferiores. La aplicación superior solo se enfrenta a una interfaz relativamente unificada, y los providers de abajo pueden cambiarse por configuración.&lt;/p&gt;
&lt;p&gt;Cada proyecto tiene un foco distinto. Algunos se orientan a gateway de modelos general, otros a OpenAI-compatible API, y otros se adaptan específicamente a herramientas como Claude Code.&lt;/p&gt;
&lt;p&gt;Lo interesante de &lt;code&gt;free-claude-code&lt;/code&gt; es que coloca el escenario objetivo directamente en Claude Code, no en un proxy de chat genérico.&lt;/p&gt;
&lt;h2 id=&#34;usuarios-adecuados&#34;&gt;Usuarios adecuados
&lt;/h2&gt;&lt;p&gt;Es más adecuado para usuarios con cierta capacidad de configuración:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conocen Claude Code&lt;/li&gt;
&lt;li&gt;Saben configurar API key y provider de modelos&lt;/li&gt;
&lt;li&gt;Entienden cómo arrancar un proxy y variables de entorno&lt;/li&gt;
&lt;li&gt;Pueden diagnosticar problemas de red, puertos, nombres de modelo y streaming&lt;/li&gt;
&lt;li&gt;Quieren comparar el rendimiento de distintos modelos en tareas de código&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo quieres algo listo para usar, la configuración oficial suele ser más tranquila.&lt;/p&gt;
&lt;p&gt;Si estás dispuesto a montar proxy, cambiar modelos, ajustar parámetros y quieres llevar Claude Code a más entornos de modelo, este proyecto merece estudio.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Alishahryar1/free-claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Alishahryar1/free-claude-code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-frase&#34;&gt;Una última frase
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;free-claude-code&lt;/code&gt; no está en la palabra &amp;ldquo;free&amp;rdquo;, sino en construir un puente entre Claude Code y más backends de modelos.&lt;/p&gt;
&lt;p&gt;Cuando quieres conservar la experiencia de desarrollo de Claude Code y al mismo tiempo probar OpenRouter, DeepSeek, modelos locales o servicios de inferencia empresariales, este tipo de Anthropic-compatible proxy tiene sentido.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Compound Engineering Plugin: convertir la programación con IA en un ciclo de planificación, ejecución y revisión</title>
        <link>https://www.knightli.com/es/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</link>
        <pubDate>Fri, 01 May 2026 03:15:39 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/compound-engineering-plugin-ai-coding-workflow/</guid>
        <description>&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; es un plugin de flujo de trabajo de programación con IA publicado como open source por Every Inc.&lt;/p&gt;
&lt;p&gt;No se centra en &amp;ldquo;hacer que la IA escriba un fragmento de código más rápido&amp;rdquo;, sino en colocar la programación con IA dentro de un ciclo más parecido al de un equipo de ingeniería: primero planificar, luego implementar, después revisar y finalmente conservar la experiencia aprendida. Para quienes usan con frecuencia herramientas como Claude Code, Codex, Cursor o Copilot, este tipo de plugin resuelve un problema de flujo de trabajo, no solo de prompts.&lt;/p&gt;
&lt;p&gt;Las herramientas de programación con IA son cada vez más fuertes, pero en proyectos reales lo más difícil no suele ser generar código, sino lograr que siga de forma continua las reglas del proyecto, entienda los límites de la tarea, evite repetir errores y acumule contexto durante iteraciones largas.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Muchas personas usan asistentes de programación con IA más o menos así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Describen directamente el requisito&lt;/li&gt;
&lt;li&gt;Dejan que la IA modifique código&lt;/li&gt;
&lt;li&gt;Miran si el resultado puede ejecutarse&lt;/li&gt;
&lt;li&gt;Si hay error, añaden más instrucciones&lt;/li&gt;
&lt;li&gt;En la siguiente tarea vuelven a explicar desde cero&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este método puede completar tareas pequeñas, pero en proyectos complejos aparecen problemas con facilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El requisito no se divide primero con claridad y la IA empieza a modificar directamente&lt;/li&gt;
&lt;li&gt;Falta una review sistemática después de los cambios&lt;/li&gt;
&lt;li&gt;Las reglas del proyecto dependen de que el usuario las recuerde una y otra vez&lt;/li&gt;
&lt;li&gt;El mismo tipo de error vuelve a aparecer en la siguiente ocasión&lt;/li&gt;
&lt;li&gt;Falta un método de trabajo común entre varias herramientas Agent&lt;/li&gt;
&lt;li&gt;La experiencia no se convierte en reglas reutilizables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; quiere resolver precisamente estos problemas. Divide la programación con IA en varias etapas, para que el Agent no solo ejecute comandos, sino que participe en un proceso de ingeniería más completo.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-compound-engineering&#34;&gt;Qué es Compound Engineering
&lt;/h2&gt;&lt;p&gt;Según la descripción del README del proyecto, Compound Engineering puede entenderse como un método de desarrollo de software asistido por IA.&lt;/p&gt;
&lt;p&gt;Destaca un ciclo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planificación: entender primero el objetivo, dividir tareas y confirmar la ruta&lt;/li&gt;
&lt;li&gt;Ejecución: modificar código según el plan, ejecutar comandos y tratar problemas&lt;/li&gt;
&lt;li&gt;Revisión: comprobar calidad de implementación, riesgos y cobertura de pruebas&lt;/li&gt;
&lt;li&gt;Aprendizaje: convertir la experiencia en reglas reutilizables para el futuro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este ciclo se parece mucho a la forma de trabajo de un equipo de ingeniería real.&lt;/p&gt;
&lt;p&gt;Un ingeniero fiable no recibe un requisito y empieza a cambiar cosas sin rumbo, ni entrega directamente después de modificar. Primero evalúa el alcance de impacto, luego implementa, después revisa riesgos y resultados de pruebas, y finalmente registra los problemas encontrados. Los AI Agent también necesitan restricciones similares.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hace-falta-un-plugin&#34;&gt;Por qué hace falta un plugin
&lt;/h2&gt;&lt;p&gt;Un prompt puede decirle a la IA &amp;ldquo;planifica antes de ejecutar&amp;rdquo;, pero el prompt por sí mismo no siempre es estable.&lt;/p&gt;
&lt;p&gt;Cuando la conversación se alarga y el contexto se vuelve complejo, el modelo puede saltarse la planificación, ignorar reglas o volverse demasiado confiado para terminar la tarea. El valor del plugin está en fijar el proceso para que distintos entornos Agent sigan un método parecido.&lt;/p&gt;
&lt;p&gt;Este tipo de plugin suele dividir el flujo de trabajo en comandos, reglas, plantillas o subprocesos. El usuario no necesita escribir cada vez un prompt completo, sino que activa una etapa mediante una entrada fija.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pedir primero al Agent que genere un plan&lt;/li&gt;
&lt;li&gt;Implementar después paso a paso según el plan&lt;/li&gt;
&lt;li&gt;Activar review tras terminar los cambios&lt;/li&gt;
&lt;li&gt;Volver a corregir cuando se encuentren problemas&lt;/li&gt;
&lt;li&gt;Escribir las experiencias valiosas en memoria o reglas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto hace que la programación con IA se parezca más a una &amp;ldquo;colaboración controlada&amp;rdquo; que a una conversación de una sola vez.&lt;/p&gt;
&lt;h2 id=&#34;qué-entornos-agent-soporta&#34;&gt;Qué entornos Agent soporta
&lt;/h2&gt;&lt;p&gt;El README menciona que el proyecto soporta varios entornos de programación con IA, incluyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Codex&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Amp&lt;/li&gt;
&lt;li&gt;Factory&lt;/li&gt;
&lt;li&gt;Qwen Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este punto es importante.&lt;/p&gt;
&lt;p&gt;Muchas herramientas de flujo de trabajo están atadas a un solo cliente; al cambiar de herramienta, las reglas dejan de reutilizarse. &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; se parece más a un método de ingeniería transversal a distintos Agent, llevando procesos similares de planificación, ejecución y revisión a varias herramientas.&lt;/p&gt;
&lt;p&gt;Si usas varios asistentes de programación con IA al mismo tiempo, este tipo de flujo unificado gana valor. Las herramientas tienen capacidades distintas, pero las normas del proyecto, los hábitos de review y el método de división de tareas deberían ser lo más consistentes posible.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-la-etapa-de-planificación&#34;&gt;Para qué sirve la etapa de planificación
&lt;/h2&gt;&lt;p&gt;El valor de la planificación es evitar que la IA actúe demasiado pronto.&lt;/p&gt;
&lt;p&gt;En tareas complejas, las preguntas realmente importantes suelen ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué archivos hay que modificar&lt;/li&gt;
&lt;li&gt;Qué módulos pueden verse afectados&lt;/li&gt;
&lt;li&gt;Cuál es el patrón existente&lt;/li&gt;
&lt;li&gt;Si hay pruebas&lt;/li&gt;
&lt;li&gt;Dónde están los riesgos&lt;/li&gt;
&lt;li&gt;Si hay que leer documentación antes&lt;/li&gt;
&lt;li&gt;Si puede dividirse en pasos más pequeños&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el Agent no piensa primero estas preguntas y se pone a escribir código directamente, es fácil que produzca una implementación que parece terminada, pero que se aleja de la estructura del proyecto.&lt;/p&gt;
&lt;p&gt;El plan no tiene que ser largo. Un buen plan debería ser corto, concreto y ejecutable. Su objetivo no es fabricar documentación, sino dar límites a la implementación posterior.&lt;/p&gt;
&lt;h2 id=&#34;qué-evitar-en-la-etapa-de-ejecución&#34;&gt;Qué evitar en la etapa de ejecución
&lt;/h2&gt;&lt;p&gt;Cuando la IA ejecuta tareas de código, aparecen con facilidad varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactorizar código no relacionado de paso&lt;/li&gt;
&lt;li&gt;Sobrescribir cambios existentes del usuario&lt;/li&gt;
&lt;li&gt;Cambiar solo el happy path&lt;/li&gt;
&lt;li&gt;Ignorar manejo de errores&lt;/li&gt;
&lt;li&gt;No seguir el estilo existente del proyecto&lt;/li&gt;
&lt;li&gt;No ejecutar validaciones necesarias&lt;/li&gt;
&lt;li&gt;Probar a ciegas tras encontrar errores&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un plugin de flujo de trabajo no puede garantizar que estos problemas desaparezcan por completo, pero puede reducir su frecuencia mediante reglas y restricciones por etapa.&lt;/p&gt;
&lt;p&gt;Por ejemplo, la etapa de ejecución puede pedir al Agent que avance paso a paso según el plan; si descubre algo fuera del alcance previsto, primero explica el riesgo; si modifica módulos compartidos, añade pruebas o al menos ejecuta validaciones relacionadas.&lt;/p&gt;
&lt;p&gt;Esta restricción es especialmente importante en codebases grandes. Cuanto más rápido escribe código la IA, más necesita un proceso que limite su inercia.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-importa-la-etapa-de-review&#34;&gt;Por qué importa la etapa de review
&lt;/h2&gt;&lt;p&gt;Muchos fallos de programación con IA no ocurren porque el código no pueda ejecutarse en absoluto, sino porque los detalles están mal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No se tratan condiciones límite&lt;/li&gt;
&lt;li&gt;Las actualizaciones de estado no son consistentes&lt;/li&gt;
&lt;li&gt;El contrato de API se cambia en silencio&lt;/li&gt;
&lt;li&gt;Las pruebas no cubren rutas clave&lt;/li&gt;
&lt;li&gt;Los mensajes de error no son claros&lt;/li&gt;
&lt;li&gt;No se mencionan riesgos de rendimiento o seguridad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La etapa de review cambia al Agent de &amp;ldquo;modo autor&amp;rdquo; a &amp;ldquo;modo revisor&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El modo autor tiende a justificar su propia implementación; el modo revisor debe buscar activamente defectos, riesgos de regresión y pruebas omitidas. Separar estas dos etapas suele ser más fiable que pedir en una misma respuesta que implemente y se autoevalúe.&lt;/p&gt;
&lt;p&gt;Para el usuario, la salida de review también es más valiosa. Ayuda a decidir rápidamente si este cambio merece integrarse o si necesita otra ronda de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;el-sentido-de-aprendizaje-y-memoria&#34;&gt;El sentido de aprendizaje y memoria
&lt;/h2&gt;&lt;p&gt;La palabra &amp;ldquo;Compound&amp;rdquo; del nombre del proyecto sugiere una idea importante: la experiencia de ingeniería debería crecer con efecto compuesto.&lt;/p&gt;
&lt;p&gt;Si cada vez que la IA comete un error solo lo arregla en ese momento, pero la próxima vez comete el mismo error, la mejora de eficiencia es limitada. Un mejor método es conservar la experiencia útil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Convenciones de directorios del proyecto&lt;/li&gt;
&lt;li&gt;Métodos de diagnóstico para ciertos errores&lt;/li&gt;
&lt;li&gt;Comandos de prueba y precauciones&lt;/li&gt;
&lt;li&gt;Archivos generados que no deben tocarse&lt;/li&gt;
&lt;li&gt;Preferencias de estilo de código&lt;/li&gt;
&lt;li&gt;Patrones de implementación habituales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas experiencias pueden convertirse en reglas, memoria, documentación o plantillas. En tareas posteriores, el Agent lee primero ese conocimiento acumulado y luego empieza a trabajar.&lt;/p&gt;
&lt;p&gt;Esa es la clave para que la programación con IA pase de &amp;ldquo;pregunta y respuesta puntual&amp;rdquo; a &amp;ldquo;colaboración de largo plazo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar AI Agent para escribir código de forma continua&lt;/li&gt;
&lt;li&gt;Modificar un mismo proyecto durante muchas rondas&lt;/li&gt;
&lt;li&gt;Querer que la IA planifique antes de implementar&lt;/li&gt;
&lt;li&gt;Querer que después de modificar entre automáticamente en mentalidad de review&lt;/li&gt;
&lt;li&gt;Equipos que quieren unificar el flujo de programación con IA&lt;/li&gt;
&lt;li&gt;Personas que usan a la vez Claude Code, Codex, Cursor y otras herramientas&lt;/li&gt;
&lt;li&gt;Querer convertir experiencia del proyecto en reglas reutilizables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo pides ocasionalmente a la IA que escriba un pequeño script, el flujo completo puede parecer pesado.&lt;/p&gt;
&lt;p&gt;Pero si estás tratando al asistente de programación con IA como un compañero diario de desarrollo, el ciclo de planificación, ejecución, revisión y aprendizaje se vuelve claramente útil.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-plantillas-de-prompt-comunes&#34;&gt;Diferencia frente a plantillas de prompt comunes
&lt;/h2&gt;&lt;p&gt;Las plantillas de prompt comunes suelen resolver &amp;ldquo;cómo expresar bien la tarea&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Piensa paso a paso&lt;/li&gt;
&lt;li&gt;Lee primero los archivos&lt;/li&gt;
&lt;li&gt;Mantén el estilo de código&lt;/li&gt;
&lt;li&gt;Ejecuta pruebas&lt;/li&gt;
&lt;li&gt;Resume los cambios&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas indicaciones son útiles, pero siguen dependiendo de que el usuario las use correctamente cada vez.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Compound Engineering Plugin&lt;/code&gt; se sitúa más en la capa de flujo de trabajo. Organiza estos requisitos en un proceso repetible y lo adapta a distintas herramientas Agent. Así, no partes de cero escribiendo prompts cada vez, sino que avanzas dentro de un proceso.&lt;/p&gt;
&lt;p&gt;En pocas palabras, una plantilla de prompt se parece a un recordatorio; un plugin de flujo de trabajo se parece a un sistema.&lt;/p&gt;
&lt;h2 id=&#34;precauciones-al-usarlo&#34;&gt;Precauciones al usarlo
&lt;/h2&gt;&lt;p&gt;Primero, no conviertas el proceso en una carga.&lt;/p&gt;
&lt;p&gt;Las tareas pequeñas no siempre necesitan un plan completo y una review larga. Un buen flujo de trabajo debería ajustarse a la complejidad de la tarea: resolver rápido los problemas simples y usar el ciclo completo en problemas complejos.&lt;/p&gt;
&lt;p&gt;Segundo, la review no sustituye a las pruebas.&lt;/p&gt;
&lt;p&gt;Una review hecha por Agent puede encontrar muchos problemas, pero aun así puede omitir errores reales de ejecución. El juicio final depende de pruebas, type checking, resultados de build y revisión humana.&lt;/p&gt;
&lt;p&gt;Tercero, hay que limpiar reglas de forma continua.&lt;/p&gt;
&lt;p&gt;Acumular experiencia es importante, pero demasiadas reglas también se convierten en ruido. Reglas obsoletas, repetidas o que solo servían para una tarea puntual deberían ordenarse periódicamente.&lt;/p&gt;
&lt;p&gt;Cuarto, consistencia entre herramientas no significa identidad total.&lt;/p&gt;
&lt;p&gt;Claude Code, Codex, Cursor, Copilot y otras herramientas tienen capacidades e interacciones diferentes. Lo que se unifica es el método de trabajo, no necesariamente cada comando ni cada detalle de configuración.&lt;/p&gt;
&lt;h2 id=&#34;qué-equipos-pueden-aprovecharlo&#34;&gt;Qué equipos pueden aprovecharlo
&lt;/h2&gt;&lt;p&gt;Si un equipo ya permite que AI Agent modifique código real, no basta con discutir &amp;ldquo;qué modelo es más fuerte&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Debería preocuparse más por:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si la IA entiende la tarea antes de modificar&lt;/li&gt;
&lt;li&gt;Si respeta límites del proyecto mientras modifica&lt;/li&gt;
&lt;li&gt;Si revisa riesgos activamente después de modificar&lt;/li&gt;
&lt;li&gt;Si aprende de errores históricos&lt;/li&gt;
&lt;li&gt;Si el equipo tiene una norma común de uso de Agent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ahí está el sentido de proyectos como &lt;code&gt;Compound Engineering Plugin&lt;/code&gt;. Llevan la programación con IA desde una habilidad personal hacia un proceso reutilizable por el equipo.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EveryInc/compound-engineering-plugin&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EveryInc/compound-engineering-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-frase&#34;&gt;Una última frase
&lt;/h2&gt;&lt;p&gt;Lo que merece atención de &lt;code&gt;Compound Engineering Plugin&lt;/code&gt; no es que añada un comando más de programación con IA, sino que organiza la programación con IA como un proceso de ingeniería que puede mejorar en ciclos.&lt;/p&gt;
&lt;p&gt;Cuando los AI Agent empiezan a participar en proyectos reales, planificación, ejecución, revisión y acumulación de experiencia importan más que generar código una sola vez.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>TradingAgents-CN: un marco multiagente de investigación de trading financiero para usuarios chinos</title>
        <link>https://www.knightli.com/es/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/</link>
        <pubDate>Fri, 01 May 2026 03:14:15 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/tradingagents-cn-multi-agent-financial-research-framework/</guid>
        <description>&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; es un marco de investigación de trading financiero multiagente orientado a usuarios chinos.&lt;/p&gt;
&lt;p&gt;Su objetivo no es dar una respuesta simple a &amp;ldquo;qué acción comprar&amp;rdquo;, sino usar varios AI Agent para simular un equipo de análisis financiero más completo: alguien observa los fundamentales, alguien mira el análisis técnico, alguien sigue noticias y sentimiento, y alguien se encarga del riesgo y de la decisión final. Para quienes quieren estudiar LLM + Agent + análisis financiero, este tipo de proyecto es una buena puerta de entrada experimental.&lt;/p&gt;
&lt;p&gt;Primero hay que dejar algo claro: estas herramientas son adecuadas para aprendizaje, investigación y análisis asistido, y no deben tratarse como asesoramiento real de trading. Los mercados financieros tienen riesgo, y las salidas del modelo también pueden ser erróneas, retrasadas o demasiado confiadas.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;Qué problema resuelve
&lt;/h2&gt;&lt;p&gt;Un modelo de chat común también puede analizar acciones, por supuesto.&lt;/p&gt;
&lt;p&gt;Puedes preguntar directamente: &amp;ldquo;Ayúdame a analizar si cierta empresa se puede comprar.&amp;rdquo; El modelo dará una respuesta que parece completa. Pero ese enfoque tiene varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La cadena de análisis no es transparente&lt;/li&gt;
&lt;li&gt;Las distintas dimensiones se mezclan con facilidad&lt;/li&gt;
&lt;li&gt;Falta división de roles&lt;/li&gt;
&lt;li&gt;Falta choque entre puntos de vista favorables y contrarios&lt;/li&gt;
&lt;li&gt;Las advertencias de riesgo pueden quedarse en una formalidad&lt;/li&gt;
&lt;li&gt;Es difícil reproducir el mismo proceso de análisis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea de &lt;code&gt;TradingAgents-CN&lt;/code&gt; es dividir el análisis financiero en varios roles, dejar que distintos Agent se encarguen de distintas perspectivas y formar el resultado mediante colaboración, discusión y síntesis.&lt;/p&gt;
&lt;p&gt;Esto se acerca más al proceso real de investigación de inversión. Un juicio de inversión normalmente no mira solo una noticia o un indicador técnico, sino que combina fundamentales de la empresa, entorno de mercado, tendencia de precios, sentimiento de capital, riesgo regulatorio y control de posición.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-análisis-multiagente&#34;&gt;Qué significa análisis multiagente
&lt;/h2&gt;&lt;p&gt;Multiagente no significa simplemente dejar que varios modelos hablen por turnos.&lt;/p&gt;
&lt;p&gt;Una práctica más valiosa es asignar responsabilidades claras a distintos Agent. Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent de análisis de mercado: observa tendencias de mercado, cambios de precio y entorno general&lt;/li&gt;
&lt;li&gt;Agent de análisis fundamental: observa negocio de la empresa, datos financieros y valor de largo plazo&lt;/li&gt;
&lt;li&gt;Agent de análisis de noticias: observa anuncios, noticias, opinión pública e impacto de eventos&lt;/li&gt;
&lt;li&gt;Agent de análisis técnico: observa tendencias, indicadores, soportes, resistencias y señales de trading&lt;/li&gt;
&lt;li&gt;Agent de gestión de riesgo: observa volatilidad, drawdown, posición e incertidumbre&lt;/li&gt;
&lt;li&gt;Agent de decisión: integra distintas opiniones y forma el juicio final&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta estructura puede reducir el problema de que un único modelo &amp;ldquo;diga todas las conclusiones de una vez&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuando distintos roles analizan el mismo objetivo, el sistema puede presentar juicios multidimensionales con más facilidad y también exponer discrepancias. Para quien aprende, esto suele aportar más que leer solo un resumen.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-hace-falta-una-versión-china&#34;&gt;Por qué hace falta una versión china
&lt;/h2&gt;&lt;p&gt;El análisis financiero está muy ligado al entorno lingüístico.&lt;/p&gt;
&lt;p&gt;Las fuentes de información que siguen los usuarios chinos, los hábitos del mercado, los nombres de acciones, los sistemas de negociación, el estilo de las noticias y los términos comunes son distintos de los del entorno inglés. Al usar directamente un marco en inglés, aparecen a menudo varios problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los nombres y códigos de acciones chinas no se procesan con fluidez&lt;/li&gt;
&lt;li&gt;Se mezclan contextos de acciones A, acciones de Hong Kong y acciones estadounidenses&lt;/li&gt;
&lt;li&gt;La comprensión de noticias financieras chinas es inestable&lt;/li&gt;
&lt;li&gt;No es cómodo integrar fuentes de datos nacionales&lt;/li&gt;
&lt;li&gt;El estilo de salida no encaja con los hábitos de lectura de usuarios chinos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de &lt;code&gt;TradingAgents-CN&lt;/code&gt; está en adaptar este proceso de análisis financiero multiagente al usuario chino. Hace más fácil construir, ejecutar y entender todo el flujo experimental de análisis de trading.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-se-puede-usar&#34;&gt;Para qué se puede usar
&lt;/h2&gt;&lt;p&gt;Este proyecto es más adecuado para investigación y análisis asistido que para órdenes automáticas.&lt;/p&gt;
&lt;p&gt;Usos relativamente adecuados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aprender cómo colaboran los sistemas multiagente&lt;/li&gt;
&lt;li&gt;Investigar el rendimiento de LLM en análisis financiero&lt;/li&gt;
&lt;li&gt;Organizar información de una acción desde múltiples ángulos&lt;/li&gt;
&lt;li&gt;Comparar diferencias entre modelos en tareas de investigación de inversión&lt;/li&gt;
&lt;li&gt;Construir tu propio prototipo de Agent de análisis financiero&lt;/li&gt;
&lt;li&gt;Revisar información histórica y puntos de riesgo de un activo&lt;/li&gt;
&lt;li&gt;Practicar la división del proceso de investigación de inversión en tareas ejecutables&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si estás estudiando trading cuantitativo, ingeniería financiera, AI Agent o desarrollo de aplicaciones LLM, este tipo de proyecto puede ayudarte a entender la estructura de ingeniería detrás de un &amp;ldquo;asistente de investigación de inversión con IA&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-no-es-adecuado&#34;&gt;Para qué no es adecuado
&lt;/h2&gt;&lt;p&gt;No es adecuado tratarlo directamente como una herramienta para ganar dinero de forma segura.&lt;/p&gt;
&lt;p&gt;Especialmente no es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comprar o vender con toda la posición solo según la salida&lt;/li&gt;
&lt;li&gt;Sustituir tu propio juicio de riesgo por la conclusión del modelo&lt;/li&gt;
&lt;li&gt;Tratar predicciones de precio de corto plazo como resultados seguros&lt;/li&gt;
&lt;li&gt;Ignorar costes de transacción, slippage y liquidez&lt;/li&gt;
&lt;li&gt;Conectarlo a una cuenta real sin backtesting&lt;/li&gt;
&lt;li&gt;Sustituir una estrategia de inversión de largo plazo por una conclusión de análisis puntual&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los LLM son buenos organizando información, generando explicaciones y simulando procesos de razonamiento, pero no poseen de forma natural una capacidad estable para predecir mercados. En los mercados financieros hay mucho ruido, eventos repentinos y juego conductual; la salida del modelo solo puede ser una referencia más.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-un-marco-cuantitativo-común&#34;&gt;Diferencia frente a un marco cuantitativo común
&lt;/h2&gt;&lt;p&gt;Los marcos cuantitativos tradicionales prestan más atención a datos, factores, backtesting, optimización de carteras y ejecución de trading.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes definir reglas de estrategia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ruptura de media móvil&lt;/li&gt;
&lt;li&gt;Factor de momentum&lt;/li&gt;
&lt;li&gt;Factor de valor&lt;/li&gt;
&lt;li&gt;Filtro de volatilidad&lt;/li&gt;
&lt;li&gt;Stop loss y take profit&lt;/li&gt;
&lt;li&gt;Gestión de posición&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después usas datos históricos para hacer backtesting.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; se inclina más hacia un &amp;ldquo;marco de análisis con agentes&amp;rdquo;. Lo que le importa es cómo hacer que varios LLM Agent colaboren alrededor de una tarea financiera, cómo simular una discusión de research y cómo organizar noticias, fundamentales, análisis técnico y juicio de riesgo.&lt;/p&gt;
&lt;p&gt;No son enfoques que se sustituyan entre sí.&lt;/p&gt;
&lt;p&gt;Un uso más realista es: el sistema cuantitativo tradicional se encarga de reglas verificables y backtesting; el sistema de Agent se encarga de organización de información, generación de informes, comparación de opiniones y apoyo a la decisión. Que finalmente pueda entrar en trading real depende todavía de backtesting riguroso, control de riesgo y revisión humana.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-frente-a-preguntar-directamente-a-chatgpt&#34;&gt;Diferencia frente a preguntar directamente a ChatGPT
&lt;/h2&gt;&lt;p&gt;Preguntar directamente al modelo tiene la menor barrera de entrada, pero el proceso es muy laxo.&lt;/p&gt;
&lt;p&gt;Preguntas una vez y responde una vez. Si cambias la forma de preguntar, la conclusión puede cambiar. Es difícil garantizar que analice siempre desde las mismas dimensiones, y también es difícil hacer que interprete de forma estable varios roles que se equilibran entre sí.&lt;/p&gt;
&lt;p&gt;El valor de &lt;code&gt;TradingAgents-CN&lt;/code&gt; es estructurar el flujo de análisis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Roles más claros&lt;/li&gt;
&lt;li&gt;Pasos más reproducibles&lt;/li&gt;
&lt;li&gt;Fuentes de información más fáciles de organizar&lt;/li&gt;
&lt;li&gt;Choque de opiniones más natural&lt;/li&gt;
&lt;li&gt;Revisión de riesgo más fácil de separar&lt;/li&gt;
&lt;li&gt;Salida más parecida al resultado de un proceso de investigación de inversión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es útil para aprendizaje e investigación. Puedes observar cómo distintos Agent influyen en la conclusión final, y también sustituir modelos, ajustar prompts o modificar la división de roles para comparar cambios en los resultados.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-a-vigilar-al-usarlo&#34;&gt;Riesgos a vigilar al usarlo
&lt;/h2&gt;&lt;p&gt;Primero, calidad de datos.&lt;/p&gt;
&lt;p&gt;El análisis financiero depende mucho de los datos. Si datos de mercado, reportes financieros, noticias o anuncios son incompletos o no están actualizados, por muy fluido que sea el análisis del Agent, puede estar construido sobre una base equivocada.&lt;/p&gt;
&lt;p&gt;Segundo, alucinaciones del modelo.&lt;/p&gt;
&lt;p&gt;Un LLM puede inventar hechos inexistentes, malinterpretar el significado de los datos o tomar información antigua como nueva. Cuando se trata de acciones concretas, hay que volver a la fuente de datos para verificar.&lt;/p&gt;
&lt;p&gt;Tercero, sobreexplicación.&lt;/p&gt;
&lt;p&gt;El modelo es muy bueno dando explicaciones &amp;ldquo;que parecen razonables&amp;rdquo;, pero los cambios de precio del mercado no necesariamente vienen de las razones que enumera. No confundas explicación posterior con prueba causal.&lt;/p&gt;
&lt;p&gt;Cuarto, brecha entre backtesting y trading real.&lt;/p&gt;
&lt;p&gt;Incluso si una estrategia se comporta bien con datos históricos, en trading real seguirá enfrentándose a slippage, comisiones, liquidez, suspensiones, límites de subida/bajada y mercados extremos.&lt;/p&gt;
&lt;p&gt;Quinto, licencia y límites comerciales.&lt;/p&gt;
&lt;p&gt;El README menciona que el proyecto usa una licencia mixta. Las condiciones para aprendizaje personal, investigación y uso comercial pueden ser distintas. Si planeas incorporarlo en un producto o servicio comercial, primero lee con cuidado la licencia del proyecto.&lt;/p&gt;
&lt;h2 id=&#34;a-quién-le-conviene-estudiarlo&#34;&gt;A quién le conviene estudiarlo
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TradingAgents-CN&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desarrolladores que quieren aprender arquitectura de AI Agent&lt;/li&gt;
&lt;li&gt;Personas que quieren estudiar la capacidad de LLM en análisis financiero&lt;/li&gt;
&lt;li&gt;Usuarios de trading cuantitativo que quieren incorporar análisis de lenguaje natural&lt;/li&gt;
&lt;li&gt;Equipos que quieren construir herramientas auxiliares de investigación de inversión&lt;/li&gt;
&lt;li&gt;Personas interesadas en cómo la colaboración multirol afecta decisiones&lt;/li&gt;
&lt;li&gt;Usuarios que quieren experimentar con trading Agent en entorno chino&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu objetivo es obtener una simple sugerencia de compra o venta, este proyecto quizá no sea la mejor forma de abrirlo. Lo que más merece atención es el proceso, los roles, la colaboración y el control de riesgo, no la conclusión de una salida puntual.&lt;/p&gt;
&lt;h2 id=&#34;cómo-puede-ampliarse&#34;&gt;Cómo puede ampliarse
&lt;/h2&gt;&lt;p&gt;Este tipo de marco tiene muchas direcciones de expansión:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integrar más fuentes de datos fiables&lt;/li&gt;
&lt;li&gt;Añadir soporte para modelos locales&lt;/li&gt;
&lt;li&gt;Añadir módulo de backtesting&lt;/li&gt;
&lt;li&gt;Afinar reglas distintas para acciones A, Hong Kong y Estados Unidos&lt;/li&gt;
&lt;li&gt;Añadir Agent de análisis sectorial&lt;/li&gt;
&lt;li&gt;Añadir gestión de cartera y control de posición&lt;/li&gt;
&lt;li&gt;Reforzar citas de informes y trazabilidad de datos&lt;/li&gt;
&lt;li&gt;Combinar conclusiones de Agent con señales cuantitativas tradicionales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un sistema financiero de IA realmente valioso normalmente no deja que el modelo decida todo por sí solo, sino que lo inserta en un proceso verificable, trazable y controlado por riesgo.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/hsliuping/TradingAgents-CN&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hsliuping/TradingAgents-CN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-frase&#34;&gt;Una última frase
&lt;/h2&gt;&lt;p&gt;Lo que merece atención de &lt;code&gt;TradingAgents-CN&lt;/code&gt; no es si puede predecir la siguiente vela K, sino que divide el análisis financiero en un proceso de colaboración multiagente.&lt;/p&gt;
&lt;p&gt;Tratarlo como herramienta de aprendizaje e investigación es más razonable que tratarlo como una máquina automática de ganar dinero.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>qmd: Búsqueda de documentos de rebajas locales para agentes de IA</title>
        <link>https://www.knightli.com/es/2026/05/01/qmd-markdown-search-for-ai-agents/</link>
        <pubDate>Fri, 01 May 2026 03:12:57 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/qmd-markdown-search-for-ai-agents/</guid>
        <description>&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; es una herramienta de búsqueda de documentos Markdown locales, con los agentes AI como sus principales usuarios objetivo.&lt;/p&gt;
&lt;p&gt;Resuelve un problema específico: cuando un proyecto contiene muchos documentos &lt;code&gt;.md&lt;/code&gt;, los asistentes de codificación de IA a menudo no saben qué archivo leer, qué sección citar o qué instrucciones están actualizadas. grep de texto completo puede encontrar palabras clave, pero no comprende bien el significado. Poner toda la documentación en contexto desperdicia espacio en la ventana e introduce fácilmente contenido irrelevante.&lt;/p&gt;
&lt;p&gt;La idea detrás de &lt;code&gt;qmd&lt;/code&gt; es indexar primero los documentos de Markdown y luego devolver los fragmentos más relevantes a través de una interfaz de búsqueda para que los utilice la IA. Puede usarse como una herramienta de línea de comandos, integrarse a través de un SDK o exponerse como un servidor MCP para clientes que admiten MCP.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Los proyectos reales suelen tener más de uno o dos archivos README.&lt;/p&gt;
&lt;p&gt;Es posible que tengas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de arquitectura&lt;/li&gt;
&lt;li&gt;Documentación API&lt;/li&gt;
&lt;li&gt;Convenciones de desarrollo&lt;/li&gt;
&lt;li&gt;Procedimientos de implementación&lt;/li&gt;
&lt;li&gt;Registros de decisiones de arquitectura.&lt;/li&gt;
&lt;li&gt;Notas de solución de problemas&lt;/li&gt;
&lt;li&gt;Documentos de requisitos&lt;/li&gt;
&lt;li&gt;Instrucciones de uso de IA&lt;/li&gt;
&lt;li&gt;Notas y recordatorios de la cadena de herramientas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los humanos pueden buscar documentos a través de directorios, pero los agentes de IA necesitan un punto de entrada de recuperación claro. En caso contrario, podrán:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leer el documento equivocado&lt;/li&gt;
&lt;li&gt;Falta de restricciones clave&lt;/li&gt;
&lt;li&gt;Utilice instrucciones obsoletas&lt;/li&gt;
&lt;li&gt;Poner el contenido irrelevante en contexto.&lt;/li&gt;
&lt;li&gt;Inventar reglas en respuestas basadas en la experiencia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquí es donde &amp;ldquo;qmd&amp;rdquo; resulta útil. Convierte los documentos locales de Markdown en una fuente de conocimiento con capacidad de búsqueda, de modo que la IA puede buscar primero cuando necesita contexto y luego responder o actuar en función de fragmentos coincidentes.&lt;/p&gt;
&lt;h2 id=&#34;enfoque-de-búsqueda&#34;&gt;Enfoque de búsqueda
&lt;/h2&gt;&lt;p&gt;El archivo README dice que &amp;ldquo;qmd&amp;rdquo; combina varios métodos de recuperación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Búsqueda de palabras clave BM25&lt;/li&gt;
&lt;li&gt;Búsqueda de vectores&lt;/li&gt;
&lt;li&gt;Reclasificación de LLM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BM25 es bueno para palabras clave claras. Si busca el nombre de una función, una clave de configuración, un código de error o un nombre de archivo, suele ser directo y eficaz.&lt;/p&gt;
&lt;p&gt;La búsqueda de vectores es mejor para cuestiones semánticas. Por ejemplo, si pregunta &amp;ldquo;¿cómo maneja este proyecto la validación de permisos?&amp;rdquo;, es posible que la documentación no contenga esa frase exacta, pero puede contener descripciones relacionadas sobre autenticación, control de acceso y comprobaciones de roles.&lt;/p&gt;
&lt;p&gt;La reclasificación de LLM se utiliza para reordenar los resultados de los candidatos. Los dos primeros pasos encuentran contenido potencialmente relevante y luego el modelo juzga qué fragmentos coinciden mejor con la pregunta actual.&lt;/p&gt;
&lt;p&gt;Esta combinación es más adecuada para los agentes de IA que la simple búsqueda de palabras clave, porque las preguntas de los agentes suelen ser intenciones de tareas en lugar de palabras clave fijas.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-rebajas&#34;&gt;¿Por qué rebajas?
&lt;/h2&gt;&lt;p&gt;Markdown es el formato de documentación más común en proyectos de desarrollo.&lt;/p&gt;
&lt;p&gt;Es lo suficientemente simple como para almacenarlo en Git y lo suficientemente estructurado como para incluir encabezados, listas, bloques de código, enlaces y tablas. Para la IA, Markdown también es más fácil de analizar que los archivos PDF, las instantáneas web o las capturas de pantalla.&lt;/p&gt;
&lt;p&gt;Debido a que &lt;code&gt;qmd&lt;/code&gt; se centra en Markdown, puede procesar la documentación del desarrollador de forma más directa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dividir el contenido por títulos y párrafos.&lt;/li&gt;
&lt;li&gt;Preservar bloques de código&lt;/li&gt;
&lt;li&gt;Preservar rutas de documentos&lt;/li&gt;
&lt;li&gt;Devolver fragmentos adecuados para citar&lt;/li&gt;
&lt;li&gt;Informar al Agente de qué documento proviene una respuesta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más estable que pedirle a la IA que escanee aleatoriamente un repositorio y ahorra más contexto que poner todos los documentos en un mensaje a la vez.&lt;/p&gt;
&lt;h2 id=&#34;tres-puntos-de-entrada&#34;&gt;Tres puntos de entrada
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; proporciona tres puntos de entrada: CLI, SDK y servidor MCP.&lt;/p&gt;
&lt;h3 id=&#34;1-cli&#34;&gt;1. CLI
&lt;/h3&gt;&lt;p&gt;La CLI es adecuada para uso directo de terminal y para scripts.&lt;/p&gt;
&lt;p&gt;Puede indexar un directorio de documentación y luego buscar contenido relacionado con comandos. Para los desarrolladores, la CLI es la forma más sencilla de validar la herramienta: primero vea si puede encontrar los documentos correctos y luego considere integrarla en flujos de trabajo más complejos.&lt;/p&gt;
&lt;p&gt;Este tipo de herramienta es útil dentro de proyectos locales. Por ejemplo, antes de cambiar el código puedes buscar documentos de diseño; antes de depurar, busque notas de solución de problemas; Antes de escribir una API, busque las convenciones de la API.&lt;/p&gt;
&lt;h3 id=&#34;2-sdk&#34;&gt;2. SDK
&lt;/h3&gt;&lt;p&gt;El SDK es adecuado para integrar &lt;code&gt;qmd&lt;/code&gt; en sus propias herramientas.&lt;/p&gt;
&lt;p&gt;Si está creando un asistente de desarrollo interno, un sistema de preguntas y respuestas sobre documentación, un robot de revisión de código o una base de conocimiento del proyecto, puede llamar a la capacidad de búsqueda a través del SDK en lugar de pedir a los usuarios que ejecuten comandos directamente.&lt;/p&gt;
&lt;p&gt;El SDK brinda más control sobre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buscar directorios&lt;/li&gt;
&lt;li&gt;Consultar contenido&lt;/li&gt;
&lt;li&gt;Número de resultados devueltos&lt;/li&gt;
&lt;li&gt;Formato de resultado&lt;/li&gt;
&lt;li&gt;Si se deben pasar los resultados a un modelo para su resumen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto se adapta a escenarios que necesitan una integración más profunda.&lt;/p&gt;
&lt;h3 id=&#34;3-servidor-mcp&#34;&gt;3. Servidor MCP
&lt;/h3&gt;&lt;p&gt;MCP es el punto de entrada más valioso para los agentes de IA.&lt;/p&gt;
&lt;p&gt;A través del servidor MCP, los clientes que admiten MCP pueden llamar a &lt;code&gt;qmd&lt;/code&gt; como herramienta de búsqueda de documentos. Esto permite a un agente buscar documentos de Markdown locales antes de actuar, en lugar de adivinar las reglas del proyecto.&lt;/p&gt;
&lt;p&gt;Un flujo de trabajo típico podría ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El usuario le pide a la IA que modifique una función.&lt;/li&gt;
&lt;li&gt;AI llama a &amp;ldquo;qmd&amp;rdquo; para buscar documentos de diseño relacionados&lt;/li&gt;
&lt;li&gt;&lt;code&gt;qmd&lt;/code&gt; devuelve los fragmentos de Markdown más relevantes&lt;/li&gt;
&lt;li&gt;La IA modifica el código en función de esas restricciones de documentos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto es más natural que pegar manualmente todas las reglas en una nueva sesión y se adapta mejor a proyectos a largo plazo.&lt;/p&gt;
&lt;h2 id=&#34;escenarios-adecuados&#34;&gt;Escenarios adecuados
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; es adecuado para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Proyectos con muchos documentos Markdown.&lt;/li&gt;
&lt;li&gt;Agentes de IA que a menudo necesitan buscar reglas del proyecto.&lt;/li&gt;
&lt;li&gt;Equipos que quieran respuestas de IA para citar documentos locales.&lt;/li&gt;
&lt;li&gt;Documentación distribuida en varios directorios.&lt;/li&gt;
&lt;li&gt;Reutilizar la misma capacidad de recuperación en CLI, SDK y MCP&lt;/li&gt;
&lt;li&gt;Reducir la tendencia de los asistentes de codificación de IA a adivinar las convenciones del proyecto.&lt;/li&gt;
&lt;li&gt;Conexión de bases de conocimientos locales a Claude Desktop, Claude Code u otros clientes MCP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si su proyecto solo tiene un README corto, pedirle directamente a AI que lea el archivo es suficiente.&lt;/p&gt;
&lt;p&gt;Pero si la documentación ha crecido hasta llegar a docenas o cientos de archivos, o si desea que el Agente busque documentos antes de actuar, este tipo de herramienta de indexación adquiere sentido.&lt;/p&gt;
&lt;h2 id=&#34;diferencia-de-grep&#34;&gt;Diferencia de grep
&lt;/h2&gt;&lt;p&gt;Herramientas como &lt;code&gt;grep&lt;/code&gt; y &lt;code&gt;rg&lt;/code&gt; son excelentes para una búsqueda exacta.&lt;/p&gt;
&lt;p&gt;Si sabe que necesita &lt;code&gt;DATABASE_URL&lt;/code&gt;, &lt;code&gt;authMiddleware&lt;/code&gt;, &lt;code&gt;404&lt;/code&gt; o &lt;code&gt;docker compose&lt;/code&gt;, la búsqueda de palabras clave suele ser la más rápida.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; es mejor cuando no sabes las palabras exactas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puedes preguntar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Cuál es el proceso de lanzamiento de este proyecto?&lt;/li&gt;
&lt;li&gt;¿Qué convenciones se aplican al agregar una nueva API?&lt;/li&gt;
&lt;li&gt;¿Se documentó antes la estrategia de almacenamiento en caché?&lt;/li&gt;
&lt;li&gt;¿Qué documentos debería leer la IA antes de cambiar el código?&lt;/li&gt;
&lt;li&gt;¿Dónde está la base de diseño de un módulo?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas preguntas suelen requerir una recuperación semántica en lugar de hacer coincidir una palabra. La combinación BM25 + vector + reclasificación en &lt;code&gt;qmd&lt;/code&gt; tiene como objetivo hacer que estas preguntas encuentren el contexto correcto más fácilmente.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-rag&#34;&gt;Relación con RAG
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; puede verse como un componente RAG liviano para documentos Markdown.
No intenta crear un sistema completo de preguntas y respuestas para usted. Se centra en un paso: encontrar fragmentos de documentos relevantes. La forma en que se utilizan esos fragmentos posteriormente puede ser manejada por CLI, SDK, un cliente MCP o su propio flujo de trabajo del Agente.&lt;/p&gt;
&lt;p&gt;Este posicionamiento es práctico. Muchos proyectos no necesitan un gran sistema de base de conocimientos; solo necesitan IA para buscar documentos locales con mayor precisión y rapidez, y luego devolver los resultados a la tarea actual.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;En primer lugar, la calidad de la documentación sigue siendo importante.&lt;/p&gt;
&lt;p&gt;Una herramienta de recuperación sólo puede encontrar contenido existente. Si los documentos están desactualizados, duplicados o contradictorios, es posible que la IA aún reciba un contexto incorrecto. Antes de conectar &lt;code&gt;qmd&lt;/code&gt; a un Agente, primero limpie los documentos clave.&lt;/p&gt;
&lt;p&gt;En segundo lugar, no amplíe demasiado el alcance del índice.&lt;/p&gt;
&lt;p&gt;Indexar cada archivo Markdown en el repositorio no siempre es mejor. La documentación de dependencia, las notas temporales y los borradores de soluciones antiguos pueden contaminar los resultados. Un mejor enfoque es definir qué directorios son fuentes de documentación confiables.&lt;/p&gt;
&lt;p&gt;En tercer lugar, los resultados de la búsqueda deben preservar las fuentes.&lt;/p&gt;
&lt;p&gt;Cuando la IA utiliza fragmentos de documentos, debe saber de qué archivo y sección provienen. Esto hace que la revisión humana sea rastreable y reduce el riesgo de que &amp;ldquo;esto parezca la conclusión de un documento, pero es sólo un resumen modelo&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuarto, no reemplacen completamente el juicio humano.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;qmd&lt;/code&gt; puede mejorar la calidad de la recuperación del contexto, pero no reemplaza la fuente de la verdad. Los cambios importantes aún requieren código actualizado, resultados de pruebas y los requisitos más recientes.&lt;/p&gt;
&lt;h2 id=&#34;equipos-adecuados&#34;&gt;Equipos adecuados
&lt;/h2&gt;&lt;p&gt;Si su equipo ya ha comenzado a incluir agentes de IA en los flujos de trabajo de desarrollo diarios, herramientas como &lt;code&gt;qmd&lt;/code&gt; pueden resultar valiosas.&lt;/p&gt;
&lt;p&gt;Están especialmente indicados para equipos que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir mucha documentación.&lt;/li&gt;
&lt;li&gt;Tener una larga historia de proyectos.&lt;/li&gt;
&lt;li&gt;Necesita gente nueva e inteligencia artificial para comprender rápidamente el contexto.&lt;/li&gt;
&lt;li&gt;Mantener registros de decisiones de arquitectura.&lt;/li&gt;
&lt;li&gt;Tener muchos documentos de convención de Markdown.&lt;/li&gt;
&lt;li&gt;Quiero que AI verifique las reglas antes de modificar el código.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su objetivo no es hacer que la IA lo sepa todo. Es hacer que la IA adivine menos y busque más.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;p&gt;-&lt;a class=&#34;link&#34; href=&#34;https://github.com/tobi/qmd&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tobi/qmd&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;qmd&lt;/code&gt; es que convierte los documentos Markdown locales en un punto de entrada de búsqueda al que los agentes de IA pueden llamar de manera confiable.&lt;/p&gt;
&lt;p&gt;Cuando la documentación del proyecto pasa de “instrucciones para humanos” a “una fuente de contexto que pueden buscar tanto humanos como IA”, los asistentes de codificación de IA pueden seguir las reglas del proyecto más fácilmente.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Dominio de los ganchos de Claude Code: una introducción a los 13 eventos del ciclo de vida de los ganchos y al control de automatización</title>
        <link>https://www.knightli.com/es/2026/05/01/claude-code-hooks-mastery-guide/</link>
        <pubDate>Fri, 01 May 2026 03:11:27 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/claude-code-hooks-mastery-guide/</guid>
        <description>&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; es un proyecto de aprendizaje centrado en &lt;code&gt;Claude Code Hooks&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No es sólo una colección de guiones dispersos. Explica el ciclo de vida del gancho de Claude Code, los métodos de configuración, los patrones de script y los escenarios de automatización comunes en un solo lugar. Para las personas que quieren que Claude Code sea más controlable y más parecido a un asistente de ingeniería, vale la pena leer este tipo de material.&lt;/p&gt;
&lt;p&gt;Claude Code ya puede leer código, editar archivos y ejecutar comandos de forma predeterminada. Pero si desea que verifique permisos automáticamente, bloquee operaciones riesgosas, inyecte reglas de proyecto, ejecute pruebas o le recuerde las convenciones del equipo en momentos específicos, las instrucciones de chat por sí solas no son lo suficientemente estables. El valor de los ganchos es que convierten las “reglas que necesito recordarle a la IA cada vez” en un flujo de trabajo ejecutable.&lt;/p&gt;
&lt;h2 id=&#34;qué-problemas-resuelven-los-ganchos&#34;&gt;Qué problemas resuelven los ganchos
&lt;/h2&gt;&lt;p&gt;Después de usar Claude Code por un tiempo, los puntos débiles comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cada nueva sesión necesita repetir las mismas reglas del proyecto.&lt;/li&gt;
&lt;li&gt;Te preocupa que pueda ejecutar comandos que no debería ejecutar.&lt;/li&gt;
&lt;li&gt;Quieres verificaciones antes y después de la edición de archivos.&lt;/li&gt;
&lt;li&gt;Quiere formatear, realizar pruebas o realizar análisis de seguridad antes de confirmar&lt;/li&gt;
&lt;li&gt;Quieres que las convenciones del equipo sean un flujo de trabajo fijo en lugar de recordatorios verbales.&lt;/li&gt;
&lt;li&gt;Quiere contexto antes y después de las llamadas a herramientas para iniciar sesión o bloquear&lt;/li&gt;
&lt;li&gt;Quiere que tareas complejas activen subagentes o scripts dedicados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ganchos están diseñados para estas &amp;ldquo;acciones automáticas en momentos fijos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Puedes considerarlos como enlaces de eventos en el flujo de trabajo de Claude Code. Cuando se inicia una sesión, un usuario envía un mensaje, el modelo está a punto de llamar a una herramienta, finaliza una llamada a una herramienta o un agente está a punto de detenerse, Claude Code puede ejecutar los scripts que usted configuró.&lt;/p&gt;
&lt;h2 id=&#34;los-13-eventos-del-ciclo-de-vida-del-gancho&#34;&gt;Los 13 eventos del ciclo de vida del gancho
&lt;/h2&gt;&lt;p&gt;Uno de los puntos principales del proyecto README es que cubre sistemáticamente los 13 eventos de gancho del Código Claude.&lt;/p&gt;
&lt;p&gt;Estos eventos abarcan varias etapas, desde el inicio de la sesión hasta las llamadas a las herramientas, y desde la entrada del usuario hasta la terminación del agente. Por finalidad, se pueden agrupar a grandes rasgos como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inicio de sesión: inicializa el entorno e inyecta el contexto del proyecto.&lt;/li&gt;
&lt;li&gt;Entrada del usuario: inspeccionar indicaciones, agregar reglas y realizar auditorías&lt;/li&gt;
&lt;li&gt;Antes de las llamadas a la herramienta: comprobaciones de permisos, bloqueo de comandos y validación de seguridad.&lt;/li&gt;
&lt;li&gt;Después de las llamadas a la herramienta: registrar resultados, activar el formateo y ejecutar la verificación&lt;/li&gt;
&lt;li&gt;Finalización de tareas: resumir, limpiar, notificar o guardar estado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este diseño de ciclo de vida significa que no es necesario incluir todas las reglas en un mensaje muy largo.&lt;/p&gt;
&lt;p&gt;Por ejemplo, el control de permisos debe realizarse antes de las llamadas a la herramienta. Las comprobaciones de formato son mejores después de editar los archivos. La inyección de reglas del proyecto es mejor al inicio de la sesión o después de la entrada del usuario. Poner reglas en el punto de enlace correcto suele ser más confiable que meter todo en un indicador del sistema.&lt;/p&gt;
&lt;h2 id=&#34;dónde-vive-la-configuración&#34;&gt;Dónde vive la configuración
&lt;/h2&gt;&lt;p&gt;Los ganchos de Claude Code generalmente se configuran a través de archivos de configuración.&lt;/p&gt;
&lt;p&gt;Las ubicaciones comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configuración a nivel de usuario: &lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configuración a nivel de proyecto: &lt;code&gt;.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La configuración a nivel de usuario es buena para las preferencias personales, como reglas generales de seguridad, bloqueo de comandos y rutas de registro.&lt;/p&gt;
&lt;p&gt;La configuración a nivel de proyecto es mejor para reglas específicas del repositorio, como qué pruebas se deben ejecutar, qué directorios no se pueden editar, cómo se manejan los archivos generados y qué comprobaciones se requieren antes de la confirmación.
Si usa Claude Code en un equipo, es mejor colocar la configuración a nivel de proyecto en el repositorio. De esa manera, todos inician el proyecto con las mismas limitaciones de colaboración de IA en lugar de depender de la memoria personal.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-son-importantes-los-scripts-de-un-solo-archivo&#34;&gt;Por qué son importantes los scripts de un solo archivo
&lt;/h2&gt;&lt;p&gt;El proyecto enfatiza los scripts de un solo archivo &amp;ldquo;UV&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El beneficio es una implementación simple. Un único archivo Python puede declarar dependencias y ejecutarse sin mantener un entorno complejo para un enlace. Esto encaja bien con los ganchos porque muchos ganchos solo hacen una pequeña cosa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Comprobar si un comando está permitido&lt;/li&gt;
&lt;li&gt;Determinar si la ruta de un archivo es segura&lt;/li&gt;
&lt;li&gt;Leer las reglas del proyecto y devolvérselas a Claude.&lt;/li&gt;
&lt;li&gt;Escanear la salida en busca de información confidencial&lt;/li&gt;
&lt;li&gt;Ejecutar formateo o pruebas después de las ediciones.&lt;/li&gt;
&lt;li&gt;Escribir eventos en registros.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuanto más pequeño sea un script de enlace, más fácil será de mantener y es menos probable que se convierta en un sistema nuevo y complicado.&lt;/p&gt;
&lt;h2 id=&#34;qué-pueden-hacer-los-ganchos-con-la-automatización&#34;&gt;¿Qué pueden hacer los ganchos con la automatización?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;claude-code-hooks-mastery&lt;/code&gt; muestra muchas direcciones. En el trabajo real, los más comunes se encuentran a continuación.&lt;/p&gt;
&lt;h3 id=&#34;1-control-de-permisos-y-seguridad&#34;&gt;1. Control de permisos y seguridad
&lt;/h3&gt;&lt;p&gt;Este es el uso más directo de los ganchos.&lt;/p&gt;
&lt;p&gt;Antes de que Claude Code ejecute un comando, un gancho puede inspeccionar el contenido del comando. Si contiene acciones de alto riesgo, como eliminar, restablecer, limpiar o sobrescribir, puede bloquear la ejecución o requerir confirmación manual.&lt;/p&gt;
&lt;p&gt;Se pueden aplicar reglas similares a las rutas de archivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No modificar la configuración de producción.&lt;/li&gt;
&lt;li&gt;No escribir en archivos secretos&lt;/li&gt;
&lt;li&gt;No eliminar scripts de migración&lt;/li&gt;
&lt;li&gt;No tocar directorios específicos&lt;/li&gt;
&lt;li&gt;No ejecute comandos de red no aprobados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anteponer esta protección a las llamadas a herramientas es más confiable que escribir &amp;ldquo;no realizar operaciones peligrosas&amp;rdquo; en un mensaje.&lt;/p&gt;
&lt;h3 id=&#34;2-inyección-de-contexto&#34;&gt;2. Inyección de contexto
&lt;/h3&gt;&lt;p&gt;Muchos proyectos tienen información de fondo fija:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pila de tecnología&lt;/li&gt;
&lt;li&gt;Convenciones de codificación&lt;/li&gt;
&lt;li&gt;Comandos de prueba&lt;/li&gt;
&lt;li&gt;Estrategia de ramificación&lt;/li&gt;
&lt;li&gt;Estructura del directorio&lt;/li&gt;
&lt;li&gt;Acciones prohibidas&lt;/li&gt;
&lt;li&gt;Reglas para archivos generados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Decirle esto a Claude Code manualmente cada vez es molesto y fácil de olvidar. Los ganchos pueden inyectar automáticamente el contexto necesario al inicio de la sesión o después de que el usuario envía un mensaje.&lt;/p&gt;
&lt;p&gt;Esto es como darle a Claude Code un manual de trabajo a nivel de proyecto. No reemplaza el README ni la documentación de desarrollo, pero ayuda a la IA a ingresar al estado correcto antes de ejecutar una tarea.&lt;/p&gt;
&lt;h3 id=&#34;3-verificación-después-de-las-ediciones&#34;&gt;3. Verificación después de las ediciones
&lt;/h3&gt;&lt;p&gt;Después de que Claude Code modifica archivos, los ganchos pueden activar comprobaciones automáticamente.&lt;/p&gt;
&lt;p&gt;Las acciones comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar formateo&lt;/li&gt;
&lt;li&gt;Ejecutar pelusa&lt;/li&gt;
&lt;li&gt;Ejecutar pruebas unitarias.&lt;/li&gt;
&lt;li&gt;Verificar errores de tipo&lt;/li&gt;
&lt;li&gt;Escanear archivos generados&lt;/li&gt;
&lt;li&gt;Validar formato Markdown o JSON&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto ayuda a reducir los errores de bajo nivel. Cuando la IA edita varios archivos, una verificación ligera después de la modificación puede revelar problemas antes.&lt;/p&gt;
&lt;p&gt;Sin embargo, los ganchos no deberían ejecutar tareas pesadas de forma predeterminada. Ejecutar el conjunto de pruebas completo después de cada cambio de archivo puede ralentizar la experiencia. Un mejor enfoque es elegir comprobaciones según el tipo de archivo, el directorio y el riesgo de la tarea.&lt;/p&gt;
&lt;h3 id=&#34;4-validación-de-las-reglas-del-equipo&#34;&gt;4. Validación de las reglas del equipo
&lt;/h3&gt;&lt;p&gt;Si un equipo ya tiene convenciones claras, algunas de ellas pueden colocarse en ganchos.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirmar formato de mensaje&lt;/li&gt;
&lt;li&gt;Reglas de estilo de código&lt;/li&gt;
&lt;li&gt;No editar directamente ciertos archivos generados&lt;/li&gt;
&lt;li&gt;La documentación debe actualizarse en conjunto.&lt;/li&gt;
&lt;li&gt;Los cambios de API deben actualizar las pruebas.&lt;/li&gt;
&lt;li&gt;Ciertos directorios sólo pueden ser generados por herramientas específicas
Esto hace que Claude Code se parezca más a una parte del flujo de trabajo del equipo que a un asistente externo sin restricciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por supuesto, los ganchos no deberían reemplazar a la CI. Son mejores para recordatorios locales y bloqueo temprano. La validación final aún debe pertenecer a los sistemas de CI, revisión y prueba.&lt;/p&gt;
&lt;h3 id=&#34;5-subagentes-y-tareas-dedicadas&#34;&gt;5. Subagentes y tareas dedicadas
&lt;/h3&gt;&lt;p&gt;El archivo README también menciona contenido relacionado con subagentes.&lt;/p&gt;
&lt;p&gt;Este tipo de uso es adecuado para enviar tareas complejas a flujos de trabajo más especializados. Por ejemplo, la conversación principal puede comprender el requisito, mientras que un enlace o una configuración desencadenan tareas dedicadas de verificación, auditoría, resumen o documentación.&lt;/p&gt;
&lt;p&gt;Para los usuarios individuales, el primer paso útil no es la compleja orquestación de agentes. Es mejor entregar primero a los ganchos acciones repetitivas, claras y de bajo riesgo. Una vez que las reglas se estabilicen, puede producirse una automatización más compleja.&lt;/p&gt;
&lt;h2 id=&#34;línea-de-estado-y-estilos-de-salida&#34;&gt;Línea de estado y estilos de salida
&lt;/h2&gt;&lt;p&gt;El proyecto también cubre la línea de estado y los estilos de salida.&lt;/p&gt;
&lt;p&gt;Esto puede parecer un pequeño detalle de la experiencia, pero es importante para el uso a largo plazo del Código Claude. Una línea de estado puede mostrar el contexto actual, el estado de la tarea, información del entorno o sugerencias. Los estilos de salida pueden hacer que las respuestas de Claude Code se ajusten mejor a sus hábitos de trabajo.&lt;/p&gt;
&lt;p&gt;Si colaboras con IA en el mismo terminal todos los días, estos detalles afectan la eficiencia. Las buenas sugerencias de estado reducen los errores y le ayudan a determinar rápidamente si la sesión actual se encuentra en el proyecto, rama y entorno correctos.&lt;/p&gt;
&lt;h2 id=&#34;no-hagas-que-los-ganchos-sean-demasiado-pesados&#34;&gt;No hagas que los ganchos sean demasiado pesados
&lt;/h2&gt;&lt;p&gt;Los ganchos son poderosos, pero no son el lugar para poner todo.&lt;/p&gt;
&lt;p&gt;Las buenas reglas son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las acciones de alta frecuencia deben ser rápidas.&lt;/li&gt;
&lt;li&gt;El bloqueo de seguridad debe ser claro.&lt;/li&gt;
&lt;li&gt;La salida debe ser corta.&lt;/li&gt;
&lt;li&gt;Los motivos del fallo deben ser legibles.&lt;/li&gt;
&lt;li&gt;Los scripts deben tener una única responsabilidad.&lt;/li&gt;
&lt;li&gt;Las comprobaciones exhaustivas deben ser comandos explícitos o tareas de CI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si un enlace tarda más de diez segundos cada vez, los usuarios pronto querrán desactivarlo. Si un gancho tiene reglas de bloqueo vagas, tanto Claude Code como el usuario tendrán dificultades para entender qué hacer a continuación.&lt;/p&gt;
&lt;p&gt;Los ganchos son mejores para tareas con límites claros: permitir o rechazar, agregar contexto, registrar eventos, ejecutar comprobaciones ligeras y sugerir el siguiente paso.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-usarlo&#34;&gt;¿Quién debería usarlo?
&lt;/h2&gt;&lt;p&gt;Si solo ocasionalmente le pides a Claude Code que edite un pequeño fragmento de código, es posible que aún no necesites estudiar los ganchos en profundidad.&lt;/p&gt;
&lt;p&gt;Pero este proyecto es útil si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice Claude Code con frecuencia&lt;/li&gt;
&lt;li&gt;A menudo deja que la IA modifique el código del proyecto real.&lt;/li&gt;
&lt;li&gt;Preocupación por que la IA ejecute comandos peligrosos&lt;/li&gt;
&lt;li&gt;Quiere inyectar automáticamente reglas de equipo en los flujos de trabajo de IA&lt;/li&gt;
&lt;li&gt;Quiere que las comprobaciones se ejecuten automáticamente después de las ediciones&lt;/li&gt;
&lt;li&gt;Quiere convertir recordatorios repetidos en configuración&lt;/li&gt;
&lt;li&gt;Están creando un flujo de trabajo de codificación de IA más estable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los ganchos son especialmente significativos en proyectos colaborativos. Pueden convertir parte de la experiencia del equipo en guiones en lugar de depender de que cada persona se lo recuerde a la IA manualmente.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;Primero, comience con los ganchos de seguridad.&lt;/p&gt;
&lt;p&gt;En comparación con la automatización compleja, el bloqueo de comandos, la protección de rutas y las comprobaciones de archivos confidenciales son más fáciles de implementar y reducen el riesgo de inmediato.&lt;/p&gt;
&lt;p&gt;En segundo lugar, comprometa cuidadosamente las reglas a nivel de proyecto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.claude/settings.json&lt;/code&gt; afecta a todos los que usan el repositorio. Antes de comprometer reglas, asegúrese de que no restrinjan demasiado el desarrollo normal ni dependan de rutas que solo existen en su máquina.&lt;/p&gt;
&lt;p&gt;En tercer lugar, mantenga la salida del gancho concisa.
Claude Code consume esta salida. Si es demasiado largo, contamina el contexto. Si es demasiado vago, no guía el siguiente paso. Lo mejor es devolver sólo el juicio necesario y la siguiente recomendación.&lt;/p&gt;
&lt;p&gt;Cuarto, mantenga los ganchos depurables.&lt;/p&gt;
&lt;p&gt;Cuando los ganchos aumentan en número, los problemas pueden provenir de la configuración, los scripts, los permisos, las rutas, las dependencias o el propio Claude Code. Los registros claros facilitan mucho la depuración posterior.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/disler/claude-code-hooks-mastery&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;disler/claude-code-hooks-mastery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &amp;ldquo;Claude Code Hooks&amp;rdquo; es convertir &amp;ldquo;reglas que espero que la IA recuerde siempre&amp;rdquo; en flujos de trabajo que realmente se ejecutan.&lt;/p&gt;
&lt;p&gt;Si ya utiliza Claude Code en proyectos reales, los ganchos son un paso clave desde &amp;ldquo;un asistente de codificación que puede conversar&amp;rdquo; hasta &amp;ldquo;un colaborador de ingeniería limitado&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude-Mem: Agregar memoria a largo plazo entre sesiones al código Claude</title>
        <link>https://www.knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es un sistema de memoria persistente para &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Intenta resolver un problema muy específico: cada vez que un asistente de codificación de IA inicia una nueva sesión, a menudo olvida decisiones de arquitectura anteriores, obstáculos pasados, preferencias de proyecto y contexto de implementación.&lt;br&gt;
Si un proyecto dura mucho tiempo, explicar repetidamente los mismos antecedentes se convierte en una pérdida de tiempo.&lt;/p&gt;
&lt;p&gt;La idea detrás de &lt;code&gt;Claude-Mem&lt;/code&gt; es comprimir las conversaciones de Claude Code en recuerdos, almacenarlas en una base de datos local y en un almacén de vectores, y luego recuperarlas a través de una herramienta de búsqueda.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Claude Code es bueno en tareas de código, pero el contexto de la sesión aún es limitado.&lt;/p&gt;
&lt;p&gt;Los puntos débiles comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una nueva sesión no sabe lo que hicieron las sesiones anteriores.&lt;/li&gt;
&lt;li&gt;Las decisiones de diseño del proyecto deben explicarse repetidamente.&lt;/li&gt;
&lt;li&gt;Los problemas que ya fueron depurados son fáciles de repetir&lt;/li&gt;
&lt;li&gt;Las tareas de larga duración carecen de continuidad.&lt;/li&gt;
&lt;li&gt;El conocimiento del proyecto es difícil de acumular a través de conversaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; está diseñado en torno a estos problemas.&lt;/p&gt;
&lt;p&gt;No se trata simplemente de guardar registros de chat. En cambio, comprime las conversaciones en fragmentos de memoria que son más fáciles de recuperar. Cuando sea necesario más adelante, la búsqueda semántica puede recuperar el contexto relevante.&lt;/p&gt;
&lt;h2 id=&#34;cómo-funciona&#34;&gt;Cómo funciona
&lt;/h2&gt;&lt;p&gt;Según el diseño README, &amp;ldquo;Claude-Mem&amp;rdquo; consta principalmente de varias partes.&lt;/p&gt;
&lt;p&gt;La primera parte son los ganchos.&lt;/p&gt;
&lt;p&gt;Se integra con el flujo de sesión de Claude Code y captura datos de la conversación en el momento adecuado.&lt;/p&gt;
&lt;p&gt;La segunda parte es un trabajador en segundo plano.&lt;/p&gt;
&lt;p&gt;El trabajador procesa el contenido de la conversación en bruto y lo convierte en recuerdos más breves y fáciles de buscar.&lt;/p&gt;
&lt;p&gt;La tercera parte es el almacenamiento local.&lt;/p&gt;
&lt;p&gt;El proyecto utiliza &lt;code&gt;SQLite&lt;/code&gt; para metadatos estructurados y &lt;code&gt;Chroma&lt;/code&gt; para indexación de vectores. Esto preserva la información básica de la sesión al tiempo que admite la recuperación semántica.&lt;/p&gt;
&lt;p&gt;La cuarta parte es &amp;ldquo;mem-search&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Este es el punto de entrada de consulta para Claude Code. Cuando se necesita un contexto antiguo, se pueden buscar recuerdos relevantes a través de esta herramienta.&lt;/p&gt;
&lt;p&gt;El flujo general se puede entender así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Las sesiones de Claude Code generan contenido&lt;/li&gt;
&lt;li&gt;Los ganchos capturan datos de la sesión&lt;/li&gt;
&lt;li&gt;El trabajador lo comprime y organiza de forma asincrónica.&lt;/li&gt;
&lt;li&gt;Los recuerdos se escriben en SQLite y Chroma.&lt;/li&gt;
&lt;li&gt;Las sesiones posteriores los recuperan mediante &lt;code&gt;mem-search&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cuándo-es-útil&#34;&gt;¿Cuándo es útil?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es adecuado para proyectos de larga duración, no para tareas pequeñas y puntuales.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un repositorio se desarrolla durante muchos días.&lt;/li&gt;
&lt;li&gt;La estructura del código es compleja y tiene muchos antecedentes.&lt;/li&gt;
&lt;li&gt;Es necesario recordar las convenciones del proyecto, los hábitos de nomenclatura y las elecciones de arquitectura.&lt;/li&gt;
&lt;li&gt;Claude Code se utiliza a menudo para corregir errores, funciones y documentación.&lt;/li&gt;
&lt;li&gt;Quieres que la IA recuerde por qué se cambió algo antes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo le pide a Claude Code que haga un cambio de una línea, la memoria a largo plazo no es muy significativa.&lt;br&gt;
Pero si tratas a Claude Code como un colaborador a largo plazo, resulta útil.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-puesta-en-marcha&#34;&gt;Instalación y puesta en marcha
&lt;/h2&gt;&lt;p&gt;El README proporciona un flujo de instalación directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Empiece con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Verificar estado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Deténgalo cuando sea necesario:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El objetivo detrás de estos comandos es conectar el sistema de memoria como un servicio local de larga duración al flujo de trabajo de Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;cómo-utilizar-mem-search&#34;&gt;Cómo utilizar &lt;code&gt;mem-search&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; es el punto de entrada clave para recuperar la memoria.&lt;/p&gt;
&lt;p&gt;No pretende reemplazar la búsqueda ordinaria. Permite a Claude Code consultar conversaciones pasadas por significado.&lt;/p&gt;
&lt;p&gt;Por ejemplo, Claude Code puede buscar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué un módulo fue diseñado de cierta manera&lt;/li&gt;
&lt;li&gt;Cómo se depuró un error anteriormente&lt;/li&gt;
&lt;li&gt;Reglas de nomenclatura acordadas en el proyecto.&lt;/li&gt;
&lt;li&gt;Compensaciones técnicas discutidas anteriormente&lt;/li&gt;
&lt;li&gt;El trasfondo detrás de una refactorización.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es diferente de la simple búsqueda de palabras clave.&lt;br&gt;
Si la compresión de memoria y la indexación de vectores funcionan bien, puede recuperar contenido semánticamente relacionado incluso si no recuerda la redacción exacta.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-de-la-documentación-del-proyecto&#34;&gt;¿En qué se diferencia de la documentación del proyecto?
&lt;/h2&gt;&lt;p&gt;La documentación del proyecto es buena para sacar conclusiones estables.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de arquitectura&lt;/li&gt;
&lt;li&gt;Procedimientos de implementación&lt;/li&gt;
&lt;li&gt;Convenciones API&lt;/li&gt;
&lt;li&gt;Estructura de la base de datos&lt;/li&gt;
&lt;li&gt;Reglas de desarrollo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es mejor para el contexto creado durante las conversaciones.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué se rechazó un plan&lt;/li&gt;
&lt;li&gt;Cómo se solucionó un problema temporal&lt;/li&gt;
&lt;li&gt;La discusión detrás de una implementación.&lt;/li&gt;
&lt;li&gt;Las preferencias del proyecto aún no están escritas en los documentos.&lt;/li&gt;
&lt;li&gt;Antecedentes de tareas acumulados en múltiples conversaciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los dos no se reemplazan el uno al otro.&lt;br&gt;
Un buen flujo de trabajo es escribir conocimientos estables en los documentos del proyecto y utilizar el sistema de memoria para ayudar a recuperar el contexto conversacional.&lt;/p&gt;
&lt;h2 id=&#34;cosas-a-tener-en-cuenta&#34;&gt;Cosas a tener en cuenta
&lt;/h2&gt;&lt;p&gt;En primer lugar, una mayor memoria a largo plazo no siempre es mejor.&lt;/p&gt;
&lt;p&gt;Si cada conversación se guarda sin distinción, la recuperación posterior puede resultar ruidosa. Los recuerdos más valiosos son las decisiones del proyecto, los antecedentes de la implementación, el historial de depuración y las preferencias a largo plazo.&lt;/p&gt;
&lt;p&gt;En segundo lugar, la memoria no puede reemplazar el código y la documentación.&lt;/p&gt;
&lt;p&gt;El contexto antiguo encontrado por la IA es sólo una referencia. El juicio final aún depende del código actual, los resultados de las pruebas y los requisitos más recientes.&lt;/p&gt;
&lt;p&gt;En tercer lugar, preste atención a la privacidad y los datos locales.&lt;/p&gt;
&lt;p&gt;Dado que almacena el contenido de la conversación, debes saber qué proyectos son adecuados para él y qué información confidencial no debe entrar en la conversación.&lt;/p&gt;
&lt;p&gt;Cuarto, los sistemas de memoria necesitan mantenimiento.&lt;/p&gt;
&lt;p&gt;A medida que avanza un proyecto, los viejos recuerdos pueden quedar obsoletos. Si el contexto obsoleto se reutiliza incorrectamente, puede inducir a error en tareas posteriores.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-importante-este-tipo-de-herramienta&#34;&gt;Por qué es importante este tipo de herramienta
&lt;/h2&gt;&lt;p&gt;Las herramientas de codificación de IA están pasando de preguntas y respuestas únicas a una colaboración a largo plazo.&lt;/p&gt;
&lt;p&gt;En preguntas y respuestas únicas, el modelo solo necesita responder la pregunta actual.&lt;br&gt;
En una colaboración a largo plazo, es necesario conocer el historial del proyecto, las decisiones anteriores, las preferencias del equipo y los obstáculos que ya se han encontrado.&lt;/p&gt;
&lt;p&gt;Aquí es donde importan herramientas como &lt;code&gt;Claude-Mem&lt;/code&gt;: convierten el &amp;ldquo;recordar el contexto&amp;rdquo; de una capacidad de chat temporal en un sistema local que puede instalarse, ejecutarse y buscarse.&lt;/p&gt;
&lt;p&gt;Para proyectos de ingeniería reales, esto es más práctico que simplemente alargar la ventana de contexto del modelo.&lt;br&gt;
No es necesario contextualizar mucha información de una sola vez; es necesario recuperarlo en el momento adecuado.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-intentarlo&#34;&gt;¿Quién debería intentarlo?
&lt;/h2&gt;&lt;p&gt;Quizás quieras probarlo si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usas Claude Code con frecuencia&lt;/li&gt;
&lt;li&gt;A menudo trabajas en el mismo proyecto durante varios días.&lt;/li&gt;
&lt;li&gt;El contexto del proyecto es complejo.&lt;/li&gt;
&lt;li&gt;Explicas repetidamente los mismos antecedentes a la IA.&lt;/li&gt;
&lt;li&gt;Quieres preservar la experiencia de las conversaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo usas Claude Code ocasionalmente, o el proyecto es pequeño, es posible que aún no necesites este tipo de sistema.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El objetivo de &lt;code&gt;Claude-Mem&lt;/code&gt; no es &amp;ldquo;guardar registros de chat&amp;rdquo;. Ayuda a Claude Code a recuperar contexto útil en tareas posteriores.
A medida que la codificación de IA pase de tareas únicas a colaboraciones en proyectos de larga duración, los sistemas de memoria serán cada vez más importantes.&lt;br&gt;
No pueden reemplazar la documentación y las pruebas, pero pueden reducir las explicaciones repetidas y hacer que la IA se sienta más como un asistente que comprende el historial del proyecto.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Claude.md no es mejor cuando es más largo: cómo escribir archivos de memoria global para codificación AI</title>
        <link>https://www.knightli.com/es/2026/04/29/how-to-write-claude-md-for-ai-coding/</link>
        <pubDate>Wed, 29 Apr 2026 21:07:37 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/29/how-to-write-claude-md-for-ai-coding/</guid>
        <description>&lt;p&gt;Recientemente vi una discusión sobre archivos de memoria global para codificación de IA: después de que los proyectos agregan archivos como &lt;code&gt;Claude.md&lt;/code&gt; o &lt;code&gt;AGENTS.md&lt;/code&gt;, los resultados no necesariamente mejoran. En algunos casos, las tasas de éxito pueden incluso disminuir mientras que el costo del razonamiento aumenta.&lt;/p&gt;
&lt;p&gt;Al principio, esto parece contradictorio. Generalmente asumimos que si le damos a la IA más antecedentes del proyecto, más reglas y más explicaciones, debería escribir el código con mayor precisión.&lt;br&gt;
El verdadero problema es que &lt;code&gt;Claude.md&lt;/code&gt; no es un documento ordinario. Es un archivo de memoria global que se inyecta en el contexto de cada conversación. Cuanto más contiene, más tiene que leer el modelo cada vez; cuanto más vago sea, más juicio tendrá que hacer el modelo; y si contiene flujos de trabajo que no siempre deberían ejecutarse, el modelo puede desencadenar acciones innecesarias en tareas no relacionadas.&lt;/p&gt;
&lt;p&gt;Entonces, la parte difícil de escribir &lt;code&gt;Claude.md&lt;/code&gt; es no completarlo. Se trata de decidir qué piezas de información merecen ocupar contexto de forma permanente.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-claudemd&#34;&gt;¿Qué es Claude.md?
&lt;/h2&gt;&lt;p&gt;En las herramientas de codificación de IA, archivos como &lt;code&gt;Claude.md&lt;/code&gt; y &lt;code&gt;AGENTS.md&lt;/code&gt; son esencialmente archivos de memoria global.&lt;/p&gt;
&lt;p&gt;La conversación normal entra en el contexto, pero la longitud del contexto es limitada. Una vez que la conversación se vuelve larga, el contenido histórico se comprime y se pierden algunos detalles. Un archivo de memoria global fija reglas importantes para que el modelo pueda verlas al comienzo de cada tarea.&lt;/p&gt;
&lt;p&gt;Esto significa dos cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contenido escrito allí es más difícil de olvidar.&lt;/li&gt;
&lt;li&gt;El contenido escrito allí también cuesta algo en cada tarea.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es como un README que se lee sólo cuando es necesario. Se parece más a un conjunto de limitaciones laborales de larga duración. Una vez que algo se coloca allí, afecta el juicio del modelo por defecto.&lt;/p&gt;
&lt;p&gt;Por lo tanto, &lt;code&gt;Claude.md&lt;/code&gt; no es una introducción al proyecto, ni una colección de consejos, ni un lugar para deshacerse de cada proceso de desarrollo. Sólo debe almacenar reglas que el modelo probablemente viole repetidamente si no las conoce.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-puede-empeorar-las-cosas&#34;&gt;Por qué puede empeorar las cosas
&lt;/h2&gt;&lt;p&gt;Un archivo de memoria global mal escrito suele provocar tres tipos de problemas.&lt;/p&gt;
&lt;p&gt;Primero, consume contexto.&lt;/p&gt;
&lt;p&gt;Si &lt;code&gt;Claude.md&lt;/code&gt; tiene mil líneas, esas líneas permanecen en el contexto del modelo durante mucho tiempo. Es posible que se reduzcan el código, los mensajes de error y los requisitos que realmente son relevantes para la tarea actual. El contexto no es espacio libre. Cuanto más grande sea el archivo de reglas globales, más fácil será diluir la tarea actual.&lt;/p&gt;
&lt;p&gt;En segundo lugar, puede desencadenar comportamientos innecesarios.&lt;/p&gt;
&lt;p&gt;Por ejemplo, un archivo global podría decir:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Before every task, fully read the project directory.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;After every change, run a complete end-to-end test.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas líneas parecen responsables, pero en un archivo de memoria global se convierten en &amp;ldquo;hacer esto para cada tarea&amp;rdquo;. Incluso si la tarea consiste solo en cambiar una línea de copia, el modelo puede realizar exploraciones y pruebas innecesarias debido a estas reglas. El resultado es un trabajo más lento, un costo más alto y, a veces, más interferencia.&lt;/p&gt;
&lt;p&gt;En tercer lugar, aumenta la carga del juicio.&lt;/p&gt;
&lt;p&gt;Declaraciones como &amp;ldquo;mantener el código elegante, conciso, mantenible y extensible&amp;rdquo; suenan correctas, pero son restricciones débiles. Cada vez que el modelo genera código, tiene que decidir qué significa elegante o extensible, sin recibir un límite claro.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es escribir prohibiciones o contraejemplos concretos en lugar de virtudes abstractas. Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not add a generic abstraction for a single call site.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not change shared parsing logic without test coverage.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not put temporary scripts in the application source directory.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas reglas son más específicas y más fáciles de seguir.&lt;/p&gt;
&lt;h2 id=&#34;qué-debería-entrar&#34;&gt;¿Qué debería entrar?
&lt;/h2&gt;&lt;p&gt;Puedes usar un estándar simple para decidir si algo pertenece a &lt;code&gt;Claude.md&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;Si la IA comete repetidamente el mismo error sin ella, entonces vale la pena anotarlo.&lt;/p&gt;
&lt;p&gt;El contenido adecuado para un archivo de memoria global suele tener estas características:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es duradero&lt;/li&gt;
&lt;li&gt;Está fuertemente ligado al repositorio actual.&lt;/li&gt;
&lt;li&gt;No se puede inferir naturalmente de la estructura del código.&lt;/li&gt;
&lt;li&gt;Cambia claramente el comportamiento del modelo.&lt;/li&gt;
&lt;li&gt;Es preferiblemente una restricción, prohibición, regla de ruta o comando fijo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;For all Hugo posts, only edit index.zh-cn.md and do not automatically generate other language versions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Article front matter must include title/date/draft/tags/categories/slug/description.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not modify generated artifacts under public/.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;On PowerShell, use scripts/deploy.ps1 for deployment.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas no son sugerencias vagas. Están vinculados a cómo funciona realmente el repositorio. Si el modelo no los conoce puede cometer errores; una vez que los conoce, puede evitar verdaderos errores.&lt;/p&gt;
&lt;h2 id=&#34;qué-debería-quedar-fuera&#34;&gt;¿Qué debería quedar fuera?
&lt;/h2&gt;&lt;p&gt;Mucha gente convierte &lt;code&gt;Claude.md&lt;/code&gt; en un manual de proyecto. Esto suele ser innecesario.&lt;/p&gt;
&lt;p&gt;El contenido que generalmente no pertenece allí incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visión y antecedentes del proyecto.&lt;/li&gt;
&lt;li&gt;Descripciones de estructuras de directorios grandes.&lt;/li&gt;
&lt;li&gt;Planes de tareas temporales&lt;/li&gt;
&lt;li&gt;Pasos únicos de depuración&lt;/li&gt;
&lt;li&gt;Lemas de calidad de código abstracto.&lt;/li&gt;
&lt;li&gt;Flujos de trabajo largos que solo son necesarios en algunas situaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, una descripción como &amp;ldquo;este es un proyecto de comercio electrónico con módulos de producto, pedido y usuario&amp;rdquo; ayuda muy poco con una tarea de codificación concreta. Durante el desarrollo real, el modelo debe depender de los requisitos, especificaciones, estructura del código y pruebas actuales, no de una introducción aproximada del proyecto en la memoria global.&lt;/p&gt;
&lt;p&gt;Lo mismo se aplica a la estructura de directorios. A menos que un directorio tenga una convención especial, como &amp;ldquo;los componentes compartidos deben importarse desde este directorio&amp;rdquo;, no es necesario escribir el árbol completo en el archivo. El modelo puede leer el directorio del proyecto. Es fácil que una descripción de directorio estática quede obsoleta.&lt;/p&gt;
&lt;h2 id=&#34;los-flujos-de-trabajo-pertenecen-a-habilidades-o-comandos&#34;&gt;Los flujos de trabajo pertenecen a habilidades o comandos
&lt;/h2&gt;&lt;p&gt;Si una sección dice &amp;ldquo;primero haz esto, luego aquello y luego haz la tercera cosa&amp;rdquo;, es posible que no pertenezca a &lt;code&gt;Claude.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Los flujos de trabajo de larga duración se pueden convertir en habilidades, scripts o comandos. El beneficio es que la memoria global solo necesita conservar el nombre y la condición de activación, mientras que los pasos detallados se cargan solo cuando es necesario.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When the user asks to translate a Hugo post, use the post-translate skill.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When the user asks to deploy the site, run the hugo-rsync-deploy workflow.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto es más liviano que poner los procesos completos de traducción e implementación en &lt;code&gt;Claude.md&lt;/code&gt;. La memoria global sigue siendo corta y los flujos de trabajo detallados se encuentran en herramientas activables.&lt;/p&gt;
&lt;p&gt;El nuevo flujo de inicialización de Claude también avanza en esta dirección. No solo genera un &lt;code&gt;Claude.md&lt;/code&gt;; también intenta dividir los flujos de trabajo reutilizables en habilidades y los eventos fijos en ganchos. La idea subyacente es clara: la memoria global debería ser un punto de entrada, mientras que los detalles deberían cargarse según demanda.&lt;/p&gt;
&lt;h2 id=&#34;claudemd-necesita-iteración&#34;&gt;Claude.md necesita iteración
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude.md&lt;/code&gt; no debe escribirse una vez y luego ignorarse.&lt;/p&gt;
&lt;p&gt;Un mejor enfoque es ser breve al principio y dejar que las tareas reales expongan los problemas. Si ocurre un error una vez, manéjelo manualmente. Si el mismo tipo de error aparece dos o más veces, puede merecer convertirse en una regla global.&lt;/p&gt;
&lt;p&gt;Este tipo de iteración es más útil que escribir un enorme conjunto de reglas al principio. Al principio, no sabes qué reglas son realmente útiles o qué líneas se convertirán en ruido. A medida que el proyecto crece, la colaboración aumenta y el comportamiento del modelo se vuelve más claro, puede agregar gradualmente problemas de alta frecuencia.&lt;/p&gt;
&lt;p&gt;También hay una tendencia importante: cuanto más fuerte sea el modelo, más corto debería ser el archivo de memoria global.
Muchos requisitos que alguna vez tuvieron que escribirse en indicaciones ahora son manejados naturalmente por el modelo. Continuar poniendo esos requisitos básicos en &lt;code&gt;Claude.md&lt;/code&gt; solo aumenta la carga de contexto. La memoria global debería reducirse a medida que mejora la capacidad del modelo, manteniendo solo lo que es exclusivo de este repositorio y no se puede inferir automáticamente.&lt;/p&gt;
&lt;h2 id=&#34;una-forma-más-práctica-de-escribirlo&#34;&gt;Una forma más práctica de escribirlo
&lt;/h2&gt;&lt;p&gt;Al escribir &lt;code&gt;Claude.md&lt;/code&gt;, piense en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Qué convenciones especiales tiene este repositorio?&lt;/li&gt;
&lt;li&gt;¿Qué errores ha cometido el modelo más de una vez?&lt;/li&gt;
&lt;li&gt;¿Qué directorios, archivos o comandos nunca deben usarse indebidamente?&lt;/li&gt;
&lt;li&gt;¿Qué flujos de trabajo deberían convertirse en habilidades, guiones o comandos en lugar de un contexto permanente?&lt;/li&gt;
&lt;li&gt;¿Qué partes son meras introducciones y pueden eliminarse?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El archivo final puede tener sólo unas pocas docenas de líneas. No es necesario explicar completamente el proyecto. Necesita limitar el comportamiento con precisión.&lt;/p&gt;
&lt;p&gt;Un buen &lt;code&gt;Claude.md&lt;/code&gt; podría verse así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Working Rules
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Only edit files related to the current task.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Do not modify generated artifact directories such as public/ or resources/.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- Hugo post rewrites only process index.zh-cn.md and do not generate other language versions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- If deployment is involved, run the Hugo build first, then execute the existing rsync script.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- When there are existing user changes, do not revert them. Continue from the current state.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es breve, pero cada línea afecta el comportamiento real. Ese es el tipo de contenido que vale la pena mantener en contexto permanentemente.&lt;/p&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El valor de &lt;code&gt;Claude.md&lt;/code&gt; no es hacer que la IA &amp;ldquo;sepa más&amp;rdquo;. Se trata de hacer que la IA &amp;ldquo;evite errores corregidos&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;No es una base de conocimientos ni una enciclopedia de proyectos. Es un archivo de restricciones de larga duración para la codificación AI.&lt;br&gt;
Cuanto más específico, breve y cercano a los errores reales sea, más útil será. Cuanto más genérica, más larga y más parecida a una introducción de proyecto sea, más probable será que ralentice el modelo o incluso empeore los resultados.&lt;/p&gt;
&lt;p&gt;Trate la memoria global como un recurso escaso, no como un bloc de notas ilimitado. Ese puede ser el principio más importante para escribir un buen &lt;code&gt;Claude.md&lt;/code&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex está empezando a controlar la computadora. ¿Qué significa eso para el futuro?</title>
        <link>https://www.knightli.com/es/2026/04/29/codex-computer-use-update/</link>
        <pubDate>Wed, 29 Apr 2026 11:28:25 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/29/codex-computer-use-update/</guid>
        <description>&lt;p&gt;La parte más importante de esta actualización del Codex no es que agregó otro botón común y corriente. Es que el Codex está empezando a avanzar hacia &amp;ldquo;controlar la computadora&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En el pasado, usar IA generalmente significaba hacer preguntas en un cuadro de chat, copiar, pegar y luego operar manualmente el software.&lt;br&gt;
Ahora ese límite se está ampliando: la IA no solo te responde. Puede operar aplicaciones de escritorio según su objetivo.&lt;/p&gt;
&lt;p&gt;A corto plazo, esta es una característica nueva. A largo plazo, puede cambiar la cantidad de personas que usan computadoras.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-esta-característica&#34;&gt;¿Qué es esta característica?
&lt;/h2&gt;&lt;p&gt;En pocas palabras, la capacidad de uso de computadoras de Codex le permite acceder y operar el entorno de escritorio.&lt;/p&gt;
&lt;p&gt;Puede hacer cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seleccionar y controlar una aplicación&lt;/li&gt;
&lt;li&gt;recibir tareas en lenguaje natural&lt;/li&gt;
&lt;li&gt;abrir navegadores, herramientas de inteligencia artificial, archivos locales u otro software&lt;/li&gt;
&lt;li&gt;ingrese texto, haga clic en botones y espere resultados&lt;/li&gt;
&lt;li&gt;conectar varios pasos en una tarea&lt;/li&gt;
&lt;li&gt;seguir ejecutándose en segundo plano sin necesidad de que el usuario siga cada paso manualmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su función no es solo escribir un texto para usted, sino también completar un flujo de operación para usted.&lt;/p&gt;
&lt;p&gt;Esa es la diferencia clave entre un Agente y un chatbot común y corriente:&lt;br&gt;
un chatbot da principalmente respuestas; un Agente está más cerca de &amp;ldquo;recibir un objetivo y luego ejecutarlo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-esto-es-importante&#34;&gt;Por qué esto es importante
&lt;/h2&gt;&lt;p&gt;En el pasado, gran parte de la automatización requería que supieras escribir guiones.&lt;/p&gt;
&lt;p&gt;Por ejemplo, supongamos que desea completar un flujo de trabajo entre software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;abrir una página web&lt;/li&gt;
&lt;li&gt;encontrar información&lt;/li&gt;
&lt;li&gt;copiar contenido&lt;/li&gt;
&lt;li&gt;pásalo a otra herramienta de IA&lt;/li&gt;
&lt;li&gt;guardar un archivo&lt;/li&gt;
&lt;li&gt;abre el directorio local y comprueba el resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para automatizar esto de forma tradicional, es posible que necesite scripts de navegador, API, programas locales e incluso automatización de ventanas.&lt;/p&gt;
&lt;p&gt;Pero muchos usuarios comunes y corrientes no saben cómo escribir estas cosas.&lt;br&gt;
Incluso si lo hacen, puede que no valga la pena escribir un guión para una tarea temporal.&lt;/p&gt;
&lt;p&gt;Aquí es donde importa el uso de la computadora: empuja la &amp;ldquo;capacidad similar a un script&amp;rdquo; hacia el lenguaje natural.&lt;/p&gt;
&lt;p&gt;No es necesario que le diga exactamente dónde hacer clic.&lt;br&gt;
Puede decirle qué resultado desea y dejar que intente completar la tarea.&lt;/p&gt;
&lt;h2 id=&#34;flujos-de-trabajo-que-pueden-cambiar&#34;&gt;Flujos de trabajo que pueden cambiar
&lt;/h2&gt;&lt;p&gt;Creo que los primeros flujos de trabajo que cambiarán no serán trabajos extremadamente serios o de alto riesgo, sino tareas molestas, fragmentadas, repetitivas y para las que no vale la pena escribir un programa dedicado.&lt;/p&gt;
&lt;h3 id=&#34;1-mover-información-a-través-del-software&#34;&gt;1. Mover información a través del software
&lt;/h3&gt;&lt;p&gt;El caso más típico es el de mover información entre aplicaciones.&lt;/p&gt;
&lt;p&gt;Anteriormente, podía alternar entre un navegador, un documento, una ventana de chat y una carpeta local.&lt;br&gt;
En el futuro, podrás encargar este tipo de tarea a un Agente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;encontrar cierto tipo de información&lt;/li&gt;
&lt;li&gt;resumirlo en un documento&lt;/li&gt;
&lt;li&gt;guárdelo en un directorio específico&lt;/li&gt;
&lt;li&gt;abre el resultado para que lo revises&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este trabajo no es difícil, pero requiere atención.&lt;br&gt;
El valor de un Agente es que absorbe estas pequeñas operaciones.&lt;/p&gt;
&lt;h3 id=&#34;2-coordinación-entre-múltiples-herramientas-de-ia&#34;&gt;2. Coordinación entre múltiples herramientas de IA
&lt;/h3&gt;&lt;p&gt;El flujo de trabajo real de muchas personas ya no se basa en una única herramienta de inteligencia artificial.&lt;/p&gt;
&lt;p&gt;Puede verse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una herramienta escribe código&lt;/li&gt;
&lt;li&gt;una herramienta busca información&lt;/li&gt;
&lt;li&gt;una herramienta genera imágenes&lt;/li&gt;
&lt;li&gt;una herramienta organiza documentos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anteriormente, estas herramientas se conectaban mediante copiar y pegar manualmente.&lt;br&gt;
En el futuro, un Agente puede convertirse en la capa intermedia: abre herramientas, pasa contexto, espera resultados y organiza resultados.
Esto puede convertir &amp;ldquo;múltiples herramientas de IA trabajando juntas&amp;rdquo; de un proceso manual a un proceso semiautomático.&lt;/p&gt;
&lt;h3 id=&#34;3-automatización-del-software-de-oficina&#34;&gt;3. Automatización del software de oficina
&lt;/h3&gt;&lt;p&gt;Las hojas de cálculo, las presentaciones, los documentos y el correo electrónico comparten una característica: son potentes, pero muchas operaciones están fragmentadas.&lt;/p&gt;
&lt;p&gt;Si los agentes pueden controlar este software de forma fiable, la barrera a la automatización de oficinas disminuirá notablemente.&lt;/p&gt;
&lt;p&gt;No es necesario recordar dónde está un menú ni aprender atajos complicados.&lt;br&gt;
Solo necesitas describir el objetivo, como por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convierta esta hoja de cálculo en un informe mensual&lt;/li&gt;
&lt;li&gt;hacer un resumen de una página de este documento&lt;/li&gt;
&lt;li&gt;combinar estos materiales en una explicación claramente estructurada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las tediosas operaciones de los botones quedarán gradualmente ocultas detrás del lenguaje natural.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-los-usuarios-comunes&#34;&gt;Qué significa para los usuarios comunes
&lt;/h2&gt;&lt;p&gt;Para los usuarios comunes, este tipo de característica puede tener un impacto más directo que &amp;ldquo;el modelo se volvió un poco más inteligente&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Porque reduce la barrera operativa, no sólo la barrera del conocimiento.&lt;/p&gt;
&lt;p&gt;Muchas personas pueden describir lo que quieren, pero no saben dónde hacer clic o cómo combinar funciones dentro del software.&lt;br&gt;
Si los Agentes pueden hacerse cargo de esta parte, el uso de una computadora puede convertirse en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I describe the goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent operates the software
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I check the result
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto está más cerca de la productividad real que un simple chat.&lt;/p&gt;
&lt;h2 id=&#34;su-impacto-en-el-software&#34;&gt;Su impacto en el software
&lt;/h2&gt;&lt;p&gt;Si este tipo de capacidad del Agente continúa madurando, el software en sí también se verá afectado.&lt;/p&gt;
&lt;p&gt;En el pasado, el diseño de software se basaba principalmente en el clic humano.&lt;br&gt;
En el futuro, es posible que también sea necesario que el software sirva para la operación del Agente.&lt;/p&gt;
&lt;p&gt;Esto significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;los elementos de la interfaz deben ser más claros&lt;/li&gt;
&lt;li&gt;la retroalimentación de operación debe ser más estable&lt;/li&gt;
&lt;li&gt;los permisos locales deben ser más granulares&lt;/li&gt;
&lt;li&gt;el software puede proporcionar interfaces más adecuadas para las llamadas de los agentes&lt;/li&gt;
&lt;li&gt;A los usuarios les puede interesar más si la IA puede operar el software sin problemas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A largo plazo, los límites entre las aplicaciones pueden volverse más delgados.&lt;br&gt;
Es posible que a los usuarios les importe menos &amp;ldquo;qué aplicación debo abrir&amp;rdquo; y más &amp;ldquo;qué tarea quiero completar&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;no-lo-exageres-todavía&#34;&gt;No lo exageres todavía
&lt;/h2&gt;&lt;p&gt;Por supuesto, todavía no es momento de dejarlo ir por completo.&lt;/p&gt;
&lt;p&gt;Este tipo de capacidad todavía tiene varias limitaciones claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la estabilidad aún necesita observación&lt;/li&gt;
&lt;li&gt;las tareas complejas pueden fallar en el medio&lt;/li&gt;
&lt;li&gt;los límites de los permisos deben manejarse con cuidado&lt;/li&gt;
&lt;li&gt;Las operaciones de eliminación de cuentas, pagos y archivos no deben delegarse a la ligera.&lt;/li&gt;
&lt;li&gt;el consumo de cuotas no es algo que puedas ignorar por completo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en esta etapa, el mejor caso de uso es no dejar que se haga cargo de toda la computadora, sino permitir que maneje tareas de bajo riesgo, revisables y con muchos pasos.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;organización de materiales&lt;/li&gt;
&lt;li&gt;generar borradores&lt;/li&gt;
&lt;li&gt;mover contenido entre herramientas&lt;/li&gt;
&lt;li&gt;abrir y comprobar archivos&lt;/li&gt;
&lt;li&gt;ejecutar flujos de trabajo semiautomáticos que pueden ser revisados por un humano&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La verdadera importancia de esta actualización del Codex es que empuja a la IA de &amp;ldquo;responder preguntas&amp;rdquo; a &amp;ldquo;operar el entorno&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A corto plazo, es una característica del uso de la computadora.&lt;br&gt;
A largo plazo, puede marcar un cambio en la forma en que se utilizan las computadoras personales.&lt;/p&gt;
&lt;p&gt;En el futuro, es posible que dediquemos menos tiempo a recordar botones, buscar menús y cambiar de ventana.&lt;br&gt;
Más a menudo, describiremos el objetivo, dejaremos que un Agente lo ejecute y luego dejaremos que los humanos tomen el juicio final.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Por qué existe una habilidad del Codex en el directorio pero aún no aparece?</title>
        <link>https://www.knightli.com/es/2026/04/29/codex-skill-not-loaded-because-of-utf-8-bom/</link>
        <pubDate>Wed, 29 Apr 2026 11:18:00 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/29/codex-skill-not-loaded-because-of-utf-8-bom/</guid>
        <description>&lt;p&gt;Este problema era fácil de pasar por alto: varias habilidades ya estaban ubicadas en &lt;code&gt;~/.codex/skills&lt;/code&gt;, pero después de abrir un nuevo hilo del Codex, la barra lateral todavía mostraba solo un pequeño subconjunto de ellas.&lt;/p&gt;
&lt;p&gt;Al principio, parecía un problema de caché o de indexación. La causa real fue más específica: varios archivos &lt;code&gt;SKILL.md&lt;/code&gt; comenzaron con una lista de materiales UTF-8. El cargador de habilidades de Codex 0.111.0 no omitió esa secuencia de bytes, por lo que calculó erróneamente que los archivos no tenían contenido YAML válido.&lt;/p&gt;
&lt;h2 id=&#34;síntoma&#34;&gt;Síntoma
&lt;/h2&gt;&lt;p&gt;El directorio local contenía estas habilidades:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/git-commit-push/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/hugo-rsync-deploy/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/bilibili-speech-transcriber/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/product-cutout-normalize/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pero después de abrir un hilo nuevo, las habilidades realmente expuestas fueron solo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bilibili-speech-transcriber
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En otras palabras, un archivo existente en el disco no significa que la sesión actual pueda cargarlo correctamente. Codex analiza primero la portada de cada &lt;code&gt;SKILL.md&lt;/code&gt;. Si el análisis falla, esa habilidad se excluye directamente.&lt;/p&gt;
&lt;h2 id=&#34;investigación&#34;&gt;Investigación
&lt;/h2&gt;&lt;p&gt;Iniciar una nueva sesión con &lt;code&gt;codex exec&lt;/code&gt; mostró un error más directo. En VS Code u otros IDE, es posible que estos registros no sean visibles:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;failed to load skill C:\Users\knightli\.codex\skills\git-commit-push\SKILL.md: missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;failed to load skill C:\Users\knightli\.codex\skills\hugo-rsync-deploy\SKILL.md: missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Visualmente, estos archivos parecían tener un encabezado normal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: post-rewrite
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El verdadero problema estaba en el nivel de bytes.&lt;/p&gt;
&lt;p&gt;El comienzo de un archivo fallido fue:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EF-BB-BF-2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El comienzo de un archivo que se cargó correctamente fue:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;2D-2D-2D&lt;/code&gt; es &lt;code&gt;---&lt;/code&gt;. El &lt;code&gt;EF-BB-BF&lt;/code&gt; anterior es la lista de materiales UTF-8.&lt;/p&gt;
&lt;h2 id=&#34;causa&#34;&gt;Causa
&lt;/h2&gt;&lt;p&gt;En Codex 0.111.0, el cargador de habilidades espera que el primer byte de &lt;code&gt;SKILL.md&lt;/code&gt; sea el primer &lt;code&gt;-&lt;/code&gt; en &lt;code&gt;---&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si el archivo comienza con una lista de materiales UTF-8, el comienzo real será:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BOM + ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Entonces, el cargador piensa que el archivo no comienza con el delimitador inicial e informa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;missing YAML frontmatter delimited by ---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El contenido de la habilidad no era incorrecto y el directorio tampoco era incorrecto. Un pequeño detalle de codificación impidió que el analizador reconociera el archivo.&lt;/p&gt;
&lt;h2 id=&#34;arreglar&#34;&gt;Arreglar
&lt;/h2&gt;&lt;p&gt;Convierta los archivos &lt;code&gt;SKILL.md&lt;/code&gt; afectados a UTF-8 sin BOM.&lt;/p&gt;
&lt;p&gt;En PowerShell, esto se puede hacer así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$paths&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s1&#34;&gt;&amp;#39;C:\Users\knightli\.codex\skills\git-commit-push\SKILL.md&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s1&#34;&gt;&amp;#39;C:\Users\knightli\.codex\skills\hugo-rsync-deploy\SKILL.md&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$utf8NoBom&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;New-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;UTF8Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;$false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;IO.File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ReadAllText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;Text.Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UTF8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;IO.File&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteAllText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$utf8NoBom&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después del procesamiento, el encabezado del archivo debería cambiar de:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EF-BB-BF-2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2D-2D-2D
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;verificación&#34;&gt;Verificación
&lt;/h2&gt;&lt;p&gt;Después de reiniciar una sesión del Codex, las habilidades visibles se restauraron en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo-rsync-deploy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bilibili-speech-transcriber
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;product-cutout-normalize
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la barra lateral todavía muestra la lista anterior, cierre la barra lateral o ventana actual del Codex y vuelva a abrir el proyecto. La lista de habilidades generalmente se carga cuando comienza la sesión, por lo que es posible que los cambios realizados en mitad de una sesión no se actualicen inmediatamente.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;Este tipo de problema es fácil de confundir con &amp;ldquo;El Codex no se volvió a indexar&amp;rdquo; o &amp;ldquo;la habilidad no se instaló correctamente&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Al solucionar problemas, verifique primero estas tres cosas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si &lt;code&gt;SKILL.md&lt;/code&gt; está realmente en el directorio correcto&lt;/li&gt;
&lt;li&gt;si el archivo tiene un texto inicial &lt;code&gt;---&lt;/code&gt; válido en la parte superior&lt;/li&gt;
&lt;li&gt;si el archivo es UTF-8 sin BOM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave en este caso fue el tercer punto: el archivo se veía bien, pero su primer byte no era &amp;ldquo;-&amp;rdquo;, por lo que Codex no lo trató como una habilidad válida.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Cuál es la diferencia entre ~/.codex/skills y Project .codex/skills en Codex?</title>
        <link>https://www.knightli.com/es/2026/04/29/difference-between-global-and-project-codex-skills/</link>
        <pubDate>Wed, 29 Apr 2026 11:08:00 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/29/difference-between-global-and-project-codex-skills/</guid>
        <description>&lt;p&gt;Al organizar las habilidades del Codex, la gente suele quedarse estancada en dos preguntas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Cuál es la diferencia entre &lt;code&gt;~/.codex/skills&lt;/code&gt; y &lt;code&gt;project/.codex/skills&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿Por qué existe una habilidad en el directorio pero no aparece en la sesión actual?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquí está la versión corta.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia&#34;&gt;La diferencia
&lt;/h2&gt;&lt;p&gt;La forma más sencilla de recordarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; es tu biblioteca de habilidades global&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project/.codex/skills&lt;/code&gt; es la biblioteca de habilidades local para ese repositorio&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;codexskills&#34;&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Úselo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Habilidades que reutilizas personalmente en todos los proyectos.&lt;/li&gt;
&lt;li&gt;flujos de trabajo generales que no están vinculados a un repositorio específico&lt;/li&gt;
&lt;li&gt;flujos de trabajo que claramente pertenecen a sus propios hábitos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;post-reescritura&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-traducir&lt;/code&gt;
-&lt;code&gt;git-commit-push&lt;/code&gt;
-&lt;code&gt;hugo-rsync-deploy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bilibili-transcriptor-de-voz&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El rasgo clave de este tipo de habilidad es: &lt;strong&gt;todavía tiene sentido fuera del proyecto actual.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;proyectocodexskills&#34;&gt;&lt;code&gt;proyecto/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Úselo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;flujos de trabajo que solo se aplican a este repositorio&lt;/li&gt;
&lt;li&gt;reglas estrechamente acopladas a la estructura, scripts o plantillas del proyecto actual&lt;/li&gt;
&lt;li&gt;Habilidades que deben ser compartidas por el equipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un flujo de trabajo de publicación específico para este repositorio&lt;/li&gt;
&lt;li&gt;una plantilla de generación que solo funciona en este proyecto&lt;/li&gt;
&lt;li&gt;pasos de automatización estrechamente vinculados a scripts de proyectos privados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El rasgo clave de este tipo de habilidad es: &lt;strong&gt;deja de ser significativo una vez que sale de este repositorio.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;cuándo-utilizar-habilidades-globales-y-cuándo-utilizar-habilidades-de-proyecto&#34;&gt;Cuándo utilizar habilidades globales y cuándo utilizar habilidades de proyecto
&lt;/h2&gt;&lt;p&gt;Esta regla general es suficiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si se trata de tus hábitos personales, ponlo en &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si se trata de reglas del repositorio, colóquelo en &lt;code&gt;project/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si se puede reutilizar en todos los proyectos, prefiera global&lt;/li&gt;
&lt;li&gt;Si debe ser compartido por varias personas y evolucionar con el repositorio, prefiera el nivel de proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;el-repositorio-actual&#34;&gt;El repositorio actual
&lt;/h2&gt;&lt;p&gt;Basado en el estado actual:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;su máquina tiene &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;este repositorio no tiene &lt;code&gt;.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que ahora mismo dependes principalmente de las habilidades globales.&lt;/p&gt;
&lt;p&gt;Eso significa que flujos de trabajo como &amp;ldquo;post-reescritura&amp;rdquo;, &amp;ldquo;post-traducción&amp;rdquo; y &amp;ldquo;git-commit-push&amp;rdquo; son actualmente más bien parte de su flujo de trabajo personal, no algo incluido explícitamente con este repositorio.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-existe-una-habilidad-en-el-disco-pero-puede-no-aparecer-en-la-sesión-actual&#34;&gt;Por qué existe una habilidad en el disco pero puede no aparecer en la sesión actual
&lt;/h2&gt;&lt;p&gt;Hay dos cosas diferentes aquí:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Existente en el disco&lt;/strong&gt;: el archivo de habilidad existe en un directorio local&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expuesto a la sesión&lt;/strong&gt;: la sesión actual lo registró en la lista de habilidades disponibles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos no son lo mismo.&lt;/p&gt;
&lt;p&gt;Entonces esto puede suceder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ya existe una habilidad en &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;pero no aparece en la lista después de &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo general, esto no significa que la habilidad esté rota. Más a menudo significa: &lt;strong&gt;la sesión actual no la ha vuelto a indexar.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;cómo-hacer-que-una-habilidad-esté-disponible-en-la-sesión-actual&#34;&gt;Cómo hacer que una habilidad esté disponible en la sesión actual
&lt;/h2&gt;&lt;p&gt;La lista de verificación práctica es breve.&lt;/p&gt;
&lt;h3 id=&#34;1-colóquelo-en-el-directorio-correcto&#34;&gt;1. Colóquelo en el directorio correcto
&lt;/h3&gt;&lt;p&gt;Mundiales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Nivel de proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;project/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-haga-que-el-encabezado-skillmd-sea-reconocible&#34;&gt;2. Haga que el encabezado &lt;code&gt;SKILL.md&lt;/code&gt; sea reconocible
&lt;/h3&gt;&lt;p&gt;Como mínimo, necesita:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: your-skill-name
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: What this skill does
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-abra-una-nueva-sesión-después-de-crearla-o-editarla&#34;&gt;3. Abra una nueva sesión después de crearla o editarla
&lt;/h3&gt;&lt;p&gt;En muchos casos, una habilidad no aparece porque la sesión actual ya fijó su lista de habilidades disponibles cuando comenzó.&lt;/p&gt;
&lt;p&gt;Entonces, si crea una habilidad en medio de una sesión, es posible que ya exista en el disco, pero es posible que esta sesión no la reconozca.&lt;/p&gt;
&lt;p&gt;El flujo de trabajo más confiable es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ponga en práctica la habilidad&lt;/li&gt;
&lt;li&gt;Finalizar la sesión actual&lt;/li&gt;
&lt;li&gt;Vuelva a ingresar al proyecto.&lt;/li&gt;
&lt;li&gt;Abre una nueva sesión&lt;/li&gt;
&lt;li&gt;Compruebe si aparece debajo de &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;4-implemente-las-habilidades-para-el-proyecto-antes-de-comenzar&#34;&gt;4. Implemente las habilidades para el proyecto antes de comenzar
&lt;/h3&gt;&lt;p&gt;Si desea que &lt;code&gt;project/.codex/skills&lt;/code&gt; se reconozca de manera más confiable, coloque esas habilidades en el proyecto antes de ingresar al repositorio e iniciar la sesión.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La conclusión más corta es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; es tu biblioteca de habilidades personales&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project/.codex/skills&lt;/code&gt; es la biblioteca de reglas local del repositorio&lt;/li&gt;
&lt;li&gt;una habilidad existente en el directorio no significa que la sesión actual siempre la mostrará&lt;/li&gt;
&lt;li&gt;la solución más común es colocarlo en el directorio correcto, escribir un &lt;code&gt;SKILL.md&lt;/code&gt; válido y luego iniciar una nueva sesión&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ralph y la colaboración entre múltiples agentes: cómo mantener la IA funcionando de manera confiable durante tareas largas</title>
        <link>https://www.knightli.com/es/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</link>
        <pubDate>Mon, 27 Apr 2026 08:19:02 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/27/ralph-multi-agent-long-running-ai-workflows/</guid>
        <description>&lt;p&gt;Si ha estado utilizando agentes de codificación últimamente, rápidamente se encontrará con una pregunta muy práctica: &lt;strong&gt;La IA puede funcionar, claro, pero ¿cómo se puede mantener funcionando durante horas sin desviarse, olvidar requisitos o rehacer el mismo trabajo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ésa es la verdadera pregunta detrás de muchas discusiones sobre &amp;ldquo;Ralph&amp;rdquo; y la colaboración entre múltiples agentes. La cuestión no es simplemente comparar qué modelo es más fuerte. La pregunta más útil es esta: &lt;strong&gt;¿cómo se diseña un flujo de trabajo que permita a la IA mantenerse estable durante tareas largas?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si analizamos el problema, normalmente hay dos rutas principales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El enfoque &lt;code&gt;Ralph&lt;/code&gt;: seguir iniciando sesiones nuevas y conectar el contexto a través del sistema de archivos&lt;/li&gt;
&lt;li&gt;El enfoque de múltiples agentes: dejar que un agente líder coordine mientras los agentes trabajadores dividen la ejecución&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dicho de manera más simple, la pregunta no es &amp;ldquo;qué modelo es más poderoso&amp;rdquo;, sino &amp;ldquo;¿cómo se organiza la IA para que se comporte más como un pequeño equipo que pueda seguir cumpliendo?&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;01-por-qué-las-tareas-largas-se-descarrilan&#34;&gt;01 Por qué las tareas largas se descarrilan
&lt;/h2&gt;&lt;p&gt;En tareas breves, muchos problemas quedan ocultos. Usted da una instrucción, el modelo lee algunos archivos, cambia algunas líneas y el trabajo está hecho.&lt;/p&gt;
&lt;p&gt;Una vez que la tarea se hace más larga, los modos de falla comunes comienzan a acumularse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las conversaciones se hacen más largas y el contexto comienza a abultarse.&lt;/li&gt;
&lt;li&gt;Los requisitos anteriores quedan eliminados por la información más reciente.&lt;/li&gt;
&lt;li&gt;Un agente tiene que planificar, implementar y probar al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Sin un paso de aceptación claro, &amp;ldquo;está hecho&amp;rdquo; a menudo significa simplemente &amp;ldquo;dice que está hecho&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, cuando la IA funciona durante mucho tiempo, el verdadero desafío no suele ser la calidad del modelo de un solo disparo. Se trata de &lt;strong&gt;división de tareas, transferencia de estados, separación de roles y bucles de retroalimentación&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;02-el-enfoque-ralph-dividir-las-tareas-largas-en-rondas-cortas&#34;&gt;02 El enfoque Ralph: dividir las tareas largas en rondas cortas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; encaja bien cuando el problema principal es un contexto sucio y sobrecargado.&lt;/p&gt;
&lt;p&gt;Su patrón central es sencillo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sigue lanzando nuevas sesiones de agentes en bucle&lt;/li&gt;
&lt;li&gt;Deje que cada ronda se encargue solo de una tarea lo suficientemente pequeña&lt;/li&gt;
&lt;li&gt;Almacene el estado cruzado en archivos en lugar de forzar todo en una sola conversación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El beneficio es inmediato: cada ronda comienza con un contexto nuevo, por lo que la sesión permanece más centrada y es menos probable que se vea arrastrada por la vieja historia.&lt;/p&gt;
&lt;p&gt;Si ya ha visto proyectos estilo &amp;ldquo;Ralph&amp;rdquo;, la estructura le resultará familiar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las tareas actuales viven en archivos estructurados.&lt;/li&gt;
&lt;li&gt;Los aprendizajes intermedios van a los archivos de progreso.&lt;/li&gt;
&lt;li&gt;Los cambios de código permanecen en el historial de git.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, &amp;ldquo;Ralph&amp;rdquo; no intenta que un agente recuerde todo para siempre. Exterioriza la memoria a propósito para que la sesión en sí sea más ligera.&lt;/p&gt;
&lt;p&gt;Este tipo de configuración funciona especialmente bien cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La obra ya se puede dividir en pequeñas historias.&lt;/li&gt;
&lt;li&gt;Cada historia puede caber dentro de una ventana de contexto.&lt;/li&gt;
&lt;li&gt;El proyecto ya cuenta con pruebas, verificación de tipos u otras comprobaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es una solución al problema de &lt;strong&gt;cómo hacer que la IA siga avanzando ronda a ronda&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;03-el-enfoque-de-múltiples-agentes-dividir-el-trabajo-que-un-agente-no-puede-realizar-solo&#34;&gt;03 El enfoque de múltiples agentes: dividir el trabajo que un agente no puede realizar solo
&lt;/h2&gt;&lt;p&gt;La otra ruta es la colaboración entre múltiples agentes.&lt;/p&gt;
&lt;p&gt;En este tipo de diseño de flujo de trabajo, el patrón más prometedor suele ser el siguiente: el agente principal no debe hacer todo el trabajo directamente. En cambio, coordina mientras otros agentes se encargan del desarrollo, las pruebas, la verificación y la aceptación.&lt;/p&gt;
&lt;p&gt;Esto difiere de &lt;code&gt;Ralph&lt;/code&gt; en un aspecto importante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Ralph&lt;/code&gt; se siente más como una iteración en serie&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;El trabajo con múltiples agentes se parece más a una división paralela del trabajo.
Cuando la tarea contiene naturalmente diferentes roles, la colaboración entre múltiples agentes se vuelve más fácil de usar. Por ejemplo:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente desglosa la tarea y escribe el plan de ejecución.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente implementa el cambio real.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente prueba y valida el resultado.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un agente comprueba si el resultado sigue coincidiendo con el objetivo original.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La cuestión no es abrir más ventanas porque sí. El valor real es la separación de roles. Las tareas que antes recaían sobre un solo agente ahora se pueden dividir en etapas más claras.&lt;/p&gt;
&lt;p&gt;Una vez que los límites de los roles están claros, varios problemas se aclaran:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La persona que escribe no tiene que ser la misma que revisa&lt;/li&gt;
&lt;li&gt;La parte de pruebas no tiene que reconstruir el requisito completo cada vez.&lt;/li&gt;
&lt;li&gt;Es menos probable que el agente principal se ahogue en los detalles de la implementación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es una solución al problema de &lt;strong&gt;cómo hacer que la IA coopere más como un equipo pequeño&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;04-la-verdadera-clave-no-es-el-paralelismo-sino-el-diseño-de-tareas&#34;&gt;04 La verdadera clave no es el paralelismo, sino el diseño de tareas
&lt;/h2&gt;&lt;p&gt;Ya sea que elija &lt;code&gt;Ralph&lt;/code&gt; o la colaboración entre múltiples agentes, lo más fácil de subestimar es esto: &lt;strong&gt;el diseño del flujo de trabajo importa más que abrir más agentes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si la división de tareas es incorrecta, agregar más agentes sólo crea un paralelismo con la confusión.&lt;/p&gt;
&lt;p&gt;Una avería más estable suele tener algunas características:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una tarea se asigna a un objetivo claro&lt;/li&gt;
&lt;li&gt;Un rol posee una categoría de salida&lt;/li&gt;
&lt;li&gt;Cada ronda tiene una condición clara de finalización.&lt;/li&gt;
&lt;li&gt;La producción de una ronda puede ser consumida directamente por la siguiente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo, en lugar de darle a la IA una instrucción gigante como &amp;ldquo;construir toda la característica&amp;rdquo;, una estructura más estable suele ser:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primero, rompa los requisitos y los límites.&lt;/li&gt;
&lt;li&gt;Luego dividir la implementación&lt;/li&gt;
&lt;li&gt;Luego dividir las pruebas&lt;/li&gt;
&lt;li&gt;Entonces haz de la aceptación su propio paso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja es que cuando algo sale mal, resulta más fácil saber si el problema radica en los criterios de comprensión, implementación, prueba o entrega.&lt;/p&gt;
&lt;h2 id=&#34;05-por-qué-la-aceptación-es-tan-importante&#34;&gt;05 Por qué la aceptación es tan importante
&lt;/h2&gt;&lt;p&gt;Muchos flujos de trabajo de IA fallan no porque no haya sucedido nada antes, sino porque el último paso careció de un pase de confirmación genuinamente independiente.&lt;/p&gt;
&lt;p&gt;En tareas largas, suele haber una gran brecha entre &amp;ldquo;se produjo un resultado&amp;rdquo; y &amp;ldquo;el resultado es realmente utilizable&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Por eso, una dirección especialmente importante es separar el desarrollo de la aceptación. Incluso sin un proceso complejo, vale la pena hacerse al menos estas preguntas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Realmente completó la tarea original?&lt;/li&gt;
&lt;li&gt;¿Solo parchó la superficie sin solucionar la causa raíz?&lt;/li&gt;
&lt;li&gt;¿Las pruebas cubrieron sólo el camino más feliz?&lt;/li&gt;
&lt;li&gt;¿Se cambiaron silenciosamente los requisitos upstream a lo largo del camino?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin esa capa, la IA puede seguir declarando éxito fácilmente dentro de un flujo de trabajo prolongado.&lt;/p&gt;
&lt;h2 id=&#34;06-cómo-elegir-entre-los-dos&#34;&gt;06 Cómo elegir entre los dos
&lt;/h2&gt;&lt;p&gt;Si desea una regla general rápida:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si su principal problema es la sobrecarga del contexto y la deriva de las sesiones largas, comience con &amp;ldquo;Ralph&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Si su principal problema es que un agente desempeña demasiadas funciones, comience con la colaboración de varios agentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Más específicamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ralph&lt;/code&gt; se adapta al trabajo que es claro, granular y fácil de avanzar paso a paso&lt;/li&gt;
&lt;li&gt;La colaboración entre múltiples agentes se adapta al trabajo con fuertes límites de roles y una necesidad de paralelismo y verificación cruzada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la práctica, estos dos enfoques no siempre son competidores. Una configuración madura suele combinarlos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice un bucle exterior estilo &amp;ldquo;Ralph&amp;rdquo; para impulsar la tarea más grande.&lt;/li&gt;
&lt;li&gt;Utilice la colaboración de múltiples agentes dentro de cada ronda para investigación, implementación, prueba y aceptación.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso les brinda a ambos un mejor control sobre el contexto prolongado y una mejor colaboración dentro de una sola ronda.&lt;/p&gt;
&lt;h2 id=&#34;07-resumen-de-una-oración&#34;&gt;07 Resumen de una oración
&lt;/h2&gt;&lt;p&gt;Lo que hace que valga la pena estudiar estos enfoques no es que recomienden &amp;ldquo;Ralph&amp;rdquo; o la colaboración entre múltiples agentes de forma aislada. Es que dejan muy clara una verdad práctica: &lt;strong&gt;mantener la IA estable durante tareas largas depende menos del modelo en sí y más de si se diseñó bien el contexto, las tareas, los roles y la aceptación&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Si ya está pidiendo a &amp;ldquo;Claude Code&amp;rdquo;, &amp;ldquo;Codex&amp;rdquo; u otros agentes de codificación que manejen tareas más largas del mundo real, este tipo de pensamiento de flujo de trabajo suele ser más valioso que simplemente cambiar a un modelo más sólido.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Qué es Ralph: convertir Claude Code y Amp en un circuito de desarrollo autónomo repetible</title>
        <link>https://www.knightli.com/es/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</link>
        <pubDate>Mon, 27 Apr 2026 08:08:55 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/27/ralph-autonomous-agent-loop-claude-code-amp/</guid>
        <description>&lt;p&gt;Si últimamente ha estado prestando atención a los flujos de trabajo de agentes de codificación de larga duración, &lt;code&gt;snarktank/ralph&lt;/code&gt; es un proyecto que vale la pena analizar de cerca. No es otro contenedor de modelo ni otra interfaz de usuario de chat. En cambio, organiza &amp;ldquo;Claude Code&amp;rdquo; o &amp;ldquo;Amp&amp;rdquo; en un bucle autónomo que sigue recorriendo las historias en un &amp;ldquo;PRD&amp;rdquo; hasta que todo está hecho.&lt;/p&gt;
&lt;p&gt;Su idea central es simple: &lt;strong&gt;no obligar al mismo agente a seguir trabajando dentro de un contexto cada vez más largo y desordenado. En su lugar, inicie una nueva sesión de codificación de IA para cada iteración.&lt;/strong&gt; Eso evita que el contexto se hinche y hace que los límites de las tareas sean mucho más claros.&lt;/p&gt;
&lt;h2 id=&#34;01-qué-es-ralph&#34;&gt;01 ¿Qué es Ralph?
&lt;/h2&gt;&lt;p&gt;Ralph se describe a sí mismo muy claramente: es un bucle de agente de IA autónomo que ejecuta repetidamente una herramienta de codificación de IA hasta que se completan los elementos de un &amp;ldquo;PRD&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;El repositorio actualmente admite dos herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Amplificador CLI&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Código Claude&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada iteración inicia una nueva instancia. En otras palabras, no depende de una conversación interminable. En cambio, mantiene la memoria en estado externo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;historia de git&lt;/li&gt;
&lt;li&gt;&lt;code&gt;progreso.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese detalle importa mucho. Cuando la gente deja que un agente ejecute tareas grandes, el principal problema a menudo no es que el modelo no pueda codificar. Es que la sesión se vuelve más pesada con el tiempo, empieza a perder contexto, olvida requerimientos y repite trabajo. Ralph está diseñado casi exclusivamente en torno a ese problema.&lt;/p&gt;
&lt;h2 id=&#34;02-cómo-funciona&#34;&gt;02 Cómo funciona
&lt;/h2&gt;&lt;p&gt;El flujo de trabajo de Ralph tiene tres pasos.&lt;/p&gt;
&lt;h3 id=&#34;1-escribe-primero-un-prd&#34;&gt;1. Escribe primero un PRD
&lt;/h3&gt;&lt;p&gt;El archivo README sugiere comenzar con la habilidad &amp;ldquo;prd&amp;rdquo; incluida para generar un documento de requisitos y dividir la función en historias más pequeñas.&lt;/p&gt;
&lt;h3 id=&#34;2-convierta-el-prd-a-prdjson&#34;&gt;2. Convierta el PRD a &lt;code&gt;prd.json&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Luego, la habilidad &lt;code&gt;ralph&lt;/code&gt; convierte el Markdown PRD en un &lt;code&gt;prd.json&lt;/code&gt; estructurado. Ese archivo almacena las historias de los usuarios y si cada una ha pasado.&lt;/p&gt;
&lt;h3 id=&#34;3-ejecute-el-script-de-bucle&#34;&gt;3. Ejecute el script de bucle
&lt;/h3&gt;&lt;p&gt;La ejecución real está a cargo de &lt;code&gt;ralph.sh&lt;/code&gt;. Los comandos se ven así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/ralph/ralph.sh --tool claude &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;max_iterations&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor predeterminado es 10 iteraciones. En cada ronda, Ralph hace aproximadamente lo siguiente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crea una rama desde &lt;code&gt;branchName&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Elija la historia de mayor prioridad donde &amp;ldquo;pasa: falso&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Implemente solo esa historia&lt;/li&gt;
&lt;li&gt;Ejecute controles de calidad, como verificación de tipos y pruebas.&lt;/li&gt;
&lt;li&gt;Comprometerse si pasan los controles&lt;/li&gt;
&lt;li&gt;Actualiza &lt;code&gt;prd.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Adjunte lo aprendido a &lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Continuar a la siguiente ronda.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Entonces Ralph no está tratando de terminar todo de una vez. Comprime el trabajo en muchos bucles pequeños que pueden caber dentro de una única ventana de contexto.&lt;/p&gt;
&lt;h2 id=&#34;03-qué-hace-que-ralph-sea-interesante&#34;&gt;03 ¿Qué hace que Ralph sea interesante?
&lt;/h2&gt;&lt;h3 id=&#34;1-cada-ronda-utiliza-un-contexto-nuevo&#34;&gt;1. Cada ronda utiliza un contexto nuevo
&lt;/h3&gt;&lt;p&gt;Esta es la elección de diseño que define a Ralph. El archivo README enfatiza que cada iteración es una instancia de IA completamente nueva y que la memoria entre iteraciones reside solo en git, &lt;code&gt;progress.txt&lt;/code&gt; y &lt;code&gt;prd.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esto es muy diferente del patrón común de mantener el &amp;ldquo;Código Claude&amp;rdquo; u otra herramienta dentro de una larga conversación. Una vez que las tareas aumentan, ese enfoque a menudo se ralentiza debido a su propia historia y gradualmente pierde enfoque. Ralph acepta que ninguna ronda debería recordar todo y, en su lugar, mueve la memoria a archivos.&lt;/p&gt;
&lt;h3 id=&#34;2-obliga-a-que-las-tareas-sean-pequeñas&#34;&gt;2. Obliga a que las tareas sean pequeñas
&lt;/h3&gt;&lt;p&gt;Los documentos dicen explícitamente que cada elemento PRD debe ser lo suficientemente pequeño como para terminar dentro de una ventana de contexto. Tareas como agregar un filtro, actualizar una acción del servidor o agregar una columna de base de datos tienen aproximadamente el tamaño correcto. Tareas como reconstruir toda la API o crear un panel completo son demasiado grandes.
Esa restricción es práctica. Muchos bucles de agentes autónomos fallan no porque el bucle sea malo, sino porque la división de tareas es demasiado burda y cada ronda lleva demasiado a la vez.&lt;/p&gt;
&lt;h3 id=&#34;3-preserva-el-aprendizaje-no-solo-el-código&#34;&gt;3. Preserva el aprendizaje, no solo el código
&lt;/h3&gt;&lt;p&gt;Más allá de &lt;code&gt;progress.txt&lt;/code&gt;, el README también hace hincapié en la actualización de &lt;code&gt;AGENTS.md&lt;/code&gt;. La razón es sencilla: las iteraciones futuras y los futuros desarrolladores leerán esas notas, por lo que los patrones, errores y convenciones descubiertos en cada ronda deben anotarse en el proyecto mismo.&lt;/p&gt;
&lt;p&gt;Dicho de otra manera, Ralph no sólo intenta mantener a un agente codificando continuamente. También intenta ayudar al agente a desarrollar memoria de trabajo sobre el código base a lo largo del tiempo.&lt;/p&gt;
&lt;h2 id=&#34;04-cuando-encaja-mejor&#34;&gt;04 Cuando encaja mejor
&lt;/h2&gt;&lt;p&gt;Ralph encaja bien cuando su tarea se ve así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ya se puede dividir en un conjunto claro de historias de usuarios.&lt;/li&gt;
&lt;li&gt;El código base tiene bucles de retroalimentación confiables, como pruebas, verificación de tipos o CI&lt;/li&gt;
&lt;li&gt;Quiere que el agente siga avanzando sin poner todo en una larga conversación.&lt;/li&gt;
&lt;li&gt;Estás de acuerdo con el progreso iterativo en lugar de exigir una finalización de una sola vez.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por otro lado, si el requisito aún es vago, o el trabajo depende de discusiones frecuentes y cambios constantes de dirección, es posible que Ralph no sea el primero a quien recurrir. Se adapta mejor una vez que los requisitos ya están definidos y la ejecución debe ser constante.&lt;/p&gt;
&lt;h2 id=&#34;05-en-qué-se-diferencia-del-uso-normal-del-código-claude&#34;&gt;05 En qué se diferencia del uso normal del código Claude
&lt;/h2&gt;&lt;p&gt;Con &lt;code&gt;Claude Code&lt;/code&gt; simple, el patrón habitual es simple: abra una sesión y déjela seguir leyendo código, editando archivos y ejecutando comandos. Esto funciona muy bien para tareas pequeñas y medianas, pero las tareas más grandes suelen tener dos problemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El contexto sigue creciendo&lt;/li&gt;
&lt;li&gt;Las decisiones intermedias son más difíciles de preservar de forma estructurada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ralph convierte &amp;ldquo;Claude Code&amp;rdquo; o &amp;ldquo;Amp&amp;rdquo; en algo más parecido a un ejecutor por lotes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La fuente de la tarea es &lt;code&gt;prd.json&lt;/code&gt;, no instrucciones de chat ad hoc.&lt;/li&gt;
&lt;li&gt;Cada iteración reconoce solo una historia.&lt;/li&gt;
&lt;li&gt;El estado de finalización se vuelve a escribir en los archivos.&lt;/li&gt;
&lt;li&gt;Los aprendizajes van en &lt;code&gt;progress.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Los cambios de código se conservan en git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en la práctica, se siente menos como un nuevo asistente de IA y más como un controlador de iteración agregado sobre un agente de codificación.&lt;/p&gt;
&lt;h2 id=&#34;06-un-requisito-importante&#34;&gt;06 Un requisito importante
&lt;/h2&gt;&lt;p&gt;Que Ralph funcione bien depende menos del bucle en sí y más de la calidad de sus bucles de retroalimentación. El archivo README dice esto de manera muy directa: sin verificación de tipo, pruebas y CI, los errores se agravarán en iteraciones posteriores.&lt;/p&gt;
&lt;p&gt;Para tareas frontend, el repositorio incluso recomienda agregar la verificación del navegador a los criterios de aceptación. Sin una verificación real, un agente puede confundir fácilmente &amp;ldquo;parece hecho&amp;rdquo; con &amp;ldquo;realmente funciona&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ese punto es importante. Ralph no es una automatización mágica. Es más como un multiplicador de fuerza para la disciplina de ingeniería que ya tienes. Si su proyecto ya tiene desgloses de tareas claros y controles confiables, Ralph se vuelve mucho más útil. Si faltan esos fundamentos, el bucle sólo repetirá la confusión.&lt;/p&gt;
&lt;h2 id=&#34;07-resumen-de-una-oración&#34;&gt;07 Resumen de una oración
&lt;/h2&gt;&lt;p&gt;Lo que hace que valga la pena estudiar &amp;ldquo;Ralph&amp;rdquo; no es que introduzca una enorme cantidad de infraestructura nueva. Toma una idea simple pero útil y la convierte en un flujo de trabajo práctico: &lt;strong&gt;deje que &lt;code&gt;Claude Code&lt;/code&gt; o &lt;code&gt;Amp&lt;/code&gt; manejen una pequeña historia por ronda, mantenga el enfoque en un contexto nuevo y preserve la continuidad a través de &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;prd.json&lt;/code&gt; y &lt;code&gt;progress.txt&lt;/code&gt;.&lt;/strong&gt;
Si ya está utilizando agentes de codificación en proyectos reales y sigue estancado en cómo impulsar tareas largas de manera confiable, vale la pena tomar prestado el enfoque de Ralph.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Repositorio de GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/snarktank/ralph&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/snarktank/ralph&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Diagrama de flujo interactivo: &lt;a class=&#34;link&#34; href=&#34;https://snarktank.github.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://snarktank.github.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>OpenClaw y Agent Harness: por qué parece AGI</title>
        <link>https://www.knightli.com/es/2026/04/10/openclaw-agent-architecture-enterprise-ai/</link>
        <pubDate>Fri, 10 Apr 2026 09:16:17 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/10/openclaw-agent-architecture-enterprise-ai/</guid>
        <description>&lt;p&gt;Mucha gente, al entrar en contacto por primera vez con OpenClaw, siente que &amp;ldquo;se parece más a un compañero que hace cosas que a un chatbot&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Esa sensación no es misteriosa. La clave está en que OpenClaw no es un salto de capacidad de un único modelo, sino un &lt;strong&gt;Agent Harness&lt;/strong&gt; completo.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-primero&#34;&gt;Conclusión primero
&lt;/h2&gt;&lt;p&gt;La esencia de OpenClaw puede resumirse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El modelo se encarga de entender y decidir&lt;/li&gt;
&lt;li&gt;El Harness se encarga de memoria, herramientas, disparadores, ejecución y salida&lt;/li&gt;
&lt;li&gt;Ambos colaboran mediante un bucle, generando la experiencia de &amp;ldquo;acción continua&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso la razón central de que &amp;ldquo;parezca AGI&amp;rdquo; no es que el modelo se haya vuelto omnipotente de pronto, sino que la ingeniería del sistema amplifica la ejecutabilidad del modelo.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-harness&#34;&gt;Qué es Harness
&lt;/h2&gt;&lt;p&gt;Puedes entender Harness como un &amp;ldquo;exoesqueleto&amp;rdquo; puesto sobre el modelo.&lt;/p&gt;
&lt;p&gt;Un LLM por sí solo normalmente solo puede dar una respuesta dentro de una solicitud. El Harness completa estas capacidades:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Gestión de sesión y estado: conecta tareas de varias rondas&lt;/li&gt;
&lt;li&gt;Mecanismo de memoria: guarda y recupera contexto según necesidad&lt;/li&gt;
&lt;li&gt;Sistema de herramientas: llama navegador, terminal, archivos y APIs externas&lt;/li&gt;
&lt;li&gt;Mecanismo de disparo: se despierta por temporizador o evento, sin tener que esperar siempre una pregunta humana&lt;/li&gt;
&lt;li&gt;Canal de salida: escribe resultados de vuelta al sistema, no solo devuelve un texto&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cuando estas capacidades se integran en un mismo bucle, el modelo pasa de &amp;ldquo;respondedor&amp;rdquo; a &amp;ldquo;ejecutor&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-openclaw-parece-distinto&#34;&gt;Por qué OpenClaw parece distinto
&lt;/h2&gt;&lt;p&gt;El chatbot tradicional es &amp;ldquo;preguntas una vez, responde una vez&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;OpenClaw se parece más a &amp;ldquo;observa -&amp;gt; llama herramientas -&amp;gt; mira resultados -&amp;gt; decide de nuevo&amp;rdquo;. Una vez que el bucle se establece, muestra capacidad de avanzar tareas de forma continua.&lt;/p&gt;
&lt;p&gt;Esto también es lo más valioso para aprender de OpenClaw:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Demuestra que la experiencia Agent viene principalmente del diseño de arquitectura&lt;/li&gt;
&lt;li&gt;Divide la &amp;ldquo;autonomía&amp;rdquo; en módulos que pueden construirse con ingeniería&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;valor-y-límites&#34;&gt;Valor y límites
&lt;/h2&gt;&lt;p&gt;La ventaja de OpenClaw es ser general y flexible, pero el coste también es claro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cuanto más contexto y definiciones de herramientas haya, mayor será el coste&lt;/li&gt;
&lt;li&gt;Cuanto más general sea el sistema, más complejos serán el debugging y la gobernanza&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En escenarios de producción, muchos equipos elegirán Agent más pequeños y especializados, no un &amp;ldquo;agente todopoderoso&amp;rdquo;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cronología completa del bloqueo de OpenClaw por Anthropic</title>
        <link>https://www.knightli.com/es/2026/04/08/anthropic-openclaw-timeline-2026-04/</link>
        <pubDate>Wed, 08 Apr 2026 19:48:42 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/08/anthropic-openclaw-timeline-2026-04/</guid>
        <description>&lt;h2 id=&#34;contexto-del-evento&#34;&gt;Contexto del evento
&lt;/h2&gt;&lt;p&gt;El 4 de abril de 2026, Anthropic anunció que dejaría de cubrir herramientas de terceros como OpenClaw mediante suscripciones de Claude.&lt;/p&gt;
&lt;p&gt;El impacto directo para los usuarios fue que los flujos de terceros que antes dependían de la ruta de suscripción para acceder a Claude tuvieron que cambiar a otros métodos de acceso o cambiar de modelo.&lt;/p&gt;
&lt;h2 id=&#34;cronología-enero-a-abril-de-2026&#34;&gt;Cronología (enero a abril de 2026)
&lt;/h2&gt;&lt;h3 id=&#34;enero-de-2026&#34;&gt;Enero de 2026
&lt;/h3&gt;&lt;p&gt;Según reportes públicos, Anthropic pidió al proyecto entonces llamado Clawdbot que ajustara su nombre, con el argumento de que su pronunciación era cercana a Claude.&lt;/p&gt;
&lt;p&gt;En la misma etapa, la comunidad empezó a reportar límites en llamadas de terceros usando credenciales de suscripción.&lt;/p&gt;
&lt;h3 id=&#34;febrero-de-2026&#34;&gt;Febrero de 2026
&lt;/h3&gt;&lt;p&gt;Las restricciones relacionadas se incorporaron a los términos de servicio, aclarando más el límite entre suscripción y llamadas automatizadas de terceros.&lt;/p&gt;
&lt;p&gt;Ese mismo mes, OpenClaw lanzó v4.0 y cambió su arquitectura interna a backends de modelo enchufables. Es decir, el modelo dejó de ser una única entrada fija y pasó a poder alternar entre varios proveedores.&lt;/p&gt;
&lt;h3 id=&#34;marzo-de-2026&#34;&gt;Marzo de 2026
&lt;/h3&gt;&lt;p&gt;Anthropic lanzó Claude Dispatch y Computer Use, cubriendo capacidades como ejecución de tareas remotas y operación de escritorio.&lt;/p&gt;
&lt;p&gt;OpenClaw siguió avanzando en su capa de compatibilidad en actualizaciones posteriores, unificando diferencias entre modelos en autenticación, formato de tool calling y estructura de respuesta para reducir el coste de migración al cambiar de modelo.&lt;/p&gt;
&lt;p&gt;Los reportes públicos también mencionaron que el equipo de OpenClaw y Anthropic se comunicaron a finales de marzo, pero la dirección estratégica final no cambió.&lt;/p&gt;
&lt;h3 id=&#34;4-de-abril-de-2026&#34;&gt;4 de abril de 2026
&lt;/h3&gt;&lt;p&gt;Anthropic ejecutó formalmente el corte de cobertura de suscripción para herramientas de terceros.&lt;/p&gt;
&lt;p&gt;Esto marcó que los ajustes estratégicos de los meses anteriores entraron en fase de ejecución.&lt;/p&gt;
&lt;h3 id=&#34;5-de-abril-de-2026&#34;&gt;5 de abril de 2026
&lt;/h3&gt;&lt;p&gt;OpenClaw lanzó v4.5, con acciones principales como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajustar la prioridad de entradas de modelo en el flujo de onboarding&lt;/li&gt;
&lt;li&gt;Integrar rutas alternativas como GPT-5.4&lt;/li&gt;
&lt;li&gt;Continuar adaptando flujos de tarea y experiencia interactiva&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por la fecha de lanzamiento, la capacidad de cambio de OpenClaw no fue construida totalmente de emergencia, sino sobre la base de la reforma multi-modelo iniciada desde febrero.&lt;/p&gt;
&lt;h2 id=&#34;dos-direcciones-paralelas-durante-el-proceso&#34;&gt;Dos direcciones paralelas durante el proceso
&lt;/h2&gt;&lt;p&gt;Según la cronología, ambas partes avanzaron en direcciones distintas durante el mismo periodo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anthropic: estrechar los límites de suscripción e impulsar la integración de capacidades en productos oficiales&lt;/li&gt;
&lt;li&gt;OpenClaw: reforzar la sustituibilidad de modelos y mejorar compatibilidad entre modelos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas dos rutas no son contradictorias, pero compiten en la &amp;ldquo;propiedad de la entrada&amp;rdquo; y en dónde se acumula el flujo de trabajo del usuario.&lt;/p&gt;
&lt;h2 id=&#34;estado-actual-hasta-abril-de-2026&#34;&gt;Estado actual (hasta abril de 2026)
&lt;/h2&gt;&lt;p&gt;Con base en la información pública, se pueden confirmar estos hechos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El corte de cobertura de suscripción ya se ejecutó&lt;/li&gt;
&lt;li&gt;OpenClaw completó el cambio principal de rutas de modelo y mantiene iteración de versiones&lt;/li&gt;
&lt;li&gt;Que el usuario perciba cambios claros depende de cuánto dependiera su flujo anterior de una sola capacidad de modelo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;puntos-de-observación-posteriores&#34;&gt;Puntos de observación posteriores
&lt;/h2&gt;&lt;p&gt;Lo que más merece seguimiento ahora no es el evento puntual en sí, sino tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si los límites entre suscripciones y llamadas API seguirán refinándose&lt;/li&gt;
&lt;li&gt;El rendimiento de largo plazo de Agent multi-modelo en estabilidad, coste y experiencia&lt;/li&gt;
&lt;li&gt;Si el flujo de trabajo del usuario terminará acumulándose en la capa de modelo, en la capa de herramienta o en una capa híbrida entre ambas&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
    </channel>
</rss>
