Unlock Agent Autonomy: The Runtime for AI-Native Systems — Tushar Jain, Docker

AI Engineer · 22 min · 356 sentences · from YouTube's caption track

Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.

  1. 00:01[music]
  2. 00:12All right.
  3. 00:13Can we start?
  4. 00:14All right, there you go.
  5. 00:15Um hey everyone, welcome.
  6. 00:18Uh I hope everyone's enjoying the conference.
  7. 00:20This is uh a really fun conference.
  8. 00:22I've enjoyed all the talks and the presents here.
  9. 00:24Okay, so we're going to talk about unlocking agent autonomy and what that means.
  10. 00:29These last years have been crazy.
  11. 00:31I'm sure you all felt it, right?
  12. 00:32Like 2 years ago we were talking about chatbots and here we are.
  13. 00:36We're now in this world where we all see the autonomy we get from agents.
  14. 00:40Agents have become powerful and they'll continue being so.
  15. 00:44Um at this point, the next big challenge like we spent the last 2 years trying to make agents more intelligent and powerful and that'll keep going and I think we're almost there.
  16. 00:53I think the next challenge in front of us is actually harder and more important, which is how to make them safer.
  17. 00:58At this point, I don't think intelligence is the next big blocker for us to leverage agents.
  18. 01:03It is actually how to do so safely so we can give them all the access and autonomy they need.
  19. 01:08Just as a story, this is a small anecdote.
  20. 01:10I'm sure everyone here has some version of this.
  21. 01:13Um this is one of many agents I run.
  22. 01:16This runs every night.
  23. 01:17It looks at some repos I care about and you know, just does some analysis for me.
  24. 01:21What activities happen, who's been doing what, what progress has been made.
  25. 01:25Um I have others that might do some more, might analyze the code review comments, have some of my own analysis in there, be like, what was the tone, who did what, how were they acting?
  26. 01:34I'm a manager.
  27. 01:35This is not meant for public views, just meant to help me keep a pulse.
  28. 01:38But still, it's not something I want shared.
  29. 01:41It's for my own knowledge, something to keep up.
  30. 01:44This agent has been running for weeks just fine.
  31. 01:46Runs every night, sends me an email, I look at it.
  32. 01:49Randomly one day, uh it decided to post this report as a PR on the repo.
  33. 01:55Why?
  34. 01:55Nothing's changed, just the model decided to be helpful.
  35. 01:59Um so
  36. 02:01[laughter]
  37. 02:02Thank you.
  38. 02:03Um But this is a fundamental thing, right?
  39. 02:06Like agents do stuff.
  40. 02:08They try to be helpful.
  41. 02:09They increase and change the goal they're doing.
  42. 02:12Either cuz they themselves are just trying to be helpful, or they get confused, they make a mistake, or they get prompt injected, right?
  43. 02:19Um This is a simple example, honestly.
  44. 02:22Like it's easy to fix this.
  45. 02:24That agent should never have had write access to GitHub.
  46. 02:27It should have just had read access, and that's an easy fix.
  47. 02:30Um But it's not that simple, right?
  48. 02:32That's a very easy case.
  49. 02:33Let's take Let's take another example.
  50. 02:35Let's imagine I have an agent, and I'm asking it to do investigate a latency spike.
  51. 02:40Check out latency spike.
  52. 02:41Great, it starts.
  53. 02:42It's looking at the logs.
  54. 02:44It sees, "Oh, I think there's another service here.
  55. 02:46I want the logs to for that service.
  56. 02:48Let me get that access."
  57. 02:49"Oh, I see this uh might be related to a recent check-in.
  58. 02:52I would like access to GitHub, to the repos, to read the recent commits."
  59. 02:56Uh this looks like it may have happened.
  60. 02:58Let me look at Slack conversations to see has there been any chatter about this to learn from there.
  61. 03:03Great, it asked for Slack access.
  62. 03:05These are all reasonable steps, right?
  63. 03:08This makes sense.
  64. 03:08This is what I would expect an engineer to do.
  65. 03:11But what's happening is that each time as it's expanding its goal, expanding what it's doing, it's crossing the trust boundary.
  66. 03:18It's increasing the scope of the task.
  67. 03:20And this is fundamentally where we run into trouble.
  68. 03:22How do we know it's okay to give it access?
  69. 03:24We now end up with an agent that has access to everything at the same time, and so anything becomes a vector where the blast radius expands.
  70. 03:33This is fundamentally the big difference we're running into and the big challenge.
  71. 03:37Earlier, traditional software was deterministic, you could define the permissions.
  72. 03:41But now as agents become autonomous um and they gain and they try to solve more problems, what they're doing changes at runtime.
  73. 03:49The access they need changes at runtime.
  74. 03:51And right now we haven't truly solved this.
  75. 03:53We haven't solved how to give them exactly the access they need, how to do this in a safe manner, how to know if it's correct.
  76. 04:00And this is the fundamental thing I think we have to go solve now to actually unlock autonomy.
  77. 04:05And so we go away from like can it do this to like should it do this and how do we give it that access?
  78. 04:13Also, this is something we can't just rely on the next frontier agent being really good and not making a mistake.
  79. 04:19We're going to use more than one model.
  80. 04:21I just think fundamentally we're all already there, I think.
  81. 04:24No one is going to bet everything on a single model or even a single frontier lab.
  82. 04:30You'll use models from different frontier labs as they make progress.
  83. 04:32And importantly, we will all use open models.
  84. 04:35We're all living through the GLM 5.2 um uh amazing progress last few weeks.
  85. 04:41And this is just the start, but there'll be more and more of this.
  86. 04:44So we'll end up wanting to use different models for different reasons.
  87. 04:47Privacy, cost, etc. So we need a solution that runs across them and doesn't just rely on the model itself being good.
  88. 04:55We'll also use multiple harnesses.
  89. 04:57You won't just use a single harness from a single provider.
  90. 05:00One, you should like betting entirely on a harness from a frontier lab makes it hard for to get choice across models from labs and across open models.
  91. 05:12Two, there'll be harnesses for different use cases.
  92. 05:14Right now we're all very focused on coding, but we're going to expand.
  93. 05:17Uh the open claw moment happened, but it's still not landed fully, right?
  94. 05:22You can imagine sales people, marketing people having claws running doing stuff.
  95. 05:26So the kind of harnesses and agents will use will grow and you'll build your own.
  96. 05:30So we need something that works across harnesses and works across models.
  97. 05:36Um and we need something that it just doesn't just depend on no mistake happening, but constrains the environment around it.
  98. 05:44So what we want is an environment where the agent runs, where something goes wrong, there's limited blast radius, and we only give the access it needs, and we do this in a safe and correct manner.
  99. 05:57We think the best way to do this is to create a runtime.
  100. 05:59Is to have a runtime that all agents run on.
  101. 06:02So, this runs across any agent, any harness, and across models.
  102. 06:06And that's where we create these uh uh artifact these these capabilities that we want.
  103. 06:14There are three core pillars here.
  104. 06:17First is containment.
  105. 06:19You need to create an environment where it's controlled what the agent can get.
  106. 06:22Um this does mean sandboxes.
  107. 06:25And look, you can like throw a rock and find many sandbox something at this point, but it's more than that.
  108. 06:30So, when you have a you have a sandbox in which you can you run the agent and it gets only what it needs.
  109. 06:37And importantly, you run the agent inside the untrusted boundary, and you run controls outside, so outside of the VM boundary.
  110. 06:44Second, you scope access.
  111. 06:47This is more than just what network can you access, or even what tool can you access.
  112. 06:51But you need to give actual scoped capabilities.
  113. 06:54So, in our example, the agent now wants to access Slack to search for any conversations around this incident.
  114. 07:01Well, I could give it read only to Slack, but that's still more than what I want to give it.
  115. 07:05Maybe there's a single channel with only conversation with the incident, that's great.
  116. 07:09Often times that's not the case.
  117. 07:10It could be spread across many channels or a team channel with other conversation and I don't want this agent to get access to other content.
  118. 07:17How do I do this?
  119. 07:19The upfront predefined tools typically don't aren't that fine scoped.
  120. 07:23What what the runtime should do is maybe create a just-in-time tool that composes over existing Slack MCV tools or anything else, but restricts access to just conversations about the incident.
  121. 07:35And that's what the agent gets access to.
  122. 07:37We create and use and instead of having a big sandbox that we keep adding capabilities to, take that part, run it in a scoped sandbox for that task with just the scoped capability it needs.
  123. 07:49This now starts to build the runtime and fabric for us where we can give agents fine-scoped access, break down work into tasks across security boundaries, run those in contained sandboxes with just access they need.
  124. 08:04This feels much better and now we're getting to place where we can be safer, but we're still not done cuz the core a what access should you get?
  125. 08:13If this is asking for Slack, is that correct?
  126. 08:16Um if it's asking to read this read from the Slack channel or have write access to something, should that be allowed?
  127. 08:22How do you differentiate between what is correct, where it's making a mistake or being incorrectly eager, or where it's being prompt injected?
  128. 08:29This is where we have to This is what intent-based access becomes.
  129. 08:33We need to understand the user's intent or the task intent, take the context in in account, and then decide what access you get and how that should be run in which contained environment.
  130. 08:44And so that becomes the next big challenge for us to do, which is how do we safely evolve the capabilities the task gets.
  131. 08:50So in this example, it makes sense.
  132. 08:52Okay, investigating this incident, you're asking for read access to Slack for that incident.
  133. 08:57That seems rational.
  134. 08:57Let's do Let's do that.
  135. 08:59All of a sudden, you would like email access.
  136. 09:01Why?
  137. 09:02Nothing about the prompt said you should have that, so I'll deny that or I'll raise it up for human approval.
  138. 09:08But do this not just space in the frontier lab of the model that's running, but do this independent running at like a control layer in in the in the control sandbox layer in the core governance aspect
  139. 09:21independent across all models and all harnesses.
  140. 09:25This is sort of This starts to get us to a world now where we can actually have a runtime layer and run agents safely in a contained manner with scoped access and now deal with the dynamic aspect of this.
  141. 09:39And to be clear, look, this is a hard problem.
  142. 09:41It's not fully solved yet, but this is the world I think we have to move towards.
  143. 09:45But we're not done once we do this, cuz if you're building a runtime, not only does it have to provide the safety aspects you need, it also has to meet
  144. 09:53um our functional aspects.
  145. 09:56The runtime needs to follow the work.
  146. 09:58This can't just be something that runs locally or only in the cloud.
  147. 10:01It needs to go wherever we work, wherever agents work, and that's going to be everywhere.
  148. 10:05We'll work locally, we'll have agents running in the cloud, we'll do orchestration across clouds, we'll run them in our own VPC or in the customer's VPC as need be.
  149. 10:14The runtime has to be omnipresent and be able to move uh across all these environments.
  150. 10:19And ideally, it should be connected by a fabric, and so you can move agents up and down as you need to do.
  151. 10:28Docker spent the last Everyone knows Docker.
  152. 10:31I'm going to assume everyone knows Docker has used Docker.
  153. 10:33And you know it's the containers, and what Docker solved the last decade is portability.
  154. 10:38How do we get software from a laptop to the cloud?
  155. 10:41We're taking all of that experience and building a runtime and evolving that to now solve for safety.
  156. 10:46You still need portability, but you need safety, and you need this runtime to run across all environments.
  157. 10:52Um that's what we're focused on now.
  158. 10:53This is a new It starts with a brand new VM technology, and on top of that uh a bunch of advancements on MCP and policy and safety and governance.
  159. 11:03So, I'm going to show you a quick demo.
  160. 11:06Uh let's see if I can get this done in time.
  161. 11:09Also, you'll have to bear with me for a minute while I figure out how to do this here.
  162. 11:15Let's see.
  163. 11:21I had this figured out.
  164. 11:23Up.
  165. 11:25Uh Let's just do that.
  166. 11:32Do you guys see that?
  167. 11:33Cool.
  168. 11:34All right.
  169. 11:35So, is that visible?
  170. 11:40You'll see that?
  171. 11:40Cool.
  172. 11:41All right.
  173. 11:41I'm going to type over here.
  174. 11:42We'll see if this works.
  175. 11:43So, oops.
  176. 11:45Give me a minute.
  177. 11:49Let's start really basic.
  178. 11:51So, what we Oh my god.
  179. 11:55I'm there.
  180. 11:57Cool.
  181. 11:58Um just to orient you all, so you've got a new tool called SPX.
  182. 12:01Want to guess what it stands for?
  183. 12:02This is This runs with a new micro VM that runs across all environments, Windows, Mac, Linux, cloud, everywhere.
  184. 12:09Uh let's start simple just so you can see this.
  185. 12:11Let's say I just do something like let's give this a name.
  186. 12:13And we'll create something.
  187. 12:14We'll say Codex test one codex.dat.
  188. 12:20Great.
  189. 12:20Just like that, this is going to go spin up a codex for me in a sandbox that's running um with my credentials injected in and with the network controls injected in.
  190. 12:31So, just as a test, I can do tell me a joke and as you can see this works.
  191. 12:36And hopefully it tells me something funny.
  192. 12:38And I can also say um what credentials do you have access to and are they real or stubs?
  193. 12:52GitHub and codex creds.
  194. 12:55Ignore my typos.
  195. 12:57Um I'll wait a minute for that to run, but just to describe this, the base environment here is got a sandbox running.
  196. 13:02This looks like a normal agent.
  197. 13:03You get the DX you you're used to, but this is running in a safe environment now for you.
  198. 13:08No credentials are there.
  199. 13:09They're all injected in.
  200. 13:11Network policy is controlled.
  201. 13:12And you'll see later you can control MCT.
  202. 13:14You can control a lot more here.
  203. 13:15All right.
  204. 13:16Um I'm just going to ask you to believe me so we can save some time.
  205. 13:19This will come back and say all the creds are there, but they're all stubs.
  206. 13:22And they're all just being injected in.
  207. 13:24Uh this takes some time, so I'm going to escape out for this.
  208. 13:27Okay, so now um let's let's work through use case.
  209. 13:30Let's say I want to review a PR and I want to write that summary into a Notion page.
  210. 13:35Well, I can break this down.
  211. 13:36I don't need a single monolithic sandbox where I give it both credentials.
  212. 13:40I can have one task to do the PR, write it down.
  213. 13:43I can have a separate sandbox with just Notion access, no other network access to take that and write it up.
  214. 13:49This could be a good way to break it down.
  215. 13:50So, let's just do that manually so we get a feel for it.
  216. 13:53Um So, uh I'm going to just pull this over.
  217. 14:03So, I'm going to create a sandbox here.
  218. 14:05I'll give it a name.
  219. 14:06I have got a killed a kit uh a skill that tells it how to do the PR and go ahead and do that.
  220. 14:12And while that's going, this So, that's created.
  221. 14:20Um just so you get a sense.
  222. 14:22We can look at the policies here.
  223. 14:24Um that was my PR bot and as you can see it's got access to GitHub and Anthropic and that's it.
  224. 14:31Nothing else.
  225. 14:31I can't have I can't go anywhere else now.
  226. 14:34Um and actually just to make sure I'm going to give this more access.
  227. 14:38I already give it that.
  228. 14:39Great.
  229. 14:39So, let's just run it.
  230. 14:48Great.
  231. 14:48This will run and now I can tell it go research this PR and it'll go off and do the work and write a summary.
  232. 14:53All right, just to save us time, I'd already done this.
  233. 14:57So, now imagine this run.
  234. 15:02I can create another one here where I'll say this time I'm going to use Codex.
  235. 15:06And if you look here, I'm creating another sandbox.
  236. 15:09I'm giving this access to the Notion MCP.
  237. 15:13So, this is now an example of me containing it and giving scoped access just to what it needs.
  238. 15:18And this is not going to get access.
  239. 15:21I've I created this one, so assume I recreated it."
  240. 15:24And this one gets access to just those things.
  241. 15:30It doesn't have access to GitHub anymore over here.
  242. 15:32And now I can run this, and there I am, and I can tell it go do work.
  243. 15:39So, hopefully the idea you're getting is we get these sandboxes that can be composed and scoped down to the access they need.
  244. 15:44All right.
  245. 15:45Uh this is going to run.
  246. 15:46It'll do the right thing.
  247. 15:47It'll find the MCP tool and do all that.
  248. 15:49We'll save time there.
  249. 15:50Just trust you know, trust me.
  250. 15:51All right.
  251. 15:52So, great.
  252. 15:54Let's escape that, too, while that's running.
  253. 15:57Okay.
  254. 15:57So, this is great.
  255. 15:58I've got this now.
  256. 15:59But, you know what would be great is um I had created this thing.
  257. 16:05Well, can I just put this in the cloud?
  258. 16:08Let's find out.
  259. 16:08That'd be nice if my runtime just extends.
  260. 16:11Uh like sure.
  261. 16:13Uh I already created that, so give me I'm just going to give it a different name.
  262. 16:19Just um just bear with there.
  263. 16:27So, cool.
  264. 16:28That ran, and can I just go in there?
  265. 16:36Uh what did I do?
  266. 16:40Up.
  267. 16:41Dash dash cloud, and great.
  268. 16:45Are you running on the cloud or on a Mac?
  269. 16:51This might take a while for it to debug it all come down.
  270. 16:53But, this now took it this feels the same, but the exact same sandbox just runs in the cloud cuz the runtime is portable and goes there with your policies applied,
  271. 17:03with all your controls applied.
  272. 17:04So, the same policy plane, same control continues with you and extends.
  273. 17:09Um all right.
  274. 17:09I'm going to let this be great.
  275. 17:11It figured it out.
  276. 17:11It's running in the cloud.
  277. 17:13If I have the cloud, well, it'd be nice if I could do a lot of work with it and it fan out.
  278. 17:20So, there's a little script that goes tries to review six PRs, creates It's going to clean up that I run this before right before this.
  279. 17:27Create six sandboxes and runs them all in parallel.
  280. 17:31So, this is the power where you get the score same experience you have locally in the cloud with the same secure runtime uh and the same policy and scoped access running.
  281. 17:42So, this is going to run all six running in parallel.
  282. 17:45This is great.
  283. 17:46Uh I'm going to save us time and come out of that.
  284. 17:50Assume they all run.
  285. 17:52Um let me skip.
  286. 17:54Cool.
  287. 17:57Well, if I have I'll let that be for a minute.
  288. 18:04While that's running, if I can do cloud, well, it'd be really nice if I can orchestrate.
  289. 18:11Let's see if I can do that.
  290. 18:13Nope, that's my slide.
  291. 18:15Talk, excuse me.
  292. 18:18Great.
  293. 18:20So, what if I can now do actual orchestration?
  294. 18:23So, if this is a an orchestration tool we have, you see the same bots here, the Notion one and PR one.
  295. 18:31And we have this orchestrator that knows how to orchestrate.
  296. 18:34Um can I come here and tell it Uh where's my cursor?
  297. 18:41Can I come and tell it find 10 random PRs from and review them and write a summary to Notion.
  298. 18:55So, this will take some time.
  299. 18:56I'll just briefly show you what it's doing.
  300. 18:58This is the same runtime with the same control plane, with the same policy and scoped access, but now scaled out to orchestration and running.
  301. 19:05This will go off, it finds those agents, it'll schedule them, it'll compose over them, run PR with just a PR bot limited access, and then run the notion one with just a notion tool.
  302. 19:16This goes off and does work.
  303. 19:17And once I have this, you can do more things.
  304. 19:19You can create a schedule and schedule all that.
  305. 19:22So, we go from a runtime that's providing us scope like containment for just the task you need with scoped access, and the same thing follows you locally to the cloud to full orchestration.
  306. 19:34All right.
  307. 19:35Last thing.
  308. 19:40Um where is uh There you go.
  309. 19:44Okay.
  310. 19:45So, we said now we need um we need intent-based access.
  311. 19:50How do we manage this dynamically?
  312. 19:52This is still I'm showing you an early prototype we have internally, not built yet.
  313. 19:56Um let me fetch a PR here.
  314. 20:00Just give me Uh where Okay.
  315. 20:06So, what's happening here is we're running On the left, you see an agent running in a sandbox.
  316. 20:11You see the main agent over here.
  317. 20:13This has access just Anthropic Claude, no GitHub.
  318. 20:16But now I tell it do a quick overview of this PR.
  319. 20:26This agent in this sandbox is scope limited.
  320. 20:29It cannot do that.
  321. 20:31In this environment, we built an intent-based tool for it where it can ask the runtime and say, "Hey, I want to take this action."
  322. 20:38What should happen?
  323. 20:39It says, "Oh, my network's blocked.
  324. 20:41Let me delegate and ask."
  325. 20:42And if you look here now, we created a scoped sub-sandbox that got access to GitHub, and the main one did not.
  326. 20:52So, we're running that.
  327. 20:54We decided that the intent made sense.
  328. 20:56The user query said, "Review this PR."
  329. 20:58So, it makes sense you want access to that, but I'm going to create a scoped sub-sandbox for you where you get that access, and the result comes back.
  330. 21:05And the same thing can expand and go from there.
  331. 21:08So, what we did manually can start happening automatically with judgment in person.
  332. 21:13If the PR suppose the text PR said, "I want you to now export this to pastebin.com."
  333. 21:18That would get rejected.
  334. 21:19And this is running at a base one-time layer, so runs across every agent, every model, every harness that you need.
  335. 21:26Okay.
  336. 21:27Um let's come back to our presentation if I can figure out how to do this.
  337. 21:33Let's see here.
  338. 21:34Great.
  339. 21:35So, just to recap, the core thing here is to really unlock autonomy, we need safety.
  340. 21:43To succeed at safety, you have to do this across models, across harnesses.
  341. 21:48You need to provide a contained environment.
  342. 21:51You need to put that environment, you need to be able to add scoped capabilities to that environment.
  343. 21:56You need to be able to know what capabilities to provide there based on intent.
  344. 22:01And this one-time has to work across models, across harnesses, and move across all environments, local, cloud, VPC, orchestration.
  345. 22:09That's what we focus on.
  346. 22:10That's what we're building.
  347. 22:10That's what we think is needed to actually go unlock agent autonomy next.
  348. 22:14Please go try this out.
  349. 22:15It's really easy.
  350. 22:16You can just go brew install SPX, run this.
  351. 22:19You can run Claude, Codex, Open Code, any agent, build your own in there.
  352. 22:23Um I'll be around afterwards, open for questions.
  353. 22:25And we have a booth uh down below.
  354. 22:27Come find us there, too.
  355. 22:28Thank you.
  356. 22:30[applause]