Lewati ke konten

Chat dengan agen

Panduan ini menunjukkan cara bekerja dengan agen di dalam sebuah space.

  1. Buka Ruang di bilah sisi
  2. Klik tombol + di samping judul Ruang
  3. Ketik nama — ini wajib. Nama kosong akan ditolak; dialognya tetap terbuka
  4. Secara opsional, tambahkan agen dari ruang kerja
  5. Jika ruang kerja memiliki repo, pemilih repo akan muncul. Awalnya semua repo terpilih; persempit pilihan itu (termasuk dengan membatalkan centang satu repo) ke repo yang worktree-nya perlu disediakan oleh space ini
  6. Konfirmasi

Control Center membuka space tersebut dan mulai menyediakan satu worktree copy-on-write per repo terpilih di latar belakang.

Ketik pesan Anda di composer lalu tekan Enter. Agen akan dikirim dan mulai mengalirkan responsnya.

Jika space masih dalam tahap penyediaan, pesan Anda ditahan sementara, bukan hilang — composer menyimpannya dan mengirimnya secara otomatis begitu worktree sudah siap.

Saat agen bekerja, Anda melihat gilirannya mengalir masuk: segmen penalaran, panggilan alat (pembacaan file, penulisan, perintah shell) dan teks jawaban, semuanya di dalam satu pesan giliran agen.

Saat agen bekerja, teks percakapan biasa tidak mengantrekan giliran baru. Teks itu menjadi kartu pengarahan dalam antrean di strip di atas composer dan disuntikkan ke run yang sedang berjalan pada batas giliran berikutnya. Tidak ada toast — kartunya sendiri adalah umpan baliknya.

Tiga hal mengubah perilaku itu:

  • Pesan yang berisi @mention selalu dikirim sebagai pesan, bukan sebagai pengarahan
  • Pesan yang diawali perintah slash selalu ditangani sebagai perintah tersebut
  • Pesan dengan lampiran selalu dikirim sebagai pesan — antrean pengarahan hanya menerima teks
  • Jika semua run yang aktif sudah selesai, teks itu diteruskan dan dikirim sebagai pesan biasa

Saat agen menemui aksi yang digerbangi pagar pengamannya — perintah destruktif, alat dengan hak istimewa — server memblokir run dan menerbitkan permintaan persetujuan ke setiap klien yang terhubung. Jika percakapan itu sedang Anda buka, permintaan tersebut muncul di dalam chat, di atas composer, sebagai kartu opsi bernomor yang sama seperti yang dipakai untuk ask_user (tolak, setujui, dan opsional setujui selama delapan jam). Tidak ada opsi lewati: agen yang diblokir sedang menunggu keputusan.

Jika Anda sedang berada di bagian lain aplikasi, panel yang selalu tampil di atas di dalam shell tetap mencantumkan apa yang menunggu, sehingga Anda dapat membuka blokir agen tanpa harus mencari space-nya. Overlay menyembunyikan permintaan begitu percakapan space tersebut tampil di layar, jadi Anda tidak pernah menjawab permintaan yang sama dua kali.

Tidak ada batas waktu: agen yang diblokir menunggu sampai ada yang memutuskan. Permintaan yang sama juga muncul di strip perhatian kotak masuk dan di klien ponsel.

Agen yang membutuhkan preferensi, persyaratan yang belum ada, atau pilihan yang benar-benar bercabang wajib memanggil ask_user. Menuliskan pertanyaannya sebagai pesan chat akan mengakhiri giliran dan Anda harus meminta ulang. Alat ini merender kartu bernomor di dalam percakapan — opsi, teks bebas opsional, atau keduanya — dan run menunggu jawaban Anda.

Ketuk satu opsi untuk mengirimkannya (angka di ujungnya berubah menjadi panah saat kursor diarahkan). Pilihan ganda dan jawaban yang diketik menggunakan Lanjutkan (⌘↵ / Ctrl↵). Lewati memberi tahu agen agar memilih default yang wajar dan tidak bertanya lagi.

