agentstudio

The agentstudio.dev microservice is a developer console for the agentic workflows running under the foreman. It renders HTML pages that list flows, show each flow’s execution as a diagram, open any step’s input and output, and drive flows by hand. It reads and acts only through the foreman’s public API, so what it shows is what any caller of the foreman sees.

agentstudio runs only in a LOCAL or TESTING deployment: it fails to start anywhere else. Add it to the application next to the foreman, with app.Add(agentstudio.NewService()) from github.com/microbus-io/fabric/devservices/agentstudio. With the HTTP ingress on its default port, open http://localhost:8080/agentstudio.dev/flows.

Pages

RoutePage
/flowsThe flows, newest first, paginated and sortable, with a status filter. A flow that stopped short of completing shows the task it stopped at.
/flows/{flowKey}One flow: its execution history as a diagram, its outcome and its steps. The page updates live while the flow runs.
/steps/{stepKey}One step, in tabs (see below).
/workflowsThe workflows available in the application.
/workflows/{workflowURL}One workflow’s graph, drawn as a flowchart, and its definition.
/task-detailThe metadata of one task in a workflow graph.
/dashboardCharts over a time window: flows by status over time, errors over time by the task the flow stopped at, and task durations as a heatmap and a box plot.

Driving Flows

The flow page offers the actions that fit the flow’s status. Each one calls the matching foreman operation:

  • Run (on the workflows pages) starts a new flow from a form with its initial state and FlowOptions.
  • Resume an interrupted flow with a resume payload.
  • Cancel a running flow gracefully, or Terminate a running or interrupted one.
  • Continue a completed flow’s thread with additional state.
  • Fork an ended flow from its entry step, or from any recorded step on that step’s page, with optional state overrides. The fork is a new flow, and the console opens it.

The Step Page

A step’s page splits what the step recorded into tabs:

  • Overview — the step key, status, depth, attempt, creation time and duration, and the error of a failed step.
  • Input — the state the task saw when it started.
  • Output — the state after the step: its input with its writes applied.
  • Interrupt — the payload a task passed to flow.Interrupt, for a step that parked on one.
  • Subgraph — for a step that called flow.Subgraph, the child flow’s status, a link to it, and its final state, which is what the subgraph returned.

See Also