Node & Edge Contracts with Structured Outputs
Design nodes with bounded input/output. Use schemas to make outputs composable. Move deterministic plumbing from agents onto edges.
- Design nodes with bounded input/output.
- Use schemas to make outputs composable.
- Move deterministic plumbing from agents onto edges.
This course extends the existing Agentic Engineering track. The focus is not "more prompting"; it is shaping the work: loops, fan-out, fan-in, routing, verification, cost, and convergence.
Contracts make nodes composable
A node should do exactly one job. Its input is explicit, not assumed from chat history. Its output is a shape downstream code can validate. This is what lets you swap nodes and parallelize safely.
const Finding = {
type: 'object', additionalProperties: false,
properties: { title: { type: 'string' }, evidence: { type: 'string' }, risk: { enum: ['low','medium','high'] } },
required: ['title','evidence','risk']
};
Edges are code
Flattening, filtering, grouping, deduping, and deterministic routing are edge work. Do not pay model tokens for plumbing that JavaScript can do exactly.
const unique = [...new Map(items.map(i => [i.evidence, i])).values()];
Recap
A loop is a controlled cycle. A graph is the work shape around that cycle. The production skill is knowing which parts need model judgment, which parts are deterministic edges, and where confidence gates belong.
Node & Edge Contracts with Structured Outputs — Exercises
Exercise 1 — Draw the hidden graph
Take a linear workflow you already use, such as "research sources → summarize → compare → write report". Draw every step as a node. Then remove every arrow where the downstream step does not consume upstream data.
Reference solution
A strong answer identifies independent nodes and labels edges by data, not by time. Example: "source A research" and "source B research" are independent; both feed a deterministic reduce step; the reduced evidence feeds synthesis.
Exercise 2 — Write node contracts
For three nodes in your graph, define:
- input shape
- output shape
- failure mode
- downstream consumer
Reference solution
Good contracts are narrow: { topic, sourceUrl } in; { claims: [{ text, sourceUrl, confidence }] } out. Avoid "return a useful summary" because the next node cannot validate it.
Exercise 3 — Add one safety gate
Place a verifier, schema validator, budget check, or human approval gate on the edge most likely to poison downstream work.
Reference solution
For a research graph, gate unsupported claims before synthesis. For a code graph, gate findings with reproduction or a second reviewer before reporting.