Ahora es la noche del 11 de abril de 2026.
Hoy se lanzó oficialmente el proyecto de arbitraje PolyMarket en formato de fondo. Su nombre en clave es PathFinder, abreviado PF. Anteriormente también se le llamó PMA.
Hoy hablé con C1 sobre mis reflexiones de este tiempo gestionando IA.
Creo que Agent Harness ya ha alcanzado un punto óptimo: con pocas entrevistas, la IA puede producir resultados bastante decentes, no 100% precisos, pero tampoco completamente desviados.
Si ahora nos enfocamos más en Harness, la precisión para completar tareas podría mejorar, pero el costo sería cada vez mayor.
Mi flujo de trabajo actual suele ser: una entrevista de unos 30 minutos, seguida de 1-2 horas de ejecución. Completar una ronda de trabajo toma unas 2 horas.
Me di cuenta de que en realidad no necesito revisar las especificaciones con tanto detalle. Esto me ahorraría mucho tiempo en las entrevistas; muchas veces solo necesito seguir mecánicamente la dirección que recomienda la IA, diciendo "sí, sí, sí".
Podría dejar que la IA desarrolle esos detalles de forma natural, en lugar de forzarlos yo.
¿Por qué siento que necesito revisar? Por miedo a que la IA se desvíe. Mi tiempo es limitado, no puedo permitirme un día sin progreso.
Si cada vez que propongo una dirección, después de unos minutos de "sí, sí, sí", y unos minutos más, todo está hecho, entonces no tendría ninguna necesidad de revisar. En ese caso, sería mejor dejar que la IA crezca naturalmente.
Por lo tanto, creo que ahora Harness ya no es el problema principal. La velocidad de iteración es el problema principal. Dado que los tokens de IA siguen siendo baratos, el costo económico aún no es un problema.
Creo que un proyecto debería comenzar desde su commit inicial, desde la referencia origin/main, y crecer linealmente a través de PRs.
Una sesión de OpenCode puede comenzar desde cualquier origin/main. Según el contexto de la tarea, se crea un nuevo worktree, se ejecuta la tarea, se realizan pruebas de integración, se envía un PR al completarse, se resuelven conflictos, se fusiona en origin/main y se limpia el worktree.
Esta tarea ya la realiza bastante bien.
Podemos tomar esta tarea como la unidad básica de programación.
Necesitamos desglosar las tareas y establecer una gestión de dependencias, construyendo un grafo de tareas donde cada una pueda asignarse a una sesión de OpenCode para su ejecución.
Según sus dependencias, las tareas se clasifican conceptualmente en no bloqueantes y bloqueantes. Por supuesto, esta clasificación es solo conceptual. Es imposible determinar al 100% la dependencia entre una tarea y otra.
En realidad, todas las tareas podrían ejecutarse en paralelo, pero algunas es mejor ejecutarlas después de que otras hayan terminado. Esto también lo decide la IA (por lo tanto, no será 100% preciso).
Incluso algunas tareas que parecen bloqueadas pueden dividirse en subtareas más pequeñas para ejecutarse en paralelo; algunas serán bloqueantes y otras no, todo según el criterio de la IA.
Un ejemplo típico es una tarea de desarrollo de una función integral que involucra frontend, backend y diseño de interfaz. Puede dividirse en tres subtareas: desarrollo frontend, desarrollo backend y diseño de interfaz. El desarrollo frontend y backend pueden ejecutarse en paralelo, pero ambos dependen de que se complete el diseño de interfaz. Por lo tanto, el diseño de interfaz es una tarea no bloqueante, mientras que el desarrollo frontend y backend son tareas bloqueantes.
Otra perspectiva es que, en la programación tradicional, avanzar erróneamente en una tarea que debería estar bloqueada es inaceptable, pero en la programación con IA es aceptable. Al igual que una persona, la IA puede permanecer en espera en esa tarea hasta que se completen todas sus dependencias.
Mientras ejecuta una tarea, la IA misma puede verificar si el entorno cumple las condiciones para ejecutarla. Si no es así, creará una tarea previa para modificar el entorno hasta que se cumplan las condiciones, y solo entonces continuará.
Por lo tanto, en lugar de ser el núcleo de la programación, el ordenamiento topológico es solo una herramienta heurística. Si tuvieras tokens de IA infinitos, podrías bifurcar innumerables worktrees ocupados ejecutándose en diferentes tareas, y la IA juzgaría por sí misma.