Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie mit dem GitHub Copilot Modernisierungs-Agent kommunizieren, ihre Vorlieben unterrichten, Fehler korrigieren, ihre Arbeit überprüfen und Upgrades über mehrere Sitzungen hinweg verwalten.
GitHub Copilot ist ein interaktiver Kollaborateur, der Fragen stellt, Strategien vorschlägt, sich an Ihr Feedback anpasst und im Laufe der Zeit von Ihren Vorlieben lernt. Um die besten Ergebnisse zu erzielen, geben Sie dem Agent kontext. Je mehr es über Ihre Ziele, Einschränkungen und Vorlieben weiß, desto besser ist es.
❌ Vague — the agent has to guess
"Upgrade my project"
✅ Specific — the agent knows exactly what you need
"Upgrade the WebAPI project to .NET 10. We need to keep backward
compatibility with our existing REST clients, and we can't change the
public API surface."
Tipp
Sie müssen nicht von Anfang an den gesamten Kontext bereitstellen. Der Agent stellt Nachverfolgungsfragen, wenn er weitere Informationen benötigt.
Starten einer Unterhaltung
- Öffnen Sie Copilot Chat in VS Code, Visual Studio oder Copilot CLI.
- Wählen Sie den GitHub Copilot-Modernisierungs-Agent für .NET aus der Agentauswahl aus, oder geben Sie die richtige Agent-Erwähnung für Ihre Umgebung ein:
@modernize-dotnetin VS Code und Copilot CLI oder@Modernizein Visual Studio. - Beschreiben Sie, was Sie in natürlicher Sprache erreichen möchten.
Was zu sagen ist
Natürliche Sprache funktioniert. Probieren Sie die folgenden Beispiele aus:
| Was Sie wünschen | Was zu sagen ist |
|---|---|
| Upgrade einer vollständigen Lösung | "Upgrade meiner Lösung auf .NET 10" |
| Aktualisieren einer bestimmten Technologie | "Helfen Sie mir beim Upgrade von EF6 auf EF Core" |
| Sehen, was verfügbar ist | "Welche Szenarien sind verfügbar?" |
| Upgrade zuerst ein Projekt | "Upgrade des API-Projekts zuerst, dann die freigegebene Bibliothek" |
| Grundlegendes zum aktuellen Zustand | "Was ist der aktuelle Status meines Upgrades?" |
Was geschieht als Nächstes?
Wenn Sie eine Unterhaltung starten, überprüft der Agent, ob ein vorhandener Upgrade-Vorgang in Ihrem Arbeitsbereich besteht.
- Wenn keine Arbeit vorhanden ist, beginnt der Agent neu, normalerweise beginnend mit einer Bewertung Ihrer Lösung.
- Wenn bereits eine Arbeit im Gange ist, setzt der Agent genau dort an, wo Sie aufgehört haben, und zeigt den aktuellen Status an, z. B. "3 von 8 Aufgaben abgeschlossen".
Auswählen eines Flussmodus
Der Agent unterstützt zwei Flussmodi, die steuern, wie lange der Agent für Ihre Eingabe pausiert.
Automatischer Modus
Im automatischen Modus arbeitet der Agent durch die Phasen (Bewertung, Planung, Ausführung) ohne Unterbrechung der Genehmigung an jeder Grenze. Der Agent hält weiterhin bei echten Blockern an oder wenn er eine Entscheidung benötigt, die nur Sie treffen können.
Am besten geeignet für erfahrene Benutzer, einfache Upgrades und kleine Lösungen.
Geführter Modus
Im geführten Modus hält der Agent an jeder Phasengrenze für Ihre Überprüfung an:
- Nach der Bewertung, vor der Erstellung des Plans.
- Nach der Planung, bevor Sie Aufgaben ausführen.
- Vor komplexen Vorgangsaufschlüsselungen.
- Bei wichtigen Entscheidungspunkten, an denen mehrere gültige Ansätze vorhanden sind.
Am besten für Erstmalige Benutzer, komplexe Lösungen und wann Sie den Prozess erlernen möchten.
Modi während der Sitzung wechseln
Sie können jederzeit frei zwischen den Modi wechseln.
| So wechseln Sie zu | Was zu sagen ist |
|---|---|
| Geführter Modus | „PaVerwenden“ oder „Zum geführten Modus wechseln“ |
| Automatischer Modus | "Weiter" oder "Weiter" |
Tipp
Beginnen Sie mit dem geführten Modus für Ihr erstes Upgrade. Der geführte Modus ist die beste Methode, um zu erfahren, wie der Agent denkt und welche Entscheidungen getroffen werden. Wechseln Sie in den automatischen Modus, sobald Sie bequem sind.
Trainieren Sie den Agenten
Der Agent lernt von Ihnen. Der Agent speichert Ihre Korrekturen, Einstellungen und Anweisungen unter scenario-instructions.md im Upgrade-Statusordner. Diese Einstellungen werden über Sitzungen hinweg beibehalten.
Fehler korrigieren
Wenn der Agent eine Entscheidung trifft, mit der Sie nicht einverstanden sind, teilen Sie dem Agenten folgendes mit:
You: "Actually, don't use Newtonsoft.Json — we're standardizing on System.Text.Json."
Agent: "Got it. I'll use System.Text.Json for all serialization going forward.
I've saved this as a preference."
Der Agent aktualisiert scenario-instructions.md und trifft dieselbe Wahl nicht noch einmal, auch nicht in einer zukünftigen Sitzung.
Einstellungen festlegen
Teilen Sie dem Agent proaktiv mit, wie Sie dinge mögen:
You: "Always use bottom-up strategy for this solution — upgrade leaf projects first."
Agent: "Noted. I'll use a bottom-up upgrade strategy, starting with projects that
have no internal dependencies and working up to the top-level projects."
Aufgabenspezifische Anweisungen geben
Manchmal gilt eine Präferenz nur für einen bestimmten Vorgang.
You: "For this task, skip the test validation — the tests are broken for a known
reason and we'll fix them separately."
Agent: "Understood. I'll skip test validation for this task only."
Was der Agent speichert
Die scenario-instructions.md Datei ist in klaren Abschnitten angeordnet:
| Abschnitt | Was es enthält | Beispiel |
|---|---|---|
| Benutzereinstellungen (technisch) | Paketauswahl, Frameworkentscheidungen, Codierungsmuster | "Verwenden von System.Text.Json, nicht Newtonsoft" |
| Benutzereinstellungen (Ausführungsart) | Funktionsweise des Agents | "Immer Bottom-Up-Strategie verwenden" |
| Protokoll für wichtige Entscheidungen | Wichtige Entscheidungen und deren Begründung | "Hat EF Core über Dapper gewählt, weil..." |
| Benutzerdefinierte Anweisungen pro Aufgabe | Aufgabenspezifisches Überschreiben | "Überspringen von Tests für Aufgabe 3.1" |
Tipp
Bearbeiten Sie scenario-instructions.md auch direkt. Es ist eine Markdown-Datei in .github/upgrades/{scenarioId}/. Der Agent liest die Datei zu Beginn jeder Interaktion vor.
Vornehmen von Korrekturen in der Mitte der Sitzung
Der Agent behandelt Unterbrechungen elegant und verliert nicht den Überblick darüber, wo er sich befindet oder was er gerade tut.
Anhalten und Überprüfen
You: "Wait, stop — let me review that change first."
Agent: "Here's what I was about to do: [describes planned changes].
Would you like me to proceed, or adjust the approach?"
Umleiten
You: "Actually, let's do Project B before Project A — it has fewer dependencies."
Agent: "Good call. I'll reorder the tasks and start with Project B."
Rückgängig machen
You: "That last change broke the build. Can we revert it?"
Agent: "I'll revert the last commit (abc1234: 'Migrate auth middleware').
Reverting now."
Machen Sie Commits auch selbst mit Standard-Git-Befehlen rückgängig. Der Agent schreibt klare, beschreibende Commit-Nachrichten, damit Sie genau wissen, was jeder Commit geändert hat.
Fragen während des Ablaufs stellen
Das Stellen von Fragen entgleist den Workflow nicht:
You: "Why did you choose to migrate the data layer before the API controllers?"
Agent: "The API controllers depend on the data layer interfaces. By migrating
the data layer first, we avoid temporary compilation errors in the
controllers and can validate each layer independently."
Überprüfen der Arbeit des Agenten
Der Agent bietet mehrere Möglichkeiten, seine Arbeit zu überprüfen.
Quellcodeverwaltung
Der Agent schlägt vor, in einem separaten Branch zu arbeiten, und committet Änderungen während der Arbeit. Überprüfen Sie die Änderungen des Agents mit standardmäßigen Git-Befehlen:
git log --oneline -10
git diff main..<agent-branch>
Workflowdateien
Der Agent verwaltet mehrere Dateien in .github/upgrades/{scenarioId}/, die Ihnen vollständige Transparenz bieten:
| Datei | Was es zeigt |
|---|---|
tasks.md |
Übersicht über visuelle Fortschritte mit allen Aufgaben, Statusindikatoren (✅ erledigt, in Bearbeitung, 🔄 ⬜ ausstehend) und einer Statusanzeige |
execution-log.md |
Vollständiger chronologischer Überwachungspfad jeder Aktion, die der Agent ausgeführt hat, wann und was passiert ist |
assessment.md |
Die anfängliche Analyse Ihrer Lösung, einschließlich Abhängigkeiten, kritische Änderungen und Upgrade-Komplexität |
scenario-instructions.md |
Ihre Vorlieben und die gelernten Entscheidungen des Agenten |
tasks/{taskId}/progress-details.md |
Details pro Aufgabe: Aufgetretene Buildfehler, Behebung, Testergebnisse und getroffene Entscheidungen |
Unterbrochene Arbeit fortsetzen
Schließen Sie den Chat, oder beenden Sie Ihre IDE. Der Agent bewältigt diese Situation nahtlos.
Der Agent speichert den gesamten Zustand in .github/upgrades/ in Ihrem Repository. Wenn Sie eine neue Unterhaltung beginnen, überprüft der Agent den aktuellen Zustand und weiß sofort:
- Welches Szenario aktiv ist.
- Welche Aufgaben abgeschlossen, in Bearbeitung oder ausstehend sind.
- Welche Artefakte vorhanden sind (Bewertung, Plan, Aufgabendateien).
- Gibt an, ob alle Vorgänge veraltet angezeigt werden (hängen bleibend im 🔄 Status einer vorherigen Sitzung).
Erkennung veralteter Aufgaben
Wenn eine Aufgabe aus einer vorherigen Sitzung ausgeführt wird, erkennt der Agent, dass die Aufgabe möglicherweise veraltet ist, und bietet Optionen, um fortzufahren, neu zu starten oder zu überspringen.
Tipp
Da sich der Zustand in .github/upgrades/ in Ihrem Repository befindet, reist er mit Ihrem Code mit. Pushen Sie Ihren Branch auf einen remote-Server oder führen Sie einen Pull auf einen anderen Rechner aus, und der Agent macht genau dort weiter, wo Sie aufgehört haben.
Arbeiten über mehrere Sitzungen hinweg
Große Upgrades, z. B. eine 20-Projektlösung, ein komplexes Framework-Upgrade oder eine mehrstufige Modernisierung, umfassen häufig mehrere Sitzungen über Tage oder Wochen. Der Agent verarbeitet Multi-Session-Arbeiten auf natürliche Weise:
-
Beständiger Zustand: Alles ist in
.github/upgrades/. Es gibt keinen Speicherstatus, der verloren gehen könnte. - Sitzungsunabhängigkeit: Jede Chatsitzung ist unabhängig. Der Agent rekonstruiert seinen Kontext jedes Mal aus den Zustandsdateien.
- IDE-übergreifende Unterstützung: Beginnen Sie in VS Code und setzen Sie in Visual Studio oder mit der Copilot CLI fort. Der Statusordner ist der gemeinsame Vertrag.
Tipps für die Arbeit mit mehreren Sitzungen
- Committen Sie den Status-Ordner. Pushen Sie
.github/upgrades/in Ihren Branch, um den Ordner zu sichern und für Ihr Team sichtbar zu machen. - Überprüfen Sie zwischen den Sitzungen. Lesen Sie
tasks.mdundexecution-log.md, um Ihr Gedächtnis aufzufrischen, was in der letzten Sitzung passiert ist. - Aktualisieren Sie einstellungen, während Sie lernen. Wenn Sie etwas beim Testen entdecken, das den Ansatz des Agents ändern sollte, teilen Sie dem Agent zu Beginn der nächsten Sitzung mit.
Hilfe anfordern
Sind Sie nicht sicher, was der Agent tun kann oder wie der Stand der Dinge ist? Fragen:
| Was Sie wissen möchten | Was zu sagen ist |
|---|---|
| Verfügbare Upgradeszenarien | "Was können Sie tun?" oder "Welche Szenarien sind verfügbar?" |
| Aktueller Fortschritt | "Was ist der aktuelle Status?" oder "Fortschritt anzeigen" |
| Der Upgradeplan | "Erklären Sie den Plan" oder "Führen Sie mich durch die Aufgaben" |
| Bewertungsdetails | "Die Bewertung anzeigen" oder "Was hat die Bewertung gefunden?" |
| Verfügbare Fähigkeiten | "Welche Fähigkeiten haben Sie?" oder "Auflisten Ihrer Fähigkeiten" |
| Eine bestimmte Entscheidung | "Warum haben Sie X über Y ausgewählt?" |
| Risiken oder Bedenken | "Welche Risiken bestehen bei diesem Upgrade? |
Effektives Kommunizieren
Die Qualität Ihrer Interaktion wirkt sich direkt auf die Qualität der Ergebnisse aus.
Seien Sie spezifisch bezüglich des Umfangs
"Upgrade just the Data.Access and Data.Models projects to .NET 10" gibt dem Agent einen klaren Fokus. "Alles aktualisieren" funktioniert, aber der Agent trifft selbst mehr Entscheidungen über Sortierung und Prioritäten.
Kontext freigeben
Der Agent kennt Ihre Geschäftseinschränkungen nicht, es sei denn, Sie teilen sie:
- "Wir führen ein Upgrade durch, da Azure App Service im November den .NET 8 Support einstellt."
- "Dies ist ein Produktionsdienst mit hohem Datenverkehr – keine Verhaltensänderungen in den API-Antworten."
Ausdrücken von Einschränkungen
Teilen Sie dem Agent mit, was er nicht tun sollte , nicht nur, was er tun sollte:
- "Ändern Sie die öffentliche API-Oberfläche nicht – wir haben externe Consumer."
- "Wir können Newtonsoft.Json noch nicht aktualisieren – das Team, das geteilte Verträge besitzt, wurde noch nicht aktualisiert."
- „Fassen Sie das alte Berichtsmodul nicht an – das wird separat neu geschrieben.“
Feedback abgeben
Positives Feedback hilft genauso viel wie Korrekturen und bestätigt, dass der Agent auf dem richtigen Weg ist:
- "Dieses Upgrade sieht großartig aus – führen Sie den gleichen Ansatz für das andere Repositoryprojekt aus."
- "Das funktioniert, aber wir bevorzugen die Konstruktoreinfügung gegenüber der Eigenschafteneinfügung in dieser Codebasis."
Kurzreferenz
| Situation | Was zu sagen ist |
|---|---|
| Starten eines neuen Upgrades | "Upgrade meiner Lösung auf .NET 10" |
| Vorherige Arbeit fortsetzen | "Weiter" oder "Was ist der Status?" |
| Wechseln zum geführten Modus | „PaVerwenden“ oder „Zum geführten Modus wechseln“ |
| Wechseln zum automatischen Modus | "Weiter" oder "Fortfahren ohne Fragen" |
| Korrigieren einer Entscheidung | "Tatsächlich verwenden Sie X anstelle von Y" |
| Festlegen einer Präferenz | „Führen Sie für diese Lösung immer X aus“ |
| Änderungen überprüfen | "Zeigen Sie mir, was Sie geändert haben" oder Git-Protokoll überprüfen |
| Rückgängigmachen einer Änderung | "Die letzte Änderung wiederherstellen" |
| Fragen Sie, warum | "Warum haben Sie diesen Ansatz gewählt?" |
| Überspringen einer Aufgabe | "Diese Aufgabe jetzt überspringen" |
| Hilfe erhalten | "Was können Sie tun?" |