←Holly Natasha

AI TUTORIAL

ARENA: 100 AGENT CLAUDE DIADU JADI 1 JAWABAN

October 2, 2026 · 14 min read

Daripada ngetik "coba lagi" lima kali, Arena Skill bikin 100 agent ngerjain task yang sama persis dengan 100 strategi beda, terus diadu sampai tinggal satu. Ini cara install-nya, angka biayanya yang sebenernya, dan satu file yang nentuin hasilnya.

Ini guide buat kamu yang udah comment "ARENA" di video.

Namanya Arena Skill, dibikin Jake Schincariol, dan dia jalan di Claude Code. Idenya satu kalimat: daripada kamu ngetik "coba lagi" lima kali ke jawaban yang sama-sama generic, dia bikin N versi Claude ngerjain task itu bareng-bareng, terus diadu sampai tinggal satu.

Default-nya 100 agent, 7 ronde. Ada mode --quick yang 16 agent buat sehari-hari. Skill-nya MIT license alias gratis, tapi yang jalan tetep kuota Claude kamu, jadi angka-angkanya perlu kamu tau dulu sebelum mencet enter.

Satu catatan jujur di depan: aku belum pernah ngejalanin turnamennya sendiri sampai selesai. Semua angka dan mekanisme di bawah ini aku ambil dari README, SKILL.md, rubric.md, sama bracket.py di repo aslinya, bukan dari hasil run aku. Begitu aku udah nge-run, bagian hasilnya aku update.

Jumlah agent yang masih hidup tiap ronde: 100, 50, 25, 13, 7, 4, 2, 1
Tangga ini bukan ilustrasi. Ini output persis dari perintah plan-nya buat 100 agent.

Kenapa ini beda dari nge-regenerate

Pas kamu bilang "coba lagi", Claude ngerjain task yang sama dengan cara mikir yang kurang lebih sama juga. Makanya jawaban kedua sering cuma versi lain dari jawaban pertama, bukan pendekatan lain.

Arena maksa variasinya dari luar. Task-nya dikasih identik ke semua agent, byte per byte. Yang dibikin beda satu hal: kartu strategi. Tiap agent dapet satu kartu yang isinya tiga bagian, dan tiga bagian itu yang nentuin dia nyerang task-nya dari mana.

Reasoning mode itu cara dia mikir. Ada 15, dari first principles, inversion, adversarial, contrarian, sampai expert panel. Workflow itu urutan kerjanya, ada 12: draft-critique-rewrite, outline first, test first, build-then-break, dan seterusnya. Strategy itu yang dia menangin pas ketemu trade-off, ada 12 juga: simplest thing that works, maximal rigour, edge cases first, concrete specifics.

Dikaliin jadi 2.160 kombinasi, dan bracket.py bagiin tanpa ada yang kembar. Jadi di turnamen 100 agent, kamu beneran dapet 100 cara ngerjain satu soal, bukan 100 jawaban mirip.

Tiga bagian kartu strategi: 15 reasoning mode, 12 workflow, 12 strategy
Kartu ini ada di file strategies.json. Kamu bisa nambahin sendiri, dan dealer-nya langsung ikut pakai.

Isi satu match

Yang bikin ini bukan sekadar "bikin 100 jawaban terus pilih" itu ada di ronde-nya. Tiap pasangan ngelewatin empat fase, dan tiga di antaranya butuh subagent sendiri.

Fase serang: dua agent baca solusi lawannya, bukan punya sendiri. Mereka cuma boleh nulis kesalahan yang konkret dan bisa dicek, maksimal 7, dan tiap serangan dilabel FATAL, MAJOR, atau MINOR. Muji dilarang. Nyerang pendekatan lawan juga dilarang, cuma boleh nyerang yang salahnya.

