Final Exam
| No. | Training Unit | Lecture | Training content | Question | Level | Mark | Answer | Answer Option A | Answer Option B | Answer Option C | Answer Option D | Explanation |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | LangGraph & Agentic AI | Lec1 | State Management | What is the core field used for ALL input/output from nodes in a LangGraph State? | Easy | 1 | C | context | history | messages | state_vars | The messages field is the core channel for all conversational I/O between nodes in LangGraph. |
| 2 | LangGraph & Agentic AI | Lec1 | State Management | Which concept allows LangGraph to support complex workflows compared to standard LangChain chains? | Easy | 1 | B | Linear flows only | Cyclic flows and conditional routing | Stateless operations | Basic sequential pipelines | Extends basic chains with cyclic flows and conditional routing for loops / complex logic. |
| 3 | LangGraph & Agentic AI | Lec1 | State Management | What is the role of add_messages reducer in a TypedDict State? | Easy | 1 | A | Appending new messages and handling deduplication | Deleting old messages automatically | Summarizing long conversations | Replacing the current message list with a new one | add_messages automatically appends new messages and handles deduplication via message IDs. |
| 4 | LangGraph & Agentic AI | Lec1 | State Management | Which of the following is NOT a standard LangChain message type used in LangGraph? | Easy | 1 | D | AIMessage | HumanMessage | ToolMessage | DataMessage | Standard types are AIMessage, HumanMessage, SystemMessage, ToolMessage. DataMessage is not standard. |
| 5 | LangGraph & Agentic AI | Lec1 | State Management | In LangGraph's State structure, what should non-conversational context like user_id or max_iterations be used for? | Easy | 1 | B | Sent directly to the LLM response | Storing configuration and metadata | Replacing the standard message history | Caching LLM tokens | Context fields are meant for metadata and configuration, not standard I/O messages. |
| 6 | LangGraph & Agentic AI | Lec1 | State Management | Which object serves as the core director engine orchestrating LLM workflows in LangGraph? | Easy | 1 | D | MessageGraph | GraphPipeline | WorkflowGraph | StateGraph | StateGraph is the core class orchestrating directed graph workflows based on state. |
| 7 | LangGraph & Agentic AI | Lec1 | State Management | How does LangGraph handle context injection before starting the graph execution? | Medium | 1 | C | By loading it from an external JSON file automatically. | By sending a special SystemMessage at the end of the conversation. | By initializing the state with context variables when calling app.invoke(initial_state). | Context cannot be injected; the LLM must generate it. | Context is provided to app.invoke() alongside initial messages. |
| 8 | LangGraph & Agentic AI | Lec1 | State Management | When building a multi-agent system, how do different agents (nodes) share findings with one another in a messages-centric pattern? | Medium | 1 | A | By appending AIMessage tagged with their name to the group's messages list. | By modifying the global context object directly. | By resetting the messages list every time an agent switches. | By sending direct peer-to-peer API calls bypassing the state. | Agents append named AIMessages to the shared state's messages list. |
| 9 | LangGraph & Agentic AI | Lec1 | State Management | What is the primary purpose of adding nodes and edges to a StateGraph object? | Medium | 1 | D | To train a new deep learning model. | To clean the data before input into a LangChain chain. | To replace the standard LLM reasoning layers. | To map out functions as nodes and execution paths as edges. | Nodes represent functions/agents; edges dictate the workflow paths and conditionals. |
| 10 | LangGraph & Agentic AI | Lec1 | State Management | If an LLM node returns {"messages": [AIMessage("Hello")]} without the add_messages reducer setup, what happens to the state? | Medium | 1 | B | It merges the new message safely. | It overwrites the existing message list. | It throws a syntax error. | It drops the message entirely. | Without a reducer like add_messages, standard dictionary update behavior would overwrite the list rather than append. |
| 11 | LangGraph & Agentic AI | Lec1 | State Management | According to LangGraph Best Practices, why should conversational data (I/O) be kept strictly in messages while keeping context fields separate? | Hard | 1 | B | Because LangChain parsers crash if state contains integers. | It enables robust State Persistence (Checkpointers) which rely on deterministic, append-only message histories. | It saves tokens directly since context fields are automatically hidden from the LLM. | Context fields are only valid in the END node. | Checkpointers reconstruct and replay the state efficiently when conversational history relies on the standardized, append-only messages slice. |
| 12 | LangGraph & Agentic AI | Lec1 | State Management | How can conditional routing leverage the State to decide whether to call a tool or end the workflow? | Hard | 1 | A | By inspecting state["messages"][-1] to check for tool_calls attributes. | By manually polling an external database at every node. | By counting the number of characters in the previous AIMessage. | By throwing an exception when the state is exhausted. | The conditional edge function looks at the last message to see if the LLM populated tool_calls. |
| 13 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | What does the ReAct pattern stand for in agentic workflows? | Easy | 1 | B | Refresh and Activate | Reason and Act | Respond and Acknowledge | Request and Action | ReAct combines explicit reasoning (Think) before acting (Tool Use) in a loop. |
| 14 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | Why is a Multi-Expert pattern generally preferred over a single generic web search tool for complex research? | Easy | 1 | A | It provides specialized domain knowledge and structured reasoning. | It uses fewer tokens. | It operates completely offline. | It requires zero prompt engineering. | Specialized LLMs acting as tools provide better domain insights and consistent reasoning. |
| 15 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | What is the purpose of the ToolNode in LangGraph? | Easy | 1 | D | To prompt the LLM to generate code. | To browse the internet using a headless browser. | To compress message history. | To automatically handle the parsing and execution of multiple tools. | ToolNode automatically executes the tools called by the LLM and formats them as ToolMessages. |
| 16 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | In a ReAct loop, what is the sequence of steps the coordinator LLM usually follows? | Easy | 1 | C | Act Think Stop | Observe Act Think | Think Act Observe | Stop Observe Think | The standard ReAct loop is: Think (Reason), Act (Call Tool), Observe (Tool Result), and Repeat. |
| 17 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | What is a common way to prevent an agent from getting trapped in an infinite ReAct loop? | Easy | 1 | B | Disabling all tools permanently. | Adding an iteration_count field in State and routing to END when a limit is reached. | Forcing the LLM to answer in 10 words or less. | Unplugging the server. | Checking an iteration limit in the conditional edge is best practice to stop runaway loops. |
| 18 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | How do Multi-Expert Tools differ technically from standard external API tools (like web search) inside a LangGraph setup? | Easy | 1 | C | They don't use the @tool decorator. | They execute JavaScript code. | They are themselves LLM invocations with specialized system prompts. | They bypass the messages state entirely. | Expert tools invoke another instance of an LLM primed with a specific expert persona. |
| 19 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | If an agent is deciding which expert to call during the "Act" phase, what enables the LLM to provide structured function calls automatically? | Medium | 1 | B | Regular Expressions parsing. | Using llm.bind_tools([expert1, expert2]). | Writing manual JSON format instructions in the prompt. | Training a custom fine-tuned router model. | bind_tools() maps the tool schema natively to the LLM's function-calling capabilities. |
| 20 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | What is the main architectural upgrade introduced when adding a Planning Agent to a simple ReAct flow? | Medium | 1 | A | The Coordinator is relieved of analyzing the user's initial message; a separate Planner handles decomposition first. | Tools are executed synchronously without LLM intervention. | The agent switches to using a completely different model provider. | State management is no longer required. | A Planner separates the complex task of understanding and task decomposition from the execution/coordinator task. |
| 21 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | During the "Observe" phase of standard ReAct with Langgraph ToolNode, what specific message object is appended to the state? | Medium | 1 | D | SystemMessage | AIMessage | FunctionMessage | ToolMessage | After executing a tool, ToolMessages containing the tool output are returned to the state. |
| 22 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | What happens if multiple expert tools are called simultaneously by the Coordinator LLM? | Medium | 1 | B | They are ignored and skipped. | The ToolNode executes them in parallel and returns all their ToolMessages. | The graph crashes due to a concurrency error. | Only the first tool is executed. | Modern models can return multiple tool calls at once, which ToolNode handles naturally by executing them and appending all results. |
| 23 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | In a robust production-ready Multi-Expert Research agent, how should tool execution failures be handled? | Hard | 1 | D | By shutting down the LangGraph server. | By letting the unhandled exception crash the application so developers can debug. | By automatically switching model providers mid-workflow. | By catching the exception inside the tool or custom node and returning a ToolMessage stating the error, so the LLM can try a fallback. | Returning the error as a string message allows the Coordinator LLM to "Reason" about the failure and take alternative action. |
| 24 | LangGraph & Agentic AI | Lec2 | Agentic Patterns | Why does a Multi-Expert ReAct pattern consume significantly more tokens than a simple linear agent? | Hard | 1 | C | Because it stores all memory in a vector database. | Because LangGraph adds a large metadata overhead to every variable. | The complete conversation history (messages list) including all intermediate reasoning and tool outputs must be sent back to the LLM upon every iteration. | Because expert LLMs generate longer responses to simple questions. | In ReAct loops, the context window GROWS each cycle as new AIMessage and ToolMessage entities are appended and fed back entirely during the next loop. |
| 25 | LangGraph & Agentic AI | Lec3 | Tool Calling | What is the main difference between traditional LLM prompts and Tool Calling capabilities? | Easy | 1 | D | Prompts use more tokens. | Tool Calling avoids external APIs. | Tool Calling is only available in open-source models. | Tool Calling enables the model to issue structured JSON parameters to invoke external code automatically. | Structural return formats from the LLM via defined JSON schemes is the core innovation in Tool Calling. |
| 26 | LangGraph & Agentic AI | Lec3 | Tool Calling | Which terminology specifically refers to OpenAI's native API parameter for passing a JSON schema? | Easy | 1 | A | Function Calling | Agentic Use | Execution Action | Tool Prompting | OpenAI specifically categorizes the schema object passing under "Function Calling." |
| 27 | LangGraph & Agentic AI | Lec3 | Tool Calling | Which python decorator is used in LangChain to easily convert a standard Python function into a Tool? | Easy | 1 | C | @langchain_tool | @chain | @tool | @func | The @tool decorator automatically infers schema from the python function and its docstring. |
| 28 | LangGraph & Agentic AI | Lec3 | Tool Calling | What makes Tavily Search specifically optimized for AI applications compared to standard generic web search APIs? | Easy | 1 | B | It is slower but cheaper. | It pre-formats results for LLMs, filters noise, and provides context for RAG. | It only searches Wikipedia. | It bypasses the internet using a local database. | Tavily removes clutter (HTML/Ads) and extracts clean content structured for immediate LLM context window ingestion. |
| 29 | LangGraph & Agentic AI | Lec3 | Tool Calling | What is a common best practice regarding Tool Descriptions in the code? | Easy | 1 | A | They should be highly detailed so the LLM knows exactly when and how to call the tool. | They are ignored by the LLM, so they can be left blank. | They must be written in JSON. | They should be under 5 words to save tokens. | High-quality descriptions help the model "Reason" appropriately about when the tool is useful. |
| 30 | LangGraph & Agentic AI | Lec3 | Tool Calling | What is "Tool Chaining"? | Easy | 1 | D | Storing tool outputs in a blockchain. | Running the same tool 100 times to check consistency. | Restricting tool execution to an administrator. | Using the output of one tool as the direct input argument for another tool recursively. | A common pattern is having one tool's result guide the parameter execution of the next tool (like extracting a company name, then passing a stock ticker to a finance tool). |
| 31 | LangGraph & Agentic AI | Lec3 | Tool Calling | How should developers securely manage API keys (like TAVILY_API_KEY) when building tool-calling applications? | Medium | 1 | B | Hardcoding them at the top of the python script. | Using Environment Variables or a Secret Management service (like Azure KeyVault). | Passing them directly inside the user prompt. | Storing them inside the StateGraph object. | Best practices strongly dictate loading secrets via ENV variables (e.g. dotenv) or cloud secret managers. |
| 32 | LangGraph & Agentic AI | Lec3 | Tool Calling | When handling tool execution errors (such as network timeouts or API failures), what is the recommended fallback strategy? | Medium | 1 | C | Raising a fatal exception to stop the script immediately. | Silently ignoring the error and proceeding with an empty string. | Catching the exception and returning a ToolMessage containing the error text for the LLM. | Switching to an older language model automatically. | Returning the exception as a string in ToolMessage gives the LLM context to either reason about the failure, apologize to the user, or try another tool. |
| 33 | LangGraph & Agentic AI | Lec3 | Tool Calling | What optimization technique can significantly reduce duplicate external API calls from tools? | Medium | 1 | A | Implementing a caching layer (e.g. lru_cache or a dictionary buffer) keyed by the tool query. | Disabling the @tool decorator. | Limiting the LLM to 1 iteration entirely. | Removing the system prompt. | Caching recent tool queries locally drastically saves external latency and cost for repeated inquiries. |
| 34 | LangGraph & Agentic AI | Lec3 | Tool Calling | If you want to use a Custom Tool class in LangChain instead of a decorator, which base class must you inherit from? | Medium | 1 | D | ToolDecorator | GraphNode | LLMChain | BaseTool | Class-based tools need to inherit from BaseTool and override the _run and _arun methods. |
| 35 | LangGraph & Agentic AI | Lec3 | Tool Calling | How does the Tavily API search_depth="advanced" configuration differ conceptually from standard execution? | Hard | 1 | C | It executes SQL queries on the backend instead. | It forces the agent to ask the user permission. | It performs a multi-step semantic search to extract comprehensive answers rather than returning simple link snippets. | It parses local PDF files instead of the web. | Advanced depth leverages an AI sub-agent during search to synthesize answers and return higher-quality textual analysis. |
| 36 | LangGraph & Agentic AI | Lec3 | Tool Calling | When building an architecture where an Orchestrator routes tasks, why would you implement a specific "Web Search Agent" rather than just giving the generic tools directly to the primary assistant? | Hard | 1 | B | Because the primary assistant cannot accept tools format APIs. | To separate concerns: a specialized agent can execute multi-step tool queries recursively without overloading the main router's prompt context. | Because Tavily Search restricts execution to sub-nodes by design. | Web Search agents use zero tokens. | Sub-agents handle the cognitive load of browsing, reading snippets, and re-searching autonomously, returning only polished synthesis to the main router. |
| 37 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | What is the main structural advantage of a Hierarchical (Supervisor) multi-agent system? | Easy | 1 | A | A Primary Assistant coordinates user intent and cleanly routes requests to specialized sub-agents. | Every agent talks to every other agent at the same time. | It prevents the use of external APIs. | It runs on a single linear LangChain pipeline. | Supervisors manage the workflow orchestration cleanly while sub-agents handle specific deep domains. |
| 38 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | Why would a system designer choose multi-agent architectures over a single sophisticated LLM? | Easy | 1 | C | Single LLMs cannot use Python code. | A single LLM always hallucinates. | It promotes specialization, modularity, parallel processing, and avoids prompt overloading. | Multi-agent systems guarantee faster latency in all scenarios. | Splitting into separate specialized models (e.g., Architect, Coder, Reviewer) improves accuracy and creates maintainable codebases. |
| 39 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | What does a Network (Peer-to-Peer) coordination pattern imply? | Easy | 1 | C | Agents are executed manually by humans. | All agents must report back to a supervisor before interacting. | Agents can communicate with each other directly without central supervision. | It is a centralized routing protocol. | Unlike supervisors, peer-to-peer agents message each other directly to resolve tasks. |
| 40 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | In a Hierarchical system, how does a Sub-Agent signal that its task is complete and it wishes to return control to the Primary Assistant? | Easy | 1 | D | By crashing the program. | By calling the end user via SMS. | By erasing the shared state's message list. | By executing a "CompleteOrEscalate" tool call, signaling the workflow to pop the dialog stack. | The common pattern relies on returning a specific signal (like pop_dialog_state) transitioning back to the orchestrator. |
| 41 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | In multi-agent LangGraph architectures, what prevents agents from losing the overarching conversation context? | Easy | 1 | B | They read the local filesystem. | They all read and append to a centralized shared messages list managed in the AgenticState. | The developer manually pastes the JSON transcript into each prompt. | They query a vector database at every step. | Shared TypedDict State containing add_messages tracking history across all nodes ensures alignment. |
| 42 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | What is the purpose of the dialog_state stack in a hierarchical multi-agent state? | Easy | 1 | A | To push and pop agent identifiers corresponding to the current active agent in the conversation tree. | To log errors to a debugging console. | To translate different languages. | To count the number of LLM tokens used. | The dialog stack (["primary", "ticket_agent"]) acts analogously to a programming call stack, remembering which agent is currently active. |
| 43 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | What is "Context Injection" referring to in multi-agent tool execution? | Medium | 1 | D | Injecting system prompts into the vector database. | Overriding the user's internet connection. | Re-training the model mid-conversation. | Automatically supplying known session metadata (like user_id or email) into tool arguments without the LLM needing to derive them explicitly. | Context fields defined in the AgenticState are injected quietly into tool schemas by intermediate functions to provide precise references automatically. |
| 44 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | How do routing functions (conditional edges) decide to shift execution from the Primary Assistant to a designated Sub-Agent? | Medium | 1 | C | The user types "Route" in the chat window. | A random hash evaluates to true. | By inspecting the tool_calls generated by the Primary Assistant and matching the tool_name to a subgraph node. | They execute raw SQL queries tracking agent status. | Standard routers look at the Assistant's final AIMessage; if it includes tool_calls for a particular sub-agent, the edge routes to that corresponding node. |
| 45 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | Why might an agentic architecture include an "Entry Node" when transitioning to a child agent? | Medium | 1 | B | To charge the user additional credits. | To silently append a ToolMessage providing the child agent with instructions, task context, and a reminder to call a return tool when done. | To block external api requests permanently. | To delete previous session checkpoints. | Entry nodes serve as a trampoline, providing localized instructions to the incoming sub-agent without confusing the Primary Assistant's prompt. |
| 46 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | During multi-agent fallback, what happens when a tool execution fails inside an agent's subgraph? | Medium | 1 | A | A custom create_tool_node_with_fallback catches the exception and returns the error within a standard ToolMessage for the corresponding agent to review. | The PrimaryAssistant automatically shuts down. | The system crashes. | It switches out the open-source LLM for an OpenAI model. | A structured fallback catcher prevents silent failures or crashes and turns exceptions into conversational events the agent can rectify. |
| 47 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | In a highly complex Competitive multi-agent arrangement, how do agents ultimately converge on a single answer? | Hard | 1 | C | They execute a random dice roll. | The graph hangs infinitely until restarted. | A separate Evaluator/Synthesizer agent compares the outputs of all competing agents and selects or merges the best response into the final message. | Only the agent that responds first is recorded in state. | Competitive architectures require downstream synthesis nodes that "Observe" multiple paths and judge the optimal conclusion analytically. |
| 48 | LangGraph & Agentic AI | Lec4 | Multi-Agent Collab | Consider the structure: state["dialog_state"] = update_dialog_stack(["primary", "ticket_agent"], "pop"). What state does the graph enter next based on hierarchical stack principles? | Hard | 1 | B | It adds a third string to the stack. | It returns the list to ["primary"]. | It deletes the entire stack. | It loops infinitely within ticket_agent. | The custom reducer pops the last active element (ticket_agent), gracefully restoring control to the base primary_assistant. |
| 49 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | Why is a "Human-in-the-Loop" (HITL) step strongly recommended for applications performing financial transactions? | Easy | 1 | A | They involve irreversible critical actions that require human oversight to prevent costly AI mistakes. | It accelerates the transaction speed natively. | Models cannot do math. | HITL is an obsolete pattern replaced by GPT-4. | Financial transactions are high-stakes operations requiring human intervention and compliance audit trails before final execution. |
| 50 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | In LangGraph, what prevents all computation from being lost when an agent pauses to wait for human input? | Easy | 1 | C | Writing logs to a simple text file. | LangChain's built-in ConversationBufferMemory. | LangGraph's native Checkpointing mechanism (e.g., MemorySaver or SqliteSaver) tightly coupled with interrupt_before/interrupt_after. | Caching the prompt on the client side. | Checkpointers serialize the exact state graph, allowing it to rest safely in memory or DB until resumed. |
| 51 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | How does passing interrupt_before=["approval_node"] change the execution behavior of the graph? | Easy | 1 | B | It forces the node to timeout after 3 seconds. | It suspends execution right before the specified node executes, returning control back to the application. | It skips the node altogether. | It triggers an infinite loop of human questions. | interrupt_before natively halts the graph, saves state, and acts as a boundary pause expecting the app to resume it later. |
| 52 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | What is the main drawback of using MemorySaver as a checkpointer in LangGraph? | Easy | 1 | D | It requires setting up a massive cluster. | It runs too slowly for modern models. | It writes to a file that fills up the hard drive instantly. | Checkpoints disappear completely when the python process drops or server restarts. | MemorySaver keeps data purely in process RAM; process death equals checkpoint death. |
| 53 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | Which checkpointer is recommended for a scalable, production-grade distributed LangGraph service? | Easy | 1 | C | MemorySaver | SqliteSaver | PostgresSaver | FileSaver | PostgresSaver leverages robust PostgreSQL servers built for concurrent, heavy-scale transactions needed in production. |
| 54 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | How does LangGraph distinguish parallel user conversations hitting the same graph application simultaneously? | Easy | 1 | B | By creating separate python processes. | By assigning each conversation a unique thread_id in the RunnableConfig. | By deleting the older users' conversations. | By using separate API keys. | thread_id segregates memory namespaces per conversation perfectly. |
| 55 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | What information does LangGraph's app.get_state_history(config) feature provide? | Medium | 1 | A | A complete historical log of all checkpointed states, parent markers, and metadata modifications across a conversation. | Only the very first HumanMessage sent. | The system prompt token usage. | Live streaming characters from the LLM. | Pulling state history allows time-travel debugging and viewing the explicit step-by-step data modification over the thread's lifespan. |
| 56 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | Given a graph paused before a "Publishing" node, what code pattern can update the state manually, say, switching approved: False to approved: True? | Medium | 1 | C | app.publish(approved=True) | Modifying the global variables inside the python script. | Calling app.update_state(config, {"approved": True}) before invoking the graph again. | Redefining the TypedDict. | update_state lets developers patch the state tree with manual human reviews before releasing the lock on the paused graph. |
| 57 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | Why would a multi-agent framework require separate short-term Checkpointers vs explicit long-term external vector databases? | Medium | 1 | D | Because LangChain deprecates long-term storage natively. | Short-term databases always truncate after 1 megabyte. | To prevent open-source models from scraping data. | Checkpointers handle immediate conversational state securely per thread, while Vector stores aggregate historical knowledge and profiles persistently across unrelated sessions. | Checkpointers = Thread-scoped conversational state. VectorDB = Global user-scoped background context fetching. |
| 58 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | How does the SqliteSaver schema manage nested state timelines within the same thread if the user "rewinds" to an earlier step and branches context? | Medium | 1 | B | It overwrites the database completely. | It creates a new checkpoint_id pointing back to the specific parent_checkpoint_id, preserving branching forks natively. | It throws a primary key error. | It switches back to MemorySaver. | The DB schema retains parent-child snapshot ID graphs, effectively allowing true non-destructive time travel. |
| 59 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | If an agent architecture has a manual Node simulating an "As-Node" state update (app.update_state(config, {"fix": 1}, as_node="human_check")), what is the technical outcome in the graph context? | Hard | 1 | C | The app skips ahead 10 checkpoints automatically. | The update is discarded silently because the node was skipped. | It behaves as if the actual human_check node was evaluated, allowing the graph's conditional edges mapped from human_check to traverse properly during resumption. | The agent loops forever. | as_node perfectly mocks node output, resolving edge transitions waiting for that specfic node's signature. |
| 60 | LangGraph & Agentic AI | Lec5 | Human-in-the-Loop | In a scenario where an AI is suggesting Medical treatment protocols, how might interrupt_after be used successfully in a LangGraph structure? | Hard | 1 | A | Pausing after the Generate_Diagnosis node, sending the raw output downstream to a UI so a Senior Doctor can review and inject corrections before the Finalize_Report executes. | Halting the system if the internet disconnects. | Interrupting the LLM mid-token generation. | Making the LLM stream results to a text-to-speech engine. | This allows the state to fully materialize the AI's proposal, giving the human doctor a complete object to assess before continuing. |