GitHub Copilot modernizálásának hibaelhárítása

Ez a cikk a .NET GitHub Copilot modernizálása során előforduló gyakori problémákat ismerteti kategóriák szerint rendezve. Minden bejegyzés egy probléma, ok és megoldás formátumát követi, így gyorsan megtalálhatja és megoldhatja a problémákat.

Munkafolyamat-problémák

Ezek a problémák a forgatókönyvek felderítésére, a munka folytatására és a tevékenységállapotra vonatkoznak.

Az ügynök azt mondja, hogy "nem találhatók forgatókönyvek"

Cause: Az ügynök nem ismeri fel a munkaterületet .NET projektként.

Solution:

  1. Ellenőrizze, hogy a munkaterület gyökere tartalmaz-e .sln, .csprojvagy .vbproj fájlt.
  2. Kérdezze meg az ügynököt: "Milyen megoldást vagy projektfájlt használ?"
  3. Ha a megoldás vagy projektfájl egy alkönyvtárban található, nyissa meg a könyvtárat a munkaterület gyökérkönyvtáraként, vagy az ügynököt kifejezetten a fájlra irányítsa.

Az ügynök nem folytathatja az előző munkát

Okoz: A .github/upgrades/ mappa, ahol az ügynök az összes állapotát tárolja, hiányzik vagy sérült.

Solution:

  1. Ellenőrizze, hogy a .github/upgrades/ mappa létezik-e az adattár gyökerében.
  2. Ha véletlenül törölte a mappát, indítsa újra a forgatókönyvet. Az ügynök nem állítható helyre az állapotfájljai nélkül.
  3. Ha a mappa létezik, de a fájlok sérültnek tűnnek, kérje meg az ügynököt, hogy "értékelje újra és tervezze újra" őket.

Jótanács

.github/upgrades/ mappát tegye elérhetővé az ágán, hogy az a munkamenetek és gépek között elérhető maradjon.

Folyamatban elakadt feladatok

Okoz: Az előző munkamenet akkor ért véget, amikor az ügynök a feladat közepén volt.

Solution:

  1. Az ügynök a legtöbb esetben automatikusan észleli az elavult feladatokat. Mondja el az ügynöknek, hogy "folytassa" vagy "indítsa újra az aktuális feladatot".
  2. Ha a elakadt állapot továbbra is fennáll, mondja el az ügynöknek, hogy "jelölje meg az aktuális feladatot függőben lévőként, majd indítsa újra" vagy "értékelje újra, és folytassa az utolsó befejezett lépéssel".
  3. Ellenőrizze a megfelelő progress-details.md fájlt, hogy tudja, hol állt le az előző munkamenet.

Az ügynök továbbra is rossz forgatókönyvet javasol

Okoz: Az ügynök elemzése váratlan projektjellemzőket észlelt, és a tervezettnél eltérő forgatókönyvet vont maga után.

Solution:

Legyen explicit, hogy mit szeretne. A "projekt frissítése" helyett mondja a következőt:

  • "10-re szeretnék frissíteni .NET."
  • "Frissíteni szeretnék a Newtonsoft.Json-ról a System.Text.Json-ra."
  • "Projekt átalakítása SDK-stílusú formátumra."

A jövőbeli eltérések elkerülése érdekében adjon hozzá forgatókönyv-beállítási preferenciákat a scenario-instructions.md-hoz.

Összeállítással és fordítással kapcsolatos problémák

Ezek a problémák a buildelési hibákhoz, a NuGet-visszaállítási problémákhoz és a kódgenerálási hibákhoz kapcsolódnak.

A build az ügynök módosításai után sikertelen

Okoz: A frissítések kompatibilitástörő API-módosításokat, hiányzó csomagokat vagy nem kompatibilis kódmintákat okozhatnak.

