Skip to content
Aabha AI Academy

All courses · Course overview · Lesson sequence

Skip to lesson text

Answers and explanations · Move the contract to LangGraph

The authoring run used LangGraph 1.2.16 on Python 3.14.4. The explicit framework suite executed seven tests without skips, with socket connects blocked during graph execution and tracing disabled. Your own report must use the environment and outcomes you actually observed. A missing dependency is a setup blocker for this module's execution, not a failed model experiment or a successful skipped framework test.

At the pause, graph.get_state(config).next is ("review",), while graph state and the Engine snapshot report REVIEW. The runtime is suspended inside a node that must resume; the application phase says a draft awaits a decision. They describe related but different state machines. The baseline and graph produce identical draft fields and one synthetic lookup on the normal case.

A valid approval resumes to SIMULATED, with real_writes=0. A valid rejection ends REJECTED with no receipt. A stale revision raises StaleRevision and leaves the application draft awaiting a valid decision. The review node's pre-interrupt work only reads a snapshot; it does not repeat catalogue lookup or execute an action. This is why placing writes before a resumable interrupt would be dangerous.

The always-lookup double stops with tool_budget_exhausted after three calls. A migration that quietly performs a fourth call, finalizes a rejection, loses a source reference or changes the mismatch result would regress the contract even if every node completed without a Python exception.

The SQLite store owns the detailed request, evidence and review. The graph's InMemorySaver stores its own routing/checkpoint state. The thread ID is a lookup key inside that saver, not an authenticated user. Actual process recovery would need appropriate persistent storage for both forms of state, compatible serialization, migration and tested replay behavior. No such production storage is included.

The resolved package list is useful for reproducing this authoring environment. It is not a substitute for platform-specific dependency review or artifact hashes. No framework environment is retained inside the course, and no external tracing account is needed for these tests.

Self-review: label three facts separately: actual framework run, deterministic planner/tool behavior, and absence of a live model. If a report says “the LangGraph agent passed,” revise it to name what ran and what was measured.

Return to this lesson