Pengenalan Dynamic Workflows di Claude Code
Ini adalah tulisan yang dipublikasikan oleh tim Claude Code di Anthropic (Thariq Shihipar, Sid Bidasaria), yang menjelaskan fitur Dynamic Workflows yang baru diperkenalkan di Claude Code. Dynamic workflow adalah pendekatan di mana Claude secara langsung menulis sendiri struktur eksekusi kustom (harness) dalam bentuk file JavaScript sesuai kebutuhan tugas saat itu, lalu mengoordinasikan banyak subagen. Harness bawaan Claude Code yang sudah ada memang dioptimalkan untuk tugas coding, tetapi memiliki keterbatasan untuk pekerjaan yang membutuhkan durasi panjang, paralelisme skala besar, dan verifikasi adversarial. Inti dari fitur ini adalah membiarkan Claude sendiri membuat harness yang disesuaikan untuk mengatasi masalah tersebut.
Latar belakang dan cara kerja
- Batasan konteks tunggal: Ada tiga mode kegagalan yang muncul saat perencanaan dan eksekusi dilakukan bersamaan dalam satu context window. Yaitu kemalasan agentik (agentic laziness), ketika pekerjaan baru setengah jalan tetapi agen menyatakan sudah selesai; bias preferensi diri (self-preferential bias), ketika agen menilai hasilnya sendiri secara terlalu ramah; dan penyimpangan tujuan (goal drift), ketika tujuan awal menjadi kabur selama proses kompresi konteks.
- Struktur kerja: Workflow menjalankan file JavaScript untuk membuat dan mengoordinasikan subagen, serta dapat memanfaatkan fungsi standar seperti JSON, Math, dan Array. Workflow juga secara langsung menentukan jenis model untuk tiap subagen (Sonnet, Opus, dan sebagainya) serta apakah worktree diisolasi atau tidak. Jika terhenti, eksekusi bisa dilanjutkan dengan melanjutkan sesi.
- Cara memanggil: Cukup minta Claude membuat workflow, atau gunakan kata pemicu "ultracode".
Ringkasan pola utama (Patterns)
- Classify and Route: Agen pengklasifikasi menentukan jenis tugas terlebih dahulu, lalu mengarahkannya ke agen atau alur pemrosesan yang sesuai. Ini juga bisa dipakai pada tahap akhir untuk klasifikasi hasil.
- Fan-out and Synthesize: Tugas besar dipecah menjadi unit kecil, lalu agen terpisah dijalankan untuk tiap unit, setelah itu semua hasil dikumpulkan dan digabungkan dalam tahap synthesize. Cocok untuk banyak tugas kecil yang membutuhkan konteks bersih.
- Adversarial Verification: Setiap agen pelaksana tugas dipasangkan dengan agen verifikasi terpisah yang membantah dan memeriksa hasil berdasarkan rubric (kriteria penilaian).
- Generate and Filter: Banyak ide dihasilkan terlebih dahulu, lalu disaring dengan rubric dan verifikasi, serta dideduplikasi sehingga hanya kandidat dengan kualitas terbaik yang tersisa.
- Tournament: N agen mengerjakan tugas yang sama dengan pendekatan berbeda dan bersaing, lalu agen juri menentukan pemenang melalui pairwise comparison. Dijelaskan bahwa perbandingan berpasangan lebih andal daripada penilaian skor absolut.
- Loop Until Convergence: Bila volume kerja tidak bisa ditentukan di awal, pembuatan agen diulang sampai tidak ada lagi temuan baru atau kesalahan baru.
Ringkasan kasus penggunaan (Use Cases)
- Refactoring dan migrasi skala besar: Pekerjaan dipecah berdasarkan callsite, test yang gagal, atau unit modul; subagen di tiap worktree melakukan perubahan; lalu agen lain melakukan review secara adversarial sebelum digabungkan. Ada contoh nyata penulisan ulang dari Zig ke Rust, dan paralelisme dapat dimaksimalkan jika workflow diarahkan untuk menghindari perintah yang boros sumber daya.
- Deep research (skill
/deep-research): Pencarian web di-fan-out untuk mengumpulkan sumber, klaim diverifikasi secara adversarial, lalu hasilnya disintesis menjadi laporan lengkap dengan sitasi. Ini juga bisa diterapkan untuk membuat laporan status di Slack, eksplorasi mendalam codebase, dan lainnya. - Pemeriksaan fakta: Agen terlebih dahulu mengidentifikasi semua klaim faktual dalam laporan, lalu subagen verifikasi memeriksa sumber untuk tiap klaim, sementara agen verifikasi terpisah menilai kualitas sumber tersebut.
- Penyelarasan dan pemeringkatan kualitatif: Tugas yang sulit diproses sekaligus, seperti mengurutkan lebih dari 1000 baris tiket dukungan berdasarkan tingkat keparahan, diselesaikan melalui pipeline tournament berbasis perbandingan berpasangan atau pembagian bucket secara paralel lalu digabungkan.
- Validasi aturan dan otomasi
CLAUDE.md: Agen verifikasi disiapkan untuk setiap aturan guna menangkap hal yang terlewat, dan agen dengan persona skeptis meninjau validitas aturan itu sendiri. Sebaliknya, perbaikan yang berulang dalam sesi terbaru dan code review juga bisa dikelompokkan untuk secara otomatis menurunkan aturan baru. - Debugging kegagalan intermiten dan analisis pascainsiden: Agen independen membangun hipotesis dari bukti yang dipisahkan berdasarkan log, file, atau data, lalu panel validator dan pembantah mengevaluasi tiap hipotesis. Ini bisa diterapkan bukan hanya untuk kode, tetapi juga analisis penyebab penurunan penjualan atau gangguan pipeline data.
- Triage dan penanganan backlog: Queue dukungan dan bug report diklasifikasikan, dideduplikasi terhadap item yang sudah ada, lalu diperbaiki secara otomatis atau dieskalasikan ke manusia. Disarankan pola isolasi (quarantine) yang memisahkan agen pembaca konten eksternal yang tidak tepercaya dari agen yang menjalankan tindakan berizin. Jika digabung dengan
/loop, ini bisa dijalankan terus-menerus. - Eksplorasi kreatif dan evaluasi (Eval): Untuk pekerjaan yang melibatkan selera seperti desain atau penamaan, banyak opsi dibuat lebih dulu lalu agen review memberi skor dan menyeleksi berdasarkan rubric. Ini juga bisa dipakai untuk evaluasi ringan guna menilai dan meningkatkan kualitas skill itu sendiri.
- Model Routing: Agen pengklasifikasi menyelidiki kompleksitas tugas terlebih dahulu, lalu memilih dan mengarahkan ke model yang sesuai antara Sonnet dan Opus.
Kelebihan dan pembeda
- Pembeda: Workflow statis yang dibuat dengan Claude Agent SDK atau
claude -pharus ditulis secara umum agar bisa menangani berbagai kasus, sedangkan dynamic workflow berbeda karena Claude menulis harness kustom secara langsung sesuai kebutuhan saat itu. - Kelebihan: Karena banyak agen dengan konteks terpisah fokus pada tujuan masing-masing, masalah seperti kemalasan, preferensi diri, dan penyimpangan tujuan bisa dikurangi secara struktural. Dari sisi operasional juga sudah tersedia fitur seperti melanjutkan sesi yang terhenti, menetapkan anggaran token ("use 10k tokens"), menggabungkannya dengan
/goaldan/loop, serta menyimpan dengan tombol "s" lalu membagikannya melalui direktori~/.claude/workflowsatau lewat skill. - Kekurangan dan perhatian: Penggunaan token bisa meningkat tajam, sehingga tidak cocok untuk semua tugas. Penulis juga menegaskan bahwa pekerjaan coding biasa tidak membutuhkan panel lima reviewer, dan menyarankan untuk selalu bertanya pada diri sendiri, "apakah ini benar-benar membutuhkan komputasi lebih banyak?" Praktik terbaiknya pun masih dalam tahap pembentukan.
Dynamic workflows dapat dibaca sebagai perubahan yang memperluas Claude Code dari sekadar asisten coding tunggal menjadi meta-orchestrator yang mengoordinasikan banyak agen. Ini adalah pendekatan yang menargetkan titik tengah antara pipeline statis dan agen otonom, dan tampaknya akan paling efektif untuk pekerjaan struktural berdurasi panjang seperti migrasi kode, deep research, triage, dan analisis pascainsiden. Namun, karena biaya tokennya besar dan praktik terbaiknya belum mapan, kesesuaian tiap pola perlu dipertimbangkan dengan hati-hati, dimulai dari "quick workflow" dalam skala kecil
Belum ada komentar.