Claude Architect · Pelajaran

Token, Tetingkap Konteks dan Kos

Sebab keseluruhan sejarah dihantar pada setiap pusingan dan kosnya

Pelajaran 4 daripada 413 langkah

Token, Tetingkap Konteks dan Kos ialah pelajaran Claude Architect percuma di CoddyKit. Ini ialah pelajaran 4 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.

Claude Tidak Mempunyai Ingatan

Berikut ialah idea paling penting dalam pelajaran ini: API Claude tidak menyimpan sebarang keadaan antara giliran.

Model tidak mengingati mesej terakhir anda. Setiap panggilan API bermula dari awal. Jadi, bagaimanakah chatbot kelihatan seolah-olah mengingati sesuatu?

Anda menghantar sejarah perbualan yang lengkap dalam setiap permintaan. Medan messages membawa keseluruhan perbualan dua hala pada setiap kali.

Kandungan Sesuatu Permintaan

Permintaan API Claude mempunyai beberapa medan utama:

  • model — model Claude yang hendak digunakan
  • max_tokens — had panjang balasan
  • system — gesaan sistem
  • messages — sejarah FULL pada setiap giliran
  • tools / tool_choice — konfigurasi alat pilihan

Perhatikan bahawa messages berkembang dari semasa ke semasa. Giliran 1 menghantar 1 mesej. Giliran 10 menghantar kesemua 19 mesej terdahulu bersama mesej baharu.

resp = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="You are a support agent.",
    messages=[
        {"role": "user", "content": "My order is late."},
        {"role": "assistant", "content": "I can help. What is your order ID?"},
        {"role": "user", "content": "It's #4821."},
    ],
)

Apakah Itu Token?

Model tidak membaca aksara atau seluruh perkataan. Model membaca token — cebisan kecil teks.

Panduan kasar: satu token bersamaan kira-kira 4 aksara bahasa Inggeris atau kira-kira 3/4 perkataan. "unhappiness" mungkin dipecahkan kepada "un" dan "happiness". Tanda baca dan ruang turut dikira.

Token penting kerana anda membayar mengikut token dan tetingkap konteks diukur dalam token, bukan perkataan.

Token Input berbanding Token Output

Setiap permintaan mempunyai dua kiraan token yang dibilkan secara berbeza:

  • Token input — segala yang anda hantar: system + tools + keseluruhan sejarah messages.
  • Token output — perkara yang dijana oleh model dalam balasannya.

Biasanya kos setiap token output lebih tinggi berbanding token input. Namun, kerana keseluruhan sejarah dihantar semula pada setiap giliran, token inputlah yang meningkat secara senyap dalam perbualan yang panjang.

Tetingkap Konteks

Tetingkap konteks ialah bilangan maksimum token yang boleh dikendalikan oleh model dalam satu permintaan — jumlah input dan output.

Jika keseluruhan sejarah ditambah max_tokens yang diminta melebihi tetingkap tersebut, permintaan akan gagal. Tetingkap itu ialah had mutlak, bukan cadangan.

Inilah sebabnya sembang yang berpanjangan dan output alat yang besar akhirnya mencapai had: sejarah yang dihantar semula terus berkembang menghampiri had tersebut.

Kos Bertambah Mengikut Sejarah

Oleh sebab anda menghantar semula keseluruhan sejarah pada setiap giliran, kos tidak meningkat secara linear mengikut perbualan — kos meningkat kira-kira mengikut kuasa dua panjangnya.

Giliran 1 mengenakan bayaran untuk beberapa token. Giliran 20 mengenakan bayaran untuk kesemua 19 giliran terdahulu sekali lagi, bersama giliran baharu. Sembang dengan 10 mesej akan mengenakan bayaran semula untuk mesej awal sebanyak 10 kali sepanjang hayatnya.

Bagi seorang arkitek, maksudnya ialah: ejen yang banyak berbual tetapi tidak pernah memendekkan sejarahnya ialah ejen yang mahal.

# Rough illustration of resent input growing each turn
history = []
for turn in range(1, 6):
    history.append({"role": "user", "content": user_msg(turn)})
    resp = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=512,
        messages=history,  # ENTIRE history resent every turn
    )
    history.append({"role": "assistant", "content": resp.content})
    print("turn", turn, "input_tokens", resp.usage.input_tokens)

Ukur Sebelum Mengoptimumkan

Setiap respons mengandungi objek usage yang melaporkan input_tokens dan output_tokens. Inilah sumber rujukan sebenar anda untuk kos.

Anda juga boleh mengira token sebelum menghantar permintaan, supaya anda boleh meramalkan kos dan menyemak bahawa anda berada di bawah had tetingkap — tanpa membayar untuk penjanaan penuh.

Peraturan umum: ukur penggunaan token dalam persekitaran pengeluaran. Angka kos terkumpul menyembunyikan perbualan atau panggilan alat yang sebenarnya mahal.

count = client.messages.count_tokens(
    model="claude-sonnet-4-5",
    system="You are a support agent.",
    messages=history,
)
print("input tokens before send:", count.input_tokens)

resp = client.messages.create(model="claude-sonnet-4-5", max_tokens=512, messages=history)
print("billed:", resp.usage.input_tokens, resp.usage.output_tokens)

Output Alat Membebankan Konteks