Solution:

  1. Tájékoztassa az ügynököt a hibáról. Az ügynök automatikusan elemzi a hibákat.
  2. Ha az ügynök nem tudja megoldani a problémát, állítsa vissza az utolsó véglegesítést (git revert HEAD), és kérje meg az ügynököt, hogy próbálkozzon egy másik megközelítéssel.
  3. Összetett hibák esetén ellenőrizze execution-log.md-t, hogy az ügynök mit változtatott, és milyen sorrendben.

A NuGet visszaállítása sikertelen

Okoz: A csomag inkompatibilitása a cél-keretrendszerrel vagy a privát NuGet-hírcsatornákkal kapcsolatos hitelesítési hibák.

Solution:

  • Privát hírcsatornák esetén: A frissítés megkezdése előtt hitelesítse magát a hírcsatornában.
  • Nem kompatibilis csomagok esetén: Mondja el az ügynöknek, hogy melyik csomag problémás. Az ügynök megkeresheti a kompatibilis verziókat, vagy alternatív csomagokat javasolhat.
  • Hírcsatorna-kapcsolati problémák esetén: Ellenőrizze, hogy manuálisan futtatható-e dotnet restore . Először javítsa ki a hírcsatorna hibáit, majd hagyja, hogy az ügynök újrapróbálkozjon.

Az ügynök nem lefordított kódot hoz létre

Okoz: Az AI által generált kód hibákat tartalmazhat, különösen peremhálózati esetekben vagy nem gyakori API-minták esetén.

Solution:

  1. Az ügynök automatikusan észleli a fordítási hibákat. Ha az ügynök nehézségekkel küzd, adjon meg útmutatást, vagy javítsa ki manuálisan a kódot, és kérje meg az ügynököt, hogy folytassa.
  2. Ha az ügynök több próbálkozás után is egy adott javítással küzd, szerkessze manuálisan a kódot, és mondja el az ügynöknek: "Kijavítottam a fordítási hibát a MyClass.cs fájlban, jelölje meg ezt a feladatot befejezettnek."
  3. Az ügynök a manuális javításból tanul, és hasonló mintákat alkalmaz, amikor ugyanez a probléma máshol jelenik meg.

Git-problémák

Megjegyzés:

Az ügynök Git-mappák nélkül is működik. Ha a munkaterület nem Git-adattár, az ügynök kihagyja a Git-műveleteket (elágaztatás, véglegesítés), és közvetlenül a fájlokra alkalmazza a módosításokat. A Git nélkül a kezdés előtt manuálisan biztonsági másolatot készíthet a projektről, hogy szükség esetén vissza tudja állítani.

Az ügynök nem tud ágat létrehozni

Okoz: A munkafa nem véglegesített módosításai, az ágelnevezési ütközés vagy a Git nincs inicializálva a munkaterületen.

Solution:

  1. Véglegesítse vagy rejtse el a függőben lévő módosításokat, mielőtt elindít egy forgatókönyvet.
  2. Ellenőrizze, hogy a Git inicializálva van-e úgy, hogy a munkaterület gyökerében lefuttatja a git status parancsot.
  3. Ha már létezik egy ág az ügynök kívánt nevével, törölje a meglévő ágat, vagy kérje meg az ügynököt, hogy használjon másik ágnevet.

Az összes ügynökmódosítás visszavonása

Okoz: A frissítés nem a tervek szerint haladt, és újra szeretné kezdeni.

Solution:

  1. Váltson vissza az eredeti ágra (vagy az alapágra git checkout main ).
  2. Az ügynök munkaága tartalmazza a fő ágtól elkülönített összes módosítást.
  3. Az ügynök ágának teljes eltávolításához futtassa a parancsot git branch -D <agent-branch-name>.
  4. Néhány módosítás megtartásához választólagosan adja hozzá a megfelelő feltöltéseket a cherry-pick segítségével git cherry-pick <commit-hash>.

Jótanács

Az ügynök részletes véglegesítéseket végez tevékenységenként, így ön szelektíven megtarthatja a végrehajtott módosításokat.

Teljesítménnyel kapcsolatos problémák

