← All work2026 · AI Agents

Campaign Strategy Agent

One guided conversation, eight deterministic stages, a pinboard that fills itself.

RoleArchitecture & build
StackPython 3.11+ · FastAPI · Server-Sent Events
Year2026
Tests20

Client work — case study anonymized; architecture and metrics are real.

Deterministic where it matters

Most agent products let an LLM route the conversation and hope. Here, an explicit state machine owns the eight stages — brief, research, landscape, audience, concept, budget, content, timeline — and the model works inside the current stage. Every transition passes through a confirmation gate; nothing advances because a model felt like it.

Two outputs per turn

Each user turn produces a streamed conversational reply from a responder agent and a structured pinboard update from a separate extractor agent — merged with null-preserve semantics, so the extractor can never blank out a fact the session already knows.

The SSE vocabulary is fully specified — message deltas, pinboard updates, stage transitions, confirmation requests, errors, and a terminal done event — and the whole service boots with zero API keys, degrading to in-memory sessions and a stubbed research provider so it always runs.

Built with

Every technology this project runs on, and the job it does here. Each one links to the other projects it appears in.

By the numbers

8Deterministic stages
2Agents per turn
8SSE event types
20Tests + live eval suite