Dalam gelung ejen, hasil alat ditambahkan pada sejarah dan dihantar semula pada setiap giliran berikutnya. Alat yang terperinci dan mengembalikan gumpalan JSON sebanyak 5,000 token akan terus menyebabkan kos kepada anda sepanjang baki perbualan.

Penyelesaiannya ialah memendekkan output alat yang terperinci kepada medan yang berkaitan sebelum menambahkannya. Jangan simpan keseluruhan longgokan API dalam konteks apabila hanya tiga medan diperlukan oleh model.

raw = lookup_order(order_id)  # huge JSON
# Trim to what the model actually needs
tool_result = {
    "order_id": raw["id"],
    "status": raw["status"],
    "eta": raw["estimated_delivery"],
}
history.append({
    "role": "user",
    "content": [{"type": "tool_result", "tool_use_id": tu_id,
                 "content": json.dumps(tool_result)}],
})

Ringkaskan untuk Kekal dalam Belanjawan

Untuk perbualan yang panjang, Anda boleh menggantikan giliran lama dengan ringkasan progresif yang padat supaya sejarah kekal kecil dan berada dalam tetingkap.

Namun, berhati-hatilah: membuat ringkasan menyebabkan nombor, peratusan dan tarikh menjadi kabur. Model menulis semula "bayaran balik sebanyak $482.10 pada 2026-03-14" menjadi "bayaran balik pada musim bunga lalu."

Penyelesaian arkitek: keluarkan fakta transaksi ke dalam blok "fakta kes" secara verbatim yang disimpan di luar ringkasan, supaya nilai tepat tidak pernah menjadi kabur.

Hilang di Tengah

Tetingkap konteks yang lebih besar bukanlah penyelesaian percuma. Model memberikan perhatian paling kuat kepada permulaan dan penghujung input, dan paling lemah kepada bahagian tengah. Inilah kesan "hilang di tengah".

Jadi, menyembunyikan arahan atau fakta penting di tengah-tengah sejarah yang sangat besar berisiko menyebabkan perkara itu diabaikan — walaupun Anda telah membayar sepenuhnya untuk menghantarnya.

Kekalkan arahan utama dan tugas semasa dekat dengan bahagian tepi; pendekkan bahagian tengah yang sarat.

API Kelompok untuk Kerja Tidak Menyekat

Satu cara mengurangkan kos ialah API Kelompok Mesej. Kosnya kira-kira 50% lebih murah berbanding permintaan standard, dengan tempoh pemprosesan sehingga 24 jam.

Tolak ansurnya: tiada SLA kependaman, dan penggunaan alat berbilang giliran tidak disokong. Gunakan custom_id untuk memadankan permintaan; hantar semula hanya kegagalan.

Gunakan Kelompok untuk laporan semalaman dan audit besar. Jangan sekali-kali gunakannya untuk semakan yang menyekat, sensitif terhadap masa atau pra-gabung — pengguna sedang menunggu hasil semakan tersebut.

batch = client.messages.batches.create(requests=[
    {"custom_id": "doc-001", "params": {
        "model": "claude-sonnet-4-5", "max_tokens": 1024,
        "messages": [{"role": "user", "content": classify(doc_1)}]}},
    {"custom_id": "doc-002", "params": {
        "model": "claude-sonnet-4-5", "max_tokens": 1024,
        "messages": [{"role": "user", "content": classify(doc_2)}]}},
])  # ~50% cheaper, up to 24h, no latency SLA

Semakan Pantas

Kos setiap perbualan bagi bot sembang sokongan dalam persekitaran pengeluaran meningkat dengan pantas apabila sesi menjadi lebih panjang, walaupun setiap balasan pengguna pendek. Apakah punca utama dan penyelesaian yang tepat pada peringkat arkitek?

Imbas Kembali: Token, Konteks & Kos

Perkara utama:

  • API tidak menyimpan keadaan — Anda menghantar semula keseluruhan sejarah messages pada setiap giliran.
  • Pengebilan adalah berdasarkan token, yang dibahagikan kepada input (sistem + alat + sejarah) dan output.
  • Tetingkap konteks mengehadkan input + output; sejarah yang dihantar semula semakin menghampirinya dan kos meningkat kira-kira mengikut kuasa dua panjang perbualan.
  • Ukur menggunakan usage dan count_tokens; pendekkan output alat yang berlebihan kepada medan yang berkaitan.
  • Buat ringkasan untuk kekal dalam bajet, tetapi simpan nombor/tarikh tepat dalam blok fakta kes secara verbatim; perhatikan kesan hilang di tengah.
  • API Kelompok = kira-kira 50% lebih murah untuk kerja yang tidak menyekat sahaja — jangan sekali-kali gunakannya untuk semakan sensitif terhadap masa.
Percuma untuk bermula

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 “Token, Tetingkap Konteks dan Kos” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Claude Architect, termasuk “Token, Tetingkap Konteks dan Kos”, 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 “Token, Tetingkap Konteks dan Kos”?

Sebab keseluruhan sejarah dihantar pada setiap pusingan dan kosnya 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 4 daripada 4.

Berapa lamakah pelajaran “Token, Tetingkap Konteks dan Kos” 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

  1. Keluarga Model Claude
  2. Anatomi Permintaan API
  3. Penjelasan Sebab Penghentian
  4. Token, Tetingkap Konteks dan Kos
← Kembali ke Claude Architect