Fase bertahan: tiap serangan harus dijawab satu per satu, CONCEDE atau REBUT. Ini bagian yang menurutku paling pinter desainnya: ngaku salah terus benerin itu dinilai lebih tinggi daripada ngotot. Dan rebuttal yang isinya cuma "ga kok, punyaku udah bener" dihitung sebagai ngaku salah. Abis itu dia nulis ulang solusinya lengkap dari nol, bukan nempelin tambalan.

Fase judge: ada agent ketiga yang cuma jadi juri. Dia baca dua solusi revisi, terus ngecek sendiri tiap serangan tadi dan ngelabelin FIXED, REBUTTED, atau STANDING. Jawaban yang bilang "udah dibenerin" ga dianggap bukti, dia harus liat sendiri. Dia juga ga dikasih tau kartu strategi siapa pun.

Fase eliminasi: yang skornya lebih tinggi lanjut, yang satu keluar. Ga ada seri.

Empat fase satu match: attack, defend, judge, eliminasi
Satu match makan 5 subagent call. Itu kenapa 100 agent bisa nyampe 595.

Rubrik yang dipakai jurinya

Juri ga nilai pakai selera. Ada satu file rubrik, sama buat semua match, dengan lima kriteria dan bobot yang udah fix.

Correctness bobot 30, completeness 25, robustness 20, specificity 15, clarity 10. Totalnya 100. Robustness itu yang bikin bagian serang tadi ada gunanya: skornya diukur dari seberapa banyak serangan di match itu yang beneran kelar.

Ada satu aturan yang nabrak semua skor: fatal. Kalau juri nemu cacat yang udah dia verifikasi dan bikin solusinya salah atau ga kepake, solusi itu ga bisa menang lawan solusi yang ga fatal, seberapa pun totalnya.

Dan ada daftar hal yang sengaja ga dikasih nilai: panjang, nada percaya diri, pendekatan yang dipakai, dan kalimat-kalimat yang muji diri sendiri kayak "solusi komprehensif ini". Jawaban pendek yang memenuhi semua syarat ngalahin jawaban panjang yang memenuhi syarat yang sama.

Lima kriteria rubrik dengan bobotnya: correctness 30, completeness 25, robustness 20, specificity 15, clarity 10
Bobotnya ada di rubric.md. Kamu bisa edit kalau kriteria kamu beda.

Install, dua cara

Syaratnya: Claude Code dengan akun Claude yang aktif, dan Python 3.8 ke atas. Ga ada package tambahan yang perlu di-install. Arena butuh Agent tool-nya Claude Code, jadi nempelin ini ke chat Claude biasa di web ga bakal jalan.

Cara pertama, salin foldernya langsung. Ini yang bikin command-nya jadi /arena:

git clone https://github.com/Jakeschincariol/arena-skill.git
cp -r arena-skill/skills/arena ~/.claude/skills/

Cara kedua, lewat plugin marketplace:

/plugin marketplace add Jakeschincariol/arena-skill
/plugin install arena-skill@arena-skill

Satu beda yang gampang bikin bingung: kalau kamu install sebagai plugin, command-nya jadi /arena-skill:arena, bukan /arena. Yang /arena cuma jalan di instalasi folder.

Kalau kamu lebih suka Claude Code yang ngerjain, buka folder kerja baru terus tempel ini. Aku sengaja nulis "jangan mulai turnamen dulu" biar dia ga langsung ngabisin kuota:

https://github.com/Jakeschincariol/arena-skill

Install Arena skill ini ke folder .claude/skills/ di project ini.
Cek dulu Python 3.8 atau yang lebih baru ada apa ngga. Jelasin
file apa aja yang bakal kamu tambahin, baru install, terus
konfirmasi /arena udah kebaca.

Jangan mulai turnamen dulu.

Pilih ukurannya dulu, sebelum enter

Ini bagian yang paling gampang bikin kaget. Default /arena itu 100 agent, dan 100 agent itu 595 subagent call.

