← All AI Engineer talks

AI Engineer World's Fair 2026

The Agent Behind the Curtain: Building the Oz Cloud Agent Platform — Safia Abdalla, Warp

Read the talk

Building Oz: Cloud Agents Inside a Human Software Process

Safia Abdalla explains how Warp combines sandbox infrastructure, shared harness behavior, orchestration, and APIs—and why a useful agent platform needs the structure and care of a workshop.

From a talk by Safia Abdalla

At a glance

Ideas worth remembering

  • Absorbing complexity requires preserving useful choices: managed or self-hosted compute, multiple harnesses, and consistent handling of conversation state and artifacts.

  • Prompt orchestration delegates coordination to an agent; APIs expose agents, parent–subagent relationships, environments, compute, and artifacts so users can build their own workflows.

  • Warp's repository workflow uses agents to clarify issues and iterate on reviews before notifying humans. The reported benefit is reduced reviewer workload; the talk does not establish a measured correctness guarantee.

  • The workshop metaphor connects repeatable production to human judgment: define stages and verification, inspect how work happens, improve the process, and reduce defects without excessive token costs.

Developer tools should grow with the work

Safia Abdalla opens with a principle drawn from eight years of building developer tooling: tools should meet developers where they are and grow with them. Her experience spans Python and data science open source, APIs and SDKs for web developers at Microsoft, and cloud agents at Warp. Across those settings, the requirement stays consistent: accommodate the workflows people already use while adapting as their work becomes more complex.

Preferences for a shell, language, harness, or review process matter because daily tools become part of how someone thinks and builds. Abdalla argues that improving those tools has a compounding effect: helping developers do better work increases the software they can create. Respecting their preferences is therefore part of making the tool useful, rather than an incidental customization feature.

Warp's progression illustrates the changing demands. It began as a terminal that fit existing command-line work. AI then brought agentic coding into local terminals, IDEs, and editors. As developers wanted longer-running work under different constraints, their laptops became a limiting environment. Moving agents to the cloud followed from that expansion in the work they were expected to perform.

0:320:35
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:01 · section reference included

Absorb infrastructure complexity without restricting where agents run

Cloud execution introduces a more complicated infrastructure stack. Abdalla assigns responsibility for managing it to the platform builder: each primitive should absorb complexity before it reaches the user. The first primitive is the agent's workplace. Once an agent leaves a developer's machine, it needs an environment in which to perform its task; a sandbox supplies that isolated cloud environment.

The hosting choice has to accommodate two needs. Supplied compute makes it easy to start without deciding where the workload will live. Teams with their own infrastructure and development boxes, however, need agents to operate within existing security concerns, deployment practices, and workflows. Warp therefore supports both managed hosting and self-hosting.

3:013:02
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:01 · section reference included

Multiple harnesses need a consistent platform

The next choice is the harness developers use to work with an agent. Supporting Claude, Codex, and custom harnesses accommodates personal preferences and lets users choose a tool suited to a particular job. But flexibility creates a risk: each harness can become a separate experience, leaving users to navigate differences that the platform was supposed to handle.

Warp's answer is to give harnesses common access to platform capabilities. Conversation state should be stored and rehydrated—restored for subsequent use—and agent outputs should have a consistent structure. Those outputs include pull requests, issues, and generated files. This defines the boundary of the abstraction: users can choose their harness while continuing to work with conversations and artifacts through a coherent platform experience. Abdalla describes this behavioral requirement without detailing a storage format or adapter implementation.

5:035:05
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:03 · section reference included

Coordinate agents through prompts and programmable primitives

A place to run and a choice of harness still leave the question of how to divide real engineering work. Abdalla gives a three-part example: one agent researches the problem and plans a solution, another implements it, and a third validates the result. Different harnesses and models can be used across those roles to encourage a more adversarial, robust process. This is a motivation for orchestration, rather than evidence that any particular combination guarantees correctness.

The prompt interface lets a user request delegation, for example with /orchestrate or an instruction to distribute a task among subagents. An orchestrator then interacts with those agents, mediates their messages, and tracks their work. The user's single request can therefore initiate a coordinated workflow without requiring the user to manage each exchange.

The API exposes another way to compose the same capabilities. A request can start a subagent attached to a parent agent using supplied configuration. More broadly, Warp exposes APIs for starting agents and subagents, managing their environments and compute, and working with their artifacts. These primitives let users build workflows beyond Warp's own UI and its assumptions about how an agent experience should look. The prompt interface offers convenient delegation; the API makes the underlying capabilities available to other applications.

6:386:40
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:37 · section reference included

Non-engineering teammates build their own workflows

