500 Milliarden Tokens später: KI-Agenten dekompilieren einen Ego-Shooter
500B Tokens Later: Letting AI Agents Decompile a First-Person Shooter

Ein Entwickler hat mit KI-Agenten einen beliebten Ego-Shooter nach C++ dekompiliert. Nach anfänglichen Erfolgen zeigte sich, dass der Code zwar lesbar, aber semantisch falsch war. Die Lösung: Byte-Matching-Dekompilierung als objektiver PASS/FAIL-Test. Damit erreichten die Agenten 99 % Funktionsabdeckung, 83 % byte-exakt. Der Artikel beschreibt die Orchestrierung, Infrastruktur und die Lektion, dass Korrektheit maschinell überprüfbar sein muss.
Die Kommentare der Worker wirkten effektiv als unbeabsichtigte Prompt-Injection: Der Reviewer akzeptierte ihre Rechtfertigungen, anstatt die Abweichungen unabhängig gegen das Original zu prüfen.
- brandonpelfrey
Wenn du nicht explizit byte-genaue Dekompilierung brauchst, gibt es deutlich schnellere Wege, eine Dekompilierung/C zu erzeugen, die funktional äquivalent ist. Ich muss darüber mal einen Beitrag schreiben. Was bei mir funktioniert, ist Folgendes: Für jede Funktion bekommt Agent A die Aufgabe, Code zu schreiben, der semantisch äquivalent zum ursprünglichen Assembly ist, aber nicht unbedingt exakt derselbe. Agent A schreibt außerdem Tests. Agent A reicht die Implementierung der Funktion und die Tests beim Harness ein, damit dieser urteilt. Der Harness führt sowohl die Originalfunktion als auch die eingereichte Funktion in einer virtuellen Maschine/einem Simulator/Emulator aus (die Tests definieren Funktionseingaben und Startzustand). Der Harness akzeptiert die Implementierung nur, wenn 1) die Lese-/Schreibsequenz auf den RAM identisch mit der der Originalfunktion ist und 2) eine vollständige Zeilen- und Branch-Coverage der zu dekompilierenden Originalfunktion vorliegt.
Ich habe festgestellt, dass das für das Dekompilieren von Spielen robust ist und den Agenten gleichzeitig genug Freiheit lässt, lesbaren Code zu schreiben, statt tonnenweise Zeit damit zu verschwenden, sicherzustellen, dass z. B. Instruktionsreihenfolge, Registerzuweisungen usw. alle exakt gleich sind. Für mich ist byte-genaue Dekompilierung nur ein Weg, eine Dekompilierung zu erzeugen, von der ich weiß, dass sie originalgetreu ist. Dieser gerade beschriebene Prozess der „High-Level-Dekompilierung“ ist etwas, das Agenten viel schneller erledigen können.
- aetherspawn
Der Grund, warum das so viel gekostet hat, ist, dass die KI das absurde Ziel verfolgt, identischen Assembly-Output zu erzeugen.
Die Agenten hätten sich mit Compiler-Versionen, Optimierungsoptionen und der Mondphase herumschlagen müssen.
Wenn man einfach auf funktionale Äquivalenz gegangen wäre, hätte es wahrscheinlich 10x oder 100x weniger Tokens gekostet.
Eine weitere Milchmädchenrechnung war die Verwendung von Sonnet statt eines intelligenteren Modells wie Sol 6.1 (1), das pro Token mehr gekostet hätte, aber beim Reverse Engineering und Codieren etwa 100x besser ist und daher den Quellcode viel schneller durcharbeiten und weniger Fehler machen kann, was bedeutet, dass weniger Arbeit verworfen werden muss.
In meinen Tests mit einer ähnlichen Aufgabe habe ich wochenlang mehrere Sonnet laufen lassen und ~$1000 an Tokens verbrannt, um 20 % Fertigstellung und ziemlich schlechten Output zu bekommen. Nach dem Wechsel zu Sol 6.1 war die ganze Aufgabe in etwa 2 Tagen erledigt, kostete rund $50, und das mit null Aufsicht und einem einzigen /goal.
(1): Ich tue mich schwer, Opus für Reverse Engineering zu verwenden, zu viele Schutzmechanismen. OAI hat praktisch keine und verbraucht viel weniger Tokens, ist also wirtschaftlicher.
- nvme0n1p1
> Der aufmerksame Leser meines Blogs hat vielleicht bemerkt, dass ich zuvor zwei Beiträge geschrieben hatte, die inzwischen entfernt wurden. Alle anderen fragen sich jetzt vielleicht, von welchem Spiel ich rede. Euch beiden kann ich nur sagen, dass Corporate America hier war, um uns den Spaß zu verderben.
Call of Duty: Modern Warfare 2 (2009)
https://web.archive.org/web/20260925153118/https://momo5502....
https://web.archive.org/web/20260925153131/https://momo5502....
Kommt her, Corporate America.
- edg5000
Ich habe das Gefühl, dass der Ansatz die Dinge überkompliziert. Ich frage mich, wie lange das in einer einzigen Session gedauert hätte. Vielleicht ist das tatsächlich ein Lehrbuchbeispiel für etwas, bei dem Subagenten Sinn ergeben, aber als ich mit LLMs anfing, habe ich den Workflow oft mit allerlei Orchestrierung überkompliziert. Jetzt benutze ich einfach einen Agenten; das erlaubt es mir, den Output besser zu kontrollieren, selbst wenn der Agent etwas länger arbeitet. Die meiste Zeit verbringe ich sowieso damit, Prompts zu schreiben und Arbeit zu überprüfen (zumindest bei mir).
- WheelsAtLarge
Interessant. Wenn alle Software dekompiliert und kopiert werden kann, was ist dann die Zukunft der Software? Wird alle Software SaaS sein? Eine Zeit, in der die Mehrheit der PCs Terminals sind? Spielkonsolen sind fast so weit. Es ist nur ein kleiner Sprung, bis alle Software diesen Weg geht.
Edit:
Hier ist eine Möglichkeit.
Die Zukunft der Software ist reine Agenten-Software. Wir fragen nach einem Ergebnis, der Agent stellt uns Fragen, der Agent benutzt die spezialisierte Software, der Nutzer bekommt das Ergebnis. Wir abonnieren einen KI-Assistenten und spezialisierte Agenten. Wir sind fast da, zumindest der Anfang. Die Zukunft der PCs, wie wir sie kennen, ist gezählt. Betriebssysteme, CLI, Compiler und was auch immer werden in KI-Assistenten verschmelzen. Verabschiede dich davon, Software für Menschen zu schreiben.