Verbesserung des Agent-Harness von Cursor für OpenAI-Codex-Modelle

von Cursor Team in Produkt

Cursor integriert alle neuesten Spitzen-KI-Modelle für das Programmieren.

Jedes Modell benötigt spezifische Anweisungen und Feineinstellungen an unserem Agent-Harness, um die Ausgabequalität zu verbessern, nachlässige Antworten zu vermeiden, Tools effizient aufzurufen und mehr.

Wir arbeiten mit OpenAI zusammen, um ihre Modelle mit dem Agent von Cursor für Entwickler verfügbar zu machen. In diesem Beitrag erklären wir, wie wir unser Agent-Harness aktualisiert haben, um ihr neuestes führendes Coding-Modell GPT-5.1-Codex-Max zu unterstützen.

Aufbau eines robusten Agent-Harnesses

Jedes Modell im Agent-Harness von Cursor verfügt über spezifische Anweisungen und Tools, die bereitstehen, um dieses Modell in der Cursor-Umgebung optimal zu nutzen.

KI-Labore trainieren neue Modelle mit einer Vielzahl unterschiedlicher Anweisungen und Tools. In speziellen Domänen wie dem Programmieren können Modelle Muster bevorzugen, die dem ähneln, was sie bereits im Training gesehen haben. Wenn wir neue Modelle in Cursor integrieren, besteht unsere Aufgabe darin, vertraute Anweisungen und Tools neben Cursor-spezifischen bereitzustellen und sie anschließend anhand von Cursor Bench, unserer internen Suite von Evaluierungen, zu optimieren.

Wir messen die Qualität und Robustheit von Modellen anhand ihrer Erfolgsrate, ihrer Fähigkeit, Tools aufzurufen, und ihrer allgemeinen Nutzung durch Nutzer. Hier sind einige der Verbesserungen, die wir an unserem Agent-Harness für Codex vorgenommen haben.

Aktualisierung auf das neueste Codex-Modell

Die Codex-Modelle von OpenAI sind Varianten ihres neuesten Frontier-Modells, die speziell für agentenbasiertes Programmieren trainiert wurden.

Das OpenAI-Team hat eng mit uns zusammengearbeitet, um die Tools und Prompts auf das Codex CLI-Harness abzustimmen. Hier sind einige der Änderungen, die wir vorgenommen haben:

Ein stärker Shell-zentrierter Ansatz

Die Codex CLI von OpenAI ist auf Shell-orientierte Workflows ausgerichtet. Dadurch erhält das Codex-Modell während des Trainings nur eine begrenzte Auswahl an Tools und lernt stattdessen, die Shell zu verwenden, um zu suchen, Dateien zu lesen und Änderungen vorzunehmen.

Wenn das Modell mit einer schwierigen Änderung zu kämpfen hat, greift es manchmal darauf zurück, Dateien mithilfe eines Inline-Python-Skripts zu schreiben. Diese Skripte sind leistungsfähig, aber Toolaufrufe sind sowohl sicherer als auch die bessere User Experience für Änderungen in Cursor.

Um Toolaufrufe zu fördern, haben wir die Namen und Definitionen von Tools in Cursor stärker an ihre Shell-Äquivalente wie rg (ripgrep) angeglichen. Wir haben diese Änderung für alle Modelle in unserem Harness vorgenommen. Außerdem haben wir Anweisungen wie die folgenden ergänzt:

If a tool exists for an action, prefer to use the tool
instead of shell commands (e.g. read_file over `cat`).

Sandboxing in Cursor, das unbefugten Dateizugriff und Netzwerkaktivitäten verhindert, ohne dass Benutzer jeden Befehl manuell genehmigen müssen, trägt hier ebenfalls zur Verbesserung der Sicherheit bei, sollte sich das Modell dennoch dazu entscheiden, einen Shell-Befehl auszuführen.

Preambles

Im Gegensatz zur Hauptlinie der GPT-5-Modellreihe verwendet die Codex-Modellfamilie derzeit Reasoning-Zusammenfassungen, um Nutzerinnen und Nutzer während der Ausführung über Aktualisierungen zu informieren. Diese können in Form von einzeiligen Überschriften oder einer vollständigen Nachricht vorliegen.

Für diese Reasoning-Zusammenfassungen wollten wir einen Mittelweg finden, der es Nutzerinnen und Nutzern ermöglicht, dem Fortschritt des Agents zu folgen und ungünstige Verläufe früh zu erkennen, ohne sie so sehr mit Nachrichten zu überfluten, dass sie diese ausblenden. Wir haben dem Modell Richtlinien gegeben, die Reasoning-Zusammenfassungen auf 1 oder 2 Sätze zu begrenzen, zu vermerken, wenn neue Informationen entdeckt oder eine neue Taktik begonnen wird, und darauf zu verzichten, die eigene Kommunikation zu kommentieren („Ich erkläre dem Nutzer gerade …“).

Da Codex-Modelle bis zum Ende eines Agent-Schritts nicht normal mit den Nutzern „sprechen“ können, haben wir alle Formulierungen im Prompt entfernt, die sich auf die Kommunikation mit den Nutzern während des laufenden Schritts beziehen. Wir haben festgestellt, dass dies die Qualität der endgültigen Codeausgabe des Modells verbessert hat.

