/goal menetapkan kondisi penyelesaian dan Claude terus bekerja menuju tujuan tersebut tanpa Anda meminta setiap langkah. Setelah setiap giliran, model cepat kecil memeriksa apakah kondisi terpenuhi. Jika model menilai belum terpenuhi, Claude memulai giliran lain alih-alih mengembalikan kontrol kepada Anda. Tujuan dihapus secara otomatis setelah kondisi terpenuhi, jika model menilai kondisi tidak mungkin dipenuhi, atau jika giliran gagal pada kesalahan yang harus Anda perbaiki.
Gunakan tujuan untuk pekerjaan substansial dengan keadaan akhir yang dapat diverifikasi:
- Migrasi modul ke API baru hingga setiap situs panggilan dikompilasi dan tes lulus
- Implementasi dokumen desain hingga semua kriteria penerimaan terpenuhi
- Pemisahan file besar menjadi modul yang terfokus hingga masing-masing berada di bawah anggaran ukuran
- Menyelesaikan antrian masalah berlabel hingga antrean kosong
Bandingkan cara untuk menjaga sesi tetap berjalan
Tiga pendekatan menjaga sesi saat ini berjalan di antara prompt. Pilih berdasarkan apa yang harus memulai giliran berikutnya:/goal dan Stop hook keduanya diaktifkan setelah setiap giliran. /goal adalah pintasan berskop sesi: Anda mengetik kondisi dan itu aktif hanya untuk sesi saat ini. Stop hook berada di file pengaturan Anda, berlaku untuk setiap sesi dalam cakupannya, dan dapat menjalankan skrip untuk pemeriksaan deterministik atau prompt untuk yang dievaluasi model.
Auto mode dengan sendirinya menyetujui panggilan alat dalam satu giliran tetapi tidak memulai yang baru. Claude berhenti ketika menilai pekerjaan selesai. /goal menambahkan evaluator terpisah yang memeriksa kondisi Anda setelah setiap giliran, sehingga penyelesaian diputuskan oleh model segar daripada yang melakukan pekerjaan. Keduanya saling melengkapi: auto mode menghilangkan prompt per-alat, dan /goal menghilangkan prompt per-giliran.
Gunakan /goal
Satu tujuan dapat aktif per sesi. Perintah yang sama menetapkan, memeriksa, dan menghapusnya tergantung pada argumennya.
Tetapkan tujuan
Jalankan/goal diikuti dengan kondisi yang ingin Anda penuhi. Jika tujuan sudah aktif, yang baru menggantikannya.
◎ /goal active menunjukkan berapa lama tujuan telah berjalan.
Sebuah tujuan tidak mengubah mode izin Anda. Untuk membiarkan giliran tujuan berjalan tanpa pengawasan, jalankan /goal dalam mode otomatis. Dalam mode Manual, Claude masih meminta sebelum panggilan alat yang pengaturan Anda tidak sudah izinkan, seperti perintah tes di atas.
Saat tujuan aktif, transkrip menunjukkan setiap putusan yang dikembalikan evaluator, dan Anda dapat menekan Ctrl+O untuk melihat alasan di baliknya. Tampilan status juga menunjukkan alasan paling baru, sehingga Anda dapat melihat apa yang Claude kerjakan selanjutnya.
Tulis kondisi yang efektif
Evaluator menilai kondisi Anda terhadap apa yang telah Claude tampilkan dalam percakapan. Ini tidak menjalankan perintah atau membaca file secara independen, jadi tulis kondisi sebagai sesuatu yang output Claude sendiri dapat demonstrasikan. “Semua tes dalamtest/auth lulus” berfungsi karena Claude menjalankan tes dan hasilnya mendarat dalam transkrip untuk evaluator dibaca.
Kondisi yang bertahan di banyak giliran biasanya memiliki:
- Satu keadaan akhir yang terukur: hasil tes, kode keluar build, jumlah file, antrian kosong
- Pemeriksaan yang dinyatakan: bagaimana Claude harus membuktikannya, seperti “
npm testexits 0” atau “git statusis clean” - Batasan yang penting: apa pun yang tidak boleh berubah dalam perjalanan ke sana, seperti “tidak ada file tes lain yang dimodifikasi”
or stop after 20 turns. Claude melaporkan kemajuan terhadap klausa itu setiap giliran dan evaluator menilainya dari percakapan.
Periksa status
Jalankan/goal tanpa argumen untuk melihat keadaan saat ini.
- Kondisinya
- Berapa lama itu telah berjalan
- Berapa banyak giliran yang telah dievaluasi
- Pengeluaran token saat ini
- Alasan paling baru evaluator
Hapus tujuan
Jalankan/goal clear untuk menghapus tujuan aktif sebelum kondisinya terpenuhi.
Goal cleared: diikuti dengan kondisi untuk mengonfirmasi, atau No goal set jika tidak ada yang aktif.
stop, off, reset, none, dan cancel diterima sebagai alias untuk clear. Menjalankan /clear untuk memulai percakapan baru juga menghapus tujuan aktif apa pun.
Lanjutkan dengan tujuan aktif
Ketika Anda melanjutkan sesi, Claude Code memulihkan tujuan yang masih aktif ketika sesi berakhir. Claude Code memulihkannya di setiap rute lanjutan:--continue, --resume dengan ID atau nama sesi, atau jalur file transkrip, dan pemilih sesi. Sebelum v2.1.239, Claude Code memulihkan tujuan di setiap rute kecuali pemilih claude --resume.
Claude Code membawa kondisi tetapi mengatur ulang jumlah giliran, timer, dan baseline pengeluaran token. Ini tidak memulihkan tujuan yang sudah dicapai atau dihapus.
Jalankan non-interaktif
/goal bekerja dalam mode non-interaktif, di aplikasi desktop, dan melalui Remote Control. Menetapkan tujuan dengan -p menjalankan loop hingga selesai dalam satu invokasi:
--output-format stream-json --verbose untuk memancarkan setiap pesan saat loop berjalan.
Hentikan proses dengan Ctrl+C untuk menghentikan tujuan non-interaktif sebelum kondisinya terpenuhi.
Cara evaluasi bekerja
/goal adalah pembungkus di sekitar Stop hook berbasis prompt berskop sesi. Setiap kali Claude menyelesaikan giliran, Claude Code mengirimkan kondisi dan percakapan sejauh ini ke model cepat kecil yang dikonfigurasi, yang secara default adalah Haiku pada Claude API; pada penyedia pihak ketiga, periksa halaman penyedia Anda untuk default platform. Model mengembalikan salah satu dari tiga keputusan, masing-masing dengan alasan singkat:
- Belum terpenuhi: Claude terus bekerja dan mengambil alasan sebagai panduan untuk giliran berikutnya.
- Terpenuhi: Claude Code menghapus tujuan dan mencatat entri yang dicapai dalam transkrip.
- Tidak mungkin: evaluator menilai bahwa kondisi tidak dapat pernah dipenuhi. Claude Code menghapus tujuan dan mencatat entri yang gagal dalam transkrip bersama dengan alasannya. Anda tidak perlu menghapusnya sendiri.
Ketika giliran gagal
Ketika giliran gagal, Claude Code menghapus tujuan jika kesalahan adalah salah satu yang harus Anda perbaiki. Setelah kesalahan lainnya, tujuan tetap ditetapkan.Kesalahan yang harus Anda perbaiki menghapus tujuan
Jika giliran gagal pada kesalahan yang tidak akan dihapus sampai Anda memperbaikinya, Claude Code menghapus tujuan dan mencetak peringatan yang menyebutkan penyebabnya. Peringatan dimulai denganGoal cleared after an unrecoverable error dan diakhiri dengan Run /goal again to continue. Perbaiki penyebabnya, kemudian tetapkan tujuan lagi dengan /goal <condition>. Empat jenis kegagalan menghapus tujuan:
- Kegagalan autentikasi, ketika Claude Code mengelola kredensialnya sendiri. Ketika host mengelolanya untuk Anda, seperti aplikasi desktop, ekstensi VS Code, atau sesi cloud, Claude Code membiarkan tujuan tetap aktif karena host memulihkan akses dengan sendirinya.
- Saldo kredit yang habis
- Overflow konteks yang auto-compaction tidak dapat menghapus
- Model yang tidak tersedia
Kesalahan lainnya mencoba ulang atau menjeda tujuan
Setelah kegagalan lainnya, tujuan tetap ditetapkan. Dalam sesi interaktif pada Claude Code v2.1.269 atau lebih baru, Claude Code juga mencetak baris yang menyebutkan penyebabnya dan baik mencoba ulang dengan sendirinya atau menunggu Anda:- Coba ulang: setelah kegagalan yang cenderung menghapus dengan sendirinya, seperti server yang kelebihan beban atau koneksi yang terputus, pemberitahuan yang dimulai dengan
Goal still activemenunjukkan waktu tunggu sebelum percobaan berikutnya. Setelah tiga percobaan ulang otomatis, tujuan dijeda sebagai gantinya. - Jeda: setelah kegagalan yang percobaan ulang hanya akan mengulangi, seperti batas laju API, batas penggunaan claude.ai, atau hook yang mengakhiri giliran, pemberitahuan yang dimulai dengan
Goal pausedmenyebutkan penyebabnya. Jika sesi menunggu untuk melanjutkan secara otomatis ketika batas penggunaan direset, Claude melanjutkan pekerjaan menuju tujuan kemudian.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES ke 0, yang juga mematikan check-in.
Pekerjaan latar belakang menunda evaluasi
Jika subagent atau perintah shell latar belakang masih berjalan ketika giliran berakhir, Claude Code melewati evaluasi untuk giliran itu. Ini mengevaluasi pada akhir giliran berikutnya yang selesai tanpa pekerjaan latar belakang yang berjalan. Ketika pekerjaan latar belakang selesai, Claude Code mengirimkan hasilnya kepada Claude sebagai giliran baru, jadi Anda tidak perlu memberi prompt. Setelah pekerjaan latar belakang membuat tujuan menunggu selama 30 menit, check-in sudah jatuh tempo. Dalam check-in, Claude Code mencantumkan tugas yang sedang berjalan dan meminta Claude untuk membaca output mereka, terus menunggu jika mereka membuat kemajuan, dan memperbaiki atau menghentikan yang macet. Setelah check-in pertama, Claude Code menunggu dua kali lebih lama sebelum setiap check-in kemudian, hingga empat kali interval pertama: dengan default, 1 jam setelah check-in pertama, kemudian setiap 2 jam. Claude Code mengirimkan check-in yang jatuh tempo, yang pertama disertakan, dalam salah satu dari dua cara:- Ketika giliran berakhir: Claude Code mengirimkan check-in pada akhir giliran berikutnya yang selesai dengan pekerjaan masih berjalan. Dalam sesi non-interaktif, seperti yang dimulai dengan
-p, ini adalah satu-satunya cara Claude Code mengirimkan check-in. - Saat sesi menganggur: dalam sesi interaktif, Claude Code juga memulai giliran dengan sendirinya untuk mengirimkan check-in alih-alih menunggu prompt Anda berikutnya. Jika pekerjaan latar belakang telah berhenti tanpa melaporkan hasil, Claude Code meminta Claude untuk melanjutkan menuju tujuan. Claude Code memulai paling banyak tiga check-in menganggur per tujuan di antara prompt Anda. Dalam check-in menganggur ketiga, Claude Code mengatakan bahwa check-in menganggur dijeda sampai Anda mengirimkan prompt lain. Sebelum v2.1.246, check-in menganggur tidak terbatas. Check-in menganggur memerlukan Claude Code v2.1.236 atau lebih baru.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code menggunakan nilai Anda sebagai pengganti interval 30 menit dan menskalakan interval kemudian dengannya. Atur ke 0 untuk mematikan check-in dan percobaan ulang otomatis.
Check-in memerlukan Claude Code v2.1.234 atau lebih baru.
Model evaluasi dan biaya
Untuk mengevaluasi pada model yang berbeda, aturANTHROPIC_DEFAULT_HAIKU_MODEL.
Evaluator berjalan di mana pun penyedia sesi Anda dikonfigurasi. Ini tidak memanggil alat, jadi hanya dapat menilai apa yang telah Claude tampilkan dalam percakapan.
Token evaluasi ditagih pada model cepat kecil yang dikonfigurasi untuk penyedia Anda dan biasanya dapat diabaikan dibandingkan dengan pengeluaran giliran utama.
Persyaratan
Claude Code membuat/goal tersedia di bawah aturan kepercayaan ruang kerja yang sama dengan hooks dalam file pengaturan, karena evaluator adalah bagian dari sistem hooks. /goal juga tidak tersedia ketika disableAllHooks adalah true setelah penerapan prioritas pengaturan, atau ketika allowManagedHooksOnly diatur dalam pengaturan terkelola. Dalam setiap kasus, perintah memberi tahu Anda mengapa alih-alih diam-diam tidak melakukan apa pun.
Lihat juga
- Jalankan prompt berulang kali dengan
/loop: jalankan ulang pada interval waktu alih-alih hingga kondisi terpenuhi - Prompt-based hooks: tulis Stop hook Anda sendiri ketika Anda memerlukan logika evaluasi kustom
- Auto mode: setujui panggilan alat secara otomatis sehingga setiap giliran tujuan berjalan tanpa dihadiri
- Perbandingan penjadwalan: jalankan pekerjaan sesuai jadwal independen dari sesi terbuka apa pun