Más allá de grep: El caso de un harnés de programación con contexto
El uso de inteligencia artificial en la programación ha llevado a la creación de diversas herramientas y aplicaciones que buscan mejorar la eficiencia y la productividad de los desarrolladores. Una de estas herramientas es el harnés de programación, que se refiere al software que gestiona los modelos de inteligencia artificial y determina cómo se utilizan.
Entre las empresas que ofrecen este tipo de herramientas se encuentran Anthropic, con su producto Claude Code, y Augment Code, que ofrece una plataforma de programación asistida por inteligencia artificial. Ambas empresas tienen enfoques diferentes en cuanto a la creación de contexto en torno a un código base. Claude Code opta por un enfoque más minimalista, permitiendo a los desarrolladores agregar sus propias herramientas y opiniones, mientras que Augment Code utiliza un motor de contexto que indexa el repositorio de código utilizando embeddings, un modelo de recuperación y una base de datos vectorial.
“En estos casos, los modelos de inteligencia artificial no han memorizado el repositorio y necesitan una forma de recuperar información relevante de manera eficiente”
La elección de Augment Code se debe a la necesidad de proporcionar un contexto más rico y semántico para los modelos de inteligencia artificial, lo que puede ser especialmente útil en grandes repositorios de código privados. En estos casos, los modelos de inteligencia artificial no han memorizado el repositorio y necesitan una forma de recuperar información relevante de manera eficiente. El motor de contexto de Augment Code utiliza un par de modelos de embeddings y recuperación, junto con una base de datos vectorial, para recuperar información conceptualmente relevante en un tiempo muy corto.
La diferencia en los enfoques de Claude Code y Augment Code refleja la diversidad de opiniones y estrategias en el campo de la programación asistida por inteligencia artificial. Mientras que algunos desarrolladores y empresas prefieren un enfoque más minimalista y flexible, otros buscan crear herramientas más especializadas y personalizadas para satisfacer las necesidades específicas de sus proyectos y equipos. En última instancia, la elección del enfoque adecuado dependerá de las necesidades y objetivos específicos de cada proyecto y equipo de desarrollo.