Fan out subagent di Claude Code, lalu periksa apa yang kembali

Di Claude Code, fan out berarti memecah satu pekerjaan menjadi potongan-potongan yang independen dan menjalankan setiap potongan di subagent-nya sendiri: dengan memintanya di prompt, dengan /batch, atau dengan loop claude -p. Diperiksa di Claude Code 2.1.301. Plus cara kami memverifikasi penggabungan hasil enam subagent yang menerjemahkan blog kami setiap malam.

Orang mengetik "claude fan out subagents" di Google, dan tidak sedikit yang menambahkan "command" di akhir, seolah-olah ada sakelar yang tinggal ditekan. Ada polanya, dan ada juga perintahnya. Kami memeriksa keduanya di Claude Code 2.1.301 dan mencocokkannya dengan dokumentasi Anthropic pada 16 Oktober 2026.

Lalu ada bagian yang jarang dibahas dokumentasi, dan itulah alasan kami menulis artikel ini: apa yang harus dilakukan dengan hasilnya. Kami menjalankan fan-out setiap malam. Enam subagent menerjemahkan setiap artikel baru di blog ini ke tujuh belas bahasa, dan sesi utama menggabungkan pekerjaan mereka. Masing-masing melaporkan bahwa ia sudah mengikuti aturan. Pemeriksaan yang kami tulis sebelum meluncurkan mereka tetap menemukan masalah.

Jawaban singkatnya

Fan out berarti satu sesi memecah pekerjaan menjadi potongan-potongan yang tidak saling bergantung, menyerahkan setiap potongan ke sebuah subagent, membiarkan semuanya berjalan bersamaan, lalu menggabungkan apa yang kembali. Di Claude Code Anda bisa melakukannya dengan tiga cara.

CaraYang Anda ketikTempat setiap potongan berjalanCocok untuk
Minta di prompt"Teliti modul auth, database, dan API secara paralel menggunakan subagent terpisah"Subagent dari sesi Anda, konteks sendiri, ringkasan dikirim kembaliRiset dan membaca kode
/batch/batch migrate src/ from JavaScript to TypeScript5 sampai 30 subagent latar belakang, masing-masing satu git worktreePerubahan besar di seluruh basis kode
Loop skripclaude -p dipanggil sekali per fileSesi non-interaktif terpisah untuk setiap panggilanRatusan file, CI

Sisa halaman ini membahas setiap cara, lalu pemeriksaan yang kami jalankan pada fan-out kami sendiri.

Apa yang bisa dan tidak bisa dilihat subagent

Tiga fakta dari dokumentasi menentukan cara Anda memotong pekerjaan.

Setiap subagent mulai dari kosong. Ia berjalan di jendela konteksnya sendiri, dengan system prompt, alat, dan izinnya sendiri. Ia tidak melihat percakapan Anda, skill yang sudah Anda pakai, atau file yang sudah dibaca Claude. Apa pun yang perlu ia ketahui harus ada di brief-nya.

Hasil kembali ke percakapan utama. Bagian panjang dari pekerjaan subagent tetap di konteksnya sendiri, dan hanya hasilnya yang kembali. Namun banyak subagent yang mengirim laporan panjang tetap bisa memenuhi konteks utama Anda, dan masing-masing menghabiskan tokennya sendiri selama berjalan.

Ada batasnya. Secara default, 20 subagent bisa berjalan bersamaan dalam satu sesi. Yang ke-21 gagal dengan Concurrent subagent limit reached, dan error tersebut memberi tahu Claude untuk tidak mencoba lagi. Anda bisa menaikkan atau menurunkannya dengan CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS. Subagent bisa memulai subagent-nya sendiri, hingga tiga lapis di bawah percakapan utama, dan jumlah totalnya sepanjang satu sesi tidak dibatasi.

Cara 1: minta dengan kalimat biasa

Fan-out paling sederhana hanyalah satu kalimat. Contoh dari dokumentasi Anthropic:

Research the authentication, database, and API modules in parallel using separate subagents

Setiap subagent menjelajahi areanya, lalu Claude menulis satu sintesis. Dokumentasi menambahkan syarat yang penting: cara ini paling berhasil ketika jalur risetnya tidak saling bergantung. Jika pertanyaan tentang database membutuhkan jawaban dari pertanyaan tentang auth, Anda tidak punya tiga potongan, Anda punya satu urutan.

