El artículo de Sumato AI introduce Spath y Splan, dos nuevas herramientas diseñadas para mejorar la eficiencia y la calidad de los agentes de codificación basados en IA. Tradicionalmente, la programación ha estado intrínsecamente ligada al sistema de archivos, lo que implica una estructura jerárquica que facilita la organización del código para los humanos y que a su vez, impulsa el desarrollo de herramientas auxiliares como IDEs, LSP y grep. Sin embargo, esta dependencia del sistema de archivos impone limitaciones y obliga a la IA a operar a un nivel de abstracción más bajo del que sería ideal.
Sumato AI argumenta que los agentes de IA, al ser capaces de aprender y adaptarse a diversas herramientas, pueden operar de manera más eficiente si se les libera de las restricciones del sistema de archivos. La clave para lograr esto es la 'Narrative Hygiene', un concepto que se refiere a la optimización de la narrativa o 'historia' que el agente de IA sigue para completar una tarea. Los LLMs (Large Language Models) funcionan mejor cuando se les presenta una narrativa clara y concisa, evitando desvíos y retrocesos.
Spath es una solución a este problema. Es un formato de direccionamiento semántico que permite a los agentes de IA referirse a símbolos de programación sin necesidad de especificar rutas de archivo. Esto elimina la necesidad de operaciones en el sistema de archivos y mejora la 'Narrative Hygiene'. Por ejemplo, en lugar de referirse a un archivo específico como github.com/example/app/database[user.go].User.GetID, Spath permite una referencia más semántica al símbolo User.GetID dentro del contexto de la aplicación. Se han creado 'dialectos' de Spath para varios lenguajes de programación como Go, Rust, Python, TypeScript, Swift y Kotlin.
Splan complementa a Spath. Mientras que Spath define qué se está hablando, Splan define qué se quiere hacer. Es una gramática para expresar operaciones de código en lote, especificando la acción a realizar, su ubicación semántica y el contenido nuevo. Por ejemplo, replace service.Handler :old :new indica que se debe reemplazar un manejador de servicio, especificando el contenido antiguo y el nuevo, sin mencionar rutas de archivo o números de línea. Las operaciones Splan son transaccionales, garantizando que todas se completen o ninguna se aplique, evitando así estados inconsistentes.
En resumen, Spath y Splan representan un cambio de paradigma en la forma en que interactuamos con el código a través de la IA, alejándose de la dependencia del sistema de archivos y promoviendo una narrativa más limpia y eficiente para los agentes de codificación. Sumato AI ha abierto el código de estas gramáticas para fomentar la adopción y la innovación en la comunidad.
