Zum Hauptinhalt springen
Bevor du deine erste Sitzung startest, stelle sicher, dass du deine Repositories indiziert und eingerichtet hast. Diese grundlegenden Schritte helfen Devin, deine Codebasis zu verstehen und mit ihr zu arbeiten.
Jetzt, da alles eingerichtet ist, starte deine erste Devin-Session! Dieser Leitfaden führt dich durch die neue Sitzungsoberfläche und zeigt dir, wie du am besten mit Devin interagierst.

Die Devin-Session-Seite verstehen

Wenn du eine neue Session startest, siehst du zwei Hauptmodi: Ask und Agent.
Sofern du noch keinen vollständig definierten Plan hast, empfehlen wir, mit Ask zu beginnen, um gemeinsam mit Devin einen Plan zu erstellen, und dann in den Agent-Modus zu wechseln, um diesen auszuführen.

Ask-Modus

Ask Devin ist ein leichtgewichtiger Modus, mit dem du deine Codebasis erkunden und Aufgaben mit Devin planen kannst, ohne Änderungen am eigentlichen Code vorzunehmen. Verwende den Ask-Modus, um:
  • Fragen dazu zu stellen, wie dein Code funktioniert
  • Architektur und Abhängigkeiten zu erkunden
  • Aufgaben vor der Implementierung zu planen und abzugrenzen
  • kontextreiche Prompts für Agent-Sitzungen zu erstellen
Ask Mode

Ask Mode auslösen

Sie können den Ask Mode von der Hauptseite oder von einer DeepWiki-Seite aus aktivieren. Um den Ask Mode von der Hauptseite aus zu verwenden, wechseln Sie in den Ask Mode und wählen Sie das Repository bzw. die Repositories aus, zu denen Sie Fragen stellen möchten.
Ask Mode from Main Page
Um den Ask Mode von einer DeepWiki-Seite aus zu verwenden, geben Sie eine Frage in das Chat-Eingabefeld am unteren Rand der Seite ein und klicken Sie auf Ask. Dadurch wird Devins Knowledge automatisch auf genau dieses Repository eingeschränkt.
Ask Mode from DeepWiki
Weitere Informationen finden Sie in unserem Leitfaden Ask Devin. Sobald Sie mit Devin zusammengearbeitet haben, um das Problem zu verstehen und einen Plan zu erstellen, sind Sie bereit, in den Agent Mode zu wechseln.

Agent-Modus

Der Agent-Modus ist Devins vollständig autonomer Modus, in dem Devin Code schreiben, Befehle ausführen, im Web browsen und komplexe Aufgaben von Anfang bis Ende erledigen kann. Verwende den Agent-Modus, wenn du:
  • Funktionen implementieren oder Fehler beheben möchtest
  • Pull Requests erstellen möchtest
  • Tests ausführen und Probleme debuggen möchtest
  • mehrstufige Aufgaben ausführen möchtest, die Code-Änderungen erfordern

Auslösen des Agent Mode

Sie können den Agent Mode von der Hauptseite oder aus einer Ask Devin Session starten. Für Aufgaben, die noch nicht vollständig abgegrenzt sind, empfehlen wir:
  • Beginnen Sie mit dem Ask Mode, um die Aufgabe zu planen
  • Erstellen Sie einen Devin Prompt, der Ihre Ask Session nutzt, um einen klar abgegrenzten Plan zu erstellen
  • Klicken Sie auf Send to Devin, um in den Agent Mode zu wechseln und die Aufgabe auszuführen
Dieser Ablauf ist unten dargestellt:
Ask Mode to Agent Mode
Um den Agent Mode von der Hauptseite aus zu starten, wechseln Sie in den Agent Mode und wählen Sie das Repository bzw. die Repositorys aus, mit denen Sie arbeiten möchten.
Agent Mode
Wenn Sie eine Agent Session starten, konfigurieren Sie einige Optionen: Sie wählen ein Repository und einen Agenten aus.

Auswählen eines Repositories

