Salta al contingut principal

SWE-agent: Com el disseny d'interfícies desbloqueja l'enginyeria de programari automatitzada

· 7 minuts de lectura
Mike Thrift
Mike Thrift
Marketing Manager

La setmana passada vaig llegir l'article de SWE-bench i en vaig treure una conclusió senzilla: el GPT-4 pur amb prou feines resol l'1,96% dels problemes reals de GitHub. Aquesta setmana volia entendre la pregunta següent: què fa moure realment aquest número? SWE-agent de Yang et al. (NeurIPS 2024) la respon, i la resposta és decebedorament avorrida: millors interfícies.

L'article

2026-05-01-swe-agent-agent-computer-interfaces-automated-software-engineering

SWE-agent (John Yang, Carlos E. Jimenez, Alexander Wettig, Kilian Lieret, Shunyu Yao, Karthik Narasimhan i Ofir Press; Princeton / Stanford) introdueix el concepte d'Interfície Agent-Ordinador (ACI) —una capa de programari creada específicament situada entre un LLM i un entorn Linux, dissenyada no per a usuaris humans, sinó per a com els models de llenguatge processen realment la informació. L'afirmació és que el disseny d'aquesta interfície, i no el model subjacent, és el principal coll d'ampolla per als agents autònoms d'enginyeria de programari.

El sistema opera sobre problemes de GitHub de SWE-bench: llegeix el problema, navega pel repositori, localitza el codi rellevant, l'edita i executa proves per verificar la solució. La contribució novella no és un nou model o procediment d'entrenament, sinó un conjunt de primitius de comandament i formats de retroalimentació acuradament dissenyats que substitueixen la shell de Linux per defecte.

Idees clau

  • La interfície supera la shell pura en 10,7 punts percentuals. En una ablació sobre 300 instàncies de SWE-bench Lite, SWE-agent resol 10,7 punts percentuals més de problemes que un agent idèntic en una shell de Linux nua. Aquesta és la palanca més gran de tot l'article.
  • Visor de fitxers amb finestres de 100 línies. En lloc d'utilitzar cat per a fitxers sencers, l'ACI mostra unes 100 línies per torn amb ordres de desplaçament. Massa poc context (30 línies) costa 3,7 pp; massa (tot el fitxer) fa que el model perdi el focus. El punt òptim és estret.
  • Un linter en el bucle d'edició. Cada ordre d'edició executa un verificador de sintaxi abans de confirmar el canvi. Això evita que el model es quedi bloquejat en estats de codi trencat que són difícils de corregir només mitjançant llenguatge natural.
  • Cerca de directoris minimalista. En lloc d'un grep -r amb context circumdant (que aclaparava el model), l'ACI només retorna una llista de noms de fitxers que coincideixen. Menys és més quan el model ha de decidir on mirar a continuació.
  • Resultat complet del benchmark: 12,47% a SWE-bench amb GPT-4 Turbo, en comparació amb el 3,8% d'un sistema RAG no interactiu i l'1,96% per a la línia base de recuperació simple de l'article original de SWE-bench. HumanEvalFix va arribar al 87,7%.
  • El disseny de l'ACI és generalitzable. Una variant de ciberseguretat (SWE-agent EnIGMA) va aplicar la mateixa filosofia ACI a reptes de CTF, aconseguint un 13,5% —tres vegades més fort que els sistemes anteriors— utilitzant eines d'agents interactius que mantenen sessions de shell concurrents.

Què se sosté — i què no

La idea central —que el disseny d'interfícies per a agents és tan important com l'enginyeria de prompts— està ben fonamentada i la trobo realment útil. L'ablació és honesta: els autors aïllen els components i mostren què aporta cadascun. El guany de 10,7 pp sobre la línia base de la shell pura és un resultat clar que no es pot explicar per diferències de model.