Kalau kamu baru nyoba, mulai dari --quick. 16 agent, 4 ronde, 91 call. Itu udah cukup buat ngerasain apakah mekanismenya ngebantu buat task kamu atau ngga.

Angka wave itu yang nentuin berapa lama kamu nunggu. Claude Code jalanin maksimal 10 subagent sekaligus, jadi 100 agent itu 70 gelombang yang harus nunggu satu-satu. Bukan 100 agent jalan barengan.

Angka-angka ini bukan perkiraan aku. Semuanya keluar dari perintah plan di bracket.py-nya sendiri. Yang ga bisa aku kasih: berapa lama persisnya dan berapa kuota yang kepake, soalnya itu tergantung panjang task sama panjang jawabannya.

Tabel ukuran turnamen: 8, 16, 32, 64, dan 100 agent dengan ronde, subagent call, dan wave-nya
Kalau ada draft lama yang mau dikalahin, tambah 1 call lagi buat perbandingan akhirnya.

Satu file yang nentuin hasilnya

Kalau kamu cuma inget satu hal dari guide ini, inget yang ini: subagent ga bisa liat chat kamu.

Semua competitor, attacker, dan judge cuma baca satu file, .arena/task.md. Konteks yang kamu kasih tiga pesan sebelumnya, file yang kamu sebut tadi, preferensi yang kamu bilang minggu lalu, semuanya ga ada buat mereka kecuali ditulis di situ.

Jadi file itu harus berdiri sendiri. Isinya: request-nya pakai kata kamu sendiri, semua batasan yang pernah kamu sebut di mana pun (audiens, panjang, format, nada, deadline, apa yang ga boleh diubah), konteks yang orang asing butuhin (path file lengkap, data yang ditempel, produk kamu apa), dan definisi "selesai" kalau kamu punya.

Ada satu larangan yang menarik di instruksinya: jangan nulis pendapat kamu soal jawaban yang bener ke dalam task file. Alasannya masuk akal, itu bakal nyetir 100 agent ke arah yang sama, dan itu justru ngebatalin gunanya.

Kalau ada jawaban lama yang kamu ga puas, simpen apa adanya di .arena/baseline.md. Nanti di akhir ada satu juri terpisah yang bandingin juara sama draft lama itu, dan dia ga dikasih tau mana yang mana.

Chat yang tidak terbaca, file task.md, dan 100 salinan identik ke tiap agent
Hasil jelek hampir selalu balik ke file ini, bukan ke jumlah agent-nya.

Contoh lengkap: pitch acara kampus

Ini contoh brief yang aku pakai buat ngetes. Dipilih karena hasilnya gampang dinilai: pitch yang generic kerasa banget bedanya sama yang spesifik.

Simpen dulu draft awal kamu di baseline-pitch.txt, biar ada pembandingnya. Terus tempel yang di bawah ini, ganti bagian kurung siku sama detail beneran:

/arena --quick

Tulis pitch 150-180 kata dalam Bahasa Indonesia buat ngajak
[calon partner] ndukung acara sharing session kampus.

Konteks yang udah pasti:
- Acara 90 menit buat 30 mahasiswa yang baru mulai bikin proyek.
- Tim pelaksana 3 orang.
- Total budget maksimal Rp1.500.000.
- Dukungan yang dibutuhin: [isi kebutuhan nyata].
- Manfaat buat partner yang bisa beneran kami kasih: [isi manfaat nyata].
- Nama, tanggal, dan tempat acara: [isi detail atau tulis belum ditentukan].

Draft awal ada di baseline-pitch.txt. Pakai itu sebagai baseline
pembanding, bukan sesuatu yang harus dipertahanin.

Yang aku butuhin:
1. Satu pitch final yang siap aku revisi sebelum dikirim.
2. Pembuka yang spesifik buat partner ini dan acara ini.
3. Permintaan dukungan yang jelas, alasan kecocokan partner, dan
   langkah berikutnya yang gampang dijawab.