Inside Warp, non-engineering teammates used the SDK and API to build custom Slack bots. One developer relations workflow handles social mentions: agents pick up tweets and Reddit posts, analyze sentiment, infer what the user wants, and propose a response for the social media team to use. The described handoff ends with a suggested response for people, rather than a claim that agents autonomously publish replies.

Other internal uses help answer questions about the product and perform competitive research. These examples show what programmable access enables: teams can wrap agent capabilities around their own recurring work. Abdalla reports the existence of these tools, but does not provide accuracy measurements for the sentiment analysis, proposed responses, or research.

9:269:27
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:25 · section reference included

Put agents inside the repository's process

Opening Warp's source made repository management a substantial use case for these primitives. Abdalla places the decision about three months before the talk and estimates that GitHub stars rose from around 20,000 to over 60,000, accompanied by thousands of pull requests and hundreds of contributors. These are her approximate figures. The team's response was to involve agents throughout issue triage, contextual research, implementation, and review while retaining human participation.

A new bug report or feature request triggers an agent to triage the issue. It researches the codebase and repository context to understand the proposal, then may ask the submitter questions when the request is too abstract. This addresses a familiar maintenance bottleneck: a person knows something is wrong but has not supplied enough detail to make the work actionable. The agent helps establish that clarity and can then help draft an initial specification or implement the task.

Contributed pull requests also pass through an agent-managed review gate. The process can take multiple iterations, and human reviewers are not notified until an agent approves the pull request. Abdalla says this reduces the team's workload by directing human attention toward higher-quality contributions. The concrete mechanism is a gate on when human review is requested; agent approval is not described as automatic merge authority, and no measured defect rate is supplied.

The team also improves the agent as new pull requests and code examples arrive. Abdalla treats this feedback loop as part of improving the software development lifecycle itself. She does not specify whether those changes involve prompts, rules, models, or another mechanism, so the claim is about iterative improvement of the process rather than a particular self-training architecture.

10:2410:28
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:24 · section reference included

Structure helps domain experts turn intent into implementation

For Abdalla, the larger result is a structured path through which people can bring a feature idea or bug report toward an actual product change. Agents supply context and support along that path, allowing the repository to accommodate a large influx of issues and pull requests. Their value includes helping people express and develop an intent that was not yet ready for implementation.

That matters because useful goals often come from people who understand a domain through using software, even if they do not build it. Warp occupies the unusual position of developers making a developer tool; many software teams build for people whose expertise differs from their own. Abdalla argues that supporting infrastructure and guardrails can give these non-developers a way to participate in shipping serious software. The enabling condition is the surrounding process that helps carry their knowledge into implementation.

13:1113:14
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:11 · section reference included

A workshop makes craft repeatable

Abdalla pushes back on the term “software factory” because she feels it loses the people involved. Her alternative comes from a potter who sold her a mug at a farmer's market about two summers earlier. He described the care behind its handle curve, its accommodation of different hands, and a dimple for resting a thumb. He also explained a glazing detail intended to catch overflow. The product embodied many small decisions about how someone would use it.

The potter had applied comparable care to the workshop. Different stations handled different components, clay sourcing and preparation followed a defined process, and verification checked components as they were made. A dimple of the wrong size raised concrete operational questions: what should happen next, and which part of the process should restart? According to Abdalla's account, this organization supported dozens of apprentices and hundreds of handcrafted mugs per day.

The workshop is therefore a serious, repeatable system for turning an idea into an object. It can scale while remaining malleable: people observe how the work proceeds and change the environment in response. This is the quality Abdalla wants the metaphor to retain—a close feedback loop among the people doing the work, the space that supports them, and the outputs they produce.

14:3314:35
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:33 · section reference included

Make the system observable, adaptable, and economical

Abdalla translates the workshop into requirements for software tooling. As the definition of a builder expands to include non-developers, experienced engineers can supply the systems that support their work. One requirement is automation that reacts to real events. Just as a workshop must respond to a broken handle or a problem with a kiln, an agent system needs primitives that let work respond to changing conditions.

Another requirement is observability. The potter improved his process by watching how people worked; software systems likewise need to be inspectable if their owners are to refine them. Improvement depends on that visibility. The working environment must be able to change with the goals of its users and the product it produces, rather than remain fixed after its initial design.

Quality also has to be economical. Abdalla pairs reducing broken mugs with reducing buggy software, then adds the constraint of avoiding excessive token spending. The goal is a process that improves its output while controlling the resources consumed. She presents this as a design requirement, without prescribing a token budget or a measured quality-versus-cost optimum.

These requirements serve a practical goal: remove toil so more people can build. Reproducing a bug and monitoring production are her closing examples of difficult work that could benefit from a repeatable, structured process. Making those processes transferable to people in nontechnical roles is part of the ambition. She closes by inviting further conversation with the Warp team and thanking the audience, leaving the emphasis on robust systems that help people turn ideas into software.

