Anthropic's Managed Agents Are Different

🔗 **Source:** [Anthropic's Managed Agents Are Different](https://www.youtube.com/watch?v=uxHolzq1NcA)
So, the Claude team have released Claude managed agents, which is what they call the next evolution after the agent SDK. This is something that lets you create custom agents without writing a single line of code, and these agents run on Anthropic's own managed infrastructure, which has a very cool architecture that is perfect for shipping secure, scalable, production-ready agents that can do pretty much anything you want, so answer customer queries based on your
knowledge base, or even do regular research for you and send it to you at a specific time using Slack. But, why would anyone use this instead of installing Claude's code on their own VPS? Hit subscribe, and let's get into it. But, before we get into it, let's talk a bit about Anthropic because they've been busy these last few weeks. I mean, they recently prevented people from using the Claude subscription on third-party tools like Open Claude, which people think is because of managed agents, but they're
not exactly the same thing. I mean, I would say Open Claude is a bit like Linux. It's a tinkerer's agent. You pick your own hardware, you pick your own model, you deal with security and everything in between. Whereas, Claude managed agents is, dare I say it, like Apple because you don't need to do any of those things. Claude takes care of the infrastructure, the security. You just tell it what you want in simple English, and it will go ahead and build your perfect agent. In fact, let me show you how easy it is by going through a
simple, yet very personal example. I have a private GitHub repo that contains all my medical information scraped from the NHS app, and I want to communicate with that data or get information from that data using Slack so I can use it from my desktop, my mobile, basically anywhere I am. And in between those two things, I would like a Claude managed agent to do the jobs of scraping the data, so using tools to get the right information, and translating it into way that I can understand it. So, to get
started, I could go to the Claude console, go to the new managed agents option, and type here in natural language to create my agent from scratch. Now, this will communicate with the Claude API using car commands, and will host any necessary code on Anthropic's infrastructure. But, I could also use the managed agent skill in whatever language I prefer. In this case, I will pick TypeScript, and this skill will use the TypeScript Claude SDK to create an agent for me. To do that,
you'll need to have this version of Claude's code or higher, which has the built-in managed agent skill. So, in my case, I have a version higher than that, and can trigger the skill using the {slash} Claude API command followed by managed agents onboarding. So, after I hit enter, it asks me if I know what kind of agent I want to build, which I don't, but we'll see what it does. And it tells me it will walk me through these three steps, so tools, skills, files, and repos, and then environment and identity. Now,
surprisingly, it does use a lot of context, so there might be some compaction, but we'll see what happens. Anyway, I'll give it a command to create a medical agent that reads markdown files from a private GitHub repo, understands the information like a doctor, and lets me communicate with it using Slack. And then it recommends me to use the pre-built tool set, so read, glob, grep, and to not use write, edit, bash since the doctor has no reason to mutate the repo, which makes sense. It also asks for the repo URL. So, I'm going to
tell it to go with its recommended tools and permissions, and I'll give it a link to the repo. Then after that, it suggests what round B and round C should be, which since this is a very basic agent, they're pretty self-explanatory. And then it creates a system prompt for my agent, as well as suggest the model I should use. Now, I'm going to tell it to use Sonnet because I don't want to spend too much money on Opus. I'll explain why later, but aside from that, this looks good, and I'll provide it with these credentials as well as the language I want. And now it's created the two files for me in TypeScript. The first one is
the setup, which will set up things like the environment, the agent, and any necessary skills inside Anthropic's infrastructure. The second is the runtime, which is actually going to be the thing that communicates with the Anthropic servers and gives that information to Slack. So, I'll go ahead and set this all up and show you what it's like when it's finished. So, after running this setup file, it gives me an environment ID, which is over here, and it also gives me the agent ID, which is also over here. Now, as I mentioned earlier, these things are created on
Anthropic's infrastructure. So, inside the Claude console, I can see my agent over here, as well as the environment I've just created. I've also created my Slack app and have put all the information inside my {dot} env file for this app.ts file to use, which means if I run that file, it should run my Slack bot. So, I can ask it, "What model are you using?" and after a while, it responds saying, "I'm Claude, made by Anthropic. Is there something medical I can help you with?" This is very cool. But, what's even cooler is that I can see the session here in the Claude
console. Yes, I've been testing this a few times. And here we get more details of what happened. So, if I close this to make it bigger, you can see the question the user asked, then it used the Slack message tool, and then the agent responded. Now, I forgot to mention earlier how the pricing works for this. So, if we go to the documentation, we can see that all tokens used by the managed agents are priced with the pricing model that the Claude API uses, which is over here. So, unfortunately, your Pro, Max, or Team subscription isn't useful for managed agents. But, as
well as paying for tokens, you'll also have to pay for sessions, which is 8 cents per session hour, and this is only when the session is running. So, if I go back to the Claude console and click on sessions, for all of these idle sessions, I'm not being charged. Okay, let's do something a bit more interesting with this bot. I'm going to ask it, "Based on what you know about me medically, is it okay for me to eat calamari?" Now, here it's gone ahead and ran the bash tool to get information from the repo. It's done two file reads, and then a few seconds later, it sent me
a Slack message, which tells me I should be cautious with calamari because I'm allergic to shrimp, which is true. I would say it's given too much information, talking about my itchy tongue to swelling throat and so on. But, to be honest, it works really well. In fact, I did tweak the agent a bit. So, if we click here in the Claude console, we can see there are three versions, indicating that this agent has been changed three times. I changed the system prompt to make it sound a bit more human-like, and changed the model from Opus to Sonnet. But, here in the UI, I can change the agent system
prompt, I can change the model, and the tools it has access to, which is useful for testing. So, that's pretty much it. Apart from a few small code tweaks that I figured out by going back and forth with Claude, that is how easy it is to build an agent. No need to learn how the Claude agent SDK works. You can just communicate with Claude using a skill and create your very own agent. But, how does all of this work under the hood? So, Anthropic have written a very detailed article on how everything works, which I'll have a link for in the description, but I would say the whole
architecture is made up of three key components. So, the session harness and orchestration. This is not to say the sandbox and tools are less important, but I would say these three are very unique. So, the harness, also known as the hands of the system, is where the Claude model is used, and it's also known as a stateless router because it routes tool calls, resources, and MCPs to their relevant place, or runs code and edits files in a sandbox environment. Now, I'll talk about the benefits of having tool calls separate
from the actual harness itself, but the session here is like the memory of the system and contains append-only logs of the harness. Now, you may be thinking the harness is Claude code, but it's actually a custom-made harness for the managed agents. I'll also explain why a bit later on. And finally, the orchestrator is what decides what mode the harness should be in, so build, plan, and so on, and importantly, it creates a new harness if this one fails. So, imagine you have a harness here that
fails or or goes down, the orchestrator can create a new harness, and because the session logs are separate from the harness itself, the new harness can read the logs to find out what's been going on and exactly where to continue from. In fact, the whole thing is built for scale. So, you can have as many models and as many environments as you want, and the architecture will be able to handle it. Also, another benefit of this architecture is the security aspect. So, if I go back to the Claude console and click on the credentials vault, you can see that the credentials are stored in a
secure location. Now, if I have an agent running locally, that could be the {dot} env file or something custom I have in place, but if I'm using the Claude console or the UI, then all the credentials are stored here. And the beauty of that is these credentials are called at runtime. So, if you have an MCP-specific API key or tool-specific key, then the harness or the model doesn't know anything about it, and it can't have access to it. So, for example, if I needed to call the weather MCP tool, and I had that API key, then the harness would call the tool, and the
API key would exist within the tool call itself or the MCP, and it would be used at runtime. Similarly, if the sandbox needed to use a key, then that would be stored in the vault, and that would also be used at runtime, and the model wouldn't know about it. In fact, it doesn't even know about its own Anthropic API key since that is also used at runtime. I highly recommend reading the rest of this article to get a detailed overview of how the whole thing was put together, but it is very unique. Honestly, I really enjoy creating Claude managed agents. I mean,
there are people out there who think this is going to die just like the Open AI agents. If Open AI agents aren't dead, please let me know in the comments cuz I don't hear much about them, but I think this is going to stick around for a long time purely because it's very easy to create an agent. You don't have to learn about SDKs, you don't have to use the terminal to create one if you don't want to, and you can pretty much do all the hooking up to MCP servers, tools, all inside the UI, which is very nice for people who don't want to write
any code. But, I do have to say one kind of disappointing thing is the fact that you have to pay using API tokens or pay using API billing because as someone who is a Claude Pro subscriber, I would love to use my limits, so the limits that are within the Pro range on managed agents so I don't have to pay for two different things. But, in all fairness, it's not insanely expensive if you use a cheaper model like Sonic or Haiku. And even though it's kind of curated, so as you can see it gives you access to Notion,
Slack MCP services, and so on. But, if you want to create something that doesn't exist within those bounds, then you just have to go ahead and write your own code, which Open Claude is very good for. I mean, Open Claude is super open, it's in the name, and has many channels from Telegram to Discord to WhatsApp. Whereas, if you want to do the same thing with managed agents, you may have to code up your own solution or get Claude to code one up for you., Anthropic's Managed Agents Are Different, YouTube, 01kp1wtw517t2fkkmczn35ntah.