Speaker Notes

Harness Engineering: How to Build Software When Humans Steer, Agents Execute — Ryan Lopopolo, OpenAI

Ryan Lopopolo shares OpenAI's approach to harness engineering, where infinite agent capacity makes code free and shifts the developer's role from writing implementation to designing guardrails, skills, and dev-tool entry points.

AI Engineer · 46:21 · YouTube ↗

Keynote and interview · solo speaker and 2 hosts  Advanced · concepts, strategy and repository design

Highlights

4 clips · 3 min of 46 min
    • Code is free and infinitely abundant to produce, refactor, or delete.
    • Team capacity is constrained only by GPU capacity and token budgets.
    • Engineers now have access to thousands of engineer-equivalents of capacity 24/7.
    • Models have seen trillions of lines of code and know every choice for non-functional requirements.
    • Explicitly document and restrict outputs to prevent agents from introducing slop.
    • Take short-term velocity hits to set up proper guardrails and solve blockers.
    • Design repository entry points so coding agents launch applications and dev tools directly.
    • Create mini-harnesses and custom ESLint rules to enforce code structure across packages.
    • Equip agents with skills that enable them to connect browsers and local telemetry daemons.
    • Run agents asynchronously during commutes by tethering laptops and letting them cook until tests are green.
    • The ultimate goal is managing 50 agents running 24/7 without manual intervention.
    • Every time you have to type continue to an agent represents a failure of the harness context.

Questions this video answers

10 · every answer cites the moment it was said
01 How do I structure my team's workflow around autonomous agents? 2 sources · 20:34

The speaker recommends treating Codex as the primary entry point to development rather than spawning a traditional shell environment. Teams give agents custom tools and instructions so they can launch apps, set up observability, and run tests. This shifts human work toward writing tickets and defining guardrails rather than manual coding.

02 How do I prevent agents from introducing bad patterns and slop into the codebase? 2 sources · 12:10

You can establish custom ESLint rules and structure verification tests that run in CI to catch bad habits automatically. Additionally, teams can dedicate time to analyze recurring failure classes and turn those learnings into prompt injections or documentation. This ensures agents self-heal and adhere to non-functional requirements without human micromanagement.

03 How should I manage context efficiently to avoid overwhelming the coding agent? 2 sources · 25:02

Instead of frontloading all instructions upfront, you should surface context just in time when specific validation or lint stages execute. This keeps the agent's attention focused on the immediate task while ensuring non-functional requirements are still enforced later. A good harness operationalizes surfacing instructions to the model at the exact right moment.

04 How do I approach code review when my team is producing multiple pull requests daily? 2 sources · 37:52

High velocity can lead to merge conflicts and review bottlenecks if humans must inspect every line manually. To solve this, teams can dedicate specific times like garbage collection days to eliminate recurring friction points and automate feedback loops. Review agents and test suites should take over checking PRs against documentation of what good code looks like.

05 What is the role of human developers when implementation is no longer scarce? 2 sources · 2:59

With infinite model capacity making code free, human time and attention become the primary constraints. Developers shift from manual implementation to systems thinking, architecture design, and orchestration. Your role is to build structures, guardrails, and processes that unblock agents to execute long-horizon work.

06 How do I handle repository organization for agent-first execution? 2 sources · 34:40

Initial unorganized structures quickly turn into messy codebases, so large repositories should be partitioned into many isolated packages by business logic domain. Making the codebase uniform with single canonical implementations and strict dependency rules helps agents predict tokens reliably. This structural consistency ensures agents generate transferable and coherent code regardless of the directory.

07 How can I use agents to improve test coverage and build trust? 2 sources · 30:30

Engineers can start adopting coding agents by offloading tasks that increase confidence in existing code, such as writing comprehensive test suites. By having agents analyze current code against usage contexts to write assertions, developers feel safer delegating work. This reduces the need for shoulder-surfing and allows humans to step back from synchronous reviewing.

08 How should I allocate my token budget across different software development tasks? 2 sources · 40:02