Kalimat biasa menyerahkan keputusan kepada Claude. Jika Anda sudah mendefinisikan subagent kustom di .claude/agents/, menyebutnya dengan @-mention menjamin ia berjalan untuk tugas itu. Halaman kami tentang subagent Claude Code menjelaskan cara kerja file-file tersebut.

Cara 2: /batch, yang paling mendekati perintah fan-out

/batch adalah skill bawaan Claude Code. Anda memberinya sebuah instruksi:

/batch migrate src/ from JavaScript to TypeScript

Ia menelusuri basis kode, memecah pekerjaan menjadi 5 sampai 30 unit independen, dan menampilkan rencana kepada Anda. Setelah Anda menyetujuinya, ia memulai satu subagent latar belakang per unit, masing-masing di git worktree yang terisolasi. Setiap subagent mengimplementasikan unitnya, menjalankan tes, dan menerbitkan perubahannya. Ia membutuhkan repositori git, atau hook WorktreeCreate yang membuat worktree untuk sistem kontrol versi lain.

Rencana itulah saatnya untuk memperlambat. Di situlah pemotongan diputuskan, dan pemotongan adalah inti dari semuanya: dua unit yang menyentuh file yang sama, atau unit yang membutuhkan output unit lain, tidak akan tergabung dengan rapi sebagus apa pun masing-masing subagent. Bacalah daftar unitnya seperti Anda membaca rencana migrasi dari seorang rekan kerja.

Cara 3: loop di atas claude -p

Ketika pekerjaannya berupa daftar file dan Anda ingin mengendalikan setiap panggilan, praktik terbaik Anthropic menjelaskan sebuah loop. Pertama, minta Claude menulis daftarnya (list all 2,000 Python files that need migrating and save the list to files.txt). Lalu:

for file in $(cat files.txt); do
  claude -p "Migrate $file from Python 2 to Python 3. Return OK or FAIL." \
    --allowedTools "Edit,Bash(git commit *)" \
    --permission-mode dontAsk
done

Tiga detail dalam contoh itu layak ditiru.

  • Jawabannya bisa dibaca mesin. "Return OK or FAIL" berarti skrip Anda bisa menghitung kegagalan tanpa membaca prosa.
  • Izin diputuskan di awal. --allowedTools menyetujui persis apa yang dibutuhkan migrasi, dan --permission-mode dontAsk menolak semua yang lain alih-alih menunggu seseorang yang tidak ada di sana.
  • Anda mulai dengan dua atau tiga file. Dokumentasi mengatakannya dengan lugas: perbaiki prompt berdasarkan apa yang salah pada file-file pertama, lalu jalankan seluruh daftar.

Seperti yang tertulis, loop ini menjalankan satu file demi satu file. Menjalankan beberapa panggilan sekaligus adalah pekerjaan shell biasa, tetapi setiap panggilan adalah sesi penuh di mesin Anda dan di kuota Anda. Kami mengukur apa yang terjadi ketika beberapa agen memulai perintah berat yang sama di menit yang sama dalam artikel ini, dan ceritanya sama di sini: mulailah dengan sedikit panggilan paralel.

Untuk CI, dokumentasi menyarankan menambahkan --bare, yang melewati hook, skill, server MCP, dan CLAUDE.md sehingga setiap mesin mendapatkan run yang sama. Mode bare tidak memakai login langganan Anda: ia membutuhkan ANTHROPIC_API_KEY.

Cara kami melakukan fan out setiap malam

Inilah fan-out yang benar-benar kami jalankan. Tim SEO malam kami menulis setiap artikel baru dalam bahasa Inggris dan Prancis secara manual. Agen kedua kemudian menerjemahkannya ke tujuh belas bahasa lain dengan subagent Claude Code, dan menghasilkan bahasa Mandarin Tradisional dari Mandarin Sederhana dengan skrip, bukan dengan menerjemahkannya. Sebelas artikel sudah melewati proses ini sejak 13 September 2026, masing-masing tiba sebagai dua puluh file.

