Claude Architect · Pelajaran

Antipola Alat dan Kesalahan

Deskripsi minimal, terlalu banyak alat, dan kesalahan generik.

Pelajaran 2 dari 413 langkah

Antipola Alat dan Kesalahan adalah pelajaran Claude Architect gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Claude Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Claude Architect mencakup 4 pelajaran total.

Mengapa Alat dan Kesalahan Gagal Secara Diam-Diam

Sebagian besar kegagalan agen bukanlah kerusakan yang dramatis. Kegagalan tersebut berupa perutean keliru yang diam-diam: model memilih alat yang salah, atau alat gagal dengan pesan samar yang tidak dapat digunakan model untuk memulihkan diri. Agen kemudian berimprovisasi, mengarang, atau meninggalkan tugas secara diam-diam.

Pelajaran ini membedah tiga anti-pattern yang terus-menerus dirilis ke lingkungan produksi:

  • Deskripsi alat yang minimal sehingga model harus menebak
  • Terlalu banyak alat per agen, yang menurunkan keandalan pemilihan
  • Status kesalahan generik yang menghalangi pemulihan cerdas

Masing-masing merupakan jawaban yang salah dan sering muncul dalam ujian. Pelajari cara mengenali dan memperbaikinya.

Deskripsi Adalah Mekanisme Pemilihan

Kesalahpahaman yang umum: model merutekan berdasarkan nama alat. Tidak demikian. Deskripsi alat adalah mekanisme pemilihan utama. Nama hanyalah label; deskripsilah tempat model memutuskan apakah suatu alat sesuai dengan situasi.

Deskripsi minimal seperti "Looks up an order" hampir tidak memberi informasi kepada model. Ketika dua alat memiliki deskripsi yang tipis dan saling tumpang tindih, model melakukan perutean keliru — model memanggil lookup_order padahal yang diperlukan adalah get_customer, dan seluruh loop agen menjadi menyimpang.

Anatomi Deskripsi yang Kuat

Deskripsi alat yang baik memuat lima hal:

  • Tujuan — apa yang dilakukannya dan kapan harus digunakan
  • Nilai yang dikembalikan — bentuk data yang dihasilkan
  • Format input beserta contoh — konkret, bukan abstrak
  • Kasus khusus — hasil kosong, ambiguitas, beberapa kecocokan
  • Batas penerapan — kapan alat tersebut TIDAK boleh digunakan

Poin terakhir itulah yang membedakan alat-alat yang tumpang tindih. Di bawah ini adalah versi lemah yang paling sering dirilis oleh tim.

lookup_order = {
    "name": "lookup_order",
    # Anti-pattern: minimal, ambiguous description
    "description": "Looks up an order.",
    "input_schema": {
        "type": "object",
        "properties": {"id": {"type": "string"}},
        "required": ["id"],
    },
}

Menulis Ulang untuk Membedakan

Sekarang, inilah versi yang kuat. Perhatikan bagaimana deskripsi menyatakan format input beserta contoh, bentuk hasil, kasus hasil kosong, dan batas eksplisit yang mencegah benturan dengan get_customer.

Ini adalah perbaikan dengan dampak terbesar untuk perutean keliru: Anda mengubah deskripsi, bukan modelnya.

lookup_order = {
    "name": "lookup_order",
    "description": (
        "Retrieve a single order by its order ID. "
        "Input: order_id as a string like 'ORD-48213' (NOT a customer ID). "
        "Returns: {order_id, status, items[], total, placed_at}. "
        "If no order matches, returns an empty result (not an error). "
        "Use get_customer first if you only have a name or email; "
        "do NOT use this to look up a customer's full order history."
    ),
    "input_schema": {
        "type": "object",
        "properties": {
            "order_id": {"type": "string", "description": "e.g. 'ORD-48213'"}
        },
        "required": ["order_id"],
    },
}

Terlalu Banyak Alat Menurunkan Kualitas Pemilihan