Ezek a problémák a frissítés sebességéhez és az értékelés időtartamához kapcsolódnak.

Az ügynök lassú vagy sokáig tart

Okoz: A sok projekttel, összetett függőségi grafikonokkal vagy számos kompatibilitástörő módosítással rendelkező nagy megoldások természetesen tovább tarthatnak.

Solution:

Nagy méretű megoldások (több mint 50 projekt) esetén fontolja meg a frissítést csoportosan. Csoportosítsa a kapcsolódó projekteket, és frissítse őket együtt.

Az értékelés hosszú időt vesz igénybe

Ok: Az értékelés elemzi az összes projekt függőségeit, NuGet-csomagjait, célkeretrendszereit és az alkalmazható kompatibilitástörő változásokat. A nagy megoldások esetében az értékelés természetesen tovább tart.

Solution:

  1. A hosszú értékelési idők a nagy megoldások esetében normálisak. Nincs szükség műveletre.
  2. A "Folyamatok" panelen figyelje a haladást, és válassza a Visual Studio legördülő listájában az AppModernizationExtension lehetőséget.
  3. Az értékelés forgatókönyvenként csak egyszer fut. A következő fázisok a gyorsítótárazott eredményeket használják.

Testreszabási problémák

Ezek a problémák egyéni készségekkel és forgatókönyv-utasításfájlokkal kapcsolatosak.

Az egyéni képességek nem lesznek felvéve

Okoz: A képességfájl nem megfelelő helyen található, hiányzó vagy érvénytelen metaadatokkal rendelkezik, vagy helytelen formátumú.

Solution:

  1. Ellenőrizze, hogy a képességfájl a támogatott helyek egyikén található-e:
    • .github/skills/ (adattárszintű, csapatszintű)
    • .github/upgrades/skills/ (forgatókönyvszintű)
    • %UserProfile%/.copilot/skills/ (felhasználói szintű, személyes)
  2. Ellenőrizze, hogy a képesség metaadatai legalább name és description mezőket tartalmaznak-e.
  3. Győződjön meg arról, hogy a discovery mező (ha be van állítva) az alábbiak egyike: lazy, preloadvagy scenario.
  4. Ellenőrizze, hogy a képesség megfelel-e description az elvárt tevékenységtípusnak. Az ügynök leírás-egyeztetéssel választja ki a készségeket.

A scenario-instructions.md módosításai nem lépnek érvénybe

Okoz: Előfordulhat, hogy a szoftverügynök nem olvassa újra a fájlt menet közben, vagy a módosítások nem a megfelelő szakaszban vannak.

Solution:

  1. Kérje meg az ügynököt, hogy "töltse be újra az utasításokat" , vagy indítsa el az új csevegési munkamenetet az újraolvasás kényszerítéséhez.
  2. Ellenőrizze, hogy a módosítások a fájl megfelelő szakaszaiban vannak-e:
    • Felhasználói beállítások: Általános beállítások és korlátozások.
    • Főbb döntések: A frissítés során hozott fontos döntések rögzítéséhez.
    • Egyéni utasítások: Adott viselkedési felülbírálások esetén.
  3. Ellenőrizze, hogy a fájl mentve van-e, és a várt elérési úton van-e: .github/upgrades/{scenarioId}/scenario-instructions.md.

Segítség kérése

Ha valami nem a várt módon működik:

  1. Kérdezze meg az ügynököt: Kérdezze meg a következőt: "Mi történt az utolsó feladattal?" Az ügynök gyakran elmagyarázza, mi történt, és javasolhatja a következő lépéseket.
  2. Tekintse át a végrehajtási naplót: Nyissa meg execution-log.md a .github/upgrades/{scenarioId}/. A napló egy időrendi rekordot jelenít meg arról, hogy mit tett az ügynök, beleértve az esetleges hibákat is.
  3. Jelentse a problémát: Ha hibát észlel, vagy az ügynök valamiben következetesen nem működik jól, jelentse be a problémát a @modernize-dotnet GitHub tárházban.