Wähle das Repository aus, mit dem Devin arbeiten soll. Klicke auf die Repository-Auswahl, um alle Repositories anzuzeigen, die zu Devins Maschine hinzugefügt wurden.
Repository-Auswahl
Die Auswahl eines Repositories stellt sicher, dass Devin:
  • Zugriff auf deine Codebasis hat und Änderungen vornehmen kann
  • den richtigen Branch als Ausgangspunkt verwendet
  • Pull Requests für das richtige Repository erstellen kann

Auswählen eines Agents

Sie können auswählen, welche Agent-Konfiguration Devin für Ihre Sitzung verwendet. Unterschiedliche Agents können verschiedene Fähigkeiten haben oder für bestimmte Arten von Aufgaben optimiert sein. Derzeit gibt es einen Standardagent, der für die meisten Aufgaben gut funktioniert, und einen Data-Analyst-Agent namens Dana, der für Datenanalyseaufgaben optimiert ist.
Agent Selector
Wenn Sie sich nicht sicher sind, welchen Agent Sie verwenden sollen, funktioniert der Standardagent für die meisten Aufgaben gut.

Verwenden von @-Erwähnungen

Verwenden Sie @-Erwähnungen, um Devin spezifischen Kontext zu Dateien, Repositories oder anderen Ressourcen bereitzustellen. Wenn Sie @ im Chat-Eingabefeld eingeben, sehen Sie ein Dropdown-Menü mit verfügbaren Erwähnungen:
  • @Repos – Verweist auf ein bestimmtes Repository
  • @Files – Verweist auf eine bestimmte Datei in Ihrer Codebasis
  • @Macros – Verweist auf ein Makro für einen Knowledge-Eintrag
  • @Playbooks – Verweist auf ein Team- oder Community-Playbook, also detaillierte Prompt-Vorlagen, die verwendet werden können, um das Verhalten von Devin zu steuern.
  • @Secrets – Verweist auf ein bestimmtes Secret (z. B. API keys, Zugangsdaten usw.) aus Devins Sitzungsmanager
At Mentions
@-Erwähnungen helfen Devin dabei, genau zu verstehen, woran Sie arbeiten, und verringern Unklarheiten in Ihren Prompts.

Verwenden von Slash-Befehlen

Slash-Befehle sind Kurzbefehle, die sich zu vordefinierten Prompt-Vorlagen erweitern. Geben Sie / in das Chat-Eingabefeld ein, um die verfügbaren Befehle zu sehen:
  • /plan - Lassen Sie sich von Devin beim Strukturieren und Planen einer Aufgabe unterstützen
  • /review - Einen Code-Review-Workflow einrichten
  • /test - Tests erstellen oder die Testabdeckung analysieren
  • /think-hard - Devin veranlassen, sorgfältiger über komplexe Probleme nachzudenken
  • /implement - Eine bestimmte Funktion oder Änderung implementieren
Slash Commands
Enterprise-Organisationen können außerdem benutzerdefinierte Slash-Befehle für teamspezifische Workflows erstellen. Weitere Informationen finden Sie in unserem Leitfaden zu Slash-Befehlen.

Umfang deiner ersten Sitzung festlegen

Beginne mit Aufgaben, die einen kleineren Umfang haben, und denke daran, Devin mit demselben Detailgrad zu instruieren, den du auch einer menschlichen Junior-Ingenieurin oder einem menschlichen Junior-Ingenieur geben würdest. Wir haben gesehen, dass Nutzer Devin für alles einsetzen – von der Behebung kleiner Bugs über gezielte Refactorings bis hin zu groß angelegten Migrationen.

Erste Prompt-Ideen

a new API endpoint
Erstelle einen neuen Endpoint /users/stats, der ein JSON-Objekt mit der Nutzeranzahl und der durchschnittlichen Zeit seit der Registrierung zurückgibt. 

Verwende unsere bestehende users-Tabelle in PostgreSQL. 

Du kannst den Endpoint /orders/stats in statsController.js als Referenz dafür verwenden, wie wir Responses strukturieren. 

