0Pricing
AI Agents · درس

استدامة حالة الرسم البياني (نقاط التحقق)

احفظ الحالة في Postgres أو SQLite حتى يمكن إيقاف وكيل طويل التشغيل واستئنافه وتدقيقه.

استدامة حالة الرسم البياني (نقاط التحقق) درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

لماذا نحفظ الحالة؟

تحتاج الوكلاء طويلة التشغيل إلى ما يلي:

  • الإيقاف والاستئناف بعد ساعات
  • التعافي من الأعطال أثناء التنفيذ
  • دعم تدخل الإنسان، مثل انتظار الموافقة
  • إعادة تشغيل تنفيذ لأغراض تصحيح الأخطاء

تحفظ أدوات نقاط التحقق في LangGraph الحالة عند كل حد فاصل بين العقد.

أداة نقاط التحقق داخل الذاكرة

للتطوير والاختبار:

from langgraph.checkpoint.memory import MemorySaver

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

أداة نقاط التحقق في Postgres

للإنتاج:

from langgraph.checkpoint.postgres import PostgresSaver

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

أداة نقاط التحقق في Sqlite

استمرارية محلية من دون خادم قاعدة بيانات:

from langgraph.checkpoint.sqlite import SqliteSaver
import sqlite3

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

معرّفات الخيوط

يمتلك كل تنفيذ معرّفًا باسم thread_id، يشبه معرّف الجلسة. ويحصل المستخدمون المختلفون على معرّفات thread_id منفصلة؛ ويعني استئناف التنفيذ استخدام المعرّف نفسه:

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

استئناف تنفيذ

استدعوا invoke باستخدام thread_id نفسه ومن دون إدخال — وسيتابع الوكيل من حيث توقف:

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

فحص الحالة

اقرؤوا الحالة الحالية لخيط:

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

سجل الحالة

ارجعوا عبر كل نقطة تحقق:

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

تفريع تنفيذ

يمكنكم تحديث الحالة عند أي نقطة تحقق سابقة وإعادة التشغيل من هناك — وهذا مفيد لتصحيح الأخطاء من منظور "ماذا لو":

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

التعامل مع الإنسان باستخدام interrupt_before

أوقفوا التنفيذ قبل عقدة حساسة حتى يتمكن شخص من مراجعتها:

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)

الاستئناف بعد التحرير

يمكن للشخص تحرير الحالة قبل الاستئناف:

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

تتبع التكلفة عبر نقاط التحقق

يمكن أن تتضمن الحالة المحفوظة عدّادات للرموز والتكلفة تستمر بعد الأعطال:

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

# Every LLM-calling node adds to it.

التنظيف

تتراكم الخيوط القديمة. احذفوا التنفيذات المكتملة دوريًا للتحكم في مساحة التخزين:

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

استئناف الخيوط

كيف تستأنفون تنفيذ وكيل بعد حدوث عطل؟

مراجعة

استخدموا SqliteSaver محليًا وPostgresSaver في الإنتاج. تفصل معرّفات الخيوط بين التنفيذات. ادمجوها مع interrupt_before لإنشاء تدفقات عمل تتضمن تدخل الإنسان.

الأسئلة الشائعة

هل درس «استدامة حالة الرسم البياني (نقاط التحقق)» مجاني؟

نعم — نص درس «استدامة حالة الرسم البياني (نقاط التحقق)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «استدامة حالة الرسم البياني (نقاط التحقق)»؟

احفظ الحالة في Postgres أو SQLite حتى يمكن إيقاف وكيل طويل التشغيل واستئنافه وتدقيقه. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «استدامة حالة الرسم البياني (نقاط التحقق)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. لماذا تتفوق الرسوم البيانية على السلاسل المسطحة
  2. العقد والحواف والحالة
  3. التوجيه والتفرع الشرطي
  4. استدامة حالة الرسم البياني (نقاط التحقق)
← العودة إلى AI Agents