Claude Architect · Pelajaran

Prasyarat Programatik

Blokir pengembalian dana sampai identitas terverifikasi, melalui kode.

Pelajaran 3 dari 413 langkah

Prasyarat Programatik adalah pelajaran Claude Architect gratis di CoddyKit. Ini adalah pelajaran 3 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.

Pengembalian Dana yang Tidak Boleh Pernah Terjadi

Bayangkan agen dukungan pelanggan yang memiliki alat process_refund. Model ini cerdas, tetapi juga probabilistik. Kira-kira 9 dari 10 kali model mengikuti instruksi Anda untuk memverifikasi pelanggan terlebih dahulu. Pada kali kesepuluh, karena perintah yang tidak biasa atau percakapan yang membingungkan, model mengembalikan dana kepada orang asing yang belum terverifikasi.

Untuk tindakan keuangan, tingkat keberhasilan 90% adalah liabilitas, bukan fitur. Pelajaran ini membahas cara menutup kesenjangan 10% tersebut dengan prasyarat program: gerbang pada tingkat kode yang deterministik dan memblokir pengembalian dana sampai identitas terverifikasi — setiap kali.

Perintah Membujuk, Kode Menjamin

Ada dua cara untuk menegakkan aturan dalam agen:

  • Panduan dalam perintah — "Selalu verifikasi pelanggan sebelum mengembalikan dana." Ini dapat diandalkan sekitar 90%. Model memutuskan apakah akan mematuhinya.
  • Penegakan program — kait atau pemeriksaan kode yang berjalan secara deterministik. Ini dapat diandalkan 100%. Model tidak dapat mengesampingkannya.

Aturan praktis ujian: ketika kegagalan menimbulkan konsekuensi keuangan, hukum, atau keselamatan, Anda tidak mempercayai perintah. Simpan kode keras untuk jaminan, dan biarkan model membuat keputusan yang terbuka.

Apa Arti Sebenarnya dari 'Prasyarat'

Prasyarat program adalah fakta yang harus ditetapkan dalam keadaan terverifikasi sebelum tindakan sensitif diizinkan untuk dilanjutkan. Dalam kasus kita: pengembalian dana diblokir sampai get_customer mengembalikan catatan dengan identitas terverifikasi.

Ini bukan model yang berjanji bahwa ia telah melakukan pemeriksaan. Kode Anda mengamati hasil alat yang sebenarnya dan menolak menjalankan process_refund kecuali fakta verifikasi benar-benar tersedia. Jaminan berasal dari data, bukan dari narasi model.

Ringkasan Perulangan Agen

Untuk membatasi alat, Anda harus mengetahui di bagian mana dalam perulangan Anda perlu melakukan intervensi. Pada setiap giliran: Anda mengirim riwayat pesan lengkap, memeriksa stop_reason, dan jika nilainya tool_use, Anda menjalankan alat yang diminta, menambahkan hasilnya, lalu mengulangi perulangan sampai end_turn.

Prasyarat berada pada langkah "menjalankan alat yang diminta" tersebut. Ketika model meminta process_refund, kode Anda memeriksa keadaan yang telah terkumpul sebelum menjalankannya. Model mengusulkan; kode Anda memutuskan.

stop_reason = response.stop_reason  # 'tool_use' | 'end_turn' | ...

for block in response.content:
    if block.type == "tool_use":
        # Intercept here, BEFORE executing the tool
        result = dispatch_tool(block.name, block.input, state)
        tool_results.append(result)
# Loop continues until stop_reason == 'end_turn'

Melacak Keadaan Verifikasi

Prasyarat memerlukan sumber kebenaran. Simpan objek keadaan kecil di sisi server yang mencatat apa yang benar-benar telah ditetapkan dalam percakapan ini — bukan apa yang dikatakan telah dilakukan oleh model.

Ketika get_customer mengembalikan hasil, pengirim Anda membaca muatan nyata dan menetapkan penanda hanya jika catatan tersebut benar-benar terverifikasi. Keadaan ini adalah bukti bagi penjaga gerbang.

state = {"customer_id": None, "identity_verified": False}

def handle_get_customer(tool_input, state):
    record = lookup_customer(tool_input["query"])
    if record and record["identity_status"] == "verified":
        state["customer_id"] = record["id"]
        state["identity_verified"] = True
    return record

Gerbang Itu Sendiri

Sekarang hubungkan prasyaratnya. Ketika model meminta process_refund, kode Anda terlebih dahulu memeriksa state["identity_verified"]. Jika fakta tersebut belum ditetapkan, Anda tidak memanggil bagian belakang pengembalian dana — Anda mengembalikan hasil alat terstruktur yang memberi tahu model alasan pemblokiran dan tindakan berikutnya.

Yang penting, Anda mengembalikannya sebagai hasil alat normal yang dapat dibaca dan ditindaklanjuti oleh model, bukan sebagai pengecualian yang dilempar dan menyebabkan perulangan berhenti.

def handle_process_refund(tool_input, state):
    if not state["identity_verified"]:
        return {
            "isError": True,
            "errorCategory": "permission",
            "isRetryable": False,
            "message": "Refund blocked: identity not verified. "
                       "Call get_customer and verify the ID first."
        }
    return refund_backend.process(tool_input)  # only reachable when verified

Mengapa Kesalahan Terstruktur Lebih Baik daripada Kerusakan

Kegagalan umum seperti "Operation failed" menghalangi pemulihan — model tidak dapat mengetahui mengapa kegagalan terjadi atau apa yang harus dilakukan selanjutnya. Kesalahan terstruktur memungkinkan pengalihan yang cerdas.

