{
  "video": {
    "id": "TN3mj92oZ8I",
    "title": "Building Self-Improving Agent Software Factories — Suraj Gupta, Warp",
    "duration": 772,
    "upload_date": null,
    "channel": "AI Engineer",
    "source": "AI Engineer",
    "event_format": ""
  },
  "analysis": {
    "video_id": "TN3mj92oZ8I",
    "title": "How Software Factories Improve Themselves — Suraj Gupta, Warp",
    "one_liner": "Make a software factory improve itself with outer-loop agents: one agent watches the inner-loop agent's runs and feedback, then updates its skills through human-reviewed pull requests and pulls facts into persistent memory, while task-specific evals decide which model handles which class of task.",
    "summary": "Suraj Gupta, who leads harness development at Warp, argues that engineers are moving from building products to building and maintaining software factories. He says these factories should get better over time, not just the individual agents inside them. He covers three mechanisms: skills that an outer-loop agent keeps up to date, persistent memory stores scoped to each agent, and model routing driven by evals. He demos Warp's open-source triage workflow, Sentry-agent memories on the Oz cloud agent platform, and rule-based model routing in Warp.",
    "key_points": [
      "Warp has about a million active users. It began as a modern terminal, became an agentic development environment, and is now building Oz, a cloud agent platform for teams building software factories.",
      "Skills give agents procedural memory but go stale over time. Warp's fix is an outer-loop agent that watches the inner-loop agent's runs and improves its skill by looking for mistakes and human feedback.",
      "Demo: Warp's open-sourced client repo runs as a factory. A GitHub workflow starts a triage agent on every new issue, and it works out what information is missing and whether to build or dedupe. The outer-loop agent collects feedback signals such as thumbs up/down, user comments and Warp employee comments. It then updates the triage skill and opens a pull request, so skill changes are tracked in git and reviewed by a human.",
      "Persistent memory is 'a fact store scoped to an agent'. An outer-loop agent pulls facts, learnings and outcomes out of runs, so a Sentry agent doesn't spend tokens re-gathering context on root causes it has already found.",
      "In Oz, memory stores can be versioned, edited, created or deleted by humans, and each memory links back to the run it came from. Runs report which memories they used; in the demo the Sentry agent used five memories to speed up its root-cause analysis.",
      "Oz persistent memory works across harnesses, including Warp's own proprietary harness and third-party agents (named in the transcript as 'plot code' and 'Kodak', likely Claude Code and Codex).",
      "Running simple agents such as triage or simple CI fixes on Opus 'can become prohibitively expensive'. Warp offers 'auto models' routers, re-evaluated for Pareto efficiency as new models come out, plus user-defined routing rules in a config file (e.g. database migrations to GLM, runbooks and API docs to Qwen).",
      "Internally, Warp runs an eval sidecar using a 'best-at-k' approach: it runs a prompt through Oz agents on several models. It found, for example, that GLM does UI tasks well enough that Opus isn't needed. Warp plans to ship customer-defined evals so routing can be tested against a customer's own workflows rather than generic benchmarks."
    ],
    "takeaways": [
      "Pair each inner-loop agent (e.g. triage) with an outer-loop agent. The outer agent reads that agent's runs and feedback signals and proposes skill updates.",
      "Deliver skill updates as pull requests, so changes are tracked in git and a human reviews them before a bad update makes the agent worse.",
      "Give recurring agents (e.g. Sentry root-cause agents) a persistent fact store filled from past runs. Keep it versionable and traceable to source runs so you can prune memories that aren't useful or are local maxima.",
      "Don't pin every factory agent to an expensive model like Opus. Route classes of tasks to cheaper models, and back routing decisions with evals on your own workflows rather than public benchmarks."
    ],
    "topics": [
      "software factories",
      "self-improvement",
      "agent skills",
      "persistent memory",
      "model routing",
      "evals",
      "cloud agents",
      "triage automation"
    ],
    "tools": [
      "Warp",
      "Oz",
      "GitHub",
      "Sentry",
      "Claude Code",
      "Codex",
      "Opus",
      "Haiku",
      "GLM",
      "Qwen"
    ],
    "quotes": [
      {
        "text": "I think this is going to become an extremely important part of our jobs as software engineers as we transition from building products to building factories and and maintaining them.",
        "at": "01:37",
        "url": "https://www.youtube.com/watch?v=TN3mj92oZ8I&t=97s"
      },
      {
        "text": "You can think of this as a fact store scoped to an agent.",
        "at": "06:18",
        "url": "https://www.youtube.com/watch?v=TN3mj92oZ8I&t=378s"
      },
      {
        "text": "it can become prohibitively expensive to run all of your agents that are doing simple things like triage or fixing simple CI failures with Opus.",
        "at": "08:57",
        "url": "https://www.youtube.com/watch?v=TN3mj92oZ8I&t=537s"
      },
      {
        "text": "UI tasks are really well done with GLM. Um we don't really need to run those with Opus.",
        "at": "12:06",
        "url": "https://www.youtube.com/watch?v=TN3mj92oZ8I&t=726s"
      }
    ],
    "words": 2750
  },
  "summary_url": "/#TN3mj92oZ8I",
  "transcript": {
    "html": "/transcripts/TN3mj92oZ8I.html",
    "txt": "/transcripts/TN3mj92oZ8I.txt",
    "vtt": "/transcripts/TN3mj92oZ8I.vtt"
  }
}