Langkau ke kandungan

Sembang dengan ejen

Panduan ini menunjukkan cara bekerja dengan ejen dalam sesuatu ruang.

  1. Navigasi ke Ruang dalam bar sisi
  2. Klik butang + di sebelah tajuk Ruang
  3. Taip nama — ini wajib. Nama kosong ditolak; dialog kekal terbuka
  4. Secara pilihan, tambah ejen daripada ruang kerja
  5. Jika ruang kerja mempunyai mana-mana repo, pemilih repo akan muncul. Ia bermula dengan setiap repo dipilih; kecilkan pilihan itu (termasuk menyahpilih satu repo) kepada repo yang patut disediakan worktree oleh ruang ini
  6. Sahkan

Control Center membuka ruang itu dan mula menyediakan satu worktree copy-on-write bagi setiap repo yang dipilih di latar belakang.

Taip mesej anda dalam penggubah mesej dan tekan Enter. Ejen dihantar dan mula menstrim responsnya.

Jika ruang itu masih menjalani penyediaan, mesej anda diletakkan sementara dan bukan hilang — penggubah mesej menyimpannya dan menghantarnya secara automatik sebaik sahaja worktree sedia.

Semasa ejen bekerja, anda melihat aliran gilirannya masuk: segmen penaakulan, panggilan alat (bacaan fail, penulisan, perintah shell) dan teks jawapan, semuanya di dalam satu mesej giliran ejen.

Semasa ejen bekerja, teks perbualan biasa tidak membariskan giliran baharu. Ia menjadi kad pemanduan yang berbaris dalam jalur di atas penggubah mesej dan disuntik ke dalam larian langsung pada sempadan giliran seterusnya. Tiada toast — kad itu sendiri ialah maklum balasnya.

Tiga perkara mengubah tingkah laku itu:

  • Mesej yang mengandungi @sebut sentiasa dihantar sebagai mesej, tidak pernah sebagai pemanduan
  • Mesej yang bermula dengan perintah slash sentiasa dikendalikan sebagai perintah itu
  • Mesej yang mempunyai lampiran sentiasa dihantar sebagai mesej — barisan pemanduan hanya untuk teks
  • Jika setiap larian langsung sudah tamat, teks itu jatuh ke laluan biasa dan dihantar sebagai mesej biasa

Apabila sesuatu tindakan terlanggar pintu guardrail ejen — perintah yang memusnahkan, alat istimewa — pelayan menyekat larian itu dan menerbitkan permintaan kelulusan kepada setiap klien yang bersambung. Jika anda membuka perbualan itu, permintaan itu muncul dalam sembang, di atas penggubah mesej, sebagai kad pilihan bernombor yang sama seperti yang digunakan untuk ask_user (tolak, luluskan dan secara pilihan luluskan selama lapan jam). Tiada langkau: ejen yang tersekat sedang menunggu keputusan.

Jika anda berada di tempat lain dalam aplikasi, panel yang sentiasa di atas dalam cangkerang masih menyenaraikan apa yang menunggu, jadi anda boleh menyahsekat ejen itu tanpa mencari ruang tersebut. Lapisan tindanan itu menyembunyikan sesuatu permintaan sebaik sahaja perbualan ruang itu berada pada skrin, jadi anda tidak pernah menjawab gesaan yang sama dua kali.

Tiada had masa: ejen yang tersekat menunggu sehingga seseorang membuat keputusan. Permintaan yang sama juga muncul dalam jalur perhatian peti masuk dan pada klien telefon.

Ejen yang memerlukan sesuatu keutamaan, keperluan yang hilang atau cabang keputusan yang benar-benar wujud mesti memanggil ask_user. Menulis soalan itu sebagai mesej sembang menamatkan giliran dan anda perlu menggesa semula. Alat itu memaparkan kad bernombor dalam perbualan — pilihan, teks bebas secara pilihan, atau kedua-duanya — dan larian itu menunggu jawapan anda.

Ketik satu pilihan untuk menghantarnya (nombor di hujung bertukar menjadi anak panah apabila penuding berada di atasnya). Pemilihan berbilang dan jawapan yang ditaip menggunakan Teruskan (⌘↵ / Ctrl↵). Langkau memberitahu ejen supaya memilih lalai yang munasabah dan tidak bertanya lagi.

