- Proses membangun agen masih kompleks, dan ada masalah ketika abstraksi SDK sering runtuh pada tahap penggunaan tool yang sebenarnya
- Manajemen caching berbeda di tiap platform, sehingga pengelolaan manual lebih mudah diprediksi dan efisien, dengan pendekatan titik cache eksplisit dari Anthropic SDK yang lebih disukai
- Reinforcement loop berperan penting dalam pelacakan status pekerjaan dan pemulihan kegagalan, dan kegagalan perlu diisolasi secara terpisah untuk mencegah loop runtuh
- Manajemen status bersama membutuhkan hierarki mirip sistem file, yang digunakan sebagai fondasi pertukaran data antar tool eksekusi kode dan penalaran
- Pemilihan output tool dan model masih rumit, dengan model Haiku, Sonnet, dan Gemini tetap menjadi opsi utama, menunjukkan kompleksitas desain agen yang terus berlanjut
Memilih SDK agen
- Saat membangun agen, perlu memilih apakah akan langsung memakai SDK dasar seperti OpenAI dan Anthropic, atau memakai lapisan abstraksi tingkat tinggi seperti Vercel AI SDK atau Pydantic
- Penulis menyebut bahwa dulu ia hanya memakai abstraksi provider dari Vercel AI SDK, tetapi kini tidak akan mengulang pilihan itu
- Perbedaan antar model begitu besar sehingga perlu membangun lapisan abstraksi agen sendiri, dan abstraksi dari SDK yang ada tidak cukup cocok
- Ada perbedaan halus dalam kontrol cache, kebutuhan reinforcement, dan prompt tool
- Vercel SDK menimbulkan masalah pada penanganan tool di sisi provider
- Ada kasus tool pencarian web Anthropic merusak riwayat pesan
- Saat memakai Anthropic SDK secara langsung, pengelolaan cache dan pesan error lebih jelas
- Kesimpulannya, saat ini pendekatan memakai SDK secara langsung tanpa lapisan abstraksi dinilai lebih menguntungkan
Pelajaran dari manajemen caching
- Pendekatan caching berbeda di tiap platform, dan Anthropic mengenakan biaya untuk caching serta meminta pengelolaan eksplisit
- Pengelolaan manual lebih disukai karena membuat biaya dan tingkat pemanfaatan cache lebih mudah diprediksi
- Caching eksplisit memungkinkan eksekusi percabangan percakapan atau pengeditan konteks
- Beberapa titik cache dapat ditempatkan setelah system prompt, pada bagian awal percakapan, dan seterusnya
- Untuk menjaga cache, system prompt dan pemilihan tool dibuat statis, sementara informasi dinamis seperti waktu dikirim sebagai pesan setelahnya
- Reinforcement loop dipakai aktif bersama cache untuk meningkatkan prediktabilitas biaya dan kontrol
Reinforcement di dalam loop agen
- Saat menjalankan tool, bukan hanya hasil sederhana yang bisa dikembalikan, tetapi juga informasi seperti tujuan, status pekerjaan, dan penyebab kegagalan dapat disuntikkan kembali ke dalam loop
- Tool self-reinforcement seperti tool todo write di Claude Code membantu jalannya loop
- Saat lingkungan berubah atau perlu pemulihan dari kegagalan, informasi perubahan status disuntikkan untuk menjaga stabilitas loop
- Contoh: saat mencoba ulang berdasarkan data yang rusak, pesan dapat disisipkan untuk mengarahkan kembali ke tahap sebelumnya
Mengisolasi kegagalan
- Tugas yang diperkirakan akan gagal berulang kali dipisahkan ke subagent agar dijalankan terpisah, lalu hanya hasil yang berhasil dilaporkan ke loop utama
- Ringkasan percobaan yang gagal dipakai sebagai bahan pembelajaran untuk tugas berikutnya
- Di Anthropic SDK, catatan kegagalan bisa dihapus lewat fitur context editing
- Tidak semua informasi kegagalan perlu dipertahankan; hanya bagian yang dibutuhkan yang disisakan
- Namun, context editing dapat menyebabkan invalidasi cache dan meningkatkan biaya
Subagent dan sistem file bersama
- Sebagian besar agen berbasis eksekusi dan generasi kode, sehingga membutuhkan penyimpanan data bersama
- Untuk itu digunakan virtual file system (VFS)
- Beragam tool seperti pembuatan gambar, kompresi, dan penalaran harus berbagi path file yang sama
- Tool
ExecuteCode dan RunInference harus bisa mengakses sistem file yang sama
- Struktur seperti ini penting untuk menghilangkan bottleneck pertukaran data dan menangani pekerjaan beruntun di dalam loop
Output tool
- Agen tidak bekerja sebagai sesi chat, melainkan sebagai loop pesan internal privat, dan komunikasi dengan luar dilakukan melalui output tool
- Output tool menangani komunikasi eksternal seperti pengiriman email
- Kontrol nada dan gaya penulisan pada output tool masih sulit, dan saat memakai LLM pendukung (Gemini 2.5 Flash) terjadi penurunan kualitas serta tambahan latensi
- Tool bawahan tidak memiliki konteks yang cukup sehingga menghasilkan keluaran yang kurang akurat
- Jika output tool tidak dipanggil saat loop berakhir, pesan reinforcement disisipkan untuk mendorong pemanggilan
Pemilihan model
- Haiku dan Sonnet digunakan sebagai model loop utama karena performanya bagus dalam pemanggilan tool
- Gemini 2.5 cocok untuk ringkasan dokumen besar, pemrosesan PDF, dan ekstraksi informasi gambar
- Model Sonnet punya kelemahan karena cukup sering terkena filter keamanan
- Model keluarga GPT tidak menunjukkan hasil besar di loop utama
- Biaya total tidak bisa dinilai hanya dari biaya token
- Model pemanggilan tool yang lebih baik bisa menyelesaikan pekerjaan yang sama dengan token lebih sedikit
Pengujian dan evaluasi (evals)
- Otomatisasi pengujian dan evaluasi agen disebut sebagai masalah yang paling sulit
- Tidak seperti prompt, evaluasi sederhana tidak bisa dilakukan hanya dari sistem eksternal
- Diperlukan observability atau instrumentation berbasis data eksekusi nyata
- Disebutkan bahwa hingga kini belum ditemukan metode evaluasi yang benar-benar memuaskan
Pembaruan agen coding
- Perubahan terkait agen coding tidak terlalu besar
- Baru-baru ini penulis sedang menguji agen Amp dan menilai tinggi struktur interaksi antara subagent Oracle dan loop utama
- Amp dan Claude Code terasa dirancang berpusat pada developer yang benar-benar memakai tool mereka sendiri
Belum ada komentar.