Anti-pattern kedua: memberikan kotak alat raksasa kepada satu agen. Keandalan pemilihan tidak konstan — keandalan tersebut menurun seiring bertambahnya jumlah alat.

  • 4–5 alat per agen adalah rentang optimal
  • 18+ alat menurunkan keandalan pemilihan secara terukur

Semakin banyak alat berarti semakin banyak kemungkinan deskripsi yang tumpang tindih, semakin luas ruang ambiguitas, dan semakin panjang daftar yang harus dipertimbangkan model pada setiap giliran. Cakupan luas bukan keunggulan di sini — melainkan beban.

Batasi Alat Sesuai Peran

Perbaikannya bersifat arsitektural: batasi alat sesuai peran, alih-alih memberikan setiap agen semua kemampuan. Dalam sistem multi-agen hub-dan-spoke, koordinator memecah pekerjaan dan mendelegasikannya kepada subagen — setiap subagen hanya mendapatkan beberapa alat yang diperlukan untuk tugasnya, mengikuti prinsip hak akses minimum.

Agen dukungan dengan 4 alat yang terfokus mengungguli generalis dengan 20 alat karena setiap alat tidak ambigu dalam kumpulan kecil yang dibatasi sesuai peran.

support_agent = AgentDefinition(
    name="order_support",
    description="Handles order status and refund requests for a verified customer.",
    system_prompt="You resolve order issues. Verify identity before any refund.",
    # 4 tools, scoped to the role — not the whole company API
    allowed_tools=[
        "get_customer",
        "lookup_order",
        "process_refund",
        "escalate_to_human",
    ],
)

Pisahkan, Jangan Menjejalkan

Ketika alur kerja benar-benar memerlukan banyak kemampuan, jawabannya bukan satu agen yang membengkak — melainkan dekomposisi. Pisahkan tanggung jawab di antara subagen yang dibatasi sesuai peran, lalu biarkan koordinator merutekan di antara mereka.

Ingat aturan multi-agen: subagen tidak mewarisi riwayat percakapan koordinator. Jadi, ketika mendelegasikan, teruskan semua konteks yang diperlukan secara eksplisit dalam prompt subagen. Pemisahan yang rapi membuat kumpulan alat setiap agen tetap kecil DAN menjaga konteksnya tetap terfokus.

Kesalahan Generik Menghalangi Pemulihan

Anti-pattern ketiga terdapat pada jalur kesalahan. Alat yang gagal dengan "Operation failed" atau hanya isError: true tidak memberi model apa pun untuk ditindaklanjuti. Model tidak dapat membedakan gangguan jaringan sementara dari kesalahan validasi atau hasil kosong — sehingga model mengulangi percobaan secara membabi buta, menyerah, atau mengarang jawaban.

Status kesalahan generik menghalangi perutean cerdas. Kesalahan terstruktur memungkinkannya.

# Anti-pattern: generic, unrecoverable error
return {
    "isError": True,
    "message": "Operation failed",
}

Kesalahan MCP Terstruktur

Kesalahan yang dapat dipulihkan memiliki struktur. Konvensi MCP menggabungkan kolom yang diperlukan model untuk memutuskan tindakan berikutnya:

  • isError: true beserta errorCategory: sementara / validasi / bisnis / izin
  • isRetryable — apakah model harus mencoba lagi?
  • message, attempted_query, dan partial_results

Dengan semua ini, model merutekan secara cerdas: mencoba lagi kesalahan sementara, memperbaiki kesalahan validasi, mengeskalasikan penolakan izin, atau menampilkan hasil parsial alih-alih tidak menampilkan apa pun.

# Structured error: enables intelligent routing
return {
    "isError": True,
    "errorCategory": "transient",      # transient|validation|business|permission
    "isRetryable": True,
    "message": "Order DB timed out after 5s",
    "attempted_query": {"order_id": "ORD-48213"},
    "partial_results": [],
}

Kegagalan Tidak Sama dengan Hasil Kosong