Sertakan: isError: true, errorCategory (sementara / validasi / bisnis / izin), isRetryable, message yang dapat dibaca manusia, dan idealnya tindakan yang dicoba. Dalam kasus ini kategorinya adalah permission dan isRetryable bernilai false sampai prasyarat terpenuhi — sehingga model tahu untuk melakukan verifikasi terlebih dahulu, bukan mencoba ulang pengembalian dana secara membabi buta.

Kait: Penegakan di Luar Alat

Pemeriksaan pengirim di atas adalah salah satu bentuk prasyarat. Ujian juga mengharapkan Anda mengetahui kait untuk tugas yang sama. Kait panggilan keluar mencegat pemanggilan alat dan dapat memblokir tindakan yang melanggar kebijakan — misalnya pengembalian dana di atas $500, atau pengembalian dana apa pun untuk akun yang belum terverifikasi.

Kait bersifat 100% deterministik; perintah bersifat probabilistik sekitar 90%. Kait PostToolUse juga dapat mencegat hasil alat sebelum model melihatnya. Bagaimanapun, jaminan ditegakkan dalam kode yang tidak dapat dibujuk oleh model untuk dilewati.

Melapiskan Kedua Kondisi

Kebijakan nyata sering kali terdiri dari beberapa syarat: blokir pengembalian dana kecuali identitas telah diverifikasi DAN jumlahnya berada dalam ambang yang diizinkan. Kedua pemeriksaan tersebut adalah prasyarat deterministik; tidak satu pun boleh ditempatkan dalam perintah.

Pemeriksaan verifikasi melindungi siapa; pemeriksaan ambang melindungi berapa banyak. Pelanggaran salah satunya mengembalikan hasil yang terstruktur dan dapat ditindaklanjuti — eskalasikan kasus ambang kepada manusia, atau arahkan model kembali untuk memverifikasi dalam kasus identitas.

def handle_process_refund(tool_input, state):
    if not state["identity_verified"]:
        return blocked("permission", "Verify identity via get_customer first.")
    if tool_input["amount"] > 500:
        return blocked("business",
                       "Amount exceeds $500 policy limit. Use escalate_to_human.")
    return refund_backend.process(tool_input)

Jangan Keliru dengan Batas Iterasi

Prasyarat adalah jaminan kebenaran — prasyarat memastikan fakta tertentu berlaku sebelum tindakan tertentu dilakukan. Jangan keliru membedakannya dengan jaring pengaman perulangan.

  • Anda tetap menghentikan berdasarkan stop_reason, bukan dengan mengurai teks untuk mencari kata seperti "selesai" atau "terverifikasi".
  • Batas iterasi adalah jaring pengaman terhadap perulangan yang tidak terkendali, tidak pernah menjadi mekanisme penghentian utama — dan tidak pernah menjadi cara untuk menegakkan kebijakan bisnis.

Prasyarat bersifat terarah: secara deterministik membatasi satu tindakan berdasarkan satu fakta terverifikasi, sementara model tetap menggerakkan percakapan.

Waktu Nyata Berarti Tanpa API Batch

Satu jebakan arsitektur lagi. Prasyarat verifikasi adalah pemeriksaan yang memblokir dan sensitif terhadap waktu — pengembalian dana tidak dapat dilanjutkan sampai pemeriksaan tersebut selesai dalam percakapan langsung.

Hal itu menyingkirkan API Message Batches: biayanya 50% lebih murah, tetapi memiliki jendela hingga 24 jam, tidak memiliki SLA latensi, dan tidak mendukung pemanggilan alat dalam beberapa giliran. Batch ditujukan untuk audit dan laporan semalam, bukan untuk pengaman sebaris yang sedang ditunggu pelanggan. Jalankan prasyarat secara sinkron dalam perulangan agen.

Pemeriksaan Singkat: Menegakkan Aturan Pengembalian Dana

Arsitek solusi harus menjamin bahwa process_refund tidak pernah dijalankan untuk pelanggan yang identitasnya belum diverifikasi oleh get_customer. Tindakan tersebut memiliki risiko keuangan dan hukum. Desain mana yang memenuhi persyaratan tersebut?

Ringkasan: Batasi dalam Kode

Poin-poin penting untuk prasyarat terprogram:

  • Uang, hukum, keselamatan → deterministik. Prompt memiliki keandalan ~90%; hook dan prasyarat kode memiliki keandalan 100%.
  • Gunakan fakta yang terverifikasi sebagai gerbang, bukan narasi. Lacak keadaan nyata dari get_customer; blokir process_refund sampai identity_verified bernilai true.
  • Lakukan intersepsi dalam alur. Periksa sebelum menjalankan alat yang diminta model; gunakan hook untuk memblokir pelanggaran kebijakan seperti pengembalian dana di atas $500.
  • Gagal dengan struktur. Kembalikan isError, errorCategory, isRetryable, dan pesan yang jelas agar model dapat pulih.
  • Tetap sinkron. Hentikan berdasarkan stop_reason, bukan batas iterasi atau penguraian teks — dan jangan pernah menggunakan Batch API untuk pemeriksaan pemblokiran.
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 “Prasyarat Programatik” gratis?

Ya — teks lengkap “Prasyarat Programatik” 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 “Prasyarat Programatik”?

Blokir pengembalian dana sampai identitas terverifikasi, melalui kode. 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 3 dari 4.

Berapa lama pelajaran “Prasyarat Programatik” 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. Hook PostToolUse dan Panggilan Keluar
  2. Penegakan Deterministik vs Perintah
  3. Prasyarat Programatik
  4. Protokol Serah Terima Terstruktur
← Kembali ke Claude Architect