Ini mekanisme yang terpisah dari kartu persetujuan di atas: persetujuan adalah “bolehkah saya melakukan ini?”, sedangkan pertanyaan adalah “yang mana yang Anda maksud?”. Bertanya tersedia pada harness bawaan di setiap mode, termasuk mode yang hanya-baca (karena tidak mengubah apa pun), dan sengaja tidak dibungkus dalam prompt persetujuan — dialog di depan dialog akan gagal-tertutup saat tidak ada penyetuju yang terhubung. Run yang tidak punya percakapan sebagai tempat merender memang tidak mendapatkan alat itu.

Selama ada run yang aktif, tombol kirim composer berubah menjadi tombol stop. Kosongkan composer lalu tekan tombol itu — tindakan ini menghentikan setiap agen yang berjalan di percakapan tersebut.

Tidak ada kontrol stop di header space dan tidak ada pintasan keyboard untuknya. Untuk menghentikan hanya satu run saat ada beberapa yang aktif, buka tab aktivitas run tersebut — headernya memuat jeda/lanjutkan dan stop yang bercakupan run itu (tombol stop meminta konfirmasi Anda). Observabilitas → Langsung mencantumkan setiap agen yang berjalan di ruang kerja dengan kontrol yang sama.

Run yang dihentikan ditandai sebagai berhenti. Kirim pesan baru untuk mengirim lagi.

Ketik / di composer untuk melihat daftar perintah. Perintah yang mengubah perilaku percakapan:

Perintah Yang dilakukannya
/plan Mengalihkan space ke mode rencana. /plan saja hanya mengaktifkan mode; /plan <request> mengaktifkannya sekaligus mengirim sisanya sebagai pesan Anda
/goal <text> Mencatat tujuan kerja percakapan ini
/loop <text> Mengiterasi suatu tugas sampai selesai
/compact Melipat riwayat lama menjadi ringkasan berjangkar dan melanjutkan pada konteks yang telah dipadatkan
/todo … Melihat dan mengedit daftar todo percakapan ini yang tersimpan

Skill muncul di daftar yang sama di bawah namespace skill:-nya sendiri, sehingga tidak pernah bentrok dengan perintah di atas — skill bernama plan atau compact tetap dapat dijangkau:

Perintah Yang dijalankannya
/skill:<name> Skill yang terinstal di ruang kerja, atau yang dilampirkan ke agen
/skill:<repo>:<name> Skill yang disertakan salah satu repo yang di-checkout di space ini

Skill repo diberi lencana berupa repo asalnya, karena nama saja tidak menunjukkan konvensi layanan mana yang dikodekannya dan dua repo bisa sama-sama menyertakan testing. Anda tidak perlu mengetik prefiksnya untuk menemukan satu skill: mengetik nama skill telanjang juga mencocokkan entri yang ber-namespace.

Agen hanya membawa skill repo tempat ia sedang bekerja — lihat Skill bercakupan repo. Composer tidak dibatasi seperti itu: Anda dapat memanggil skill repo mana pun dengan menyebut namanya.

/compact dan /todo dicegat oleh klien dan tidak pernah disimpan sebagai pesan — baris /compact di transkrip akan memundurkan batas pemadatan berikutnya satu giliran. /plan membalik mode space yang tersimpan, bukan ikut terkirim sebagai teks. Jadi ketiganya bukanlah “pesan yang Anda kirimkan ke agen”; jangan berharap melihatnya di riwayat.

Sebelum perubahan yang kompleks, alihkan space ke mode rencana dengan /plan, dropdown mode di bilah alat composer, atau Shift+Tab. Agen kemudian meneliti secara hanya-baca dan memberikan rencana bertipe yang Anda setujui sebelum pekerjaan apa pun dimulai. Lihat Gunakan mode rencana.

Anda tidak perlu satu space untuk setiap agen. Di space mana pun:

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

Agen yang disebutkan akan ditambahkan ke space itu dan dikirim dengan konteks space tersebut. Lihat @-mention agen untuk cara nama dicocokkan.