Ia mekanisme yang berasingan daripada kad kelulusan di atas: kelulusan ialah “bolehkah saya lakukan ini?”, soalan ialah “yang mana satu maksud anda?”. Pertanyaan tersedia pada harness terbina dalam setiap modus, termasuk modus baca sahaja (ia tidak mengubah apa-apa), dan ia sengaja tidak dibalut dalam gesaan kelulusan — dialog di hadapan dialog akan gagal tertutup apabila tiada pelulus yang bersambung. Larian yang tiada perbualan untuk dipaparkan tidak menerima alat itu.

Semasa larian masih langsung, butang hantar penggubah mesej bertukar menjadi butang Henti. Kosongkan penggubah mesej dan tekan butang itu — ini menghentikan setiap ejen yang berjalan dalam perbualan tersebut.

Tiada kawalan henti dalam pengepala ruang dan tiada pintasan papan kekunci untuknya. Untuk menghentikan hanya satu larian apabila beberapa larian langsung, buka tab aktiviti larian itu — pengepalanya membawa jeda/sambung semula dan henti yang berskop larian (henti itu meminta anda mengesahkan). Kebolehcerapan → Langsung menyenaraikan setiap ejen yang berjalan dalam ruang kerja dengan kawalan yang sama.

Larian yang dihentikan ditandakan sebagai dihentikan. Hantar mesej baharu untuk menghantar semula.

Taip / dalam penggubah mesej untuk melihat senarai perintah. Perintah yang mengubah cara perbualan berkelakuan:

Perintah Apa fungsinya
/plan Menukar ruang kepada modus pelan. /plan kosong hanya mempersiapkan modus itu; /plan <request> mempersiapkannya dan menghantar selebihnya sebagai mesej anda
/goal <text> Merekod matlamat kerja perbualan itu
/loop <text> Melakukan lelaran ke atas sesuatu tugasan sehingga ia selesai
/compact Melipat sejarah lama menjadi ringkasan berlabuh dan meneruskan pada konteks yang dimampatkan
/todo … Melihat dan menyunting senarai todo perbualan ini yang disimpan secara kekal

Kemahiran muncul dalam senarai yang sama di bawah ruang namanya sendiri skill:, jadi ia tidak pernah bertembung dengan perintah di atas — kemahiran yang bernama plan atau compact kekal boleh dicapai:

Perintah Apa yang dijalankannya
/skill:<name> Kemahiran yang dipasang dalam ruang kerja, atau yang dilampirkan pada ejen
/skill:<repo>:<name> Kemahiran yang dibawa oleh salah satu repo yang di-checkout dalam ruang ini

Kemahiran repo diberi lencana dengan repo asalnya, kerana nama sahaja tidak menyatakan konvensyen perkhidmatan mana yang dikodkannya dan dua repo mungkin masing-masing membawa testing. Anda tidak perlu menaip awalan itu untuk mencarinya: menaip nama kemahiran kosong juga memadankan entri ruang nama.

Ejen hanya membawa kemahiran repo tempat ia sedang bekerja — lihat Kemahiran berskop repo. Penggubah mesej tidak berskop begitu: anda boleh menggunakan kemahiran mana-mana repo dengan menamakannya.

/compact dan /todo dipintas oleh klien dan tidak pernah disimpan sebagai mesej — baris /compact dalam transkrip akan menolak potongan pemampatan seterusnya satu giliran ke belakang. /plan menukar modus ruang yang tersimpan dan bukannya bergerak sebagai teks. Jadi ketiga-tiganya bukan “mesej yang anda hantar kepada ejen”; jangan harap melihatnya dalam sejarah.

Sebelum perubahan yang kompleks, tukar ruang kepada modus pelan dengan /plan, menu lungsur modus pada bar alat penggubah mesej, atau Shift+Tab. Ejen kemudian menyelidik secara baca sahaja dan memberikan pelan bertaip yang anda luluskan sebelum apa-apa kerja bermula. Lihat Gunakan modus pelan.

Anda tidak memerlukan satu ruang bagi setiap ejen. Dalam mana-mana ruang:

@alice can you look at the failing tests in src/auth_test.dart?

Ejen yang disebut ditambah ke ruang itu dan dihantar dengan konteks ruang tersebut. Lihat @-sebut ejen untuk cara nama dipadankan.