Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak komunikować się z agentem modernizacji GitHub Copilot, nauczyć go swoich preferencji, poprawiać błędy, przeglądać jego pracę i zarządzać aktualizacjami w wielu sesjach.
GitHub Copilot jako nowoczesny interaktywny współpracownik zadaje pytania, proponuje strategie, dostosowuje się do Twoich opinii zwrotnej i uczy się na podstawie Twoich preferencji z upływem czasu. Aby uzyskać najlepsze wyniki, przekaż agentowi kontekst. Tym więcej wie o Twoich celach, ograniczeniach i preferencjach, tym lepiej działa.
❌ 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."
Napiwek
Nie musisz z góry udzielać całego kontekstu. Agent zadaje kolejne pytania, gdy potrzebuje więcej informacji.
Rozpoczynanie konwersacji
- Otwórz Copilot Chat w programie VS Code, Visual Studio lub interfejsie wiersza polecenia Copilot.
- Wybierz agenta modernizacji GitHub Copilot dla .NET z selektora agentów lub wpisz poprawną wzmiankę o agencie dla środowiska:
@modernize-dotnetw programie VS Code i interfejsie wiersza polecenia Copilot lub@Modernizew Visual Studio. - Opisz, co chcesz osiągnąć w języku naturalnym.
Co powiedzieć
Język naturalny działa. Wypróbuj następujące przykłady:
| Co chcesz | Co powiedzieć |
|---|---|
| Uaktualnianie pełnego rozwiązania | "Zaktualizuj moje rozwiązanie do .NET 10" |
| Uaktualnianie określonej technologii | "Pomóż mi przeprowadzić uaktualnienie z programu EF6 do platformy EF Core" |
| Zobacz, co jest dostępne | "Jakie scenariusze są dostępne?" |
| Najpierw uaktualnij jeden projekt | "Najpierw uaktualnij projekt interfejsu API, a następnie bibliotekę udostępnioną" |
| Opis bieżącego stanu | "Jaki jest bieżący stan mojego uaktualnienia?" |
Co się stanie dalej
Gdy rozpoczynasz rozmowę, agent sprawdza trwające zadania związane z uaktualnieniem w obszarze roboczym.
- Jeśli nie ma istniejącej pracy, agent zaczyna od nowa, zazwyczaj począwszy od oceny Twojego rozwiązania.
- Jeśli jest praca w toku, agent kontynuuje od miejsca, w którym została przerwana, i wyświetla bieżący stan, na przykład "3 z 8 zadań ukończono".
Wybieranie trybu przepływu
Agent obsługuje dwa tryby przepływu, które kontrolują, ile agent wstrzymuje się na twoje dane wejściowe.
Tryb automatyczny
W trybie automatycznym agent przechodzi przez etapy (ocena, planowanie, wykonywanie) bez zatrzymywania się na zatwierdzenie na każdym etapie. Agent nadal zatrzymuje się na rzeczywistych przeszkodach lub gdy potrzebuje decyzji, której tylko Ty możesz dokonać.
Idealne dla doświadczonych użytkowników, prostych modernizacji i małych rozwiązań.
Tryb z przewodnikiem
W trybie prowadzonym agent wstrzymuje się na granicy każdego etapu, abyś mógł dokonać przeglądu.
- Po ocenie przed utworzeniem planu.
- Po planowaniu przed wykonaniem jakichkolwiek zadań.
- Przed złożonymi podziałami zadań.
- W kluczowych punktach decyzyjnych, w których istnieje wiele prawidłowych podejść.
Najlepsze dla osób korzystających po raz pierwszy, przy złożonych rozwiązaniach oraz gdy chcesz nauczyć się procesu.
Przełącz tryby w trakcie sesji
Przełączaj się swobodnie między trybami w dowolnym momencie:
| Aby przełączyć na | Co powiedzieć |
|---|---|
| Tryb z przewodnikiem | "Wstrzymaj" lub "Przełącz do trybu z przewodnikiem" |
| Tryb automatyczny | "Kontynuuj" lub "Przejdź dalej" |
Napiwek
Rozpocznij od trybu z przewodnikiem na potrzeby pierwszego uaktualnienia. Tryb z przewodnikiem to najlepszy sposób, aby dowiedzieć się, jak agent myśli i jakie decyzje podejmuje. Przełącz się do trybu automatycznego, gdy jesteś wygodny.
Naucz agenta
Agent uczy się od Ciebie. Agent zapisuje poprawki, preferencje i instrukcje w scenario-instructions.md folderze stanu uaktualnienia. Te preferencje są utrwalane między sesjami.
Poprawianie błędów
Gdy agent podejmuje decyzję, z którą się nie zgadzasz, poinformuj agenta:
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."
Agent aktualizuje scenario-instructions.md i nigdy już nie dokona tego samego wyboru, nawet w przyszłej sesji.
Ustawianie preferencji
Proaktywnie poinformuj agenta, jak lubisz, aby rzeczy były wykonywane.
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."
Nadawanie instrukcji specyficznych dla zadania
Czasami preferencja dotyczy tylko określonego zadania:
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."
Co przechowuje agent
Plik scenario-instructions.md jest podzielony na jasne sekcje:
| Section | Co zawiera | Przykład |
|---|---|---|
| Preferencje użytkownika (techniczne) | Opcje pakietów, decyzje dotyczące struktury, wzorce kodowania | Używaj System.Text.Json, a nie Newtonsoft |
| Preferencje użytkownika (styl wykonywania) | Jak działa agent | "Zawsze używaj strategii oddolnej" |
| Dziennik kluczowych decyzji | Ważne decyzje i ich uzasadnienie | "Wybierz program EF Core nad programem Dapper, ponieważ..." |
| Instrukcje niestandardowe na zadanie | Przesłonięcia specyficzne dla zadań | "Pomiń testy dla zadania 3.1" |
Napiwek
Edytuj także scenario-instructions.md bezpośrednio. Jest to plik Markdown w .github/upgrades/{scenarioId}/. Agent odczytuje plik na początku każdej interakcji.
Dokonywanie poprawek w trakcie sesji
Agent obsługuje przerwy sprawnie i nie gubi się, gdzie jest ani co robi.
Wstrzymywanie i przeglądanie
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?"
Redirect
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."
Cofnąć
You: "That last change broke the build. Can we revert it?"
Agent: "I'll revert the last commit (abc1234: 'Migrate auth middleware').
Reverting now."
Możesz również samodzielnie przywrócić zatwierdzenia przy użyciu standardowych poleceń Git. Agent zapisuje jasne i opisowe komunikaty zatwierdzeń, dzięki czemu dokładnie wiesz, co zmienił każdy z nich.
Zadawanie pytań w trakcie procesu
Zadawanie pytań nie wykolei przepływu pracy:
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."
Przeglądanie pracy agenta
Agent udostępnia wiele sposobów przeglądania swojej pracy.
Kontrola źródła
Agent sugeruje pracę nad oddzielną gałęzią i zatwierdza zmiany w miarę jego działania. Przejrzyj zmiany agenta za pomocą standardowych poleceń Git:
git log --oneline -10
git diff main..<agent-branch>
Pliki przepływu pracy
Agent przechowuje kilka plików w .github/upgrades/{scenarioId}/, które zapewniają pełną widoczność:
| Plik | Co pokazuje |
|---|---|
tasks.md |
Przegląd postępu wizualnego ze wszystkimi zadaniami, wskaźnikami stanu (✅ wykonanymi, 🔄 w toku, ⬜ oczekującymi) i paskiem postępu |
execution-log.md |
Ukończ dziennik inspekcji chronologicznej każdej akcji wykonywanej przez agenta, kiedy i co się stało |
assessment.md |
Początkowa analiza Twojego rozwiązania, w tym zależności, zmiany powodujące zakłócenia i złożoność uaktualniania |
scenario-instructions.md |
Twoje preferencje i wyuczone decyzje agenta |
tasks/{taskId}/progress-details.md |
Szczegóły poszczególnych zadań: napotkano błędy kompilacji, sposób ich rozwiązywania, wyniki testów i decyzje podjęte |
Wznawianie przerwanej pracy
Zamknij czat lub zamknij środowisko IDE. Agent bezproblemowo obsługuje tę sytuację.
Agent przechowuje stan w .github/upgrades/ wewnątrz twojego repozytorium. Po rozpoczęciu nowej konwersacji agent sprawdza bieżący stan i natychmiast wie:
- Który scenariusz jest aktywny.
- Które zadania są wykonywane, w toku lub oczekujące.
- Jakie artefakty istnieją (ocena, plan, pliki zadań).
- Czy jakiekolwiek zadania są przestarzałe (zablokowane w 🔄 stanie z poprzedniej sesji).
Wykrywanie przestarzałych zadań
Jeśli zadanie jest w toku z poprzedniej sesji, agent zidentyfikuje, że zadanie może być nieaktualne i oferuje opcje takie jak kontynuowanie, ponowne uruchomienie lub pominięcie.
Napiwek
Ponieważ stan jest częścią .github/upgrades/ repozytorium, wędruje razem z twoim kodem. Wypchnij gałąź do zdalnego repozytorium, ściągnij ją na inną maszynę, a agent kontynuuje dokładnie w miejscu, gdzie skończyłeś.
Praca między wieloma sesjami
Duże uaktualnienia, takie jak 20-projektowe rozwiązanie, złożone uaktualnienie struktury lub modernizacja wieloetapowa, często obejmują wiele sesji w ciągu kilku dni lub tygodni. Agent naturalnie obsługuje pracę wielosesyjną.
-
Stan trwały: Wszystko znajduje się w elemecie
.github/upgrades/. Brak stanu w pamięci, który można utracić. - Niezależność sesji: Każda sesja czatu jest niezależna. Agent rekonstruuje swój kontekst z plików stanu za każdym razem.
- Obsługa różnych IDE: Zacznij w środowisku VS Code, kontynuuj w Visual Studio lub użyj Copilot CLI. Folder stanu jest wspólnym kontraktem.
Porady dotyczące pracy wielosesyjnej
- Zatwierdź folder stanu. Wypchnij
.github/upgrades/do gałęzi, aby utworzyć kopię zapasową folderu i udostępnić go zespołowi. - Przegląd między sesjami. Przeczytaj
tasks.mdiexecution-log.mdaby odświeżyć pamięć na temat tego, co wydarzyło się w ostatniej sesji. - Aktualizuj preferencje podczas nauki. Jeśli odkryjesz coś podczas testowania, które powinno zmienić podejście agenta, poinformuj agenta na początku następnej sesji.
Poproś o pomoc
Nie masz pewności, co agent może zrobić lub gdzie stoją rzeczy? Zapytać:
| Co chcesz wiedzieć | Co powiedzieć |
|---|---|
| Dostępne scenariusze uaktualniania | "Co możesz zrobić?" lub "Jakie scenariusze są dostępne?" |
| Bieżący postęp | "Jaki jest bieżący stan?" lub "Pokaż mi postęp" |
| Plan uaktualnienia | "Wyjaśnij plan" lub "Przeprowadź mnie przez zadania" |
| Szczegóły oceny | "Pokaż mi ocenę" lub "Co się stało z oceną?" |
| Dostępne umiejętności | "Jakie masz umiejętności?" lub "Wyświetl swoje umiejętności" |
| Konkretna decyzja | "Dlaczego wybrano X ponad Y?" |
| Ryzyko lub obawy | "Jakie są zagrożenia związane z tym uaktualnieniem?" |
Efektywna komunikacja
Jakość interakcji bezpośrednio wpływa na jakość wyników.
Określanie zakresu
"Uaktualnij jedynie projekty Data.Access i Data.Models do .NET 10," co daje agentowi jasne skupienie. "Uaktualnij wszystko" działa, ale agent podejmuje więcej decyzji samodzielnie na temat kolejności i priorytetów.
Udostępnij kontekst
Agent nie zna ograniczeń biznesowych, chyba że je udostępnisz:
- "Uaktualniamy, ponieważ Azure App Service przestaje wspierać .NET 8 w listopadzie."
- "Jest to usługa produkcyjna o dużym natężeniu ruchu — zero zmian behawioralnych w odpowiedziach interfejsu API".
Ograniczenia wyrażone
Poinformuj agenta, czego nie powinien robić, a nie tylko tego, co powinien:
- "Nie zmieniaj publicznej powierzchni interfejsu API — mamy konsumentów zewnętrznych".
- "Nie możemy jeszcze zaktualizować pakietu Newtonsoft.Json — zespół, który odpowiada za kontrakty udostępnione, jeszcze go nie zaktualizował."
- "Nie dotykaj starszego modułu raportowania — to jest ponownie napisane oddzielnie".
Prześlij opinię
Pozytywne opinie pomagają tak samo jak poprawki i potwierdzają, że agent znajduje się we właściwej ścieżce:
- "To uaktualnienie wygląda świetnie — wykonaj to samo podejście dla innego projektu repozytorium".
- "To działa, ale w tej bazie kodu preferujemy wstrzykiwanie konstruktora niż wstrzykiwanie właściwości."
Krótki przewodnik
| Situation | Co powiedzieć |
|---|---|
| Rozpoczynanie nowego uaktualnienia | "Zaktualizuj moje rozwiązanie do .NET 10" |
| Wznów poprzednią pracę | "Kontynuuj" lub "Jaki jest stan?" |
| Przełączanie do trybu z przewodnikiem | "Wstrzymaj" lub "Przełącz do trybu z przewodnikiem" |
| Przełączanie do trybu automatycznego | "Przejdź dalej" lub "Kontynuuj bez pytania" |
| Poprawianie decyzji | "W rzeczywistości należy użyć X zamiast Y" |
| Ustawianie preferencji | "Zawsze rób X dla tego rozwiązania" |
| Przeglądanie zmian | "Pokaż mi, co zmieniono" lub sprawdź dziennik Git |
| Cofanie zmiany | "Przywróć ostatnią zmianę" |
| Zapytaj, dlaczego | "Dlaczego wybrano to podejście?" |
| Pomiń zadanie | "Pomiń to zadanie na razie" |
| Uzyskaj pomoc | "Co możesz zrobić?" |