Anti-Corak Alat dan Ralat
Penerangan minimum, terlalu banyak alat dan ralat generik
Anti-Corak Alat dan Ralat ialah pelajaran Claude Architect percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Claude Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.
Mengapa Alat dan Ralat Gagal Secara Senyap
Kebanyakan kegagalan ejen bukanlah ranap yang dramatik. Kegagalan itu ialah haluan yang tersasar secara senyap: model memilih alat yang salah, atau alat gagal dengan mesej yang kabur sehingga model tidak dapat pulih. Ejen kemudian membuat improvisasi, mereka-reka, atau meninggalkan tugasan secara senyap.
Pelajaran ini menghuraikan tiga anti-corak yang sentiasa dihantar ke produksi:
- Perihalan alat yang minimum sehingga model terpaksa meneka
- Terlalu banyak alat bagi setiap ejen, yang merendahkan kebolehpercayaan pemilihan
- Status ralat generik yang menghalang pemulihan bijak
Setiap satunya kerap menjadi jawapan yang salah dalam peperiksaan. Pelajari cara mengenal pasti dan membetulkannya.
Perihalan ialah Mekanisme Pemilihan
Salah faham yang lazim: model menghalakan berdasarkan nama alat. Sebenarnya tidak. Perihalan alat ialah mekanisme pemilihan utama. Nama ialah label; perihalanlah tempat model menentukan sama ada sesuatu alat sesuai dengan keadaan.
Perihalan minimum seperti "Looks up an order" hampir tidak memberikan maklumat kepada model. Apabila dua alat mempunyai perihalan yang nipis dan bertindih, model tersalah hala — ia memanggil lookup_order sedangkan yang diperlukan ialah get_customer, lalu seluruh gelung ejen tersasar.
Anatomi Perihalan yang Kukuh
Perihalan alat yang baik membawa lima perkara:
- Tujuan — perkara yang dilakukannya dan masa untuk menggunakannya
- Nilai pulangan — bentuk perkara yang dikembalikan
- Format input dengan contoh — konkrit, bukan abstrak
- Kes pinggiran — hasil kosong, kekaburan, padanan berbilang
- Had kebolehgunaan — masa untuk JANGAN menggunakannya
Perkara terakhir itulah yang membezakan alat yang bertindih. Di bawah ialah versi lemah yang dihantar oleh kebanyakan pasukan.
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 Semula untuk Pembezaan
Sekarang versi yang kukuh. Perhatikan bagaimana perihalan menyatakan format input dengan contoh, bentuk pulangan, keadaan hasil kosong dan sempadan yang jelas untuk mengelakkan pertembungan dengan get_customer.
Ini ialah pembaikan yang memberikan kesan paling besar untuk kesalahan haluan: anda mengubah perihalan, bukan model.
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 Merendahkan Pemilihan
Anti-corak kedua: memberikan satu ejen kotak alat yang besar. Kebolehpercayaan pemilihan bukanlah tetap — ia merosot apabila bilangan alat bertambah.
- 4–5 alat bagi setiap ejen ialah julat optimum
- 18+ alat merendahkan kebolehpercayaan pemilihan dengan ketara
Lebih banyak alat bermaksud lebih banyak kemungkinan perihalan bertindih, lebih banyak ruang untuk kekaburan dan senarai yang lebih panjang untuk difikirkan oleh model pada setiap giliran. Keluasan bukan ciri yang bermanfaat di sini — ia liabiliti.
Hadkan Alat Mengikut Peranan
Penyelesaiannya bersifat seni bina: hadkan alat mengikut peranan dan bukannya memberikan setiap ejen setiap keupayaan. Dalam sistem berbilang ejen hab-dan-jejari, penyelaras mengurai kerja dan mewakilkannya kepada subejen — setiap subejen hanya mendapat beberapa alat yang diperlukan untuk tugasnya, mengikut prinsip keistimewaan minimum.
Ejen sokongan berfokus dengan 4 alat mengatasi generalis dengan 20 alat kerana setiap alat tidak mempunyai kekaburan dalam set kecil yang terhad mengikut peranan.
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 Penuhkan
Apabila aliran kerja benar-benar memerlukan banyak keupayaan, jawapannya bukan ejen tunggal yang sarat — jawapannya ialah penguraian. Bahagikan tanggungjawab merentas subejen yang terhad mengikut peranan dan biarkan penyelaras menghalakan antara mereka.
Ingat peraturan berbilang ejen: subejen tidak mewarisi sejarah perbualan penyelaras. Jadi apabila anda mewakilkan tugas, sampaikan semua konteks yang diperlukan secara eksplisit dalam gesaan subejen. Pembahagian yang kemas memastikan set alat setiap ejen kecil DAN konteksnya berfokus.
Ralat Generik Menghalang Pemulihan
Anti-corak ketiga terdapat dalam laluan ralat. Alat yang gagal dengan "Operation failed" atau isError: true tanpa maklumat tambahan tidak memberikan model apa-apa untuk bertindak. Model tidak dapat membezakan gangguan rangkaian sementara daripada kesilapan pengesahan atau hasil kosong — lalu sama ada mencuba semula secara membuta tuli, berputus asa atau mereka-reka jawapan.
Status ralat generik menghalang penghalaan bijak. Ralat berstruktur membolehkannya.
# Anti-pattern: generic, unrecoverable error
return {
"isError": True,
"message": "Operation failed",
}Ralat MCP Berstruktur
Ralat yang boleh dipulihkan membawa struktur. Konvensyen MCP menghimpunkan medan yang diperlukan model untuk menentukan tindakan seterusnya:
isError: truebersamaerrorCategory: sementara / pengesahan / perniagaan / keizinanisRetryable— adakah model patut mencuba lagi?message,attempted_querydanpartial_results
Dengan semua ini, model menghalakan tindakan secara bijak: cuba semula kegagalan sementara, betulkan ralat pengesahan, eskalasikan penolakan keizinan atau paparkan hasil separa dan bukannya tiada apa-apa.
# 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 Kosong
Satu perbezaan halus yang sering diuji dalam peperiksaan: FAILURE capaian (alat tidak dapat dijalankan — masa tamat, kebenaran) tidak sama dengan EMPTY hasil yang sah (pertanyaan berjalan dengan baik tetapi tidak menemui apa-apa).
Menggabungkan kedua-duanya sebagai ralat umum akan menggagalkan pemulihan. Kegagalan mungkin wajar dicuba semula; hasil kosong bermaksud "tiada padanan" dan perlu dilaporkan sebagai fakta, bukannya dicuba semula tanpa henti. lookup_order anda sebelum ini mengendalikannya dengan betul: tiada padanan mengembalikan hasil kosong, bukan ralat.
Pulihkan Secara Setempat, Tingkatkan dengan Konteks
Gabungkan semuanya menjadi strategi penyebaran ralat:
- Pulihkan kegagalan sementara secara setempat dalam subejen — cuba semula apabila masa tamat, jangan naikkan ralat itu ke aras lebih tinggi
- Tingkatkan kegagalan yang tidak boleh dipulihkan dengan konteks berstruktur: jenis kegagalan, pertanyaan yang dicuba, hasil separa dan alternatif
- Jangan sekali-kali menyembunyikan ralat secara senyap, dan jangan sekali-kali menghentikan aliran kerja sepenuhnya kerana satu subejen gagal
Penyelaras kemudiannya boleh mengelakkan satu cabang yang gagal dan masih mengagregatkan jawapan yang berguna — sesuatu yang mustahil dilakukan oleh ralat 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"],
}Semakan Pantas: Membetulkan Salah Penghalaan
Terapkan pelajaran ini pada kegagalan yang nyata.
Imbas Kembali: Tiga Corak Antipola, Tiga Pembetulan
Kini anda boleh mengenal pasti dan membetulkan antipola alat dan ralat yang menyebabkan jawapan salah dalam peperiksaan:
- Perihalan yang minimum menyebabkan salah penghalaan. Pembetulan: perihalan ialah mekanisme pemilihan — nyatakan tujuan, nilai pulangan, format input berserta contoh, kes pinggir dan batas kebolehgunaan.
- Terlalu banyak alat merosotkan pemilihan. Pembetulan: 4-5 alat bagi setiap ejen adalah optimum, manakala 18+ merosotkan kebolehpercayaan — hadkan alat mengikut peranan dan bahagikannya merentasi subejen dengan keistimewaan minimum.
- Ralat umum menghalang pemulihan. Pembetulan: gunakan ralat berstruktur dengan errorCategory (sementara/pengesahan/perniagaan/kebenaran), isRetryable, attempted_query dan partial_results — bezakan kegagalan capaian daripada hasil kosong yang sah, pulihkan kegagalan sementara secara setempat, tingkatkan selebihnya bersama konteks, dan jangan sekali-kali menyembunyikan atau menghentikan aliran kerja sepenuhnya secara senyap.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 26
- Pelajaran
- 104
Soalan Lazim
Adakah pelajaran “Anti-Corak Alat dan Ralat” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Claude Architect, termasuk “Anti-Corak Alat dan Ralat”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Anti-Corak Alat dan Ralat”?
Penerangan minimum, terlalu banyak alat dan ralat generik Anda berlatih Claude Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Claude Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Claude Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Anti-Corak Alat dan Ralat” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Claude Architect ini?
Ya. Setiap pelajaran Claude Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Anti-Corak Gelung dan Orkestrasi
- Anti-Corak Alat dan Ralat
- Anti-Corak Arahan dan Semakan
- Anti-Corak Eskalasi dan Metrik