El que em convenç menys: el propi benchmark. El conjunt de proves de SWE-bench conté problemes que varien enormement en complexitat, ambigüitat i en com de ben especificat està el pegat de referència. L'alta variància en la qualitat dels problemes significa que la xifra del 12,47% és, en part, una declaració sobre quins problemes van anar a parar al conjunt d'avaluació. Els autors ho noten implícitament en informar dels resultats a SWE-bench Lite (300 problemes) per a les ablacions, però la variància dins d'aquest subconjunt encara és alta.

La limitació més gran és l'abast: SWE-bench mesura la resolució de problemes individuals de forma aïllada. No hi ha memòria de sessió entre problemes, ni comprensió de la història del codi, ni seguiment de dependències entre múltiples problemes. SWE-Bench Pro (arXiv:2509.16941, 2025) va mostrar més tard que fins i tot els models de frontera cauen per sota del 25% quan els problemes requereixen canvis coordinats en diversos fitxers; el rendiment decau bruscament a mesura que augmenta el nombre de fitxers. L'ACI ajuda dins d'un sol problema, però el problema difícil és el cas de llarg horitzó i multi-fitxer per al qual SWE-agent mai va ser dissenyat.

També hi ha una qüestió de reproductibilitat a la qual sempre torno: les eleccions de disseny de la interfície (finestra de 100 línies, sortida de cerca minimalista) es van trobar mitjançant l'experimentació iterativa en la divisió d'entrenament/desenvolupament. Aquestes eleccions no són òbviament transferibles a nous dominis sense un esforç d'ajust similar. Això és un cost real.

Per què això és important per a la IA financera

L'enfocament de l'ACI es trasllada directament al problema del disseny d'agents per a Beancount. Un llibre major de Beancount no és una línia d'ordres, però és un artefacte estructurat que un model necessita llegir, navegar i escriure. Les lliçons són transferibles:

  • Un visor de llibres majors que mostri entre 20 i 50 transaccions a la vegada —amb ordres de desplaçament i filtre— funcionarà millor que un que aboqui 10 anys de dades de cop. El desbordament de la finestra de context és el mateix mode d'error.
  • Un validador d'escriptura que comprovi el balanç de la partida doble i l'existència del compte abans de confirmar una entrada és l'equivalent al linter de SWE-agent per al llibre major. Sense ell, un agent que produeix una entrada sintàcticament incorrecta no té camí de recuperació.
  • La cerca minimalista importa: consultar "mostra'm totes les transaccions del compte X entre les dates Y i Z" hauria de retornar una llista compacta i fàcil d'escanejar, no un abocament verbós amb context circumdant.

L'article també estableix un punt de referència pràctic per al que es pot esperar de les primeres versions d'un agent de retroescriptura de Beancount. Una taxa de resolució del 12,47% en problemes de GitHub ben definits és el sostre actual per a un agent d'un sol problema acuradament dissenyat. La retroescriptura del llibre major implica una estructura de tasca similar —una intenció de l'usuari, un fitxer estructurat, una sortida requerida, un verificador— i esperaria taxes comparables en tasques ben definides, amb una degradació pronunciada en fluxos de treball de múltiples entrades i múltiples comptes.

Què llegir a continuació

  • MemGPT: Towards LLMs as Operating Systems [arXiv:2310.08560] — La gestió del context de SWE-agent és reactiva (trunca en cas de desbordament); MemGPT proposa una memòria per nivells proactiva, que sembla necessària per als agents que han de raonar sobre llibres majors de Beancount de diversos anys.
  • SWE-Bench Pro: Can AI Agents Solve Long-Horizon Software Engineering Tasks? [arXiv:2509.16941] — Segueix directament on SWE-agent es queda curt; les dades de degradació multi-fitxer són una lectura essencial per dissenyar la seguretat de retroescriptura en llibres majors complexos.
  • Gorilla: Large Language Model Connected with Massive APIs [arXiv:2305.15334] — Si l'ACI tracta sobre el disseny d'interfícies, Gorilla tracta sobre la recuperació d'API; tots dos es combinen en una visió més completa de com els agents haurien de seleccionar i invocar eines de manera fiable.