Los agentes de Coroid escriben código del mismo modo que lo haría un ingeniero desde la línea de comandos. No hay que esperar a una integración específica por cada lenguaje: si un desarrollador competente puede abrir tu repositorio, leerlo, modificarlo y ejecutar sus comandos, el agente también puede hacerlo.
Lo que varía según el lenguaje no es si Coroid puede trabajar con él, sino hasta qué punto puede demostrar lo que ha cambiado en el código: navegar semánticamente por tu código, compilarlo, ejecutar la suite de pruebas y ponerlo en marcha dentro de un contenedor. Ese es el verdadero objeto del soporte de lenguajes y merece ser comprendido antes de juzgar un resultado.
El entorno del agente
Toda tarea se ejecuta en un Área de trabajo Linux limpia y desechable, creada a partir de una imagen de Debian, como usuario sin privilegios. Nada persiste entre tareas: cada una comienza con una clonación nueva, sin caché ni elementos preinstalados aparte de la imagen.
La imagen incluye un conjunto de herramientas de uso general, por lo que la mayoría de los proyectos no necesitan ninguna configuración adicional:
| Área | Disponible |
|---|---|
| JavaScript / TypeScript | Node.js 22, npm, npx |
| Python | Python 3, pip, venv, Poetry, Pipenv |
| Java | JDK (sin interfaz gráfica), Maven, Gradle |
| Go | Herramientas de Go |
| PHP | CLI de PHP, Composer |
| Ruby | Ruby, Bundler |
| C / C++ | GCC, G++, Make, CMake |
| Navegador | Chromium, para pruebas de navegador y verificación de vistas previas |
| General | git, curl, jq, ripgrep, grep, sed, awk, coreutils, cliente de PostgreSQL |
Cualquier elemento que no esté en esa lista — un entorno de ejecución poco común, una versión específica del compilador o una dependencia nativa — no supone un obstáculo. Es motivo para aportar tu propio contenedor.
Qué varía según el lenguaje
Tres aspectos, ordenados por su impacto en la calidad de forma descendente.
Servidores de lenguaje
Un servidor de lenguaje proporciona al agente comprensión semántica: ir a la definición, encontrar referencias y tipos reales. Con uno, el agente puede hacer preguntas precisas sobre tu código en lugar de inferir respuestas a partir del texto. Sin él, simplemente lee el código; esto funciona bien en bases de código pequeñas y medianas, pero es menos fiable cuando la base de código es más grande e indirecta.
Coroid ejecuta servidores de lenguaje para TypeScript y JavaScript, Python, Java y C#.
Los demás lenguajes recurren a la lectura. Esta es la mayor diferencia de calidad entre lenguajes, y es una diferencia de grado, no de tipo.
Comandos de compilación y prueba
El agente necesita compilar tu proyecto y ejecutar tu suite de pruebas para verificar su propio trabajo. Coroid detecta estos comandos al crear un proyecto, y la detección es mejor en estructuras convencionales que en las poco habituales.
Esto es configuración, no capacidad: consulta configuración de compilación y prueba. Un par de comandos correctos en un lenguaje poco común superan a un par incorrecto en uno popular.
Contenedores
Si tu proyecto puede ejecutarse en un contenedor, Coroid puede usar ese entorno de ejecución, lo que elimina la deriva del entorno y las dependencias de servicios de un solo golpe.
Cuando tu lenguaje no tiene servidor de lenguaje
Las soluciones prácticas, por orden de eficacia:
- Configurar los comandos de compilación y prueba de forma explícita en lugar de depender de la detección. Esto es más importante que el servidor de lenguaje.
- Containerizar. Un contenedor funcional cierra la mayoría de las brechas a nivel de entorno.
- Invertir en contexto del proyecto. Un buen contexto compensa en parte lo que proporcionaría un servidor de lenguaje, al indicarle al agente la estructura que de otro modo tendría que descubrir.
Aportar tu propio contenedor
Si tu proyecto se compila y prueba en un Dockerfile o archivo Compose que ya funciona, esa es la configuración más fiable que puedes tener: mejor que un lenguaje bien soportado en la imagen predeterminada, ya que el contenedor codifica exactamente tu cadena de herramientas, versiones y dependencias de servicios.
La prueba es sencilla: clona tu repositorio en un directorio vacío y ejecuta install, build y test sin ninguna otra configuración. Si funciona, Coroid también funcionará.
Registros privados y acceso a la red
Las áreas de trabajo pueden acceder a la red, por lo que los registros de paquetes públicos funcionan sin necesidad de configuración. Los feeds privados —como un registro npm privado, un repositorio Maven interno o un PyPI autohospedado— requieren credenciales que se indiquen como configuración del proyecto, ya que el entorno de trabajo limpio no dispone de credenciales predeterminadas para heredar.
Proyectos con varios lenguajes
La mayoría de los proyectos reales utilizan más de un lenguaje. Un frontend en TypeScript con un servicio en Python es algo común, y Coroid lo gestiona sin problemas. La profundidad del procesamiento depende del lenguaje en el que se realice el cambio: un cambio en la parte bien soportada recibirá un tratamiento completo, independientemente del lenguaje utilizado en la otra parte.