Potongan-potongannya

Enam subagent, masing-masing tiga bahasa (dua untuk yang terakhir): Spanyol, Portugis, dan Italia; Jerman, Belanda, dan Polandia; Rusia, Ukraina, dan Turki; Jepang, Korea, dan Mandarin; Thai, Vietnam, dan Indonesia; Arab dan Hindi. Tidak ada bahasa yang bergantung pada bahasa lain, dan itulah yang membuat ini menjadi fan-out yang bersih.

Setiap brief membawa lima hal yang sama, karena subagent tidak melihat apa pun selain itu:

  • sumber bahasa Inggris, dan versi bahasa Prancis sebagai acuan nada dan istilah produk;
  • untuk setiap bahasa, teks yang sudah terbit di situs dalam bahasa itu, agar subagent memakai ulang kata-kata yang sudah dipakai situs alih-alih menciptakan yang baru;
  • aturan keras: nama merek dan nama produk tetap apa adanya, kode tetap sama persis sampai ke byte, tanpa tanda pisah panjang (em dash);
  • skrip pemeriksaan, dengan instruksi untuk menjalankannya ulang sampai hasilnya OK;
  • permintaan untuk melaporkan apa pun yang meragukan yang ia lihat, di dalam maupun di luar potongannya.

Pemeriksaan ditulis sebelum peluncuran

Pemeriksaannya adalah skrip, bukan pendapat subagent. Untuk setiap bahasa, skrip itu membandingkan file dengan sumber bahasa Inggris:

  • slug dan tanggal sama, judul sama dengan H1;
  • jumlah bagian, subbagian, gambar, tautan, dan baris tabel sama, serta jumlah jawaban FAQ di isi sama dengan jumlah pertanyaan di metadata;
  • tautan identik sampai ke byte, segmen kode identik sampai ke byte;
  • nama merek dihitung, tidak pernah lebih sedikit daripada di bahasa Inggris;
  • panjang teks dalam batas yang dikalibrasi untuk setiap bahasa, karena bahasa Mandarin mengatakan hal yang sama dengan sekitar 36 % karakter yang dibutuhkan bahasa Inggris dan bahasa Jepang dengan sekitar separuhnya;
  • diakritik hadir di bahasa yang memilikinya (Polandia, Turki, Vietnam).

Setiap subagent selesai dengan semacam "beres, semua pemeriksaan lolos". Satu-satunya putusan yang kami jadikan dasar tindakan adalah skrip yang sama, dijalankan ulang oleh sesi utama, pada semua file sekaligus.

Apa yang ditangkap pemeriksaan pusat tetapi tidak muncul di laporan subagent

Kode diterjemahkan di dalam tabel. Pada 13 September, sekitar separuh subagent menerjemahkan kata-kata yang mengikuti sebuah perintah di dalam backtick yang sama di sebuah tabel. Masing-masing sudah mengikuti brief-nya sesuai pemahamannya. Perbaikannya masuk ke brief, bukan ke subagent: segmen kode hanya berisi perintahnya, dan kata-kata setelahnya berada di luar backtick.

Pemeriksaan kami sendiri yang salah. Pada 6 September, pemeriksaan panjang yang dikalibrasi pada teks lama yang sedang kami ganti menandai 11 dari 17 subagent. Kesebelasnya benar: teks barunya memang seharusnya lebih panjang. Setelah dikalibrasi pada teks Prancis yang sudah dikoreksi, pemeriksaan itu tidak menandai satu pun. Pemeriksaan pusat juga bisa salah, dan cara melihatnya adalah menjalankannya lebih dulu pada hasil kerja yang sudah Anda tahu bagus.

Konsistensi antarpotongan. Pada 15 Oktober, pada halaman fitur baru yang diterjemahkan dengan cara yang sama, pemeriksaan penggabungan memastikan bahwa hanya teks yang diharapkan yang berubah di 90 file. Namun subagent Jepang, Korea, dan Mandarin masing-masing memilih judul untuk "You may also like" yang berbeda dari judul yang sudah dipakai bahasanya di halaman sebelah. Setiap pilihan adalah terjemahan yang benar. Tidak satu pun konsisten dengan situs. Tidak ada subagent yang bisa melihatnya dari dalam potongannya: hanya satu putaran pada hasil gabungan yang bisa.

