Clip transcript
what we're calling No, don't collapse it. Oh, man. Scrolling is wonky when you zoom in. This YAML front matter. This is where we stick the guardrails cuz if we're going to be not supervising agents doing things, then we're going to need much stronger guardrails around what they're allowed to do, what they're allowed to read, what they're allowed to write. And where are we going to specify that? And it's not enough to just prompt the agent and be like, "Listen, bro, I don't want you to buy Bitcoin for me ever." That's not enough cuz somebody else can prompt inject the agent and take it in a direction that you don't expect. So, any of the guardrails, if you're prompting the guardrails at the agent, you're effectively letting the fox loose in the henhouse. It's not actually a guard rail. Um, so here, uh, you can see that I'm specifying deterministically like my permissions are read all, what tools am I allowed to use, uh, what network, uh, requests is it allowed to make? It's not allowed to just go to bitcoin.com or whatever. Uh, in fact, it's only allowed to go to some specified set of default websites, the NPM ecosystem cuz it's got to check for like, you know, what's new, GitHub, and of course the Astro docs which I specified in my original prompt. Uh, and I've got this block called safe outputs which is basically saying these are the only things that the agent is allowed to write. And so I'm saying in this case the agent will is allowed to create pull request. Pull request single uh, because I don't want the agent to get prompt injected to create 500 pull requests. That would be a denial of service. Um, or and this is the other thing, I explicitly said you're allowed to do nothing, right? Which sounds silly, but it actually matters because in a world where I have lots of automations, the last thing I want is noise. I don't want the agents denial of servicing me. So, okay, I've created this and I've run it and this is actually my actual automation on my actual personal website. I didn't ask for any of this, but it did a pretty good job of like saying, "Hey, here's the highlights of what you get from going from this version that you're currently on to the version that is the target, right? It's read all of the release notes in the middle. This is normally what I would do as a human. Uh, and it's built me like, you know, sort of like a tailored description. It's figured out there's no breaking changes. It's actually verified this by running and building my project. And because I happen to have this deployed to Cloudflare, um, or whatever, anything with preview deploys, I can click that open and see that nothing has changed in my website, which is exactly what I want, right? Like it's done the upgrade and I see that it still works exactly as it did before. But this was like a minor point release. That doesn't really count. Let's look at a major upgrading change. And actually, I'm lucky that Astro just released Astro 7 because this is actually jumping two major revisions from five to seven. And so, now it's saying like, "Okay, Astro 7 has brought me all of these things. And Astro 6 would have brought me all of that stuff, but I neglected to do the upgrade so I could have a cool demo for you all." And it's found all of the code changes that were broken, and it updated them. It also verified that the build runs. And it also highlighted manual steps that things that I would need to do later. And again, you know, if I go down here and I click on this, I can see, "Hey, still works." So, cool.