Skip to content

LangGraph runs

An agent run is a stream of events over HTTP, which means a request tool can debug one — if it knows how to render what comes back. Tinspec treats LangGraph runs as a first-class protocol for exactly that.

There is no new request path underneath: the engine sends it as plain HTTP with SSE. What is new is the authoring form and the run view.

LangGraph requests are not in the generic protocol switcher — they have their own editor and their own navigator section, the way chains do. Mode (Streaming or Buffered) and Run sit above the tabs, and the tabs give you:

  • Input — the JSON payload template for the run. {{variables}} resolve as usual.
  • Headers — sent with the request.
  • Auth — an auth provider and, when it has senders, which one to send as. A per-request Inject as override is available too, though at v0.1.0-preview.10 its row sits above the Custom fields list rather than in the Auth tab.
  • Custom fields — dot-paths into each raw event, surfaced as extra columns in the timeline. This is the part that makes a specific graph readable: name the fields your nodes actually set and they appear on every event.
  • Advanced — the events version to request, echoed into the call if the deployment expects it as a parameter.

The run replaces the generic response pane with a dedicated view of five tabs:

TabWhat it shows
TimelineEvery event in order, with your custom fields as columns
MessagesThe conversation as messages rather than raw events
Tool CallsEach tool invocation and its result
StateGraph state, with nested sections collapsible
RawThe undecoded stream

Runs are kept in their own per-run history, so you can reopen an earlier run and compare.

  • Not chainable. A run is a multi-event stream, not one response, so a LangGraph request cannot be a chain step. It is excluded from the request picker for the same reason WebSocket is, and the run-time guard refuses it too.
  • No request tests, and no send settings. A run is dispatched without either, so a request’s tests are not evaluated and the layered timeout / proxy / TLS settings that apply to an HTTP send do not apply here.
  • Not exposed to agents. The MCP tools do not cover LangGraph runs at v0.1.0-preview.10.
  • A missing custom-field path renders blank rather than erroring, so a path that does not match simply shows nothing.

The decoder projects LangGraph’s stream_events envelopes into messages, tool calls, state and token usage. Those shapes are taken from LangChain’s documented projection semantics rather than verified against a live deployment, so the decoder is built to degrade rather than lie: anything it cannot confidently map becomes an unknown event and still shows up in the Timeline and in Raw. If your deployment emits something the pretty tabs do not recognise, the data is not lost — it is in Raw.

- name: Support agent run
protocol: langgraph
method: POST
url: "{{baseUrl}}/threads/{{threadId}}/runs/stream"
langgraph:
input: '{"messages":[{"role":"user","content":"refund my order"}]}'
streamMode: stream
customFields:
- name: node
path: metadata.langgraph_node
- name: step
path: metadata.langgraph_step

customFields[].path is a simple dot-path into the raw event’s data.