Stelle sicher, dass der neue Endpoint in der Test-Suite StatsController.test.js abgedeckt ist.
frontend features
Füge in UserProfileComponent ein Dropdown hinzu, das eine Liste von Benutzerrollen (admin, editor, viewer) anzeigt. 

Verwende das Styling von DropdownBase. 

Wenn eine Rolle ausgewählt wird, rufe die bestehende API auf, um die Benutzerrolle zu setzen. 

Validiere, indem du prüfst, dass die Auswahl die Benutzerrolle in der DB aktualisiert. Greife auf dein Knowledge zurück, um zu sehen, wie du korrekt testest.
unit tests
Schreibe Unit-Tests und füge Jest-Tests für die AuthService-Methoden login und logout hinzu. 

Stelle sicher, dass die Testabdeckung für diese beiden Funktionen mindestens 80 % erreicht. 

Verwende UserService.test.js als Beispiel.

Führe nach der Implementierung `npm test -- --coverage` aus und überprüfe, dass im Coverage-Bericht für beide Funktionen > 80 % angezeigt wird. 

Bestätige außerdem, dass die Tests sowohl mit gültigen als auch mit ungültigen Zugangsdaten erfolgreich sind und dass logout die Sitzungsdaten ordnungsgemäß löscht.
or refactoring existing code
Migriere logger.js von JavaScript zu TypeScript. 

Wir haben bereits eine tsconfig.json und eine LoggerTest.test.js-Test-Suite zur Validierung. 

Stelle sicher, dass der Code ohne Fehler kompiliert und ändere auf keinen Fall die bestehende Konfiguration!

Überprüfe nach der Migration, indem du:
1) `tsc` ausführst, um sicherzustellen, dass es keine Typfehler gibt
2) die Test-Suite mit `npm test LoggerTest.test.js` ausführst, um sicherzustellen, dass alle Tests bestehen
3) prüfst, dass alle bestehenden Aufrufe der Logger-Methoden im gesamten Code weiterhin ohne Typfehler funktionieren.
unit tests
Wir wechseln von pg zu Sequelize (siehe https://sequelize.org/api/v6/identifiers). 

Bitte aktualisiere die UserModel-Abfragen so, dass sie Sequelize-Methoden verwenden. 

Sieh dir das OrderModel an, um zu sehen, wie wir das in dieser Codebasis machen.

Überprüfe nach der Implementierung:
1) Führe `npm run test:integration UserModel.test.js` aus, um sicherzustellen, dass alle Integrationstests bestehen
2) Bestätige, dass sich die Abfrageleistung nicht verschlechtert hat, indem du die Ausführungszeit auf einem Testdatensatz mit 1000 Benutzern überprüfst
3) Stelle sicher, dass alle CRUD-Operationen weiterhin die Datenintegrität gewährleisten, indem du `npm run test:e2e user-flows.test.js` ausführst
Quick PR
## Overview
Die Aufgabe besteht darin, einen schnellen Pull Request für ein Repository zu erstellen.
Da dies ein „schneller“ PR ist, musst du keinen Code ausführen oder etwas testen; erstelle einfach einen PR, und der Nutzer übernimmt das Testing. Deine einzige Verantwortung ist das Lesen und Schreiben von Code.

## Was vom Nutzer benötigt wird
- Das Repository, für das ein Pull Request erstellt werden soll

## Vorgehen
### Richte deinen Workspace ein
1. Navigiere auf deinem Rechner zu dem entsprechenden Repository (kläre dies mit dem Nutzer, falls du es nicht herausfinden kannst).
    - Checke den main-Branch aus und notiere dir den Namen des main-Branches.
    - Checke einen neuen Branch aus, da du einen Pull Request erstellen wirst. Der Name des Branches muss das Format `devin/<your-branch-name>/X` haben, wobei X eine zufällige Zahl ist. Zum Beispiel `devin/fix-popup/3234`. Führe `git remote -v && git pull && git checkout -b devin/{branch-name}/$RANDOM` aus und ersetze `{branch-name}` mit dem Namen des Branches, den du erstellen möchtest.
