Mit Background Agents können Sie asynchrone Agenten erstellen, die Code in einer Remote-Umgebung bearbeiten und ausführen. Verfolgen Sie ihren Status, senden Sie Nachfragen oder übernehmen Sie jederzeit die Kontrolle.

Verwendung

  1. Drücken Sie , um das Hintergrund-Agent-Kontrollpanel zu öffnen, um Agenten aufzulisten, neue zu erstellen und den Status anzuzeigen.
  2. Nach dem Absenden einer Eingabeaufforderung wählen Sie Ihren Agenten aus der Liste aus, um den Status anzuzeigen und die Maschine zu betreten.

Hintergrund-Agenten erfordern Datenspeicherung in der Größenordnung von einigen Tagen.

Feedback

Senden Sie Feedback an unseren Discord #background-agent Kanal oder background-agent-feedback@cursor.com. Bitte senden Sie Bugs, Feature-Anfragen oder Ideen.

Einrichtung

Hintergrund-Agenten laufen standardmäßig in einer isolierten Ubuntu-basierten Maschine. Agenten haben Internetzugang und können Pakete installieren.

GitHub-Verbindung

Hintergrund-Agenten klonen Ihr Repository von GitHub und arbeiten auf einem separaten Branch, wobei sie zu Ihrem Repository pushen für eine einfache Übergabe. Gewähren Sie Lese- und Schreibrechte für Ihr Repository (und alle abhängigen Repositories oder Submodule). Wir werden in Zukunft andere Anbieter (GitLab, BitBucket, etc.) unterstützen.

Basis-Umgebungseinrichtung

Für erweiterte Fälle richten Sie die Umgebung selbst ein. Verbinden Sie eine IDE-Instanz mit der entfernten Maschine. Richten Sie Ihre Maschine ein, installieren Sie Tools und Pakete, dann erstellen Sie einen Snapshot. Konfigurieren Sie Laufzeiteinstellungen:
  • Der Install-Befehl läuft vor dem Start eines Agenten und installiert Laufzeitabhängigkeiten. Das könnte bedeuten, npm install oder bazel build auszuführen.
  • Terminals führen Hintergrundprozesse aus, während der Agent arbeitet - wie das Starten eines Webservers oder das Kompilieren von Protobuf-Dateien.
Für die fortgeschrittensten Fälle verwenden Sie ein Dockerfile für die Maschineneinrichtung. Das Dockerfile ermöglicht es Ihnen, systemweite Abhängigkeiten einzurichten: spezifische Compiler-Versionen installieren, Debugger oder das Basis-OS-Image wechseln. Verwenden Sie nicht COPY für das gesamte Projekt - wir verwalten den Arbeitsbereich und checken den korrekten Commit aus. Behandeln Sie die Abhängigkeitsinstallation weiterhin im Install-Skript. Geben Sie alle erforderlichen Geheimnisse für Ihre Entwicklungsumgebung ein - sie werden verschlüsselt gespeichert (mit KMS) in unserer Datenbank und in der Hintergrund-Agent-Umgebung bereitgestellt. Die Maschineneinrichtung befindet sich in .cursor/environment.json, die in Ihrem Repository committet (empfohlen) oder privat gespeichert werden kann. Der Einrichtungsablauf führt Sie durch die Erstellung von environment.json.

Wartungsbefehle

Beim Einrichten einer neuen Maschine starten wir von der Basis-Umgebung und führen dann den install-Befehl aus Ihrer environment.json aus. Dieser Befehl ist das, was ein Entwickler ausführen würde, wenn er Branches wechselt - alle neuen Abhängigkeiten installieren. Für die meisten Menschen ist der install-Befehl npm install oder bazel build. Um einen schnellen Maschinenstart zu gewährleisten, cachen wir den Festplattenzustand nach dem Ausführen des install-Befehls. Entwerfen Sie ihn so, dass er mehrmals ausgeführt werden kann. Nur der Festplattenzustand bleibt vom install-Befehl bestehen - hier gestartete Prozesse werden nicht am Leben sein, wenn der Agent startet.

Startbefehle

Nach dem Ausführen von install startet die Maschine und wir führen den start-Befehl aus, gefolgt vom Starten aller terminals. Dies startet Prozesse, die am Leben sein sollten, wenn der Agent läuft. Der start-Befehl kann oft übersprungen werden. Verwenden Sie ihn, wenn Ihre Entwicklungsumgebung auf Docker angewiesen ist - setzen Sie sudo service docker start in den start-Befehl. terminals sind für App-Code. Diese Terminals laufen in einer tmux-Sitzung, die Ihnen und dem Agenten zur Verfügung steht. Zum Beispiel setzen viele Website-Repositories npm run watch als Terminal.

Die environment.json-Spezifikation

Die environment.json-Datei kann so aussehen:
{
  "snapshot": "POPULATED_FROM_SETTINGS",
  "install": "npm install",
  "terminals": [
    {
      "name": "Run Next.js",
      "command": "npm run dev"
    }
  ]
}
Formal ist die Spezifikation hier definiert.

Modelle

Nur Max Mode-kompatible Modelle sind für Hintergrund-Agenten verfügbar.

Preise

Erfahren Sie mehr über die Background Agent Preise.

Sicherheit

Background Agents sind im Privacy Mode verfügbar. Wir trainieren niemals mit Ihrem Code und behalten Code nur für die Ausführung des Agents. Erfahren Sie mehr über den Privacy Mode. Was Sie wissen sollten:
  1. Gewähren Sie unserer GitHub-App Lese- und Schreibrechte für Repositories, die Sie bearbeiten möchten. Wir verwenden diese, um das Repository zu klonen und Änderungen vorzunehmen.
  2. Ihr Code läuft in unserer AWS-Infrastruktur in isolierten VMs und wird auf VM-Festplatten gespeichert, während der Agent zugänglich ist.
  3. Der Agent hat Internetzugang.
  4. Der Agent führt alle Terminal-Befehle automatisch aus, wodurch er Tests iterieren kann. Dies unterscheidet sich vom Vordergrund-Agent, der für jeden Befehl eine Benutzerbestätigung erfordert. Die automatische Ausführung birgt das Risiko der Datenexfiltration: Angreifer könnten Prompt-Injection-Angriffe ausführen und den Agent dazu verleiten, Code auf bösartige Websites hochzuladen. Siehe OpenAIs Erklärung zu den Risiken von Prompt Injection für Background Agents.
  5. Wenn der Privacy Mode deaktiviert ist, sammeln wir Prompts und Entwicklungsumgebungen zur Produktverbesserung.
  6. Wenn Sie den Privacy Mode beim Starten eines Background Agents deaktivieren und ihn dann während der Ausführung des Agents aktivieren, läuft der Agent weiterhin mit deaktiviertem Privacy Mode, bis er abgeschlossen ist.