Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini membahas cara berkomunikasi dengan agen modernisasi GitHub Copilot, mengajarkannya preferensi Anda, memperbaiki kesalahan, meninjau pekerjaannya, dan mengelola peningkatan di beberapa sesi.
Pembaruan GitHub Copilot adalah kolaborator interaktif yang mengajukan pertanyaan, mengusulkan strategi, beradaptasi dengan umpan balik Anda, dan belajar dari preferensi Anda seiring waktu. Untuk mendapatkan hasil terbaik, berikan konteks kepada agen. Semakin tahu tentang tujuan, batasan, dan preferensi Anda, semakin baik performanya.
❌ 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."
Petunjuk / Saran
Anda tidak perlu memberikan semua konteks di depan. Agen mengajukan pertanyaan tindak lanjut ketika membutuhkan informasi lebih lanjut.
Mulai percakapan
- Buka Copilot Chat di Visual Studio Code, Visual Studio, atau Copilot CLI.
- Pilih agen modernisasi GitHub Copilot untuk .NET dari pengelola agen, atau ketik agen yang sesuai dengan lingkungan Anda:
@modernize-dotnetdi Visual Studio Code dan Copilot CLI, atau@Modernizedi Visual Studio. - Jelaskan apa yang ingin Anda capai dalam bahasa alami.
Apa yang harus dikatakan
Bahasa alami berfungsi. Coba contoh-contoh berikut:
| Apa yang Anda inginkan | Apa yang harus dikatakan |
|---|---|
| Meningkatkan solusi lengkap | "Tingkatkan solusi saya ke .NET 10" |
| Meningkatkan teknologi tertentu | "Bantu saya meningkatkan dari EF6 ke EF Core" |
| Lihat apa yang tersedia | "Skenario apa yang tersedia?" |
| Tingkatkan satu proyek terlebih dahulu | "Tingkatkan proyek API terlebih dahulu, lalu pustaka bersama" |
| Memahami status saat ini | "Apa status peningkatan saya saat ini?" |
Apa yang terjadi selanjutnya
Saat Anda memulai percakapan, agen memeriksa pekerjaan peningkatan yang ada di ruang kerja Anda:
- Jika tidak ada pekerjaan yang sudah ada, agen memulai dari awal, biasanya dimulai dengan penilaian terhadap solusi Anda.
- Jika ada pekerjaan yang sedang berlangsung, agen akan mengambil tempat yang Anda tinggalkan dan menampilkan status saat ini, seperti "3 dari 8 tugas selesai."
Pilih mode alur
Agen mendukung dua mode alur yang mengontrol seberapa sering agen berhenti untuk menunggu input Anda.
Mode otomatis
Dalam mode otomatis, agen bekerja melalui tahapan (penilaian, perencanaan, eksekusi) tanpa menjeda persetujuan di setiap batas. Agen masih berhenti pada penghalang nyata atau ketika memerlukan keputusan yang hanya dapat Anda berikan.
Terbaik untuk pengguna berpengalaman, peningkatan langsung, dan solusi kecil.
Mode terpandu
Dalam mode terpandu, agen berhenti sejenak di setiap batas tahap untuk tinjauan Anda:
- Setelah penilaian, sebelum membuat rencana.
- Setelah merencanakan, sebelum menjalankan tugas apa pun.
- Sebelum perincian tugas yang kompleks.
- Pada poin keputusan utama di mana ada beberapa pendekatan yang valid.
Terbaik untuk pengguna pemula, solusi rumit, dan saat Anda ingin mempelajari prosesnya.
Beralih mode di tengah sesi
Beralih dengan bebas di antara mode kapan saja:
| Untuk beralih ke | Apa yang harus dikatakan |
|---|---|
| Mode terpandu | "Jeda" atau "Beralih ke mode terpandu" |
| Mode otomatis | "Lanjutkan" atau "Lanjutkan" |
Petunjuk / Saran
Mulailah dengan mode terpandu untuk peningkatan pertama Anda. Mode terpandu adalah cara terbaik untuk mempelajari bagaimana agen berpikir dan keputusan apa yang dihasilkannya. Beralih ke mode otomatis setelah Anda nyaman.
Ajari agen
Agen belajar darimu. Agen menyimpan koreksi, preferensi, dan instruksi Anda ke scenario-instructions.md dalam folder status peningkatan. Preferensi ini bertahan di seluruh sesi.
Perbaiki kesalahan
Ketika agen membuat keputusan yang tidak Anda setujui, beri tahu agen:
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."
Agen memperbarui scenario-instructions.md dan tidak akan membuat pilihan yang sama lagi, bahkan dalam sesi mendatang.
Mengatur preferensi
Secara proaktif memberi tahu agen bagaimana Anda menyukai hal-hal yang dilakukan:
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."
Berikan instruksi khusus tugas
Terkadang preferensi hanya berlaku untuk tugas tertentu:
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."
Apa yang disimpan agen
File scenario-instructions.md diatur ke dalam bagian yang jelas:
| Bagian | Isinya | Example |
|---|---|---|
| Preferensi Pengguna (Teknis) | Pilihan paket, keputusan kerangka kerja, pola pengkodian | "Gunakan System.Text.Json, bukan Newtonsoft" |
| Preferensi Pengguna (Gaya Eksekusi) | Cara kerja agen | "Selalu gunakan strategi bottom-up" |
| Log Keputusan Utama | Keputusan penting dan alasannya | "Pilih EF Core daripada Dapper karena..." |
| Instruksi Khusus untuk Tugas | Penggantian Khusus Tugas | "Lewati pengujian untuk tugas 3.1" |
Petunjuk / Saran
Selain itu, edit scenario-instructions.md secara langsung. Ini adalah file Markdown di .github/upgrades/{scenarioId}/. Agen membaca file di awal setiap interaksi.
Melakukan koreksi pertengahan sesi
Agen menangani gangguan dengan baik dan tidak kehilangan jejak di mana ia berada atau apa yang sedang dikerjakannya.
Jeda dan tinjau
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?"
Pengalihan
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."
Batalkan
You: "That last change broke the build. Can we revert it?"
Agent: "I'll revert the last commit (abc1234: 'Migrate auth middleware').
Reverting now."
Juga kembalikan komit dengan sendiri menggunakan perintah Git standar. Agen menulis pesan penerapan yang jelas dan deskriptif sehingga Anda tahu persis apa yang diubah setiap penerapan.
Ajukan pertanyaan di tengah alur
Mengajukan pertanyaan tidak menggagalkan alur kerja:
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."
Meninjau pekerjaan agen
Agen menyediakan beberapa cara untuk meninjau hasil kerjanya.
Kontrol sumber
Agen menyarankan untuk mengerjakan cabang terpisah dan menerapkan perubahan saat berfungsi. Tinjau perubahan agen dengan perintah Git standar:
git log --oneline -10
git diff main..<agent-branch>
File alur kerja
Agen mempertahankan beberapa file dalam .github/upgrades/{scenarioId}/ yang memberi Anda visibilitas penuh:
| File | Apa yang ditampilkannya |
|---|---|
tasks.md |
Gambaran umum kemajuan visual dengan semua tugas, indikator status (✅ selesai, 🔄 sedang berlangsung, ⬜ tertunda), dan bilah kemajuan |
execution-log.md |
Menyelesaikan jejak audit kronologis dari setiap tindakan yang diambil agen, kapan, dan apa yang terjadi |
assessment.md |
Analisis awal solusi Anda, termasuk ketergantungan, perubahan yang mempengaruhi kompatibilitas, dan kompleksitas peningkatan |
scenario-instructions.md |
Preferensi Anda dan keputusan yang dipelajari oleh agen |
tasks/{taskId}/progress-details.md |
Detail per tugas: kesalahan build yang ditemui, cara mengatasinya, hasil pengujian, dan keputusan yang dibuat |
Lanjutkan pekerjaan terputus
Tutup obrolan atau matikan IDE Anda. Agen menangani situasi ini dengan mulus.
Agen menyimpan semua status di .github/upgrades/ dalam repositori Anda. Saat Anda memulai percakapan baru, agen memeriksa status saat ini dan segera mengetahui:
- Skenario mana yang aktif.
- Tugas mana yang selesai, sedang berlangsung, atau tertunda.
- Artefak apa yang ada (penilaian, rencana, file tugas).
- Apakah ada tugas yang tampak basi (terjebak dalam 🔄 status dari sesi sebelumnya).
Deteksi tugas usang
Jika ada tugas yang sedang berlangsung dari sesi sebelumnya, agen mengenali bahwa tugas mungkin sudah tidak valid dan menawarkan opsi untuk melanjutkan, memulai ulang, atau melewati.
Petunjuk / Saran
Karena keadaan berada di dalam .github/upgrades/ repositori Anda, ia berpindah bersama kode Anda. Dorong cabang Anda ke remote, tarik pada komputer lain, dan agen mengambil tepat di mana Anda tinggalkan.
Bekerja melalui beberapa sesi
Peningkatan besar, seperti solusi proyek 20, peningkatan kerangka kerja yang kompleks, atau modernisasi multi-langkah, sering mencakup beberapa sesi selama hari atau minggu. Agen menangani pekerjaan multi-sesi dengan lancar.
-
Status persisten: Semuanya ada di
.github/upgrades/. Tidak ada status dalam memori untuk hilang. - Independensi sesi: Setiap sesi obrolan bersifat independen. Agen merekonstruksi konteksnya dari file status setiap saat.
- Cross-IDE support: Mulai di VS Code, lanjutkan di Visual Studio atau Copilot CLI. Folder status adalah kontrak bersama.
Panduan untuk pekerjaan multi-sesi
- Terapkan folder status. Dorong
.github/upgrades/ke cabang Anda untuk mencadangkan folder dan membuatnya terlihat oleh tim Anda. - Tinjau di antara sesi. Baca
tasks.mddanexecution-log.mduntuk menyegarkan memori Anda tentang apa yang terjadi di sesi terakhir. - Perbarui preferensi saat Anda belajar. Jika Anda menemukan sesuatu dalam pengujian yang harus mengubah pendekatan agen, beri tahu agen di awal sesi berikutnya.
Minta bantuan
Tidak yakin apa yang dapat dilakukan agen atau bagaimana situasinya saat ini? Bertanya:
| Apa yang ingin Anda ketahui | Apa yang harus dikatakan |
|---|---|
| Skenario peningkatan yang tersedia | "Apa yang bisa anda lakukan?" atau "Skenario apa yang tersedia?" |
| Kemajuan saat ini | "Apa statusnya saat ini?" atau "Tunjukkan kemajuannya" |
| Paket peningkatan | "Jelaskan rencana" atau "Antar saya melalui tugas" |
| Detail penilaian | "Tunjukkan penilaian" atau "Apa yang ditemukan penilaian?" |
| Keterampilan yang tersedia | "Keterampilan apa yang Anda miliki?" atau "Daftar keterampilan Anda" |
| Keputusan tertentu | "Mengapa Anda memilih X daripada Y?" |
| Risiko atau kekhawatiran | "Apa risikonya dengan peningkatan ini?" |
Berkomunikasi secara efektif
Kualitas interaksi Anda secara langsung memengaruhi kualitas hasil.
Spesifikkan tentang cakupan
"Tingkatkan hanya proyek Data.Access dan Data.Models untuk .NET 10" memberi pengguna fokus yang jelas. "Tingkatkan semuanya" berfungsi, tetapi agen membuat lebih banyak keputusan secara otomatis tentang urutan dan prioritas.
Bagikan konteks
Agen tidak mengetahui batasan bisnis Anda kecuali Anda membagikannya:
- "Kami meningkatkan karena Azure App Service menurunkan dukungan .NET 8 pada bulan November."
- "Ini adalah layanan produksi lalu lintas tinggi—tidak ada perubahan perilaku dalam respons API."
Menyatakan batasan
Beri tahu agen apa yang seharusnya tidak dilakukan, bukan hanya apa yang harus:
- "Jangan ubah permukaan API publik—kami memiliki konsumen eksternal."
- "Kami belum dapat meningkatkan Newtonsoft.Json—tim yang memiliki kontrak yang dibagikan belum memperbaruinya."
- "Jangan sentuh modul pelaporan warisan—yang sedang ditulis ulang secara terpisah."
Berikan umpan balik
Umpan balik positif membantu sama banyaknya dengan koreksi dan mengonfirmasi agen berada di jalur yang benar:
- "Peningkatan itu terlihat hebat—lakukan pendekatan yang sama untuk proyek repositori lainnya."
- "Itu berfungsi, tetapi kami lebih memilih injeksi konstruktor daripada injeksi properti dalam basis kode ini."
Referensi cepat
| Situasi | Apa yang harus dikatakan |
|---|---|
| Memulai peningkatan baru | "Tingkatkan solusi saya ke .NET 10" |
| Melanjutkan pekerjaan sebelumnya | "Lanjutkan" atau "Apa statusnya?" |
| Beralih ke mode terpandu | "Jeda" atau "Beralih ke mode terpandu" |
| Beralih ke mode otomatis | "Lanjutkan" atau "Lanjutkan tanpa bertanya" |
| Memperbaiki keputusan | "Sebenarnya, gunakan X alih-alih Y" |
| Mengatur preferensi | "Selalu lakukan X untuk penyelesaian ini" |
| Meninjau perubahan | "Tunjukkan apa yang Anda ubah" atau periksa log Git |
| Membatalkan perubahan | "Kembalikan perubahan terakhir" |
| Tanyakan mengapa | "Mengapa Anda memilih pendekatan itu?" |
| Melewati tugas | "Lewati tugas ini untuk saat ini" |
| Dapatkan bantuan | "Apa yang bisa anda lakukan?" |