Inspect Pipelines
Register pipelines in Studio and inspect graph, runs, and logs.
Studio can inspect built pipelines beside agents. Register both as top-level targets:
import { AgentBuilder, PipelineBuilder } from "@anvia/core";
import { Studio } from "@anvia/studio";
const supportAgent = new AgentBuilder("support", model).build();
const ticketPipeline = new PipelineBuilder<string>({
id: "ticket-pipeline",
name: "Ticket Pipeline",
})
.step((ticket) => ticket.trim(), { name: "Normalize" })
.prompt(supportAgent, { name: "Draft Reply" })
.build();
new Studio([supportAgent, ticketPipeline]).start({ port: 4021 });Studio reads pipeline graph metadata automatically from build order. Optional pipeline and stage metadata improves labels, descriptions, and inspector details, but every stage gets a generated id and label when metadata is omitted.
What Studio Shows
| Surface | What it shows |
|---|---|
| Graph | Input, steps, nested pipelines, parallel branches, agents, extractors, and output |
| Node details | Kind, label, description, metadata, branch key, agent id, or nested pipeline id |
| Run controls | JSON-compatible input sent to POST /pipelines/:pipelineId/runs |
| Logs | Persisted metadata-only pipeline audit logs with live stream updates |
Pipeline logs include ids, stage kinds, status, durations, counts, and byte lengths. They do not persist raw input, output, prompt text, model output, tool arguments, tool results, documents, images, or reasoning text.
HTTP Routes
curl http://localhost:4021/pipelines
curl http://localhost:4021/pipelines/ticket-pipeline
curl 'http://localhost:4021/pipelines/ticket-pipeline/logs?limit=200'Run a pipeline with JSON input:
curl -X POST http://localhost:4021/pipelines/ticket-pipeline/runs \
-H 'content-type: application/json' \
-d '{
"input": "Customer cannot check out",
"stream": true
}'Studio HTTP pipeline inputs must be JSON-compatible. Use direct pipeline.run(...) in application code when a pipeline takes non-JSON values.
