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.

~3hschemasstructured-outputcontracts
Learning objectives
  • Design nodes with bounded input/output.
  • Use schemas to make outputs composable.
  • Move deterministic plumbing from agents onto edges.
Note

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.