Lints lesen

Cursor stellt in unserem Harness allen Modellen Werkzeuge zum Auslesen von Linter-Fehlern (z. B. ESLint, Biome) zur Verfügung und ermöglicht es dem Agent, sie automatisch zu beheben.

Wir haben festgestellt, dass es nicht ausreicht, Codex nur die Tool-Definition zu geben, damit es unser read_lints-Tool aufruft. Stattdessen profitiert Codex erheblich von klaren und expliziten Anweisungen dazu, wann es aufgerufen werden soll:

After substantive edits, use the read_lints tool to check
recently edited files for linter errors. If you've introduced
any, fix them if you can easily figure out how.

Erhaltung von Reasoning-Traces

Die Reasoning-Modelle von OpenAI emittieren zwischen Tool-Aufrufen interne Reasoning-Traces, die im Wesentlichen eine „chain of thought“, also eine Erklärung dafür darstellen, warum das Modell jede Aktion auswählt. Die Responses API ist darauf ausgelegt, diese Reasoning-Items (oder verschlüsselte Reasoning-Items in sensiblen Kontexten) zu erfassen und weiterzugeben, damit das Modell über mehrere Dialogschritte hinweg Kontinuität wahren kann, anstatt seinen Plan jedes Mal von Grund auf neu konstruieren zu müssen.

Codex ist in besonderem Maße von dieser Kontinuität abhängig. Wenn Reasoning-Traces wegfallen, muss das Modell seinen vorherigen Denkprozess aus den vorhandenen Informationen erschließen, was häufig zu verlorenen Teilzielen, schlechterer Planung, falsch angeordneten Tool-Aufrufen oder wiederholtem Neuherleiten früherer Schritte führt. In unseren Cursor-Benchmarks führte das Entfernen von Reasoning-Traces bei GPT-5-Codex zu einem Leistungsverlust von 30 %. Zum Vergleich: OpenAI beobachtete bei GPT-5 auf SWE-bench nur eine geringere Verschlechterung von 3 %, wenn Reasoning-Traces ausgelassen wurden.

Angesichts der Größenordnung dieses Effekts haben wir Alerting eingebaut, um sicherzustellen, dass Reasoning-Traces immer erhalten und korrekt weitergeleitet werden. So bleibt der interne Plan des Agents intakt und es werden Performance-Einbußen verhindert, die auftreten, wenn Modelle gezwungen sind, die Lücken zwischen Tool-Aufrufen „aufzufüllen“.

Das Modell dazu bringen, eigenständig zu handeln

Im Standard-Agent-Modus von Cursor soll der Agent basierend auf der Nutzeranfrage eigenständig Dateien lesen und bearbeiten. Es kann frustrierend sein, wenn du zu einem anderen Fenster wechselst und später feststellst, dass der Agent nur darauf gewartet hat, deine Erlaubnis zum Fortfahren einzuholen.

Wir haben mit präziseren Anweisungen experimentiert, um Codex besser zu steuern:

Unless the user explicitly asks for a plan or some other intent that
makes it clear that code should not be written, assume the user wants
you to make code changes or run tools to solve the user's problem. In
these cases, it's bad to output your proposed solution in a message, you
should go ahead and actually implement the change. If you encounter
challenges or blockers, you should attempt to resolve them yourself.

In Cloud Agents, unserem asynchronen Remote‑Workflow, formulieren wir das noch klarer.

Nachrichtenreihenfolge

OpenAI-Modelle sind darauf trainiert, die Reihenfolge von Nachrichten zu respektieren und zu priorisieren. Zum Beispiel hat der System-Prompt immer Vorrang vor Benutzernachrichten und Tool-Ergebnissen.

Das ist zwar hilfreich, bedeutet aber, dass wir unsere Steuerlogik so abstimmen müssen, dass der von Cursor bereitgestellte Prompt keine Anweisungen enthält, die versehentlich im Widerspruch zu Benutzernachrichten stehen. Andernfalls könnte Codex in einen Zustand geraten, in dem es der Benutzeranfrage nicht nachkommen möchte.

Wir haben Codex zum Beispiel eine Zeit lang gesagt, dass es darauf achten soll, Tokens zu sparen und nicht verschwenderisch zu sein. Aber wir haben festgestellt, dass diese Nachricht die Bereitschaft des Modells beeinträchtigte, ehrgeizigere Aufgaben oder Erkundungen in größerem Maßstab durchzuführen. Manchmal hörte es einfach auf und sagte stur: „Ich soll keine Tokens verschwenden, und ich glaube nicht, dass es sich lohnt, mit dieser Aufgabe fortzufahren!“

Blick nach vorn

Das Tempo neuer Modellveröffentlichungen nimmt zu. Unser Ziel ist es, jedes Frontier-Modell in der Agent-Umgebung von Cursor optimal zu nutzen. Es gibt noch viel zu tun, und wir werden die Verbesserungen, die wir an Cursor vornehmen, weiterhin mit Ihnen teilen.

Kategorisiert unter: Produkt

Autor: Cursor Team

Verbesserung des Agent-Harness von Cursor für OpenAI-Codex-Modelle · Cursor