Skip to content

Execution graph

The execution graph is the record of what an agent actually did. It is built from the events the client sends after each decision, and it is what OpenLatch checks against the agent’s Autonomy Zone.

Each agent has an Execution Graph tab. It reads from left to right, from the agent to what it touched:

LaneWhat it holds
AgentThe agent the graph is about
RunsIts sessions, one card per run
SurfacesWhat it reached for, derived from the tool names
ToolsWhat it invoked
ArtifactsWhat it touched or ran: files, network domains and commands

The lanes converge on what the runs share, so you see the paths an agent takes most and the ones it takes rarely.

The Execution graph tab of an agent in the OpenLatch console, in the Crispy Pay demo organization.The Execution graph tab of an agent in the OpenLatch console, in the Crispy Pay demo organization.
An agent's Execution Graph tab: runs, surfaces, tools and artifacts, from left to right.
PlaneWhat the client captures
Command planeEach tool call and shell command, caught at the agent’s native hook before it runs
Request planeEach outbound model request, caught at a listener on the same machine, with its model, its tokens and its cost

The other tabs of an agent break the same record down by kind: commands, files, domains, MCP servers, skills, hooks, sessions and economics.

When the graph shows a command you want to govern, open it and start a new intent policy from that action. The brief starts from what the agent actually ran, and the policy goes through the same review and ratification as any other. Intent policies explains that path.

An action that no policy decided is recorded as allowed by default, not as permitted by a decision. The graph tells the two apart.