17:3717:39
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

17:37 · section reference included

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:12

    >> Uh hi, welcome to this session. Uh it is

  3. 0:15

    mysteriously titled The Agent Behind the

  4. 0:17

    Curtain.

  5. 0:18

    Um it's about how the team at Warp built

  6. 0:22

    our cloud agent platform. Um

  7. 0:25

    before I talk about the how though, I

  8. 0:27

    want to talk about the why um and share

  9. 0:30

    a little bit about my own background.

  10. 0:32

    Um so, I've spent the past 8 years

  11. 0:35

    building developer tooling.

  12. 0:36

    Um I started off in open source in the

  13. 0:39

    Python and data science space

  14. 0:41

    um on the Jupiter Notebook core team. I

  15. 0:43

    was a maintainer on the Interact

  16. 0:45

    project. That work continued in my time

  17. 0:48

    at Microsoft helping build APIs and SDKs

  18. 0:51

    for web developers. Um and now I'm

  19. 0:54

    working on bringing AI AI agents to the

  20. 0:57

    cloud at Warp.

  21. 0:59

    And one of the lessons that I've learned

  22. 1:01

    in my time building developer tooling is

  23. 1:04

    that really good dev tools meet devs

  24. 1:07

    where they are and grow with them.

  25. 1:10

    Um a tool that you're going to be using

  26. 1:11

    every day should accommodate your

  27. 1:13

    workflows, but also be really adaptable

  28. 1:16

    as the like complexity and the nature of

  29. 1:18

    the work changes.

  30. 1:20

    And it's important for us to build

  31. 1:22

    really great dev tools because dev tools

  32. 1:24

    have a compounding effect on the world.

  33. 1:27

    If you make a piece of software that

  34. 1:29

    helps a developer or a builder do great

  35. 1:31

    work, your ability to magnify how much

  36. 1:34

    great software exists in the world

  37. 1:35

    increases. So, I think it is super

  38. 1:37

    important that these dev tools

  39. 1:39

    accommodate people's workflows. And

  40. 1:42

    people's workflows are important because

  41. 1:43

    they love their preferences. You might

  42. 1:45

    have a preference for a shell, a

  43. 1:47

    language, a harness, a review process.

  44. 1:50

    And something that adapts to your

  45. 1:52

    workflows and preferences is going to be

  46. 1:54

    more enjoyable to use and more enjoyable

  47. 1:57

    to build software with. And it also

  48. 1:59

    becomes like a part of how you think and

  49. 2:01

    build. Um so, it's super important to be

  50. 2:03

    attuned to that.

  51. 2:05

    And this notion of tools meeting

  52. 2:08

    developers where they are and growing

  53. 2:10

    with them comes to light really clearly

  54. 2:13

    in the progression of AI tooling in this

  55. 2:15

    space.

  56. 2:17

    So, this is the story for Warp

  57. 2:18

    specifically, but it's also the story

  58. 2:20

    for a lot of developer tools. Pre-AI

  59. 2:23

    era, we had the Warp terminal, which

  60. 2:25

    kind of met people in their command-line

  61. 2:27

    workflows that they were used to.

  62. 2:30

    And then this fantastic thing happened

  63. 2:32

    where AI got introduced to developers,

  64. 2:34

    and now you had a whole new set of tools

  65. 2:35

    that was available to you locally on

  66. 2:37

    your machine. And a lot of people

  67. 2:39

    started to interact with agentic coding

  68. 2:41

    patterns in their terminal, in their

  69. 2:44

    IDE, in their editor.

  70. 2:46

    And then eventually, we realized that we

  71. 2:48

    had kind of reached the limits of what

  72. 2:50

    we could do on our laptops, and we

  73. 2:52

    wanted agents to do work that was more

  74. 2:54

    long-running, that was adapted to

  75. 2:56

    different constraints, and that work

  76. 2:58

    needed to happen in the cloud.

  77. 3:01

    Um and whenever you send anything to the

  78. 3:02

    cloud, you adopt a lot of complexity um

  79. 3:06

    because running things in the cloud

  80. 3:08

    requires us to navigate a much messier

  81. 3:10

    stack of infrastructure concerns. And

  82. 3:13

    when I say we here, I mean the people

  83. 3:15

    building developer tools cuz that is the

  84. 3:16

    person that I am.

  85. 3:18

    And it gets at one of the things that

  86. 3:20

    are like a core principle in how we

  87. 3:22

    think about unlocking capabilities here

  88. 3:25

    and building good developer tools is

  89. 3:26

    that platforms should take on complexity

  90. 3:29

    before it reaches the user. A really

  91. 3:32

    good experience should not expose

  92. 3:34

    anything of if the leaky complexity that

  93. 3:36

    it handles to you.

  94. 3:38

    Um when we think about building our

  95. 3:40

    cloud agent platform, we try and

  96. 3:42

    structure it so that every primitive

  97. 3:44

    models this philosophy of hiding

  98. 3:47

    complexity from the user so they can

  99. 3:48

    focus on the work that matters to them.

  100. 3:51

    Um the first place that this shows up

  101. 3:53

    when you're building a cloud agent

  102. 3:54

    platform is where does the agent run if

  103. 3:57

    it's not running on a developer's

  104. 3:59

    machine?

  105. 4:01

    Um, it needs a place to do its work like

  106. 4:03

    any developer would and that place is

  107. 4:05

    typically a sandbox. It's an isolated

  108. 4:07

    environment in the cloud where agents do

  109. 4:09

    this task.

  110. 4:11

    When we started out building these out

  111. 4:12

    for our cloud agent platform, our first

  112. 4:14

    intuition was to provide self-hosted

  113. 4:17

    sandboxes so that developers had a

  114. 4:19

    really easy on-ramp for getting into our

  115. 4:21

    cloud agent platform. You didn't have to

  116. 4:23

    think about where your compute lived, it

  117. 4:25

    was just there for you.

  118. 4:27

    But the reality is that for teams doing

  119. 4:29

    serious work, they're probably managing

  120. 4:31

    their own infrastructure. They probably

  121. 4:33

    have dev boxes that they need to

  122. 4:34

    interact with and so something that is

  123. 4:37

    hosted or managed is usually not

  124. 4:39

    sufficient. You really need to be able

  125. 4:42

    to run agent workloads on infrastructure

  126. 4:44

    that people bring so it adapts to their

  127. 4:45

    like security concerns, their deployment

  128. 4:47

    practices,

  129. 4:49

    their workflows and preferences on their

  130. 4:50

    team.

  131. 4:51

    And so we add support for not only

  132. 4:54

    manage hosting but also self-hosting to

  133. 4:56

    the platform and that is complexity that

  134. 4:58

    you abstract away from the user and how

  135. 5:00

    the behavior is modeled.

  136. 5:03

    Um, the next kind of component is a

  137. 5:05

    little bit more personal to people and

  138. 5:07

    it's the harness that they want to use.

  139. 5:09

    As we talked about earlier, people are

  140. 5:11

    really passionate about the tools that

  141. 5:13

    shape their workflows. Um, one of those

  142. 5:16

    tools is the harness. Um, who here has a

  143. 5:18

    preference for cloud code as a harness

  144. 5:20

    locally?

  145. 5:22

    Code X?

  146. 5:24

    Something else entirely?

  147. 5:26

    Right, so much diversity in the room and

  148. 5:28

    we want to meet people where they work.

  149. 5:31

    So you want to integrate multi-harness

  150. 5:33

    support that not only accommodates

  151. 5:34

    preferences but also gives people the

  152. 5:37

    ability to do the use the right tool for

  153. 5:39

    the job. And flexibility isn't something

  154. 5:42

    that you just be like crammed into a

  155. 5:43

    platform because the real risk you run

  156. 5:45

    if you cram it in is that it becomes

  157. 5:47

    fragmented. Your experience with working

  158. 5:50

    with Claude is different from working

  159. 5:52

    with Codex versus a custom harness that

  160. 5:54

    you might have. And so, one of the key

  161. 5:56

    properties is making sure that the

  162. 5:57

    platform provides structure and

  163. 5:59

    guardrails around the harness so that

  164. 6:02

    the experience is consistent. Um for us,

  165. 6:05

    this means that harnesses can interact

  166. 6:08

    with all of the platform native

  167. 6:09

    experiences. So, just being able to

  168. 6:11

    store conversation state and rehydrate

  169. 6:14

    it, being able to interact with the

  170. 6:16

    artifacts and outputs that are produced

  171. 6:17

    by agents, whether they're PRs, issues,

  172. 6:21

    new files that are generated. All of

  173. 6:23

    that should kind of be structured the

  174. 6:24

    same way.

  175. 6:26

    Okay, cool. So, we gave you a place for

  176. 6:29

    your agent to run, and we gave you a

  177. 6:31

    choice for what harness you use,

  178. 6:33

    including Warp Zone harness and any

  179. 6:35

    other harnesses that you want to bring.

  180. 6:37

    Um

  181. 6:38

    what if one agent isn't enough to do

  182. 6:40

    work? That's the reality of most

  183. 6:43

    software engineering.

  184. 6:44

    I wish that I could just send off one

  185. 6:46

    prompt and solve all of the problems

  186. 6:48

    that exist in my software, but the

  187. 6:50

    reality is that real engineering work

  188. 6:52

    rarely fits inside one prompt. In a

  189. 6:55

    typical workflow, you might need one

  190. 6:57

    agent to go research a problem and plan

  191. 6:59

    a solution. You might need another agent

  192. 7:01

    to implement it, and you might need to

  193. 7:03

    bring in a third to validate it. And you

  194. 7:06

    might want each of these agents to use

  195. 7:07

    different harnesses and different models

  196. 7:10

    in order to have a real adversar-

  197. 7:12

    adversarial and robust approach.

  198. 7:15

    So, we have built-in support for that.

  199. 7:17

    You can orchestrate agents across the

  200. 7:20

    stack. Um

  201. 7:21

    with a lot of agent-based experiences,

  202. 7:24

    this orchestration happens via a prompt.

  203. 7:26

    So, I say {slash} orchestrate, or I

  204. 7:28

    queue the agent via prompting that I

  205. 7:30

    want it to delegate work across multiple

  206. 7:32

    sub agents for a task that I have here.

  207. 7:35

    And this orchestrator agent will do all

  208. 7:37

    of the messy complexity of interacting

  209. 7:39

    with sub agents, mediating messages

  210. 7:41

    between them, and tracking the work

  211. 7:43

    that's happening for me behind the

  212. 7:45

    scenes with a single prompt. We abstract

  213. 7:48

    complexity away from the user by giving

  214. 7:51

    them this experience.

  215. 7:53

    This sort of like prompt-based model for

  216. 7:55

    interacting with agents and subagents is

  217. 7:59

    really powerful.

  218. 8:01

    An even more interesting one is the

  219. 8:04

    notion of interacting with agents and

  220. 8:06

    subagents via the API.

  221. 8:09

    So, everything in our surface area is

  222. 8:11

    exposed via an API, and I can fire off a

  223. 8:14

    request to say that I want to run a

  224. 8:16

    subagent that is attached to a parent

  225. 8:18

    agent um via configuration that I

  226. 8:20

    provide. And this API is super magical

  227. 8:25

    because

  228. 8:26

    this is the key component of a platform.

  229. 8:29

    Um it's exposing the primitives in a way

  230. 8:32

    that users can build on top of.

  231. 8:35

    Um the thing about great APIs and SDKs

  232. 8:38

    is people can build on top of them,

  233. 8:39

    which means that they're not restricted

  234. 8:41

    to your UI or your opinion of how a

  235. 8:44

    particular experience should look. This

  236. 8:46

    is where like composability becomes

  237. 8:48

    really powerful.

  238. 8:50

    And so, we're trying to be intentional

  239. 8:51

    about exposing an API for every key

  240. 8:54

    component of the stack. So, this is APIs

  241. 8:57

    for spinning up agents and subagents,

  242. 8:59

    for managing the environments and

  243. 9:00

    compute that these agents are running

  244. 9:03

    in, for working with the artifacts that

  245. 9:05

    they produce. All of that is exposed in

  246. 9:07

    an API that you can build on top of.

  247. 9:11

    Um

  248. 9:12

    and this ability to build on top of

  249. 9:14

    these primitives that are exposed via an

  250. 9:16

    API becomes really useful because anyone

  251. 9:19

    can build tools that overlap on top of

  252. 9:22

    these agentic experiences.

  253. 9:25

    >> [snorts]

  254. 9:25

    >> Um

  255. 9:26

    like interesting phenomena that's

  256. 9:27

    happened for us internally is we have a

  257. 9:30

    bunch of non-engineering teammates at

  258. 9:33

    Warp who have been able to use our SDK

  259. 9:35

    and API to build custom Slack bots to do

  260. 9:38

    a bunch of things. Um so we have folks

  261. 9:41

    in our developer relations team who have

  262. 9:43

    actually built out tooling to help us

  263. 9:45

    manage all of our social mentions. Um so

  264. 9:48

    as tweets and Reddit posts and things

  265. 9:50

    are coming in, we have agents that will

  266. 9:52

    pick them up, do some sentiment analysis

  267. 9:54

    on them, try and understand what the

  268. 9:55

    user wants, and then propose a response

  269. 9:58

    that um folks on our social media team

  270. 10:00

    should use and um respond to the

  271. 10:03

    original tweet or Reddit post or what

  272. 10:04

    have you. And all of this is enabled by

  273. 10:06

    our SDK. And you see like a plethora of

  274. 10:09

    these types of experiences

  275. 10:12

    um

  276. 10:12

    internally at Warp. Um we have people

  277. 10:15

    who have used them to help answer

  278. 10:17

    queries about how our product is

  279. 10:19

    working, do competitive research, all

  280. 10:21

    sorts of interesting things.

  281. 10:24

    Um and these primitives became a really

  282. 10:28

    big deal for us specifically when we

  283. 10:30

    decided to go open source.

  284. 10:32

    Um as I mentioned earlier, Warp started

  285. 10:34

    off as a terminal um but it grew into an

  286. 10:37

    agentic development environment. And

  287. 10:39

    about 3 months ago, we decided to go

  288. 10:41

    open source.

  289. 10:43

    Um this was like much anticipated,

  290. 10:46

    long-awaited. It was a huge success for

  291. 10:49

    us.

  292. 10:50

    Um the number of like GitHub stars that

  293. 10:52

    we had, I think catapulted from around

  294. 10:55

    20,000 to over 60,000. We had thousands

  295. 10:59

    of PRs. I'll talk a little bit more

  296. 11:01

    about how we've been managing that. And

  297. 11:03

    hundreds of contributors who had been

  298. 11:05

    long-time users of the platform and were

  299. 11:07

    finally getting a chance to build on top

  300. 11:10

    of it.

  301. 11:11

    And when we went open source, we wanted

  302. 11:13

    to be really thoughtful about how we

  303. 11:16

    could use agents to help us manage the

  304. 11:18

    repository.

  305. 11:19

    We didn't want this to be the kind of

  306. 11:21

    thing where agents are just writing code

  307. 11:23

    and firing off PRs. We want them them to

  308. 11:26

    participate kind of meaningfully in the

  309. 11:28

    structure that we use to triage issues

  310. 11:31

    that came into the repo, provide context

  311. 11:33

    around them, do implementation, do

  312. 11:36

    reviews,

  313. 11:37

    but still have the space for humans to

  314. 11:39

    participate in this loop.

  315. 11:42

    And we did that. So, if you go to the

  316. 11:44

    Warp open-source repo right now, you'll

  317. 11:46

    notice that if you file a new issue with

  318. 11:48

    a bug report or a feature request, an

  319. 11:51

    agent will kick in and start to triage

  320. 11:53

    the issue automatically. It'll do

  321. 11:54

    research across the code base and

  322. 11:56

    context in the repo to understand what

  323. 11:58

    you're trying to propose. It might ask

  324. 12:00

    you questions if it feels like your

  325. 12:02

    original query was a little abstract to

  326. 12:04

    get more information, and it will kind

  327. 12:06

    of do the work that's historically been

  328. 12:08

    very hard for open source, which is

  329. 12:10

    somebody has a problem or a bug that

  330. 12:12

    they want fixed. They don't give you

  331. 12:13

    enough details, and it's hard to get to

  332. 12:15

    the clarity that you need to get to to

  333. 12:17

    like drive the work forward. So, we can

  334. 12:19

    use agents to help us meaningfully in

  335. 12:20

    that way. They can also help draft

  336. 12:23

    initial specifications and work for

  337. 12:25

    tasks, do implementation, and provide a

  338. 12:28

    review gate. So, all PRs that get

  339. 12:31

    contributed to Warp go through an

  340. 12:33

    agent-managed review process. And it

  341. 12:35

    goes through multiple iterations, and we

  342. 12:37

    don't actually ping any of the human

  343. 12:39

    reviewers on our team until an agent has

  344. 12:42

    approved our PRs, um which helps manage

  345. 12:45

    the workload a lot for the team. So, all

  346. 12:46

    of those thousands of PRs, the things

  347. 12:48

    that humans actually have to manage are

  348. 12:50

    only the high-signal, high-quality ones.

  349. 12:53

    And one of the key principles is that we

  350. 12:55

    improve the agent as um we get more PRs

  351. 12:59

    in the repo and we see more examples of

  352. 13:01

    code. One of the things that we believe

  353. 13:03

    is that self-improvement loops are a

  354. 13:04

    really important way for you to enhance

  355. 13:07

    the overall SDLC life cycle that you're

  356. 13:09

    seeing.

  357. 13:11

    So, we did this.

  358. 13:14

    And we had a lightbulb moment cuz it

  359. 13:15

    unlocked something huge. We had this

  360. 13:17

    like structured process that could

  361. 13:19

    accommodate a big influx of issues and

  362. 13:22

    PRs on the repo. Um

  363. 13:24

    and the agents were there to support

  364. 13:28

    anyone in bringing their idea or their

  365. 13:30

    bug request bug feature request or bug

  366. 13:33

    report to us or to work and then getting

  367. 13:35

    it through to the actual product.

  368. 13:38

    That key insight of agents providing

  369. 13:41

    like structure and context was a really

  370. 13:43

    big thing for us cuz it meant that it

  371. 13:46

    could anyone could kind of participate

  372. 13:48

    in translating their intent into

  373. 13:50

    implementation.

  374. 13:52

    And often times the people who have

  375. 13:55

    really interesting intents and goals are

  376. 13:57

    the ones who are using software in

  377. 13:58

    interesting ways. And it's not always

  378. 14:00

    the person that's building it. It's the

  379. 14:01

    person who's kind of got domain

  380. 14:03

    knowledge in the space. And work we're

  381. 14:05

    lucky because we're developers building

  382. 14:07

    a developer tool and that's a really

  383. 14:09

    unique niche to fill in. But most

  384. 14:11

    software is developers building tools

  385. 14:14

    for non-developers

  386. 14:16

    or people in situations where they don't

  387. 14:17

    have domain expertise.

  388. 14:19

    If we provide these structures and

  389. 14:21

    guardrails though, people who are

  390. 14:22

    non-developers can

  391. 14:25

    have the necessary tools to like ship

  392. 14:27

    serious software because the

  393. 14:29

    infrastructure to support them exists.

  394. 14:33

    Oh, this is where like things get buzzy.

  395. 14:35

    You might have heard this term of the

  396. 14:37

    software factory. People talk about it a

  397. 14:39

    lot as far as like automating how

  398. 14:41

    software gets built, providing these

  399. 14:43

    systems for doing work,

  400. 14:46

    all of these fun things.

  401. 14:48

    I kind of want to push back on this term

  402. 14:51

    a little bit. I kind of actually hate it

  403. 14:53

    cuz I don't think it gets the point

  404. 14:54

    across and it feels a little

  405. 14:57

    Where's the people in this?

  406. 15:00

    So I want to tell a story

  407. 15:03

    before I share what I think is actually

  408. 15:04

    the better word. So this is a mug that I

  409. 15:07

    have. I bought this mug about two

  410. 15:09

    summers ago from a farmer's market.

  411. 15:12

    And I stopped by this booth at the

  412. 15:14

    farmer's market and you could just tell

  413. 15:16

    the person who had crafted this the

  414. 15:18

    potter was just someone who's like

  415. 15:19

    really passionate about their work and

  416. 15:21

    what they do. And so, he was telling me

  417. 15:23

    about all of these interesting details

  418. 15:25

    in the mug, the specific like curve of

  419. 15:27

    the handle, and the way he had

  420. 15:29

    structured it to accommodate different

  421. 15:30

    people's hands. He had this like

  422. 15:32

    specific dimple at the top of the handle

  423. 15:34

    where you could rest your thumb cuz he

  424. 15:37

    felt like that was like a key ergonomic

  425. 15:39

    detail of this mug. He had this glazing

  426. 15:41

    at the top, so if like your cup

  427. 15:43

    overflowed, it wouldn't dribble down the

  428. 15:44

    sides, the glazing would kind of catch

  429. 15:46

    it. So, he just spent so much time

  430. 15:48

    thinking about the details of the mug

  431. 15:50

    and crafting it.

  432. 15:52

    And then I was kind of talking to him

  433. 15:53

    about his workshop, like how many

  434. 15:54

    potters do you have? How many of these

  435. 15:56

    mugs are you making? Yada yada.

  436. 15:58

    And he got more even more animated and

  437. 16:00

    he started talking about his workshop

  438. 16:02

    setup and how he had set up different

  439. 16:04

    stations for different components of the

  440. 16:06

    mug. He had talked about how he had a

  441. 16:08

    specific process for sourcing clay and

  442. 16:10

    preparing ahead of time. He talked about

  443. 16:13

    how he actually incorporated

  444. 16:14

    verification for different components of

  445. 16:16

    the mug. If the dimple wasn't the right

  446. 16:18

    size, what would you do? What part of

  447. 16:20

    the process would you restart?

  448. 16:23

    All of this thought that he had put not

  449. 16:25

    into the mug itself, but how the

  450. 16:28

    workshop existed to support the creation

  451. 16:31

    of the mug, and how he was able to scale

  452. 16:34

    this to dozens of apprentices in his

  453. 16:37

    shop and like hundreds of mugs

  454. 16:39

    handcrafted per day, which is pretty

  455. 16:42

    impressive.

  456. 16:43

    And this got me thinking, I love what he

  457. 16:45

    did with his workshop. Um he had this

  458. 16:48

    really great idea and he developed a

  459. 16:51

    serious and repeatable system that

  460. 16:53

    allowed anyone to take the idea of a

  461. 16:56

    perfect mug and turn it into the like

  462. 16:59

    actual existence of a perfect mug.

  463. 17:01

    You know,

  464. 17:03

    some people might think like workshops

  465. 17:04

    are this quaint thing where it's like a

  466. 17:06

    workspace for a single individual, but I

  467. 17:08

    think the story really shows that

  468. 17:10

    they're actually heavy-duty systems for

  469. 17:12

    doing work and that they're malleable

  470. 17:14

    and that they react to signals in how

  471. 17:16

    people are interacting with the thing

  472. 17:18

    they're building in the space they're

  473. 17:19

    building it.

  474. 17:21

    Um and it also underscores the like

  475. 17:23

    really close interaction loop that

  476. 17:25

    humans have with the spaces they work in

  477. 17:28

    and the outputs that are produced. And

  478. 17:30

    I'm synthesizing all of these ideas and

  479. 17:31

    I think this is what really we're

  480. 17:33

    driving at when we talk about building

  481. 17:35

    software factories.

  482. 17:37

    We want to give more builders and the

  483. 17:39

    definition of who a builder is is

  484. 17:41

    expanding to non-developers

  485. 17:43

    serious systems for turning their ideas

  486. 17:46

    into code. Um and we as individuals

  487. 17:48

    who've been building dev tooling or have

  488. 17:50

    been in software engineering for a long

  489. 17:52

    time have an understanding of what that

  490. 17:54

    serious system looks like and what kind

  491. 17:56

    of support it needs to give into

  492. 17:57

    individuals.

  493. 18:00

    Um we break this down into the same

  494. 18:02

    techniques that my potter friend had and

  495. 18:05

    the same methodologies that I talked

  496. 18:07

    about earlier about exposing primitives.

  497. 18:09

    Um we expose things like the ability for

  498. 18:13

    these agents to implement automations

  499. 18:15

    that react to events in the real world

  500. 18:18

    the same way that a human in a workspace

  501. 18:20

    might need need to react to a real event

  502. 18:22

    of you know a kiln um being astray or a

  503. 18:26

    handle being broken.

  504. 18:28

    We need to make these systems

  505. 18:29

    observable. My potter friend talked

  506. 18:31

    about how he actually watched the way

  507. 18:33

    people worked in his space and refined

  508. 18:35

    the process over time. That doesn't come

  509. 18:38

    for free. Your system has to actually be

  510. 18:39

    something that you can inspect and look

  511. 18:41

    into.

  512. 18:43

    And it has to improve over time. The

  513. 18:45

    workspace is not the static component

  514. 18:47

    that doesn't change ever. It needs to

  515. 18:49

    react to what's going on and modify

  516. 18:51

    itself to amend to like the goals of the

  517. 18:54

    people that are working in it and the

  518. 18:55

    product that it's producing.

  519. 18:59

    And it needs to be cost-effective. Uh

  520. 19:01

    you want to reduce the number of broken

  521. 19:03

    mugs that come out the other end. You

  522. 19:05

    want to reduce the amount of buggy

  523. 19:06

    software that comes out of the other end

  524. 19:08

    of your of your factory. Um and you want

  525. 19:11

    to do this without compromising on cost

  526. 19:13

    without spending too many tokens.

  527. 19:16

    All of these principles work to achieve

  528. 19:20

    a shared goal and that shared goal is

  529. 19:23

    building systems that remove toil and

  530. 19:25

    drudgery from our software process so

  531. 19:28

    that more people have the ability to

  532. 19:29

    build. We've seen the way like toil and

  533. 19:32

    drudgery have manifested. It could be

  534. 19:34

    all of the difficulty you might have

  535. 19:36

    reproducing a bug, the challenges of

  536. 19:39

    monitoring a production system. Those

  537. 19:41

    are things that are really hard to do.

  538. 19:44

    And we can finally start to think about

  539. 19:45

    the structure of how we do them and

  540. 19:47

    building systems that allow us to do

  541. 19:49

    them repeatedly and transferably to

  542. 19:52

    people who are in non-technical roles.

  543. 19:55

    If these ideas excite you about how we

  544. 19:57

    can build these robust and reliable

  545. 19:59

    systems for anyone to ship software,

  546. 20:03

    you could stop by the Warp booth to come

  547. 20:04

    talk to me and the crew. We're at UG 20.

  548. 20:08

    You can also mention me on Twitter. I'm

  549. 20:10

    Captain Sophia on all social media,

  550. 20:13

    GitHub, Twitter, all of that fun stuff.

  551. 20:15

    Or just drop me an email. You can find

  552. 20:17

    my email on my personal site.

  553. 20:19

    Thanks for coming to this presentation.

  554. 20:21

    I hope you learned something interesting

  555. 20:22

    about some of the engineering

  556. 20:24

    philosophies that are driving the next

  557. 20:27

    set of work we do as far as agents,

  558. 20:29

    developers, and AI.

  559. 20:32

    >> [applause]