AI Engineer World's Fair 2026
The Agent Behind the Curtain: Building the Oz Cloud Agent Platform — Safia Abdalla, Warp
Read the talk
The Agent Behind the Curtain: Building the Oz Cloud Agent Platform
Safia Abdalla explains how Warp combines sandboxes, interchangeable harnesses, shared state and orchestration APIs, then puts those capabilities inside a repository workflow that clarifies requests and reviews contributions before calling in humans.
From a talk by Safia Abdalla
At a glance
Ideas worth remembering
Managed and self-hosted sandboxes let agent workloads fit different infrastructure needs; shared conversation state and artifact handling keep harness choice from fragmenting the platform experience.
Prompt orchestration handles sub-agent coordination, while APIs expose agents, compute and artifacts so teams can build their own workflows and interfaces.
Warp’s repository agents clarify issues and review pull requests through multiple iterations. Human reviewers are notified after agent approval, concentrating their attention later in the process.
The workshop model connects automation to human craft: prepare inputs, organize work, verify components, inspect the process and improve it without letting token costs overwhelm the benefit.
When the work outgrows the laptop
For Safia Abdalla, eight years building developer tooling led to a practical design principle: tools should meet developers where they are and grow with them. Her work spans open-source notebook tooling, APIs and SDKs at Microsoft, and cloud agents at Warp. A tool used every day must accommodate existing habits while adapting as the work becomes more complex. 0:12
Preferences for a shell, language, harness or review process shape how developers think and build. Accommodating those preferences makes a tool more enjoyable to use—and matters beyond the individual developer. Useful developer tools have a compounding effect: helping builders do better work increases the amount of good software they can create.
Warp’s progression follows that changing work. It began as a terminal that fit existing command-line workflows. Local AI tools then made the terminal, IDE and editor places where agents could write software. The next demand was for work that ran longer and adapted to constraints beyond a developer’s laptop. Moving that work to the cloud created a new problem: somebody now had to manage a messier infrastructure stack. 2:12
The principle behind Warp’s cloud agent platform is that platforms should absorb complexity before it reaches the user. Cloud infrastructure still needs engineering. The platform’s job is to turn it into useful capabilities so builders can concentrate on the task rather than coordinate every supporting system themselves.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Choose the compute and harness; keep the experience consistent
The first practical question is where an agent works. A sandbox supplies an isolated environment in the cloud, serving the role a working machine does for a developer. Warp supports both managed hosting and self-hosting. Managed compute offers an easy entry point because the user does not have to arrange where the workload runs. Teams with their own infrastructure also need agents to work on the machines they bring, including existing development boxes. 3:41
That choice follows from the team’s operating environment. Security concerns, deployment practices and established workflows can make managed hosting insufficient. Supporting infrastructure supplied by the team lets agent work fit those constraints while the platform presents a common way to work with it.
The next choice is the harness: the agent tooling a developer wants to use for the job. Claude Code, Codex, Warp’s own harness and custom harnesses represent different preferences and capabilities. Multi-harness support preserves that choice, but it creates a risk: each option could become its own disconnected experience, with different ways to resume work or retrieve outputs.
Warp addresses that fragmentation through shared platform behavior:
- Conversation state: Harnesses can store a conversation and rehydrate it—restore the saved state so work can continue.
- Artifacts: Pull requests, issues and generated files fit the same platform structure, whichever harness produces them.
The execution tool may differ, while the surrounding experience for continuing work and handling its results stays consistent.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Coordinate several agents through a prompt or an API
A place to run and a preferred harness do not make a whole engineering workflow fit inside one prompt. Researching a problem, implementing a solution and validating the result can require separate agents. Those agents may use different harnesses and models to bring different approaches to the work, including an adversarial check. That diversity does not by itself establish that their conclusions will be independent or correct. 6:40
Prompt-based orchestration makes coordination accessible from the same interface used to request work. A user can invoke /orchestrate or ask for delegation in a prompt. The orchestrator then interacts with sub-agents, mediates their messages and tracks their work. The user supplies the task; the orchestrator handles the ongoing coordination that the task creates.
What coordination disappears behind that single prompt? The diagram places the orchestrator between the request and the participating sub-agents. Its branches show delegation and message handling, rather than a requirement that every workflow run all roles simultaneously.
An API opens a second route into these capabilities. A request can create a sub-agent attached to a parent agent using supplied configuration. APIs also expose agent creation, environment and compute management, and the artifacts agents produce. This lets a builder compose an experience around their own work instead of fitting everything into Warp’s UI. 8:10
Invoke /orchestrate or request delegation.
A prompt starts the work; the orchestrator manages sub-agent interaction, messages and progress. Research, implementation and validation can use different harnesses and models.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Let the people doing the work build its interface
The API’s value becomes concrete in tools built by non-engineering teammates at Warp. They used the SDK and API to create custom Slack bots. Developer relations teammates built tooling for managing incoming social mentions, placing agents inside an existing team workflow rather than asking the team to move its work into a coding interface. 9:09
Follow one incoming tweet or Reddit post through that tooling. It arrives as a social mention. An agent picks it up, analyzes sentiment and tries to understand what the user wants. The output becomes a proposed response for the social media team to use. The observable change is from an incoming post to a response suggestion that people can act on; the described workflow stops short of automatic posting.
Other internal uses include answering questions about how the product works and conducting competitive research. The common enabling mechanism is access to reusable platform operations through the SDK. People close to a task can assemble a tool around that task without waiting for the platform team to design every possible interface.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Put agents inside the repository’s process
Opening Warp’s source made those platform operations useful at a different scale. Abdalla recalls GitHub stars growing from around 20,000 to over 60,000, alongside thousands of pull requests and hundreds of contributors. The repository needed a process for handling that influx while leaving room for humans to participate. 10:40
The first intervention happens before implementation. Filing a bug report or feature request triggers an agent that researches the codebase and repository context. If the request is too abstract, it asks questions. This addresses a familiar open-source bottleneck: a user knows something is wrong or wants a change, but the initial issue lacks enough detail to drive the work forward. Research and clarification help turn that intent into an actionable task. 11:39
Agents can then help draft initial specifications and implement tasks. Review is another explicit stage: every contributed pull request goes through an agent-managed process with multiple iterations. Warp does not ping its human reviewers until an agent has approved the pull request. That notification rule concentrates human attention on contributions that have cleared the automated review gate.
Where does the human handoff happen? The diagram separates issue clarification from the pull-request review loop and places the notification after agent approval. The reported benefit is a more manageable human review workload; the talk does not quantify the gate’s missed defects or rejected good contributions, so approval is a filtering step rather than a guarantee of quality.
The process also supplies material for improving the agent as more pull requests and code examples arrive. Abdalla identifies this feedback loop as important to the software development life cycle, without specifying how the agent is updated. The significant design decision is that the repository workflow itself evolves with the work it encounters.
That structure has a consequence beyond handling volume. Domain knowledge often belongs to the person using software in an interesting way, rather than the person building it. Warp’s developers happen to be building a developer tool, but many teams build for people whose expertise they do not share. Clarification, specifications, implementation support and review give those users a route from intent toward a product change. Extending that route to non-developers is the larger ambition.
A contributor submits a bug report or feature request.
Agents participate in the repository’s established work. Human reviewers are notified only after agent approval; review can take multiple iterations.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A workshop preserves the people and the craft
The phrase “software factory” gives Abdalla pause because it loses sight of the people doing the work. Her alternative begins with a mug bought at a farmers market. Its maker had thought carefully about the handle’s curve, a dimple for resting a thumb and glazing at the top intended to catch overflow. Those details express judgments about how people will use the finished object. 14:39
The potter became even more animated when describing the workshop that supported those judgments. Different stations handled different components. Clay was sourced and prepared ahead of time. Verification checked components and determined where work should restart if something was wrong—for example, if the thumb dimple had the wrong size. In Abdalla’s account, this system supported dozens of apprentices and hundreds of handcrafted mugs per day.
The useful analogy is the relationship between craft and repeatability. A good idea becomes easier for others to realize when the workspace supplies prepared inputs, appropriate stations and checks that guide correction. The workshop can scale while remaining responsive to its workers and the objects they make. For software, that means giving a widening group of builders serious systems for turning ideas into code, with experienced engineers helping shape the support those systems provide.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make the system responsive, inspectable and affordable
The workshop analogy ends in concrete engineering requirements. Exposing primitives is only part of the job; the system also needs to respond to what happens during work. 18:07
- Event-driven automation: Agents should react to real-world events, as workers respond when a component breaks or equipment needs attention. The earlier issue-triage and social-mention tools show this pattern in software.
- Observability: People must be able to inspect the system and see how work proceeds. The potter watched people working and used those observations to refine the process.
- Improvement over time: The workspace must change with the goals of its users and the product it produces. Its initial arrangement is a starting point for continued adjustment.
Cost places another constraint on that improvement. Reducing broken mugs—or buggy software—must remain affordable. In an agent system, repeated work consumes tokens, so adding activity is not automatically progress. The goal is to improve what comes out while keeping the cost of producing it under control.
The work worth removing includes the difficulty of reproducing bugs and monitoring production systems. Those tasks require structure, not merely another code-generation prompt. Making them repeatable also makes them easier to transfer to people in nontechnical roles. The platform’s purpose is to remove toil and drudgery so more people can build, while the workshop keeps the people, their judgment and the evolving process in view.
For a conversation about these engineering philosophies, Abdalla closes by inviting builders to contact her. Her personal site provides the email contact she mentions, offering a practical way to follow up on the systems behind the platform.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
The contact route Abdalla offers for following up on the engineering philosophies behind Warp’s cloud agent platform; she directs readers here to find her email.
Related talks
- Harnesses in AI: A Deep Dive
A companion topic for examining the harness layer that Warp makes interchangeable within its cloud platform.
- Building uReview, Uber’s Multi-Agent Code Review Engine — Will Bond & Ameya Ketkar, Uber
Another code-review system to explore alongside Warp’s agent-managed review gate.
- Harness Engineering is not Enough: Why Software Factories Fail
Extends the question of what surrounding systems software automation needs beyond an agent harness.
Read the complete timestamped transcript
- 0:01
[music]
- 0:12
>> Uh hi, welcome to this session. Uh it is
- 0:15
mysteriously titled The Agent Behind the
- 0:17
Curtain.
- 0:18
Um it's about how the team at Warp built
- 0:22
our cloud agent platform. Um
- 0:25
before I talk about the how though, I
- 0:27
want to talk about the why um and share
- 0:30
a little bit about my own background.
- 0:32
Um so, I've spent the past 8 years
- 0:35
building developer tooling.
- 0:36
Um I started off in open source in the
- 0:39
Python and data science space
- 0:41
um on the Jupiter Notebook core team. I
- 0:43
was a maintainer on the Interact
- 0:45
project. That work continued in my time
- 0:48
at Microsoft helping build APIs and SDKs
- 0:51
for web developers. Um and now I'm
- 0:54
working on bringing AI AI agents to the
- 0:57
cloud at Warp.
- 0:59
And one of the lessons that I've learned
- 1:01
in my time building developer tooling is
- 1:04
that really good dev tools meet devs
- 1:07
where they are and grow with them.
- 1:10
Um a tool that you're going to be using
- 1:11
every day should accommodate your
- 1:13
workflows, but also be really adaptable
- 1:16
as the like complexity and the nature of
- 1:18
the work changes.
- 1:20
And it's important for us to build
- 1:22
really great dev tools because dev tools
- 1:24
have a compounding effect on the world.
- 1:27
If you make a piece of software that
- 1:29
helps a developer or a builder do great
- 1:31
work, your ability to magnify how much
- 1:34
great software exists in the world
- 1:35
increases. So, I think it is super
- 1:37
important that these dev tools
- 1:39
accommodate people's workflows. And
- 1:42
people's workflows are important because
- 1:43
they love their preferences. You might
- 1:45
have a preference for a shell, a
- 1:47
language, a harness, a review process.
- 1:50
And something that adapts to your
- 1:52
workflows and preferences is going to be
- 1:54
more enjoyable to use and more enjoyable
- 1:57
to build software with. And it also
- 1:59
becomes like a part of how you think and
- 2:01
build. Um so, it's super important to be
- 2:03
attuned to that.
- 2:05
And this notion of tools meeting
- 2:08
developers where they are and growing
- 2:10
with them comes to light really clearly
- 2:13
in the progression of AI tooling in this
- 2:15
space.
- 2:17
So, this is the story for Warp
- 2:18
specifically, but it's also the story
- 2:20
for a lot of developer tools. Pre-AI
- 2:23
era, we had the Warp terminal, which
- 2:25
kind of met people in their command-line
- 2:27
workflows that they were used to.
- 2:30
And then this fantastic thing happened
- 2:32
where AI got introduced to developers,
- 2:34
and now you had a whole new set of tools
- 2:35
that was available to you locally on
- 2:37
your machine. And a lot of people
- 2:39
started to interact with agentic coding
- 2:41
patterns in their terminal, in their
- 2:44
IDE, in their editor.
- 2:46
And then eventually, we realized that we
- 2:48
had kind of reached the limits of what
- 2:50
we could do on our laptops, and we
- 2:52
wanted agents to do work that was more
- 2:54
long-running, that was adapted to
- 2:56
different constraints, and that work
- 2:58
needed to happen in the cloud.
- 3:01
Um and whenever you send anything to the
- 3:02
cloud, you adopt a lot of complexity um
- 3:06
because running things in the cloud
- 3:08
requires us to navigate a much messier
- 3:10
stack of infrastructure concerns. And
- 3:13
when I say we here, I mean the people
- 3:15
building developer tools cuz that is the
- 3:16
person that I am.
- 3:18
And it gets at one of the things that
- 3:20
are like a core principle in how we
- 3:22
think about unlocking capabilities here
- 3:25
and building good developer tools is
- 3:26
that platforms should take on complexity
- 3:29
before it reaches the user. A really
- 3:32
good experience should not expose
- 3:34
anything of if the leaky complexity that
- 3:36
it handles to you.
- 3:38
Um when we think about building our
- 3:40
cloud agent platform, we try and
- 3:42
structure it so that every primitive
- 3:44
models this philosophy of hiding
- 3:47
complexity from the user so they can
- 3:48
focus on the work that matters to them.
- 3:51
Um the first place that this shows up
- 3:53
when you're building a cloud agent
- 3:54
platform is where does the agent run if
- 3:57
it's not running on a developer's
- 3:59
machine?
- 4:01
Um, it needs a place to do its work like
- 4:03
any developer would and that place is
- 4:05
typically a sandbox. It's an isolated
- 4:07
environment in the cloud where agents do
- 4:09
this task.
- 4:11
When we started out building these out
- 4:12
for our cloud agent platform, our first
- 4:14
intuition was to provide self-hosted
- 4:17
sandboxes so that developers had a
- 4:19
really easy on-ramp for getting into our
- 4:21
cloud agent platform. You didn't have to
- 4:23
think about where your compute lived, it
- 4:25
was just there for you.
- 4:27
But the reality is that for teams doing
- 4:29
serious work, they're probably managing
- 4:31
their own infrastructure. They probably
- 4:33
have dev boxes that they need to
- 4:34
interact with and so something that is
- 4:37
hosted or managed is usually not
- 4:39
sufficient. You really need to be able
- 4:42
to run agent workloads on infrastructure
- 4:44
that people bring so it adapts to their
- 4:45
like security concerns, their deployment
- 4:47
practices,
- 4:49
their workflows and preferences on their
- 4:50
team.
- 4:51
And so we add support for not only
- 4:54
manage hosting but also self-hosting to
- 4:56
the platform and that is complexity that
- 4:58
you abstract away from the user and how
- 5:00
the behavior is modeled.
- 5:03
Um, the next kind of component is a
- 5:05
little bit more personal to people and
- 5:07
it's the harness that they want to use.
- 5:09
As we talked about earlier, people are
- 5:11
really passionate about the tools that
- 5:13
shape their workflows. Um, one of those
- 5:16
tools is the harness. Um, who here has a
- 5:18
preference for cloud code as a harness
- 5:20
locally?
- 5:22
Code X?
- 5:24
Something else entirely?
- 5:26
Right, so much diversity in the room and
- 5:28
we want to meet people where they work.
- 5:31
So you want to integrate multi-harness
- 5:33
support that not only accommodates
- 5:34
preferences but also gives people the
- 5:37
ability to do the use the right tool for
- 5:39
the job. And flexibility isn't something
- 5:42
that you just be like crammed into a
- 5:43
platform because the real risk you run
- 5:45
if you cram it in is that it becomes
- 5:47
fragmented. Your experience with working
- 5:50
with Claude is different from working
- 5:52
with Codex versus a custom harness that
- 5:54
you might have. And so, one of the key
- 5:56
properties is making sure that the
- 5:57
platform provides structure and
- 5:59
guardrails around the harness so that
- 6:02
the experience is consistent. Um for us,
- 6:05
this means that harnesses can interact
- 6:08
with all of the platform native
- 6:09
experiences. So, just being able to
- 6:11
store conversation state and rehydrate
- 6:14
it, being able to interact with the
- 6:16
artifacts and outputs that are produced
- 6:17
by agents, whether they're PRs, issues,
- 6:21
new files that are generated. All of
- 6:23
that should kind of be structured the
- 6:24
same way.
- 6:26
Okay, cool. So, we gave you a place for
- 6:29
your agent to run, and we gave you a
- 6:31
choice for what harness you use,
- 6:33
including Warp Zone harness and any
- 6:35
other harnesses that you want to bring.
- 6:37
Um
- 6:38
what if one agent isn't enough to do
- 6:40
work? That's the reality of most
- 6:43
software engineering.
- 6:44
I wish that I could just send off one
- 6:46
prompt and solve all of the problems
- 6:48
that exist in my software, but the
- 6:50
reality is that real engineering work
- 6:52
rarely fits inside one prompt. In a
- 6:55
typical workflow, you might need one
- 6:57
agent to go research a problem and plan
- 6:59
a solution. You might need another agent
- 7:01
to implement it, and you might need to
- 7:03
bring in a third to validate it. And you
- 7:06
might want each of these agents to use
- 7:07
different harnesses and different models
- 7:10
in order to have a real adversar-
- 7:12
adversarial and robust approach.
- 7:15
So, we have built-in support for that.
- 7:17
You can orchestrate agents across the
- 7:20
stack. Um
- 7:21
with a lot of agent-based experiences,
- 7:24
this orchestration happens via a prompt.
- 7:26
So, I say {slash} orchestrate, or I
- 7:28
queue the agent via prompting that I
- 7:30
want it to delegate work across multiple
- 7:32
sub agents for a task that I have here.
- 7:35
And this orchestrator agent will do all
- 7:37
of the messy complexity of interacting
- 7:39
with sub agents, mediating messages
- 7:41
between them, and tracking the work
- 7:43
that's happening for me behind the
- 7:45
scenes with a single prompt. We abstract
- 7:48
complexity away from the user by giving
- 7:51
them this experience.
- 7:53
This sort of like prompt-based model for
- 7:55
interacting with agents and subagents is
- 7:59
really powerful.
- 8:01
An even more interesting one is the
- 8:04
notion of interacting with agents and
- 8:06
subagents via the API.
- 8:09
So, everything in our surface area is
- 8:11
exposed via an API, and I can fire off a
- 8:14
request to say that I want to run a
- 8:16
subagent that is attached to a parent
- 8:18
agent um via configuration that I
- 8:20
provide. And this API is super magical
- 8:25
because
- 8:26
this is the key component of a platform.
- 8:29
Um it's exposing the primitives in a way
- 8:32
that users can build on top of.
- 8:35
Um the thing about great APIs and SDKs
- 8:38
is people can build on top of them,
- 8:39
which means that they're not restricted
- 8:41
to your UI or your opinion of how a
- 8:44
particular experience should look. This
- 8:46
is where like composability becomes
- 8:48
really powerful.
- 8:50
And so, we're trying to be intentional
- 8:51
about exposing an API for every key
- 8:54
component of the stack. So, this is APIs
- 8:57
for spinning up agents and subagents,
- 8:59
for managing the environments and
- 9:00
compute that these agents are running
- 9:03
in, for working with the artifacts that
- 9:05
they produce. All of that is exposed in
- 9:07
an API that you can build on top of.
- 9:11
Um
- 9:12
and this ability to build on top of
- 9:14
these primitives that are exposed via an
- 9:16
API becomes really useful because anyone
- 9:19
can build tools that overlap on top of
- 9:22
these agentic experiences.
- 9:25
>> [snorts]
- 9:25
>> Um
- 9:26
like interesting phenomena that's
- 9:27
happened for us internally is we have a
- 9:30
bunch of non-engineering teammates at
- 9:33
Warp who have been able to use our SDK
- 9:35
and API to build custom Slack bots to do
- 9:38
a bunch of things. Um so we have folks
- 9:41
in our developer relations team who have
- 9:43
actually built out tooling to help us
- 9:45
manage all of our social mentions. Um so
- 9:48
as tweets and Reddit posts and things
- 9:50
are coming in, we have agents that will
- 9:52
pick them up, do some sentiment analysis
- 9:54
on them, try and understand what the
- 9:55
user wants, and then propose a response
- 9:58
that um folks on our social media team
- 10:00
should use and um respond to the
- 10:03
original tweet or Reddit post or what
- 10:04
have you. And all of this is enabled by
- 10:06
our SDK. And you see like a plethora of
- 10:09
these types of experiences
- 10:12
um
- 10:12
internally at Warp. Um we have people
- 10:15
who have used them to help answer
- 10:17
queries about how our product is
- 10:19
working, do competitive research, all
- 10:21
sorts of interesting things.
- 10:24
Um and these primitives became a really
- 10:28
big deal for us specifically when we
- 10:30
decided to go open source.
- 10:32
Um as I mentioned earlier, Warp started
- 10:34
off as a terminal um but it grew into an
- 10:37
agentic development environment. And
- 10:39
about 3 months ago, we decided to go
- 10:41
open source.
- 10:43
Um this was like much anticipated,
- 10:46
long-awaited. It was a huge success for
- 10:49
us.
- 10:50
Um the number of like GitHub stars that
- 10:52
we had, I think catapulted from around
- 10:55
20,000 to over 60,000. We had thousands
- 10:59
of PRs. I'll talk a little bit more
- 11:01
about how we've been managing that. And
- 11:03
hundreds of contributors who had been
- 11:05
long-time users of the platform and were
- 11:07
finally getting a chance to build on top
- 11:10
of it.
- 11:11
And when we went open source, we wanted
- 11:13
to be really thoughtful about how we
- 11:16
could use agents to help us manage the
- 11:18
repository.
- 11:19
We didn't want this to be the kind of
- 11:21
thing where agents are just writing code
- 11:23
and firing off PRs. We want them them to
- 11:26
participate kind of meaningfully in the
- 11:28
structure that we use to triage issues
- 11:31
that came into the repo, provide context
- 11:33
around them, do implementation, do
- 11:36
reviews,
- 11:37
but still have the space for humans to
- 11:39
participate in this loop.
- 11:42
And we did that. So, if you go to the
- 11:44
Warp open-source repo right now, you'll
- 11:46
notice that if you file a new issue with
- 11:48
a bug report or a feature request, an
- 11:51
agent will kick in and start to triage
- 11:53
the issue automatically. It'll do
- 11:54
research across the code base and
- 11:56
context in the repo to understand what
- 11:58
you're trying to propose. It might ask
- 12:00
you questions if it feels like your
- 12:02
original query was a little abstract to
- 12:04
get more information, and it will kind
- 12:06
of do the work that's historically been
- 12:08
very hard for open source, which is
- 12:10
somebody has a problem or a bug that
- 12:12
they want fixed. They don't give you
- 12:13
enough details, and it's hard to get to
- 12:15
the clarity that you need to get to to
- 12:17
like drive the work forward. So, we can
- 12:19
use agents to help us meaningfully in
- 12:20
that way. They can also help draft
- 12:23
initial specifications and work for
- 12:25
tasks, do implementation, and provide a
- 12:28
review gate. So, all PRs that get
- 12:31
contributed to Warp go through an
- 12:33
agent-managed review process. And it
- 12:35
goes through multiple iterations, and we
- 12:37
don't actually ping any of the human
- 12:39
reviewers on our team until an agent has
- 12:42
approved our PRs, um which helps manage
- 12:45
the workload a lot for the team. So, all
- 12:46
of those thousands of PRs, the things
- 12:48
that humans actually have to manage are
- 12:50
only the high-signal, high-quality ones.
- 12:53
And one of the key principles is that we
- 12:55
improve the agent as um we get more PRs
- 12:59
in the repo and we see more examples of
- 13:01
code. One of the things that we believe
- 13:03
is that self-improvement loops are a
- 13:04
really important way for you to enhance
- 13:07
the overall SDLC life cycle that you're
- 13:09
seeing.
- 13:11
So, we did this.
- 13:14
And we had a lightbulb moment cuz it
- 13:15
unlocked something huge. We had this
- 13:17
like structured process that could
- 13:19
accommodate a big influx of issues and
- 13:22
PRs on the repo. Um
- 13:24
and the agents were there to support
- 13:28
anyone in bringing their idea or their
- 13:30
bug request bug feature request or bug
- 13:33
report to us or to work and then getting
- 13:35
it through to the actual product.
- 13:38
That key insight of agents providing
- 13:41
like structure and context was a really
- 13:43
big thing for us cuz it meant that it
- 13:46
could anyone could kind of participate
- 13:48
in translating their intent into
- 13:50
implementation.
- 13:52
And often times the people who have
- 13:55
really interesting intents and goals are
- 13:57
the ones who are using software in
- 13:58
interesting ways. And it's not always
- 14:00
the person that's building it. It's the
- 14:01
person who's kind of got domain
- 14:03
knowledge in the space. And work we're
- 14:05
lucky because we're developers building
- 14:07
a developer tool and that's a really
- 14:09
unique niche to fill in. But most
- 14:11
software is developers building tools
- 14:14
for non-developers
- 14:16
or people in situations where they don't
- 14:17
have domain expertise.
- 14:19
If we provide these structures and
- 14:21
guardrails though, people who are
- 14:22
non-developers can
- 14:25
have the necessary tools to like ship
- 14:27
serious software because the
- 14:29
infrastructure to support them exists.
- 14:33
Oh, this is where like things get buzzy.
- 14:35
You might have heard this term of the
- 14:37
software factory. People talk about it a
- 14:39
lot as far as like automating how
- 14:41
software gets built, providing these
- 14:43
systems for doing work,
- 14:46
all of these fun things.
- 14:48
I kind of want to push back on this term
- 14:51
a little bit. I kind of actually hate it
- 14:53
cuz I don't think it gets the point
- 14:54
across and it feels a little
- 14:57
Where's the people in this?
- 15:00
So I want to tell a story
- 15:03
before I share what I think is actually
- 15:04
the better word. So this is a mug that I
- 15:07
have. I bought this mug about two
- 15:09
summers ago from a farmer's market.
- 15:12
And I stopped by this booth at the
- 15:14
farmer's market and you could just tell
- 15:16
the person who had crafted this the
- 15:18
potter was just someone who's like
- 15:19
really passionate about their work and
- 15:21
what they do. And so, he was telling me
- 15:23
about all of these interesting details
- 15:25
in the mug, the specific like curve of
- 15:27
the handle, and the way he had
- 15:29
structured it to accommodate different
- 15:30
people's hands. He had this like
- 15:32
specific dimple at the top of the handle
- 15:34
where you could rest your thumb cuz he
- 15:37
felt like that was like a key ergonomic
- 15:39
detail of this mug. He had this glazing
- 15:41
at the top, so if like your cup
- 15:43
overflowed, it wouldn't dribble down the
- 15:44
sides, the glazing would kind of catch
- 15:46
it. So, he just spent so much time
- 15:48
thinking about the details of the mug
- 15:50
and crafting it.
- 15:52
And then I was kind of talking to him
- 15:53
about his workshop, like how many
- 15:54
potters do you have? How many of these
- 15:56
mugs are you making? Yada yada.
- 15:58
And he got more even more animated and
- 16:00
he started talking about his workshop
- 16:02
setup and how he had set up different
- 16:04
stations for different components of the
- 16:06
mug. He had talked about how he had a
- 16:08
specific process for sourcing clay and
- 16:10
preparing ahead of time. He talked about
- 16:13
how he actually incorporated
- 16:14
verification for different components of
- 16:16
the mug. If the dimple wasn't the right
- 16:18
size, what would you do? What part of
- 16:20
the process would you restart?
- 16:23
All of this thought that he had put not
- 16:25
into the mug itself, but how the
- 16:28
workshop existed to support the creation
- 16:31
of the mug, and how he was able to scale
- 16:34
this to dozens of apprentices in his
- 16:37
shop and like hundreds of mugs
- 16:39
handcrafted per day, which is pretty
- 16:42
impressive.
- 16:43
And this got me thinking, I love what he
- 16:45
did with his workshop. Um he had this
- 16:48
really great idea and he developed a
- 16:51
serious and repeatable system that
- 16:53
allowed anyone to take the idea of a
- 16:56
perfect mug and turn it into the like
- 16:59
actual existence of a perfect mug.
- 17:01
You know,
- 17:03
some people might think like workshops
- 17:04
are this quaint thing where it's like a
- 17:06
workspace for a single individual, but I
- 17:08
think the story really shows that
- 17:10
they're actually heavy-duty systems for
- 17:12
doing work and that they're malleable
- 17:14
and that they react to signals in how
- 17:16
people are interacting with the thing
- 17:18
they're building in the space they're
- 17:19
building it.
- 17:21
Um and it also underscores the like
- 17:23
really close interaction loop that
- 17:25
humans have with the spaces they work in
- 17:28
and the outputs that are produced. And
- 17:30
I'm synthesizing all of these ideas and
- 17:31
I think this is what really we're
- 17:33
driving at when we talk about building
- 17:35
software factories.
- 17:37
We want to give more builders and the
- 17:39
definition of who a builder is is
- 17:41
expanding to non-developers
- 17:43
serious systems for turning their ideas
- 17:46
into code. Um and we as individuals
- 17:48
who've been building dev tooling or have
- 17:50
been in software engineering for a long
- 17:52
time have an understanding of what that
- 17:54
serious system looks like and what kind
- 17:56
of support it needs to give into
- 17:57
individuals.
- 18:00
Um we break this down into the same
- 18:02
techniques that my potter friend had and
- 18:05
the same methodologies that I talked
- 18:07
about earlier about exposing primitives.
- 18:09
Um we expose things like the ability for
- 18:13
these agents to implement automations
- 18:15
that react to events in the real world
- 18:18
the same way that a human in a workspace
- 18:20
might need need to react to a real event
- 18:22
of you know a kiln um being astray or a
- 18:26
handle being broken.
- 18:28
We need to make these systems
- 18:29
observable. My potter friend talked
- 18:31
about how he actually watched the way
- 18:33
people worked in his space and refined
- 18:35
the process over time. That doesn't come
- 18:38
for free. Your system has to actually be
- 18:39
something that you can inspect and look
- 18:41
into.
- 18:43
And it has to improve over time. The
- 18:45
workspace is not the static component
- 18:47
that doesn't change ever. It needs to
- 18:49
react to what's going on and modify
- 18:51
itself to amend to like the goals of the
- 18:54
people that are working in it and the
- 18:55
product that it's producing.
- 18:59
And it needs to be cost-effective. Uh
- 19:01
you want to reduce the number of broken
- 19:03
mugs that come out the other end. You
- 19:05
want to reduce the amount of buggy
- 19:06
software that comes out of the other end
- 19:08
of your of your factory. Um and you want
- 19:11
to do this without compromising on cost
- 19:13
without spending too many tokens.
- 19:16
All of these principles work to achieve
- 19:20
a shared goal and that shared goal is
- 19:23
building systems that remove toil and
- 19:25
drudgery from our software process so
- 19:28
that more people have the ability to
- 19:29
build. We've seen the way like toil and
- 19:32
drudgery have manifested. It could be
- 19:34
all of the difficulty you might have
- 19:36
reproducing a bug, the challenges of
- 19:39
monitoring a production system. Those
- 19:41
are things that are really hard to do.
- 19:44
And we can finally start to think about
- 19:45
the structure of how we do them and
- 19:47
building systems that allow us to do
- 19:49
them repeatedly and transferably to
- 19:52
people who are in non-technical roles.
- 19:55
If these ideas excite you about how we
- 19:57
can build these robust and reliable
- 19:59
systems for anyone to ship software,
- 20:03
you could stop by the Warp booth to come
- 20:04
talk to me and the crew. We're at UG 20.
- 20:08
You can also mention me on Twitter. I'm
- 20:10
Captain Sophia on all social media,
- 20:13
GitHub, Twitter, all of that fun stuff.
- 20:15
Or just drop me an email. You can find
- 20:17
my email on my personal site.
- 20:19
Thanks for coming to this presentation.
- 20:21
I hope you learned something interesting
- 20:22
about some of the engineering
- 20:24
philosophies that are driving the next
- 20:27
set of work we do as far as agents,
- 20:29
developers, and AI.
- 20:32
>> [applause]