Skip to content

Binding a graph

A chat does not have to be a single model call. You can bind an agent graph to a chat so that, on every turn, your message runs through a full workflow you designed in the Studio — LLM calls, tools, panels, orchestrators, and more — instead of a plain completion.

When a chat is bound to a graph, each message you send becomes the input to that graph. The graph executes, and its final output is returned as the chat response. This lets you reuse a polished agent workflow conversationally, with history, instead of running it manually in the Studio each time.

A graph can mark certain node fields as exposed params — the knobs you want to adjust without editing the graph itself. Think of them as the graph’s public settings: a temperature here, a system instruction there, a top-k value for a retrieval node.

When you bind a graph to a chat, its exposed params surface as controls you can set for that chat.

The values you set for the exposed params are stored as param_overrides — a flat map of node_id.field → value. Before each run, these overrides are applied on top of the graph’s saved configuration, so your per-chat settings take effect without changing the underlying graph. Every override key corresponds to one exposed param.

If your graph contains a Dashboard node, its widgets render in the chat and let you adjust values interactively. Those values are kept in a persisted dashboard_state that survives across turns — so a toggle you flip or a value you set on one turn is still there on the next, giving the graph a lightweight, conversation-scoped memory of its UI state.

Because a bound graph can run many nodes per turn, the ChatGraphProgress view shows execution as it happens: each node’s status updates live, so you can see which step is running, which have finished, and where output is being produced — right inside the chat.

  1. Bind a graph to the chat.

  2. Set any exposed params (and Dashboard widget values, if present).

  3. Send a message — it flows through the graph as input.

  4. Watch ChatGraphProgress track each node, and read the final output as the chat response.