Writing

Notes from building production AI agents: what was slow, what broke, and what I changed.

  1. 4 min read

    One agent for every kind of business

    Instead of a new agent per industry, each business describes its world as a schema, and a single LangGraph agent reads it. How the schema, the graph and the write safety net fit together.

  2. 4 min read

    Compiling plain-language workflows into graphs an agent can't wander off

    Businesses write their processes as sentences. A compiler turns them into a control-flow graph, and a deterministic runtime only asks the LLM four narrow questions.

  3. 4 min read

    The leak the garbage collector couldn't see

    How a gRPC client built inside each agent turn pinned whole LangGraph graphs in memory, and the jemalloc profiles and gc referrer walks that found it.

  4. 3 min read

    Cutting LangSmith costs without going blind

    Half our traces came from tests, and the rest carried the same graph state five times. Four small changes, and how we kept every trace our evals and support team rely on.

  5. 2 min read

    When the knowledge base disagrees with itself

    Two FAQ articles give different prices, and the agent picks one. A parallel LLM step that catches contradictions in what was actually retrieved, and a review queue that lets the business fix the source.

  6. 3 min read

    1,901 type errors to zero on a live AI codebase

    Type checking had been switched off for a long time. How a shrinking baseline, a safety net of replay tests and import contracts got a fast-moving Python agent service to strict mypy, and the 15 real bugs it found.