Satu pembedaan terselubung yang sering diuji: FAILURE akses (alat tidak dapat berjalan — batas waktu habis, tidak ada izin) tidak sama dengan hasil EMPTY yang valid (kueri berjalan baik tetapi tidak menemukan apa pun).

Menyatukan keduanya sebagai kesalahan umum akan menghambat pemulihan. Kegagalan mungkin layak dicoba lagi; hasil kosong berarti "tidak ada kecocokan" dan harus dilaporkan sebagai fakta, bukan dicoba ulang tanpa henti. lookup_order Anda sebelumnya sudah benar: tidak ada kecocokan menghasilkan hasil kosong, bukan kesalahan.

Pulihkan Secara Lokal, Eskalasikan dengan Konteks

Satukan semuanya menjadi strategi propagasi kesalahan:

  • Pulihkan kegagalan sementara secara lokal di subagen — coba lagi setelah batas waktu habis, jangan teruskan ke tingkat atas
  • Eskalasikan kegagalan yang tidak dapat dipulihkan dengan konteks terstruktur: jenis kegagalan, kueri yang dicoba, hasil sebagian, dan alternatif
  • Jangan pernah menekan kesalahan secara diam-diam, dan jangan pernah membatalkan seluruh alur kerja hanya karena satu subagen gagal

Koordinator kemudian dapat menghindari satu cabang yang gagal dan tetap menggabungkan jawaban yang berguna — hal yang justru tidak mungkin dilakukan jika menggunakan kesalahan umum.

# Subagent error handling
if err["errorCategory"] == "transient" and err["isRetryable"]:
    result = retry(call)              # recover locally
else:
    return {                          # escalate WITH context
        "status": "failed",
        "failure_type": err["errorCategory"],
        "attempted_query": err["attempted_query"],
        "partial_results": err["partial_results"],
        "alternatives": ["try search_orders by date range"],
    }

Pemeriksaan Singkat: Memperbaiki Salah Pengarahan

Terapkan pelajaran ini pada kegagalan konkret.

Rangkuman: Tiga Antipola, Tiga Perbaikan

Sekarang Anda dapat mengenali dan memperbaiki antipola alat dan kesalahan yang muncul sebagai jawaban keliru dalam ujian:

  • Deskripsi minimal menyebabkan salah pengarahan. Perbaikan: deskripsi adalah mekanisme pemilihan — nyatakan tujuan, nilai yang dikembalikan, format masukan beserta contoh, kasus tepi, dan batas penerapan.
  • Terlalu banyak alat menurunkan kualitas pemilihan. Perbaikan: 4–5 alat per agen adalah jumlah optimal, 18+ menurunkan keandalan — batasi alat sesuai peran dan bagi ke beberapa subagen dengan hak akses minimum.
  • Kesalahan umum menghambat pemulihan. Perbaikan: gunakan kesalahan terstruktur dengan errorCategory (sementara/validasi/bisnis/izin), isRetryable, kueri_yang_dicoba, dan hasil_sebagian — bedakan kegagalan akses dari hasil kosong yang valid, pulihkan kegagalan sementara secara lokal, eskalasikan sisanya dengan konteks, dan jangan pernah menekan atau membatalkan seluruh alur kerja secara diam-diam.
Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
26
Pelajaran
104

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Antipola Alat dan Kesalahan” gratis?

Ya — teks lengkap “Antipola Alat dan Kesalahan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Claude Architect, upgrade ke CoddyKit PRO. Kursus Claude Architect mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Antipola Alat dan Kesalahan”?

Deskripsi minimal, terlalu banyak alat, dan kesalahan generik. Kamu berlatih Claude Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Claude Architect?

Tidak diperlukan pengalaman sebelumnya. Claude Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Antipola Alat dan Kesalahan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Claude Architect ini?

Ya. Setiap pelajaran Claude Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Antipola Perulangan dan Orkestrasi
  2. Antipola Alat dan Kesalahan
  3. Antipola Perintah dan Peninjauan
  4. Antipola Eskalasi dan Metrik
← Kembali ke Claude Architect