2. Studiere die Anfrage, die Codebasis und plane die Änderungen
    - Überprüfe die relevantesten Dateien und Codestellen und identifiziere relevante Ausschnitte.
    - Informiere den Nutzer über deinen Plan
### Arbeite am PR selbst
3. Nimm die Codeänderungen vor
    - Ändere nichts, was nicht ausdrücklich vom Nutzer angefordert wurde
4. Erstelle den PR
    - Commite und pushe die Änderungen und informiere den Nutzer.
    - Siehe den Abschnitt „Advice“ für den genauen Befehl zum Erstellen des PR
    - Erstelle einen Pull Request und überprüfe den PR, um sicherzustellen, dass alles in Ordnung ist.
    - Stelle sicher, dass alle GitHub Actions erfolgreich durchlaufen, und nimm bei Bedarf weitere Änderungen vor, bis sie erfolgreich sind
    - Sende den PR-Link an den Nutzer und fasse zusammen, was du geändert hast.
5. Bearbeite jedes Feedback aus dem Review; sende den PR-Link erneut, jedes Mal wenn du Änderungen vornimmst
    - Wenn du Aktualisierungen vornehmen musst, pushe einfach weitere Commits auf denselben Branch; erstelle keinen neuen Branch


## Task Specification
- Der PR-Link ist in deinen Nachrichten an den Nutzer enthalten
- Der PR wurde nach seiner Erstellung überprüft
- Der PR enthält keine fremden/versehentlichen Änderungen
- Der PR ändert nichts, was nicht ausdrücklich vom Nutzer angefordert wurde
- Die PR-Beschreibung sollte eine Zusammenfassung der Änderungen enthalten, formatiert als Checkliste
- Die PR-Beschreibung sollte erwähnen, dass der Code ohne Tests geschrieben wurde, und den Punkt - [ ] Test the changes als Eintrag enthalten
- Die PR-Beschreibung sollte folgenden Footer enthalten: "This PR was written by [Devin](https://devin.ai/) :angel:"
- Die PR-Beschreibung sollte alle Metadaten enthalten, die der Nutzer bereitgestellt hat (z. B. Linear-Ticket-Tags in der entsprechenden Syntax)
- Die PR-Beschreibung sollte nicht fehlerhaft formatiert sein (verwende --body-file statt --body, falls Zeilenumbrüche zerstückelt werden!)

## Forbidden Actions
- Versuche NICHT, über den Browser auf github.com zuzugreifen, du wirst dort nicht authentifiziert sein.
- NIEMALS Force-Push auf Branches ausführen! Bevorzuge Merging statt Rebasing, damit keine Arbeit verloren geht.
- Pushe NICHT direkt auf den main-Branch.

## Advice and Pointers
- Überprüfe den Namen des main-Branches sorgfältig (dies könnte `main` oder `master` sein) mit `git branch`.
- Für Repositories mit CI/CD über GitHub Actions kannst du Build-Logs mit der `gh`-CLI überprüfen. Wenn du gebeten wirst, einen Build zu reparieren oder Lint-Fehler zu beheben, solltest du mit den aktuellen Build-Logs beginnen.
- Überprüfe `git status`, bevor du Dateien committest oder hinzufügst.
- Verwende `git diff`, um dir die von dir vorgenommenen Änderungen vor dem Committen anzusehen.
- Wenn du ein bestehendes Repository aktualisierst, verwende die `gh`-CLI, um Pull Requests zu erstellen.
- Sende den PR-Link bei jeder Aktualisierung an den Nutzer und bitte ihn um ein erneutes Review, damit es für ihn bequem ist.
- Du solltest bereits berechtigt sein, auf alle Repositories zuzugreifen, die der Nutzer dir nennt. Falls nicht, bitte den Nutzer um Zugriff.
Wenn Sie tiefer in detailliertere Beispiele einsteigen möchten, was Devin (und wie) leisten kann, sehen Sie sich unsere einführenden Tutorials unten an.

Nächste Schritte

Sobald Sie mit grundlegenden Sessions vertraut sind, nutzen Sie diese Ressourcen, um noch mehr aus Devin herauszuholen: