Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du kommunicerar med GitHub Copilot moderniseringsagenten, lär den dina inställningar, korrigerar misstag, granskar dess arbete och hanterar uppgraderingar över flera sessioner.
GitHub Copilot modernisering är en interaktiv medarbetare som ställer frågor, föreslår strategier, anpassar sig till din feedback och lär sig av dina preferenser över tid. För att få bästa resultat, ge agenten sammanhang. Ju mer den vet om dina mål, begränsningar och inställningar, desto bättre presterar den.
❌ 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."
Tips/Råd
Du behöver inte ge alla kontexter i förväg. Agenten ställer uppföljningsfrågor när den behöver mer information.
Starta en konversation
- Öppna Copilot Chat i VS Code, Visual Studio eller Copilot CLI.
- Välj GitHub Copilot moderniseringsagenten för .NET från agentväljaren eller ange rätt agentomnämnande för din miljö:
@modernize-dotneti VS Code och Copilot CLI, eller@Modernizei Visual Studio. - Beskriv vad du vill åstadkomma på naturligt språk.
Vad du ska säga
Naturligt språk fungerar. Prova följande exempel:
| Vad du vill ha | Vad du ska säga |
|---|---|
| Uppgradera en fullständig lösning | "Uppgradera min lösning till .NET 10" |
| Uppgradera en specifik teknik | "Hjälp mig att uppgradera från EF6 till EF Core" |
| Se vad som är tillgängligt | "Vilka scenarier är tillgängliga?" |
| Uppgradera ett projekt först | "Uppgradera API-projektet först och sedan det delade biblioteket" |
| Förstå det aktuella tillståndet | "Vad är den aktuella statusen för min uppgradering?" |
Vad händer härnäst
När du startar en konversation söker agenten efter befintligt uppgraderingsarbete på din arbetsyta:
- Om det inte finns något befintligt arbete börjar agenten på nytt, vanligtvis med en utvärdering av din lösning.
- Om det pågår ett befintligt arbete fortsätter agenten där du slutade och visar aktuell status, till exempel "3 av 8 slutförda uppgifter".
Välj ett flödesläge
Agenten stöder två flödeslägen som styr hur mycket agenten pausar för dina indata.
Automatiskt läge
I automatiskt läge arbetar agenten genom stegen (utvärdering, planering, körning) utan att pausa för godkännande vid varje gräns. Agenten stannar fortfarande vid verkliga hinder eller när den behöver ett beslut som endast du kan fatta.
Bäst för erfarna användare, enkla uppgraderingar och små lösningar.
Vägledningsläge
I guidat läge pausar agenten vid varje steggräns för din granskning:
- Efter utvärderingen, innan du skapar planen.
- Efter planeringen, innan du utför några uppdrag.
- Innan komplexa aktivitetsuppdelningar.
- Vid viktiga beslutspunkter där det finns flera giltiga metoder.
Bäst för förstagångsanvändare, komplexa lösningar och när du vill lära dig processen.
Växla lägen mitt i sessionen
Växla fritt mellan lägen när som helst:
| Växla till | Vad du ska säga |
|---|---|
| Vägledningsläge | "Pausa" eller "Växla till guidat läge" |
| Automatiskt läge | "Fortsätt" eller "Fortsätt" |
Tips/Råd
Börja med guidat läge för din första uppgradering. Guidat läge är det bästa sättet att lära sig hur agenten tänker och vilka beslut den fattar. Växla till automatiskt läge när du är bekväm.
Lär agenten
Agenten lär sig av dig. Agenten sparar dina korrigeringar, inställningar och instruktioner i scenario-instructions.md mappen för uppgraderingstillstånd. De här inställningarna bevaras mellan sessioner.
Korrigera misstag
När agenten fattar ett beslut som du inte håller med om säger du till agenten:
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."
Agenten uppdaterar scenario-instructions.md och gör inte samma val igen, inte ens i framtida sessioner.
Gör inställningar
Berätta proaktivt för agenten hur du gillar saker som görs:
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."
Ge uppgiftsspecifika instruktioner
Ibland gäller en inställning endast för en specifik uppgift:
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."
Vad agenten sparar
Filen scenario-instructions.md är uppdelad i tydliga avsnitt:
| Avsnitt | Vad den innehåller | Exempel |
|---|---|---|
| Användarinställningar (teknisk) | Paketval, ramverksbeslut, kodningsmönster | "Använd System.Text.Json, inte Newtonsoft" |
| Användarinställningar (exekveringsstil) | Så här fungerar agenten | "Använd alltid bottom-up-strategi" |
| Nyckelbeslutslogg | Viktiga beslut och deras motivering | "Välj EF Core framför Dapper eftersom..." |
| Anpassade instruktioner per aktivitet | Aktivitetsspecifika åsidosättningar | "Hoppa över tester för uppgift 3.1" |
Tips/Råd
Redigera även scenario-instructions.md direkt. Det är en Markdown-fil i .github/upgrades/{scenarioId}/. Agenten läser filen i början av varje interaktion.
Gör korrigeringar mitt i sessionen
Agenten hanterar avbrott på ett smidigt sätt och tappar inte reda på där det är eller vad det gjorde.
Pausa och granska
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?"
Omdirigera
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."
Undo
You: "That last change broke the build. Can we revert it?"
Agent: "I'll revert the last commit (abc1234: 'Migrate auth middleware').
Reverting now."
Återställ dessutom ändringar själv med hjälp av vanliga Git-kommandon. Agenten skriver tydliga, beskrivande commit-meddelanden så att du vet exakt vad som har förändrats i varje commit.
Ställ frågor mitt i flödet
Att ställa frågor spårar inte ur arbetsflödet:
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."
Granska agentens arbete
Agenten tillhandahåller flera sätt att granska sitt arbete.
Källkontroll
Agenten föreslår att du arbetar med en separat gren och genomför ändringar när den fungerar. Granska agentens ändringar med vanliga Git-kommandon:
git log --oneline -10
git diff main..<agent-branch>
Arbetsflödesfiler
Agenten har flera filer i .github/upgrades/{scenarioId}/ som ger dig fullständig insyn:
| Arkiv | Vad det visar |
|---|---|
tasks.md |
Översikt över visuellt förlopp med alla uppgifter, statusindikatorer (✅ gjorda, 🔄 pågår, ⬜ väntar) och en förloppsindikator |
execution-log.md |
Slutför kronologisk granskningslogg för varje åtgärd som agenten vidtog, när och vad som hände |
assessment.md |
Den inledande analysen av din lösning, inklusive beroenden, kompatibilitetsbrytande ändringar och uppgraderingskomplexitet |
scenario-instructions.md |
Dina inställningar och agentens inlärda beslut |
tasks/{taskId}/progress-details.md |
Information per uppgift: kompileringsfel påträffades, hur de löstes, testresultat och beslut som fattats |
Återuppta avbrutet arbete
Stäng chatten eller stäng din IDE. Agenten hanterar den här situationen sömlöst.
Agenten lagrar alla tillstånd i .github/upgrades/ inne i din lagringsplats. När du startar en ny konversation kontrollerar agenten det aktuella tillståndet och vet omedelbart:
- Vilket scenario är aktivt.
- Vilka uppgifter som slutförs, pågår eller väntar.
- Vilka artefakter finns (utvärdering, plan, uppgiftsfiler).
- Om några aktiviteter verkar inaktuella (har fastnat i 🔄 status från en tidigare session).
Identifiering av inaktuell uppgift
Om en aktivitet pågår från en tidigare session identifierar agenten att aktiviteten kan vara inaktuell och erbjuder alternativ för att fortsätta, starta om eller hoppa över.
Tips/Råd
Eftersom tillståndet finns i .github/upgrades/ i ditt repo, färdas det med din kod. Pusha din branch till en fjärrserver, dra in den på en annan dator, och agenten fortsätter precis där du slutade.
Arbeta över flera sessioner
Stora uppgraderingar, till exempel en 20-projektlösning, en komplex ramverksuppgradering eller en modernisering i flera steg, sträcker sig ofta över flera sessioner under dagar eller veckor. Agenten hanterar arbete med flera sessioner naturligt:
-
Beständiga tillstånd: Allt finns i
.github/upgrades/. Inget minnesinternt tillstånd att förlora. - Sessionsberoende: Varje chattsession är oberoende. Agenten rekonstruerar sin kontext från tillståndsfilerna varje gång.
- Cross-IDE-stöd: Starta i VS Code, fortsätt i Visual Studio eller Copilot CLI. Statusmappen är det delade kontraktet.
Tips för arbete med flera sessioner
- Kommitta tillståndsmappen. Pusha
.github/upgrades/till din branch för att säkerhetskopiera och göra mappen synlig för ditt team. - Granska mellan sessioner. Läs
tasks.mdochexecution-log.mdför att fräscha upp ditt minne om vad som hände under den senaste sessionen. - Uppdatera inställningar när du lär dig. Om du upptäcker något i testningen som bör ändra agentens metod kan du berätta för agenten i början av nästa session.
Be om hjälp
Vet du inte vad agenten kan göra eller var saker och ting står? Fråga:
| Vad du vill veta | Vad du ska säga |
|---|---|
| Tillgängliga uppgraderingsscenarier | "Vad kan du göra?" eller "Vilka scenarier är tillgängliga?" |
| Aktuellt förlopp | "Vad är den aktuella statusen?" eller "Visa mig förloppet" |
| Uppgraderingsplanen | "Förklara planen" eller "Gå igenom uppgifterna" |
| Utvärderingsinformation | "Visa mig utvärderingen" eller "Vad hittade utvärderingen?" |
| Tillgängliga kunskaper | "Vilka färdigheter har du?" eller "Visa en lista över dina kunskaper" |
| Ett specifikt beslut | "Varför valde du X framför Y?" |
| Risker eller problem | "Vilka är riskerna med den här uppgraderingen?" |
Kommunicera effektivt
Kvaliteten på interaktionen påverkar resultatets kvalitet direkt.
Var specifik om omfång
"Uppgradera bara projekten Data.Access och Data.Models till .NET 10" ger agenten ett tydligt fokus. "Uppgradera allt" fungerar, men agenten fattar fler beslut på egen hand om ordning och prioriteringar.
Dela kontext
Agenten känner inte till dina affärsbegränsningar om du inte delar dem:
- "Vi uppgraderar eftersom Azure App Service släpper stöd för .NET 8 i november."
- "Det här är en produktionstjänst med hög trafik – inga beteendeändringar i API-svaren."
Uttrycka begränsningar
Berätta för agenten vad den inte ska göra, inte bara vad den ska:
- "Ändra inte den offentliga API-ytan – vi har externa konsumenter."
- "Vi kan inte uppgradera Newtonsoft.Json ännu – teamet som äger delade kontrakt har inte uppgraderats."
- "Rör inte den äldre rapporteringsmodulen – den skrivs om separat."
Lämna feedback
Positiv feedback hjälper lika mycket som korrigeringar och bekräftar att agenten är på rätt spår:
- "Uppgraderingen ser bra ut – gör samma metod för det andra lagringsplatsens projekt."
- "Det fungerar, men vi föredrar konstruktorinmatning framför egenskapsinmatning i den här kodbasen."
Snabbreferens
| Situation | Vad du ska säga |
|---|---|
| Starta en ny uppgradering | "Uppgradera min lösning till .NET 10" |
| Återuppta föregående arbete | "Fortsätt" eller "Vad är statusen?" |
| Växla till guidat läge | "Pausa" eller "Växla till guidat läge" |
| Växla till automatiskt läge | "Fortsätt" eller "Fortsätt utan att fråga" |
| Korrigera ett beslut | "Använd faktiskt X i stället för Y" |
| Ange en inställning | "Gör alltid X för den här lösningen" |
| Granska ändringar | "Visa mig vad du har ändrat" eller kontrollera Git-loggen |
| Ångra en ändring | "Återställ den senaste ändringen" |
| Fråga varför | "Varför valde du det tillvägagångssättet?" |
| Hoppa över en uppgift | "Hoppa över den här uppgiften för tillfället" |
| Få hjälp | "Vad kan du göra?" |