Lewati ke konten

Arahkan pekerja latar belakang

Panduan ini menunjukkan cara menjalankan sebuah percakapan sebagai pengarah, bukan sebagai pekerja: sesi membaca dan memverifikasi, sementara agen-agen latar belakang yang melakukan penyuntingan.

Ada dua hal, dan hanya yang pertama yang ditegakkan oleh mekanismenya:

  1. Alat milik sesi itu sendiri turun menjadi hanya-baca, ditambah lima verb pekerja. Satu-satunya cara sesi memengaruhi repo adalah melalui seorang pekerja, dan satu-satunya cara sesi mengetahui apa yang terjadi adalah dengan membaca berkas yang disentuh pekerja.
  2. Sesi diberi tahu untuk memverifikasi dengan membaca, bukan dengan mempercayai. Laporan seorang pekerja adalah klaim tentang apa yang dikerjakannya, bukan bukti bahwa pekerjaan itu berhasil.

Yang pertama adalah yang menanggung beban. Pengarah yang masih bisa menjalankan grep dan menyunting akan mengerjakan sendiri pekerjaan itu saat tertekan, dan itulah mode kegagalan yang ingin dicegah oleh mekanisme ini.

/vibe migrate the auth module to the new session API

Seorang pekerja belum pernah melihat percakapan Anda dan tidak akan pernah. Instruksi adalah seluruh konteksnya.

Itulah yang membuat pola ini murah — dua puluh pekerja yang masing-masing memegang riwayat pengarah akan memakan konteks dua puluh kali lipat konteks pengarah — dan itu juga satu hal yang membuat instruksi sulit ditulis. “Sekarang kerjakan yang satu lagi juga” terbaca sebagai perintah yang lengkap bagi pengarah dan tidak berarti apa-apa bagi sesi yang baru.

Instruksi yang baik menyebutkan berkas, perintah, dan definisi selesai:

Di dalam lib/features/auth/, ganti setiap pemanggilan SessionStore.read(key) dengan SessionStore.get(key). Metode baru mengembalikan Future<String?> sedangkan metode lama mengembalikan String?, sehingga pemanggilnya memerlukan await. Jalankan fvm flutter analyze lib/features/auth setelah selesai dan laporkan galat apa pun yang tidak dapat Anda perbaiki.

Verb Apa fungsinya
vibe_spawn Memulai seorang pekerja berdasarkan sebuah instruksi. Langsung kembali.
vibe_list Tingkat, status, waktu berlalu, dan hasil terakhir untuk semua pekerja
vibe_send Giliran lanjutan untuk pekerja yang sudah selesai
vibe_wait Memblokir sampai satu pekerja selesai
vibe_kill Menghentikan satu pekerja

Peluncuran bersifat asinkron karena desainnya memang begitu. Pengarah yang memblokir pada setiap peluncuran menjalankan pekerja satu per satu, yang merupakan cara lebih lambat untuk melakukan apa yang sudah dikerjakannya sendiri. Gunakan vibe_wait hanya saat Anda benar-benar tidak dapat melanjutkan tanpa jawaban tertentu.

Tingkat Untuk
fast Pekerjaan mekanis dengan spesifikasi yang jelas — penyuntingan, penggantian nama, draf, eksekusi perintah
good Desain, pertimbangan, atau peninjauan atas apa yang dihasilkan pekerja fast

Pola yang umum adalah menyebarkan beberapa pekerja fast ke berkas-berkas yang independen, lalu meluncurkan satu pekerja good untuk meninjau apa yang mereka kerjakan bersama.

Bagian inilah yang menentukan apakah pola ini berguna sama sekali.

vibe_list
→ w1 [fast] auth-migrate — done (48s): Edited lib/features/auth/session.dart …
w2 [fast] tests — running (12s)

Lalu bacalah berkas yang disebutkannya. Pengarah memiliki read, search, lsp, dan ast_grep; itulah inti dari mempertahankannya. Pengarah yang menelan laporan itu mentah-mentah hanyalah peringkas optimisme agen-agen lain.

lsp(action: "diagnostics", file: "*") setelah satu putaran pekerja biasanya adalah pemeriksaan tunggal yang tercepat.

Matikan dan tulis instruksi baru. Instruksi baru yang sudah diperbaiki lebih murah daripada berdebat, dan vibe_send hanya berfungsi pada pekerja yang sudah menyelesaikan gilirannya.

vibe_kill(worker_id: "w2")
vibe_spawn(brief: "…corrected…", label: "tests", tier: "fast")
  • Delapan pekerja serentak. Ini plafon pengeluaran, bukan batas teknis: masing-masing adalah sesi model yang utuh, dan pengarah yang menyebarkan dua puluh pekerja sudah berhenti memantau apa yang sedang dilakukan semuanya.
  • Tidak ada pekerja yang hidup lebih lama daripada modenya. Saat run berakhir, semuanya dihentikan dan transkrip menyebutkan berapa jumlahnya. Agen latar belakang yang masih menyunting berkas setelah percakapan beralih ke hal lain adalah satu kegagalan yang tidak boleh terjadi di sini.
  • Di balik layar, pekerja adalah subagen biasa. Batas kedalaman yang sama, kebijakan pagar pengaman yang sama, anak log run yang sama. Vibe mengubah siapa yang mengemudikannya, bukan apa yang boleh mereka lakukan — jadi prompt persetujuan tetap muncul untuk panggilan tulis dan exec milik pekerja.

Mode vibe ditujukan untuk pekerjaan yang terurai menjadi instruksi-instruksi yang independen. Jika langkah berikutnya bergantung pada keluaran langkah sebelumnya, Anda sedang mendeskripsikan pipeline atau orkestrasi, dan keduanya mengungkapkan dependensi dengan benar alih-alih membuat pengarah menyimulasikannya dengan vibe_wait.