Hilf Embedder, die eigene Arbeit zu verifizieren
Embedder liefert die besten Ergebnisse, wenn es seine Arbeit selbst verifizieren kann. Ohne klare Erfolgskriterien kann es Loesungen erzeugen, die richtig aussehen, in der Praxis aber scheitern. Dann bist du die einzige Rueckkopplungsschleife, und jeder Fehler braucht manuelle Pruefung und Nacharbeit.| Strategie | Vorher | Nachher |
|---|---|---|
| Verifizierungskriterien angeben | ”implementiere eine funktion, die einen temperatursensor liest" | "implementiere read_temperature(). Wenn der Sensor den Rohwert 0x0190 liefert, soll die Funktion 25.0°C zurueckgeben. Fuege Unit-Tests mit gemockten I²C-Reads hinzu und verifiziere Ausgaben fuer [0x0000 -> 0.0°C, 0x0190 -> 25.0°C, 0x0320 -> 50.0°C]. Tests muessen bestehen.” |
| Ursachen statt Symptome adressieren | ”der build schlaegt fehl" | "der build scheitert mit diesem fehler: [fehler einfuegen]. behebe ihn und verifiziere, dass der build erfolgreich ist. behebe die ursache und unterdruecke den fehler nicht.” |
Erst analysieren und planen, dann coden
Wenn Embedder direkt mit dem Coden beginnt, loest es unter Umstaenden das falsche Problem. Nutze den Plan-Modus, um Analyse und Planung von der Ausfuehrung zu trennen. Der empfohlene Ablauf hat vier Phasen:Analysieren
Wechsle in den Plan-Modus. Embedder liest Dateien und beantwortet Fragen, ohne Aenderungen vorzunehmen.
Embedder (Plan-Modus)
Planen
Lass Embedder einen detaillierten Implementierungsplan erstellen.Wenn der Plan fertig ist, kannst du ihn entweder freigeben und mit der Umsetzung fortfahren oder Feedback geben. Du kannst den Plan auch manuell in
Embedder (Plan-Modus)
.embedder/plans in deinem Projektverzeichnis anpassen.Umsetzen
Wechsle zurueck in den Act-Modus und lasse Embedder den Plan implementieren und verifizieren.
Embedder (Act-Modus)
Gib in Prompts praezisen Kontext
Embedder kann deine Absicht oft ableiten, hat aber kein implizites Wissen ueber deine Ziele oder Annahmen. Formuliere explizit und praezise. Verweise auf konkrete Dateien, nenne Randbedingungen und verlinke relevante Beispiele oder Muster.| Strategie | Vorher | Nachher |
|---|---|---|
| Aufgabe eingrenzen. Datei, Szenario und Testpraeferenzen nennen. | ”Fuege Tests fuer uart.c hinzu" | "Schreibe einen hardware-nahen Test fuer drivers/uart.c, der RX-Buffer-Overflow prueft. Simuliere 256+ Bytes ohne Pause und stelle sicher, dass keine Speicherkorruption auftritt. Keine Mocks verwenden; vorhandenes HAL-Test-Harness nutzen.” |
| Auf Quellen zeigen. Embedder direkt zur passenden Informationsquelle lenken. | ”Warum ist der SPI-Treiber so kompliziert?" | "Lies drivers/spi.c und die Git-Historie und fasse zusammen, wie sich der SPI-Treiber entwickelt hat. Erklaere, welche Hardware-Einschraenkungen das Design beeinflusst haben.” |
| Bestehende Muster referenzieren. Auf Muster in deiner Codebasis verweisen. | ”Fuege einen I2C-Sensortreiber hinzu" | "Schau dir an, wie drivers/adc.c und drivers/uart.c init/config/read strukturieren. Folge dem gleichen Muster fuer drivers/i2c_temp_sensor.c. Uebernimm Naming, Fehlerbehandlung und ISR-Stil. Keine neuen Frameworks einfuehren.” |
| Symptom beschreiben. Symptom, vermutete Stelle und Erfolgsdefinition nennen. | ”Behebe den LED-Bug" | "Die Status-LED hoert nach ~10 Minuten zufaellig auf zu blinken. Vermutlich haengt das mit dem Timer-ISR in src/timer.c zusammen. Reproduziere das mit einem Langzeittest, ergaenze Logging fuer verpasste Interrupts und behebe es so, dass die LED 30+ Minuten stabil mit 1 Hz blinkt.” |
Kontext bereitstellen
Du kannst Embedder auf mehreren Wegen mit relevantem Kontext versorgen:- Dateien mit @ referenzieren, statt nur zu beschreiben, wo Code liegt.
- Dokumentation in deinem Workspace referenzieren.
- URLs angeben fuer Dokumentation und Online-Referenzen.
Umgebung einrichten
Ein wenig Setup vorab macht Embedder in jeder Sitzung deutlich effektiver. Wenn du Umgebung und Kontext sauber vorbereitest, arbeitet der Agent von Anfang an praeziser, konsistenter und effizienter.Eine EMBEDDER.md schreiben
Embedder liest zu Beginn jeder Sitzung automatisch eine EMBEDDER.md. Nutze diese Datei fuer wichtige Informationen wie haeufige Bash-Befehle, Coding-Konventionen und Workflow-Regeln. Das liefert persistenten Kontext, der sich nicht verlaesslich aus der Codebasis ableiten laesst.
Der Befehl /init scannt dein Projekt auf Build-Systeme, Test-Frameworks und wiederkehrende Muster. Das ergibt eine starke Basis, die du anschliessend anpassen kannst.
Es gibt keine strikte Struktur fuer EMBEDDER.md, aber sie sollte knapp und klar bleiben. Bevorzuge gut lesbare, konkrete Anweisungen statt langer Erklaertexte.
Embedder.md
EMBEDDER.md wird zu Beginn jeder Sitzung geladen. Nimm deshalb nur Informationen auf, die breit fuer dein gesamtes Projekt gelten.
Halte die Datei kurz und fokussiert. Frage dich pro Zeile: “Wenn das fehlen wuerde, macht Embedder dann wahrscheinlich Fehler?” Wenn nein, entferne es. Eine ueberladene EMBEDDER.md verwaessert wichtige Regeln und erhoeht die Chance, dass Embedder zentrale Hinweise uebersieht.
| Einschliessen | Auslassen |
|---|---|
| Befehle, die Embedder nicht erraten kann | Alles, was Embedder bereits in Code oder Doku sieht |
| Projektspezifische Stilregeln | Standard-Konventionen der Programmiersprache |
| Testvorgaben und bevorzugte Test-Runner | Detaillierte API-Dokumentation (stattdessen verlinken) |
| Repo-Etikette | Informationen, die sich haeufig aendern |
| Dev-Umgebungsbesonderheiten (erforderliche Env Vars) | Datei-fuer-Datei-Beschreibungen der Codebasis |
| Haeufige Stolpersteine oder nicht offensichtliches Verhalten | Selbstverstaendliche Regeln wie “schreibe sauberen Code” |
EMBEDDER.md vermutlich zu lang und die Regel geht unter. Wenn Fragen gestellt werden, die schon beantwortet sind, ist die Formulierung wahrscheinlich zu unklar.
Behandle EMBEDDER.md wie Code: ueberpruefen, wenn Verhalten schlecht ist, regelmaessig kuerzen und Aenderungen testen, um zu sehen, ob sich das Verhalten wirklich verbessert. Du kannst die Regelbefolgung auch mit klaren Markern wie “IMPORTANT” oder “YOU MUST” staerken.
Versioniere die Datei in Git, damit dein Team mitarbeiten kann. Kleine Verbesserungen summieren sich und machen die Datei ueber Zeit deutlich wertvoller.
Dokumentation bereitstellen
Viele Plattformen und Peripheriekomponenten sind bereits vorindexiert. Wenn Embedder bei Board oder Peripherie danebenliegt, solltest du zusaetzliche Dokumentation ueber die Web-Konsole hochladen. Wenn du eigene Plattformen oder Peripherie hinzugefuegt hast, lade ausreichende und aktuelle Dokumentation hoch. Das geht ueber den Befehl/console und den Dokumenten-Upload im Projektbereich der Web-App.
CLI-Tools nutzen
Der effizienteste Weg fuer externe Dienste fuehrt ueber CLI-Tools. Wenn du GitHub nutzt, installieregh. Embedder kann damit Issues erstellen, Pull Requests oeffnen und Kommentare lesen. Ohne gh kann Embedder zwar die GitHub-API nutzen, stoesst ohne Authentifizierung aber oft an Rate-Limits.
Embedder lernt ausserdem gut neue CLI-Tools. Beispielprompt:
Nutze 'cli-tool --help', um mehr ueber das Tool zu lernen, und loese dann A, B, C damit.
Fragen zur Codebasis stellen
Beim Onboarding in eine neue Codebasis kannst du Embedder sehr effektiv fuer Lernen und Exploration einsetzen. Beispiele:- Wie funktioniert Error-Logging hier?
- Wie lese ich Daten vom in diesem Projekt verwendeten Sensor?
- Was macht
handle_sample()in Zeile 134 vonfoo.c? - Welche Edge-Cases behandelt
TIMER_CTRL? - Warum ruft dieser Code in Zeile 173
foo1()stattfoo2()auf?
Sitzungen steuern
Konversationen sind persistent, und vorgenommenen Aenderungen koennen rueckgaengig gemacht werden.Frueh und oft nachsteuern
Embedder funktioniert am besten mit enger Feedback-Schleife. Schnelle Korrekturen fuehren zu besseren Loesungen in kuerzerer Zeit.Esc: Stoppt Embedder waehrend einer Aktion. Kontext bleibt erhalten, du kannst direkt umsteuern.Ctrl + z (2x)oder/rewind: Oeffnet das Rewind-Menue und stellt einen frueheren Konversations- und Codestand wieder her.Ctrl + zoder/undo: Macht die juengste Aenderung rueckgaengig./clear: Setzt Kontext zwischen unzusammenhaengenden Aufgaben zurueck. Lange Sitzungen mit irrelevanten Informationen verschlechtern die Leistung.
/clear aus und starte neu mit einem praeziseren Prompt, der die Learnings enthaelt. Eine saubere Sitzung mit besserem Prompt ist fast immer besser als eine lange Sitzung voller Korrekturen.
Kontext aktiv begrenzen
Embedder komprimiert bei langen Sitzungen den Verlauf automatisch und behaelt dabei wichtige Code- und Entscheidungsinformationen. In langen Sitzungen fuellt sich das Kontextfenster oft mit irrelevanten Details. Das reduziert Leistung und lenkt Embedder gelegentlich ab.- Nutze
/clearregelmaessig zwischen Aufgaben, um das Kontextfenster komplett zurueckzusetzen - Wenn automatische Komprimierung greift, fasst Embedder wichtige Punkte wie Code-Muster, Dateizustaende und zentrale Entscheidungen zusammen
- Fuer mehr Kontrolle kannst du
/compressausfuehren und den Zeitpunkt selbst bestimmen - Du kannst das Komprimierungsverhalten in
EMBEDDER.mdsteuern, zum Beispiel mit:"When compressing, make sure to keep track of the full list of modified files"
Subagents fuer Untersuchungen nutzen
Subagents sind eines der effektivsten Mittel, um Sitzungen fokussiert zu halten. Bei Analyseaufgaben liest Embedder oft viele Dateien, was lange Sitzungen verlangsamen kann. Subagents erledigen das in einem separaten Kontextfenster und liefern dir eine Zusammenfassung zurueck.Zu frueheren Checkpoints zurueckspringen
Embedder erzeugt vor Aenderungen automatisch Checkpoints. Nutze/undo, um die letzte Aenderung rueckgaengig zu machen, oder /rewind, um das Checkpoint-Menue zu oeffnen.
Statt jeden Schritt im Voraus auszuplanen, kannst du Embedder etwas ausprobieren lassen und bei Bedarf zurueckspulen, um einen anderen Ansatz zu testen.
Konversationen fortsetzen
Embedder speichert Konversationen lokal. Wenn eine Aufgabe mehrere Sitzungen umfasst (Feature starten, unterbrechen, am naechsten Tag fortsetzen), musst du den Kontext nicht neu erklaeren.Typische Fallstricke vermeiden
Diese Hinweise helfen, haeufige Fehler zu vermeiden:- Fuehre
/clearzwischen unzusammenhaengenden Aufgaben aus. Sonst fuellt sich dein Kontextfenster mit irrelevanten Informationen. - Fuehre
/clearnach Fehlschlaegen aus. Wenn Embedder etwas mehrfach falsch macht, nach zwei bis drei Korrekturen mit/clearneu starten und einen besseren Prompt formulieren. - Fuege zusaetzliche Dokumentation hinzu. Wenn Embedder deine Hardware missversteht, lade weitere oder aktualisierte Dokumente hoch.
- Kuerze
EMBEDDER.mdregelmaessig. Ist die Datei zu lang, gehen wichtige Regeln im Rauschen unter. - Grenze Aufgaben ein und nutze Subagents. Unscharfe “explore”-Auftraege koennen den Kontext schnell fuellen. Grenze ein oder delegiere.