A balanced token budget is roughly split across planning, ticket curation, documentation, implementation, and automated tasks running in CI. Spending tokens in CI is essential because code generation is cheap, but getting code tested, reviewed, and integrated is what advances the product. Agents should be empowered to handle these lifecycle steps without constant human intervention.

09 Should I use agent-generated plans before executing a coding task? 2 sources · 40:35

Generating explicit plans can sometimes encode bad instructions if approved blindly without human review. If you choose to use plans, they should be pushed as separate pull requests where humans inspect every line before merging. However, with capable models, you can often drop a ticket directly in and let the agent complete the job without a separate plan mode.

10 How do I deal with tool evolution when developer tools and local setups change frequently? 2 sources · 22:47

Instead of hardcoding complex local environments, you can centralize your leverage around a small set of core skills. By hiding infrastructure complexity and local developer tool changes beneath these skills, the human doesn't need to maintain them. The agent can read documentation and adapt to tool changes independently, as seen when Damon workflows replaced older protocols without human disruption.

Section-by-section summary

9 parts

Building software exclusively with autonomous agents

Ryan Lopopolo shares his nine-month experience of building software exclusively through AI models by banning his team from touching code editors. He argues that engineers must become token billionaires to let models handle the full software engineering job.

Implementation is no longer a scarce resource

Coding agents have advanced to handle complex actions over long time horizons, making code creation virtually free and abundant. Team capacity is no longer limited by human hands on keyboards, shifting engineering skills toward systems thinking and delegation.

Human time and attention are the new constraints

While code is free, human time, attention, and model context windows remain scarce resources. In this new paradigm, low-priority tasks can be executed in parallel because the traditional synchronous attention drain of writing code is eliminated.

Legibility and guardrails replace manual implementation

Engineers must focus on prompts, documentation, and guardrails rather than implementation details. Structuring codebases to be legible to agents and respecting their context limits ensures reliable, high-quality output.

Automating quality via lints and review agents

Teams can embed custom linters, review agents, and automated tests directly into the codebase to enforce non-functional requirements. These programmatic guardrails continuously correct agent behavior and durably solve recurring production failures.

Designing repositories for agent-first execution

Development workflows should treat the coding agent as the primary entry point rather than a local developer shell. Repositories need embedded skills and mini-harnesses that teach agents how to launch applications, run tests, and invoke dev tools.

Just-in-time context delivery prevents agent overwhelm

Effective harnesses avoid frontloading all instructions and instead surface context and guardrails dynamically. Using lints and test failures at the right time forces agents to refactor code to match desired standards before merging.

Incrementally offloading tasks to build trust

Engineers can transition to agent-driven workflows by using AI to write comprehensive test suites and automate time-consuming bottlenecks. Delegating routine tasks systematically increases confidence in agent outputs and reduces the need for heavy manual code reviews.

Treating code as a disposable build artifact

Code should be viewed as a compiled, disposable artifact generated by LLMs acting as fuzzy compilers. Future software engineering will involve managing large token budgets and overarching product metrics while agents handle execution entirely.

0:00 / 46:21
k play/pause · f fullscreen · m mute
n next · p previous clip · t highlights/full
< > slower/faster · / search what was said
  • Harness engineering16× · first 0:17

    The practice of building software systems and guardrails where humans steer and autonomous agents execute.

  • Codex5× · first 16:19

    The primary coding agent model and tool used as the entry point for software development at OpenAI.

  • Token billionaire2× · first 0:57

    A developer who uses massive amounts of model tokens daily to run agents and build software exclusively.

  • Skills10× · first 2:59

    Instruction sets or scripts given to agents to teach them how to launch apps, run dev tools, or manipulate codebases.

  • Garbage collection day1× · first 37:54

    A dedicated weekly time where engineers eliminate recurring slop and encode fixes into repository documentation or lints.

  • Autocompaction1× · first 11:24

    A model feature that helps manage and refresh context automatically as agents execute long tasks.

  • Exec plans2× · first 40:20

    Structured milestone plans used to guide agents before full execution.

  • Symphony1× · first 41:57

    An agent orchestrator tool released to manage well-defined specs where code acts as a compiled artifact.