0Pricing
AI Agents · Pelajaran

Menyimpan Keadaan Graf (Titik Pemeriksaan)

Simpan keadaan ke Postgres atau SQLite agar agen yang berjalan lama dapat dijeda, dilanjutkan, dan diaudit.

Menyimpan Keadaan Graf (Titik Pemeriksaan) adalah pelajaran AI Agents 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 AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Mengapa Menyimpan Keadaan?

Agen yang berjalan lama perlu:

  • Berhenti sementara dan melanjutkan beberapa jam kemudian
  • Pulih dari kerusakan di tengah eksekusi
  • Mendukung manusia dalam proses (menunggu persetujuan)
  • Memutar ulang proses untuk men-debug

Pemeriksa titik LangGraph menyimpan keadaan di setiap batas simpul.

Pemeriksa Titik Dalam Memori

Untuk pengembangan/pengujian:

from langgraph.checkpoint.memory import MemorySaver

checkpointer = MemorySaver()
app = graph.compile(checkpointer=checkpointer)

Pemeriksa Titik Postgres

Untuk produksi:

from langgraph.checkpoint.postgres import PostgresSaver

checkpointer = PostgresSaver.from_conn_string('postgresql://...')
await checkpointer.setup()   # create tables
app = graph.compile(checkpointer=checkpointer)

Pemeriksa Titik Sqlite

Penyimpanan permanen lokal tanpa server basis data:

from langgraph.checkpoint.sqlite import SqliteSaver
import sqlite3

conn = sqlite3.connect('agents.db', check_same_thread=False)
checkpointer = SqliteSaver(conn)

ID Utas

Setiap proses memiliki ID utas — seperti ID sesi. Beberapa pengguna mendapatkan ID utas terpisah; melanjutkan proses berarti menggunakan ID yang sama:

config = {'configurable': {'thread_id': 'user-42-conversation-1'}}
result = app.invoke({'messages': [...]}, config)

Melanjutkan Proses

Panggil invoke dengan ID utas yang sama dan tanpa masukan — agen melanjutkan dari tempatnya berhenti:

# Some hours later:
app.invoke(None, config)

Memeriksa Keadaan

Baca keadaan utas saat ini:

snapshot = app.get_state(config)
print(snapshot.values)         # current state dict
print(snapshot.next)           # which node is next
print(snapshot.created_at)

Riwayat Keadaan

Telusuri kembali setiap titik pemeriksaan:

for snapshot in app.get_state_history(config):
    print(snapshot.created_at, snapshot.values)

Membuat Cabang Proses

Anda dapat memperbarui keadaan pada titik pemeriksaan sebelumnya dan menjalankan ulang dari sana — berguna untuk men-debug skenario "bagaimana jika":

app.update_state(config, {'plan': 'a different plan'})
app.invoke(None, config)   # continue with the new plan

Manusia dalam Proses dengan interrupt_before

Jeda eksekusi sebelum simpul sensitif agar manusia dapat meninjau:

app = graph.compile(
    checkpointer=checkpointer,
    interrupt_before=['send_email']
)

result = app.invoke({'messages': [...]}, config)
# Agent paused. Human inspects state.
# When approved:
app.invoke(None, config)

Melanjutkan Setelah Penyuntingan

Manusia dapat menyunting keadaan sebelum melanjutkan:

app.update_state(config, {'email_draft': 'final version'})
app.invoke(None, config)

Melacak Biaya di Seluruh Titik Pemeriksaan

Keadaan yang disimpan dapat mencakup penghitung token/biaya yang tetap ada setelah kerusakan:

class State(TypedDict):
    cost_usd: Annotated[float, lambda a, b: a + b]

# Every LLM-calling node adds to it.

Pembersihan

Utas lama akan menumpuk. Hapus utas yang telah selesai secara berkala untuk mengendalikan penyimpanan:

await checkpointer.delete(thread_id='old-thread')

Melanjutkan Utas

Bagaimana cara melanjutkan proses agen setelah terjadi kerusakan?

Ringkasan

Gunakan SqliteSaver untuk lokal dan PostgresSaver untuk produksi. ID utas memisahkan setiap proses. Gabungkan dengan interrupt_before untuk alur kerja dengan manusia dalam proses.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menyimpan Keadaan Graf (Titik Pemeriksaan)” gratis?

Ya — teks lengkap “Menyimpan Keadaan Graf (Titik Pemeriksaan)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menyimpan Keadaan Graf (Titik Pemeriksaan)”?

Simpan keadaan ke Postgres atau SQLite agar agen yang berjalan lama dapat dijeda, dilanjutkan, dan diaudit. Kamu berlatih AI Agents 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 AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents 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 “Menyimpan Keadaan Graf (Titik Pemeriksaan)” 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 AI Agents ini?

Ya. Setiap pelajaran AI Agents 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. Mengapa Graf Mengungguli Rantai Datar
  2. Simpul, Sisi, dan Keadaan
  3. Perutean dan Percabangan Bersyarat
  4. Menyimpan Keadaan Graf (Titik Pemeriksaan)
← Kembali ke AI Agents