Agent Optimization / Focused reading

Bind every answer to the current question

Content revision: release-2026-11-11-r12

Saved reference · Proposed worksheet · No customer outcome or performance benefit established.

Controls / 7 min

A valid answer to yesterday’s prompt can be an invalid instruction today.

Proposed worksheet · Method notes updated 2026-11-11 · No independent effectiveness test

The decision

Check the server capability and bind responses to the exact current interrupt ID.

Use this when

A LangGraph workflow pauses for input and can receive retries, multiple-tab responses, or successive answers.

Skip this when

Your workflow never resumes paused input. RemoteGraph and local-runtime paths need their own documented behavior.

Work through the checks

  1. Separate the three surfaces

    The primary-source review identifies strict_resume in Python async and sync langgraph-sdk 0.4.14 thread runs.create, runs.stream and runs.wait. Stateless calls omit it. Keep the public SDK parameter, server capability and separate local-runtime private key distinct. A client argument is not proof of server enforcement.

  2. Read current state

    Read the live interrupt ID from the authoritative server state or stream. Do not derive it from a task title or reuse an older answer’s ID. Keep the current question visible in the interface.

  3. Rehearse stale and fresh answers

    Create harmless question A followed by B. Answer A, read B’s new ID, then replay A’s saved response. Confirm B remains pending. Answer B with its current ID and confirm the valid path succeeds.

  4. Make absence visible

    Test unknown IDs and unsupported-server behavior separately. Check the deployed server’s /info response for strict_resume support. The reviewed SDK change says unsupported servers can ignore the field. Mark enforcement unavailable rather than interpreting request success as protection.

What would count as success?

  1. A stale answer never advances the current question. Evidence for check 1
  2. Rejection is visible and the user can re-read and answer the current question. Evidence for check 2
  3. A fresh valid answer still works. Evidence for check 3

Evidence to bring back

Proposed evidence plan, not observed results or extra mandatory process. Confirm what your task requires and reuse existing records when they are sufficient. Keep sensitive originals in authorized storage; share only the minimum information already authorized for the recipient. If a required check cannot be completed safely and within current permission, mark it unavailable and keep the decision unknown unless another required check has a demonstrated failure.

  1. A stale answer never advances the current question.

    Proposed evidence for acceptance check 1. No result has been observed here.

    Bring back: Keep the authoritative interrupt IDs and state before and after replaying the stale A response while B is pending. Record whether B remains pending and whether any downstream effect occurred.

    Not enough: A stale-answer error alone without inspecting the current state or downstream effect.

  2. Rejection is visible and the user can re-read and answer the current question.

    Proposed evidence for acceptance check 2. No result has been observed here.

    Bring back: Keep the stale/unknown-ID rejection result and the subsequent read that exposes the current question and ID. Record whether the intended user can reach that recovery path within existing access.

    Not enough: A backend log entry that gives the user no route to recover the current question.

  3. A fresh valid answer still works.

    Proposed evidence for acceptance check 3. No result has been observed here.

    Bring back: Record a fresh valid B response and its expected state transition on the same deployed configuration. Retain the relevant /info capability response; if enforcement is unsupported or cannot be checked, leave the protection claim unknown.

    Not enough: A successful HTTP request or an SDK argument without confirming the expected state transition and server capability.

Stop or recover

Pause the resume path if the binding is uncertain. Retain checkpoint and answer records. Do not automatically replay old answers after a rollback.

What this does not establish

The specific SDK and runtime changes were rechecked against primary sources on 10 November 2026, but no real LangGraph server was executed for this reconstruction. These are bounded acceptance recipes, not measured results or a complete authorization policy.

Reference links

These links leave the saved pack when selected. Check whether dated guidance still applies before relying on it.

Keep your own evidence

The draft already identifies this method and its proposed requirements. Confirm those requirements against your task, then supply only the scope and observations you are authorized to record. No evidence or permission is prefilled. Reuse an existing suitable record if you have one.

Your browser may show or download text files. Edit a separate working copy in your usual editor. This reader does not accept or save your answers.

If another problem remains

Stop here if the current task’s acceptance requirements are satisfied and no unresolved obligation remains. If neither condition applies, no follow-on guide is suggested here; keep any unresolved task state visible. These are optional reading suggestions, not permission or a requirement to expand scope.

  • Only if: An old answer may already have triggered an external action.

    Check the outcome before retrying

    Resolve the operation outcome rather than assuming a rejected replay undoes the first effect.

  • Only if: The current question and state are correct now, but are lost when work changes sessions.

    Keep memory useful without losing the rules

    Preserve a pointer to authoritative current state without treating a saved answer as a fresh one.

Back to guide choices ↑