← All work
Generative AI Agents · Product · 2026

Agentic Engineering

A hands-on course in agentic engineering, built on a config-driven agent engine in Python and TypeScript, and a demo site that steps through recorded runs of it, stage by stage, with the trace, cache and code at every step.

Year
2026
Status
Product
Category
Generative AI Agents
Role
Architect & Lead

Key metrics

72
Components
7
Prebuilt pipelines
16
Evolution steps
8
Caching chapters

Architecture

One engine core per language, with each framework (Vercel AI SDK, OpenAI Agents SDK, LangChain, LangGraph, LlamaIndex) fitted in as a plugin, so switching framework is a config edit and a hot reload. Only caching, tracing and guards are cross-cutting; everything else is a plugin named in config. Skills and MCP servers run in the srt sandbox, and every run is recorded so public pages replay real traces without spending model credits.

Case study

Agentic Engineering

Most agent demos are a scripted animation and a slide. Agentic Engineering is a course: Steve's methods for reliable, scalable agents taught through working code: an executable agent engine, and a page that steps through real runs of it. It lives at macleodcodes.com (invite-only).

What you can do on it

  • Engine: watch a deal-room question go through intake, shield, answer cache, route, hybrid retrieval, grading, the agent with its skills and MCP tools, guards and the reply. Step back and forward, or tap any span to jump the run to it. The inspector shows the result, terminal, cache, code and config for each stage.
  • Composer: start from seven prebuilt pipelines (Basic RAG to Multi-agent) or answer eight short questions, and the diagram rebuilds with every choice.
  • Evolution: the history of RAG in 16 steps, each one a run you can watch, from basic RAG to graph RAG.
  • Caching and Prompting: eight caching chapters and eight prompting techniques, each applied one at a time to the same question with a scoreboard.
  • Components and Evals: a catalogue of 72 components, and golden-case eval batches judged by code and a model.

How it works

Everything is config: behaviour, thresholds, backends, framework, model, dataset and the page's display styles. One engine core per language (Python and TypeScript) takes Vercel AI SDK, OpenAI Agents SDK, LangChain, LangGraph or LlamaIndex as a plugin, so changing framework is a config edit and a hot reload. Caching, tracing and guards are the only cross-cutting parts; each uses the framework's own mechanism where one exists. Every decorator and plugin call is a span, exported to Jaeger.

Claude is pinned in config: Sonnet 5.5 is the agent and Haiku 5.5 does the small jobs (judges, rewrites, the grey-zone injection check). Skills and MCP servers run in the srt sandbox. The data is SEC EDGAR M&A filings.

Live runs happen only on Steve's machine. Public pages replay recordings, labelled with their date, language, framework and config version, so a replay never makes a paid model call.

Tech stack

PythonTypeScriptClaude (Sonnet 5.5, Haiku 5.5)LangGraph / LangChain / LlamaIndexVercel AI SDK / OpenAI Agents SDKOpenTelemetry + Jaegersrt sandbox

Gallery

Other 2026 work