4. Nada hangat dan profesional, tanpa bahasa klise atau pujian generik.
5. Jangan ngarang sponsor, hasil acara, angka engagement, atau
   pengalaman pribadi. Pakai placeholder kalau detailnya belum ada.

Pastiin task file memuat semua konteks dan batasan ini, karena
subagent ga baca seluruh chat.

Setelah turnamen, tunjukin winning output, critique yang berhasil
dijawab, dan perbandingan skornya sama draft awal. Lapor apa adanya
kalau draft awal malah dapet skor lebih tinggi. Jangan kirim pitch
ini ke siapa pun.

Dua kalimat terakhir itu yang paling sering orang lupa. Yang pertama nutup kemungkinan dia ngarang hasil yang enak didenger. Yang kedua nutup kemungkinan dia ngirim beneran, karena skill-nya sendiri mewanti-wanti: kalau solusinya ngubah file di project kamu, jangan diterapin, tanya dulu.

Cara baca hasilnya

Selama turnamen jalan, kamu ga bakal dikasih liat apa-apa selain satu baris per ronde, kayak "Ronde 2 selesai: 25 dari 100 tersisa". Itu disengaja. Ada ratusan file solusi, serangan, dan verdict, dan yang ngejalanin turnamen emang dilarang bacain satu-satu.

Di akhir kamu dapet lima hal: solusi juaranya lengkap, daftar serangan yang dia lewatin, kartu strateginya satu baris, jumlah ronde, dan kalau ada baseline, skor perbandingan akhirnya.

Yang paling penting dari lima itu menurutku yang terakhir. Instruksinya jelas: kalau jawaban lama skornya lebih tinggi, bilang terus terang dan tunjukin dua-duanya. Jadi turnamen ini bisa aja nyimpulin bahwa draft kamu udah lebih bagus, dan itu hasil yang valid.

Semua rekaman lengkapnya tetep ada di folder .arena/ kalau kamu mau ngubek sendiri.

Yang perlu kamu tau sebelum mulai

Satu, jurinya AI juga. Mereka lebih teliti dari satu jawaban sekali jalan karena ada rubrik dan ada verifikasi, tapi mereka tetep bisa salah. Juara turnamen artinya jawaban itu ngalahin 99 yang lain menurut rubrik itu, bukan artinya jawaban itu bener. Cek sendiri sebelum dipakai.

Dua, subagent nulis banyak file ke folder .arena/. Di mode permission default, itu satu approval per file, dan di run gede jadi ratusan. Skill-nya sendiri nyaranin kamu nyalain accept-edits mode (Shift+Tab) selama run, dan dia ga bakal ngubah setelan kamu sendirian.

Tiga, ini bukan buat semua pertanyaan. Nanya definisi atau minta caption pendek ga butuh 16 agent. Yang kepake itu buat task yang punya banyak cara ngerjain dan kamu ga puas sama yang pertama.

Empat, kalau konteks kamu ke-compact di tengah jalan, ga ada yang ilang. Statusnya ada di disk, tinggal jalanin status terus next dan lanjut.

Lima, kamu bisa berhentiin kapan aja dan dilanjut nanti.

Yang bakal aku update

Guide ini aku tulis dari dokumentasi dan kodenya, bukan dari hasil run aku sendiri. Yang belum ada di sini: berapa lama --quick jalan di akun aku, berapa kuota yang kebakar, dan apakah juaranya beneran lebih spesifik dari draft awal buat brief pitch di atas.

Begitu aku udah ngerekam satu run beneran, bagian itu aku tambahin lengkap sama skor sebelum-sesudahnya, termasuk kalau ternyata hasilnya mengecewakan.

Repo asli Jake Schincariol. MIT license, gratis diambil, dan kodenya bisa kamu baca sendiri sebelum install.

Buka repo Arena Skill

Written by Holly in Beijing. Notes get longer as I learn more. If you spot something off, find me in the footer.