Format dan Contoh Input
Tampilkan contoh input konkret untuk menghilangkan ambiguitas.
Format dan Contoh Input adalah pelajaran Claude Architect gratis di CoddyKit. Ini adalah pelajaran 4 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 Format Input Penting
Deskripsi alat adalah mekanisme utama yang digunakan Claude untuk menentukan kapan dan bagaimana memanggil alat. Nama saja tidak memberikan sinyal yang cukup. Deskripsi yang kuat mencakup tujuan, nilai yang dikembalikan, kasus batas, batas penerapan, dan yang terpenting format input.
Pelajaran ini berfokus pada satu teknik yang berdampak besar: menampilkan contoh input konkret agar model tidak perlu menebak seperti apa bentuk suatu parameter.
Ambiguitas Adalah Musuh
Bayangkan sebuah alat dengan parameter bernama date. Apakah formatnya 2026-06-10? 06/10/2026? June 10? Stempel waktu Unix? Tanpa contoh, Claude harus menyimpulkan formatnya, dan penyimpulan dalam kondisi ambigu adalah sumber munculnya pemanggilan alat yang formatnya rusak.
Skema yang ambigu tidak gagal secara terang-terangan. Skema itu gagal secara diam-diam dengan menghasilkan input yang ditolak backend Anda. Contoh konkret menghilangkan ambiguitas tersebut dari sumbernya.
Tempat Contoh Diletakkan
Anda dapat menempatkan contoh input di dua tempat yang saling melengkapi:
- Dalam teks deskripsi alat (contoh penggunaan secara keseluruhan).
- Dalam
descriptionsetiap parameter di dalam JSON Schema (format per bidang).
Keduanya memasok informasi ke mesin pemilihan dan pemformatan yang sama. Letakkan panduan format sedekat mungkin dengan bidang yang diaturnya, lalu tambahkan contoh menyeluruh untuk pemanggilan tersebut.
search_orders = {
"name": "search_orders",
"description": (
"Search a customer's orders by date range. "
"Dates use ISO 8601 (YYYY-MM-DD). "
"Example call: search_orders(start='2026-01-01', end='2026-03-31')."
),
"input_schema": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Inclusive start date, ISO 8601. Example: '2026-01-01'."
},
"end": {
"type": "string",
"description": "Inclusive end date, ISO 8601. Example: '2026-03-31'."
}
},
"required": ["start", "end"]
}
}Deskripsi Lemah vs Deskripsi Kuat
Bandingkan keduanya. Versi lemah memaksa model menebak; versi kuat menunjukkan dengan tepat seperti apa input yang valid.
- Lemah: "Cari pelanggan."
- Kuat: tujuan + format input + contoh + nilai yang dikembalikan + kasus batas.
Deskripsi yang minimal dan ambigu adalah pola buruk klasik yang menyebabkan salah perutean alat dan argumen yang formatnya rusak.
# Weak: model must guess the id format
bad = {
"name": "get_customer",
"description": "Look up a customer."
}
# Strong: shows the exact format with an example
good = {
"name": "get_customer",
"description": (
"Fetch a verified customer profile by account ID. "
"account_id is the 8-char alphanumeric code from the "
"welcome email, e.g. 'A1B2C3D4' (not the email address). "
"Returns name, tier, and verified flag. "
"Returns isError if no match — ask for more identifiers, never guess."
)
}Tunjukkan Bentuk Input Terstruktur
Ketika sebuah parameter berupa objek atau larik, satu contoh lebih berharga daripada satu paragraf uraian. Tunjukkan bentuk harfiah yang harus dihasilkan model.
Hal ini sangat berguna untuk filter bertingkat, item daftar, atau bidang apa pun yang strukturnya tidak jelas hanya dari tipenya.
filter_param = {
"type": "object",
"description": (
"Structured filter. Example: "
'{"status": "shipped", "min_total": 50, '
'"tags": ["priority", "gift"]}. '
"Omit a key to leave that dimension unfiltered."
),
"properties": {
"status": {"type": "string", "enum": ["pending", "shipped", "delivered"]},
"min_total": {"type": "number"},
"tags": {"type": "array", "items": {"type": "string"}}
}
}Enum Lebih Baik daripada Teks Bebas untuk Kumpulan Tetap
Ketika sebuah bidang memiliki sekumpulan nilai valid yang diketahui dan terbatas, enkode nilai tersebut sebagai enum, bukan dengan mendeskripsikannya dalam uraian. Dengan demikian, skema secara langsung membatasi model.
Untuk ekstensibilitas, tambahkan nilai enum "other" beserta bidang detail teks bebas, sehingga kasus baru tidak memaksa model menciptakan nilai yang tidak valid.
reason = {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": ["defective", "wrong_item", "late", "other"],
"description": "Refund reason. Use 'other' for anything unlisted."
},
"detail": {
"type": "string",
"description": "Free text. Required only when category is 'other'."
}
},
"required": ["category"]
}Contoh Mengurangi Input yang Dihalusinasikan
Contoh few-shot adalah salah satu alat prompting yang paling andal. Dengan 2–4 contoh terarah untuk setiap ambiguitas, model menggeneralisasi polanya, bukan sekadar mengulanginya.
Dalam input alat, contoh paling berguna untuk konsistensi, kasus batas, format output, dan pengurangan halusinasi—tepat pada mode kegagalan yang menghasilkan argumen alat yang buruk.
phone = {
"type": "string",
"description": (
"Phone in E.164 format. "
"Examples: '+14155552671', '+442071838750'. "
"Do NOT include spaces, dashes, or parentheses."
)
}Tandai Hanya yang Selalu Ada sebagai Wajib
Contoh memberi tahu model seperti apa input yang valid; larik required memberi tahu model apa yang harus ada. Aturan penting: tandai suatu bidang sebagai wajib hanya jika bidang itu selalu ada.
Jika Anda mewajibkan bidang yang mungkin tidak ada dalam sumber, model akan mengarang nilai untuk memenuhi skema. Bidang opsional dengan contoh yang baik lebih baik daripada bidang wajib yang terkadang tidak ada.
schema = {
"type": "object",
"properties": {
"order_id": {"type": "string", "description": "e.g. 'ORD-90412'"},
"coupon_code": {
"type": "string",
"description": "Optional. e.g. 'SAVE10'. Omit if none on the order."
}
},
# coupon_code is NOT required — it may be absent.
"required": ["order_id"]
}Sebutkan Kasus Batas dalam Contoh
Deskripsi yang baik menyatakan batas penerapan: apa yang dilakukan alat dan apa yang NOT ditanganinya. Masukkan batas tersebut ke dalam contoh agar model mengenali ketika suatu input berada di luar cakupan.
Hal ini mencegah alat yang tumpang tindih salah dirutekan, karena contoh memperjelas alat mana yang menangani bentuk input tertentu.
lookup_order = {
"name": "lookup_order",
"description": (
"Look up ONE order by its order ID. "
"order_id format: 'ORD-' + 5 digits, e.g. 'ORD-90412'. "
"Does NOT search by customer name or email — "
"use search_orders for that. "
"Returns isError (category='validation') if the ID is malformed."
)
}Pasangkan Contoh Input dengan Error Terstruktur
Bahkan dengan contoh yang bagus, beberapa input akan tetap tidak valid. Kontrak error alat harus sama eksplisitnya agar model dapat memulihkan keadaan.
Kembalikan error terstruktur: penanda isError ditambah errorCategory (sementara / validasi / bisnis / izin), isRetryable, pesan, dan attempted_query. "Operasi gagal" yang umum menghambat pemulihan; error terstruktur memungkinkan perutean cerdas dan percobaan ulang yang telah diperbaiki.
{
"isError": true,
"errorCategory": "validation",
"isRetryable": true,
"message": "start must be ISO 8601 (YYYY-MM-DD); got '06/10/2026'.",
"attempted_query": {"start": "06/10/2026", "end": "2026-03-31"},
"partial_results": null
}Contoh + Percobaan Ulang dengan Umpan Balik
Ketika masukan alat kembali dalam format yang salah, gunakan coba lagi dengan umpan balik: kirimkan permintaan asli, keluaran yang salah, dan kesalahan validasi yang tepat kembali ke model. Kesalahan format dan struktur adalah hal yang dapat diperbaiki dengan cara ini.
Perhatikan batasannya: mencoba lagi membantu ketika masukan memiliki format yang salah, bukan ketika informasi yang dibutuhkan memang tidak ada di sumbernya. Contoh mencegah jenis kesalahan pertama; tidak ada yang dapat menciptakan fakta yang hilang.
messages.append({
"role": "user",
"content": (
"Your tool call failed validation. "
"start must match YYYY-MM-DD. "
"You sent '06/10/2026'. "
"Reissue the call with the corrected format."
)
})
# Resend full history; the model keeps no state between turns.Pemeriksaan Singkat
Terapkan pelajaran ini pada keputusan desain nyata.
Rangkuman: Buat Masukan Tidak Ambigu
Hal-hal penting:
- Deskripsi alat menentukan pemilihan dan pemformatan, jadi investasikan upaya pada deskripsi, bukan hanya nama.
- Tampilkan contoh masukan konkret pada tingkat kolom dan contoh pemanggilan lengkap di dalam deskripsi.
- Gunakan enum (dengan kolom 'lainnya' + detail) untuk kumpulan nilai tetap; tampilkan bentuk literal objek dan array.
- Tandai suatu kolom sebagai wajib hanya jika selalu ada; jika tidak, model akan mengarangnya.
- Dukung contoh dengan kesalahan terstruktur (errorCategory, isRetryable, attempted_query) agar coba lagi dengan umpan balik dapat memperbaiki kesalahan format, meskipun tidak dapat menyediakan fakta yang tidak ada.
Contoh konkret adalah cara termurah dan paling berdampak untuk menghentikan pemanggilan alat yang formatnya salah sebelum terjadi.
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 “Format dan Contoh Input” gratis?
Ya — teks lengkap “Format dan Contoh Input” 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 “Format dan Contoh Input”?
Tampilkan contoh input konkret untuk menghilangkan ambiguitas. 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 4 dari 4.
Berapa lama pelajaran “Format dan Contoh Input” 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
- Deskripsi Alat Mengarahkan Pemilihan
- Anatomi Deskripsi yang Baik
- Menghindari Alat yang Tumpang Tindih
- Format dan Contoh Input