Kata yang salah lolos dari semua pemeriksaan struktur. Satu bahasa di situs ini pernah menyebut agen AI sebagai dealer mobil, dan itu tetap online selama berbulan-bulan. Panjang sama, tanda baca sama, merek ada: semua hitungan hijau. Satu-satunya yang menangkapnya adalah daftar bernama berisi kata-kata salah yang sudah diketahui, yang memblokir setiap deployment dan bertambah satu baris setiap kali kami menemukan yang baru.

Laporan dari luar potongan. Pada 15 Oktober, subagent yang mengerjakan bahasa Turki melaporkan bahwa situs menulis "ajans", yang berarti agensi, untuk "agent" di 97 teks yang sudah ada. Ia tidak menyentuhnya, karena brief-nya melarang. Kami membuka tiket dan perbaikannya keluar keesokan harinya. Menanyakan kepada subagent apa yang mereka lihat, bukan hanya apa yang mereka kerjakan, itu murah dan sepadan.

Penggabungan terjadi di satu tempat

Subagent tidak menulis langsung ke repositori. Masing-masing mengembalikan file-nya, sebuah skrip menggabungkannya, lalu membandingkan hasilnya dengan versi sebelumnya teks demi teks: hanya teks yang kami minta yang boleh berubah. Setelah itu, pemeriksaan repositori dan build situs berjalan sekali, pada hasil gabungan. Menjalankan build sekali per subagent akan lebih lambat dan akan menguji keadaan setengah tergabung yang tidak akan pernah dirilis.

Kapan sebaiknya tidak melakukan fan out

  • Potongan-potongannya saling bergantung. Jika potongan B membutuhkan output potongan A, jalankan secara berurutan.
  • Pekerjaannya kecil. Setiap subagent mulai dari kosong dan membaca ulang apa yang dibutuhkannya. Pada tugas sepuluh menit, biaya memulai dari awal lebih besar daripada yang dihemat.
  • Anda tidak bisa menulis pemeriksaannya. Jika tidak ada cara membedakan potongan yang bagus dari yang buruk tanpa membaca semuanya sendiri, penggabungan adalah tempat Anda akan menghabiskan waktu.
  • Kuotanya ketat. Setiap subagent menghabiskan tokennya sendiri. Fan out membeli waktu dan konteks utama yang bersih, bukan tagihan yang lebih kecil.

Posisi AgentsRoom

Subagent hidup di dalam satu sesi Claude Code. Anda melihat hasilnya, bukan pekerjaannya, dan Anda tidak bisa mengarahkan salah satunya di tengah jalan. Ketika Anda ingin setiap potongan menjadi agen yang bisa Anda pantau, balas, dan review secara terpisah, jalankan sesi-sesi terpisah sebagai gantinya: setiap tiket di git worktree-nya sendiri, dan Agent Teams ketika potongan-potongan saling meneruskan pekerjaan. Sebuah langkah tim bisa membawa perintah pemeriksaan, dan exit code-nya, bukan klaim agen itu sendiri, yang menentukan apakah run berlanjut. Itu aturan yang sama seperti di atas, ditegakkan oleh runner. Ini bekerja dengan Claude Code, Codex, dan CLI agen lain yang didukung AgentsRoom.

Jika Anda masih menimbang antara subagent dan Agent Teams, perbandingan ini menjelaskan kegunaan masing-masing.

Unduh AgentsRoom

Jalankan semua agen AI Anda, di semua proyek Anda, dari satu jendela.

GratisUnduh AgentsRoom

Aplikasi pendamping: pantau agen Anda saat bepergian

Gunakan Claude, Codex, Antigravity CLI, atau penyedia AI lainnya.

Dapatkan ekstensi
Chrome Web Store

Kirim bug dan permintaan langsung ke backlog publik Anda.

Beberapa proyek
Multi-penyedia
Beberapa agen
Status langsung
File diff & commit
Pendamping mobile
Pratinjau langsung
Tim agen
Otomatisasi browser
Dev berbasis backlog
Pustaka prompt
Pustaka skill
Lihat semua fitur

Lanjutkan membaca