{"id":16557,"date":"2026-08-05T09:06:05","date_gmt":"2026-08-05T09:06:05","guid":{"rendered":"https:\/\/newestek.com\/?p=16557"},"modified":"2026-08-05T09:06:05","modified_gmt":"2026-08-05T09:06:05","slug":"your-orchestration-framework-choice-is-a-security-decision-not-just-an-engineering-one","status":"publish","type":"post","link":"https:\/\/newestek.com\/?p=16557","title":{"rendered":"Your orchestration framework choice is a security decision, not just an engineering one"},"content":{"rendered":"<div>\n<div id=\"remove_no_follow\">\n<div class=\"grid grid--cols-10@md grid--cols-8@lg article-column\">\n<div class=\"col-12 col-10@md col-6@lg col-start-3@lg\">\n<div class=\"article-column__content\">\n<section class=\"wp-block-bigbite-multi-title\">\n<div class=\"container\"><\/div>\n<\/section>\n<p class=\"wp-block-paragraph\">Comparisons of LangChain, CrewAI and AutoGen are easy to find \u2014 dozens of guides this year cover the same ground: developer experience, ecosystem maturity, how easy it is to wire up multi-agent workflows. None of them ask the question I actually care about: does the framework you pick change how easily your agent gets compromised?<\/p>\n<p class=\"wp-block-paragraph\">I ran the test. The answer is yes, by a wide margin, and it\u2019s not something I\u2019ve seen reflected in the public comparison guides.<\/p>\n<p class=\"wp-block-paragraph\">A quick definition, since this matters for what follows: an orchestration framework is the software layer that sits between the underlying AI model and the outside world \u2014 it decides how the agent plans its steps, when it calls a tool or API, how it remembers information across a task and how much it can act on its own before checking back in. The model does the reasoning. The framework decides what that reasoning is allowed to do and how. LangChain, CrewAI and AutoGen are three of the most widely used examples.<\/p>\n<h2 class=\"wp-block-heading\"><a><\/a>The setup<\/h2>\n<p class=\"wp-block-paragraph\">I built an evaluation harness that runs the same set of adversarial payloads \u2014 tool call hijacking, cross-tool injection, memory poisoning, delegated authority abuse and several other attack classes \u2014 against AI agents. The full methodology and dataset are <a href=\"https:\/\/github.com\/jbdu94\/SADF\">open-sourced on GitHub<\/a> if you want to dig into the specifics. To isolate what actually drives compromise rate, I held the model constant. Same model, every time. The only thing that changed was which orchestration framework was wrapping it: CrewAI, LangChain, AutoGen and SmolAgents.<\/p>\n<p class=\"wp-block-paragraph\">If frameworks were just interchangeable wiring around the same underlying model, compromise rates across all four should land in roughly the same range. They didn\u2019t.<\/p>\n<h2 class=\"wp-block-heading\"><a><\/a>What actually happened<\/h2>\n<p class=\"wp-block-paragraph\">Across thousands of adversarial test runs, holding the model constant, the compromise rate ranged from 11.9% on the most resistant framework to 31.1% on the least \u2014 a 2.6x spread, from framework choice alone. Nothing about the model changed between those numbers. Nothing about the attacks changed. The only variable was which framework was orchestrating the agent\u2019s tool calls, memory, and multi-step reasoning.<\/p>\n<p class=\"wp-block-paragraph\">That\u2019s not a rounding difference. That\u2019s the gap between a security posture your team might reasonably accept and one that should trigger a serious conversation before you ship.<\/p>\n<p class=\"wp-block-paragraph\">Figure 1 shows the mechanism in simplest form: the same model, split across a tighter framework and a looser one, lands at a meaningfully different compromise rate \u2014 exactly what these numbers confirm.<\/p>\n<div class=\"extendedBlock-wrapper block-coreImage undefined\">\n<figure class=\"wp-block-image size-large is-resized\"> width=&#8221;1024&#8243; height=&#8221;494&#8243; sizes=&#8221;auto, (max-width: 1024px) 100vw, 1024px&#8221;&gt;<figcaption class=\"wp-element-caption\">Figure 1: Model vs. framework<\/figcaption><\/figure>\n<p class=\"imageCredit\">Julie Brunias<\/p>\n<\/div>\n<h2 class=\"wp-block-heading\"><a><\/a>Why this happens<\/h2>\n<p class=\"wp-block-paragraph\">Orchestration frameworks aren\u2019t neutral plumbing. Each one makes real architectural decisions about how tool calls get validated, how much context gets shared between reasoning steps, how memory persists across a task and how much autonomy the agent has to chain actions without checking back in. Those decisions are made by the framework\u2019s design, not by the model underneath it, and they directly shape how much room an attacker has to work with.<\/p>\n<p class=\"wp-block-paragraph\">A framework that validates tool calls more strictly, or that segments memory more conservatively, closes off attack paths that a more permissive framework leaves wide open \u2014 regardless of which model is doing the reasoning. The model generates the decisions. The framework controls how much autonomy the agent has to act on those decisions, and where the checks sit along the way.<\/p>\n<p class=\"wp-block-paragraph\">Concretely: a framework that requires every tool call to pass through an explicit schema check before execution gives an attacker far less room to smuggle a malicious parameter through than a framework that lets the model call a tool directly off its own generated text. That single design choice, made by the framework\u2019s authors long before your team ever touched it, is the kind of thing that produces a 2.6x difference in outcome without a single line of your own code changing.<\/p>\n<h2 class=\"wp-block-heading\"><a><\/a>The gap in the market<\/h2>\n<p class=\"wp-block-paragraph\">Every framework comparison I found treats security as one bullet point among many. Guides from sites like <a href=\"https:\/\/bestarion.com\/us\/langchain-vs-autogen-vs-crewai\/\">Bestarion<\/a>,\u00a0 <a href=\"https:\/\/atlan.com\/know\/ai-agents-frameworks-compared\/\">Atlan<\/a>,\u00a0 <a href=\"https:\/\/www.moxo.com\/blog\/agentic-ai-framework-comparison\">Moxo<\/a>,\u00a0 <a href=\"https:\/\/cordum.io\/blog\/ai-agent-frameworks-comparison\">Cordum<\/a> and\u00a0 <a href=\"https:\/\/www.instinctools.com\/blog\/autogen-vs-langchain-vs-crewai\/\">Instinctools<\/a> compare LangChain, CrewAI, and AutoGen on ecosystem maturity, memory handling and human-in-the-loop support \u2014 useful ground, but none of them run an actual adversarial test and report a measured attack-success difference. It isn\u2019t part of the public comparison conversation, and teams researching \u201cwhich framework should we use\u201d today won\u2019t find this data point in the guides that currently rank at the top of that search.<\/p>\n<h2 class=\"wp-block-heading\"><a><\/a>What this means practically<\/h2>\n<p class=\"wp-block-paragraph\">If your team is choosing between orchestration frameworks for a new agentic system, the security question deserves the same weight as the developer experience question, not an afterthought once the choice is made. A few things worth doing before you commit:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Treat security claims about a framework with the same skepticism you\u2019d apply to a vendor\u2019s marketing.<\/strong> Feature documentation tells you what a framework claims to do. It doesn\u2019t tell you how it holds up against tool call hijacking or memory poisoning specifically \u2014 that only comes from actually running adversarial tests against it yourself, or finding someone who has.<\/li>\n<li><strong>Don\u2019t assume your model\u2019s safety training carries over uniformly.<\/strong> A well-aligned model wrapped in a framework that gives an attacker more room to maneuver can still end up with a meaningfully worse real-world compromise rate than the same model in a tighter framework.<\/li>\n<li><strong>If you\u2019re already deployed, test what you have, not what you\u2019re planning to migrate to.<\/strong> Retrofitting security after the framework choice is made is possible, but knowing where your specific setup falls on this spectrum tells you how urgently that work needs to be done.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\"><a><\/a>The bigger point<\/h2>\n<p class=\"wp-block-paragraph\">Security conversations about AI agents tend to focus heavily on the model \u2014 which one is safest, which one refuses the most jailbreak attempts. That\u2019s an incomplete picture. The orchestration layer sitting on top of the model is doing real security-relevant work, whether anyone designed it that way or not, and the public comparison guides I\u2019ve found don\u2019t give teams any data on how that layer performs under attack.<\/p>\n<p class=\"wp-block-paragraph\">The model is not the whole attack surface. Increasingly, it isn\u2019t even the most variable part of it. If your team is mid-decision on a framework right now, or has already shipped one without ever testing it this way, that\u2019s the conversation worth having this week, not after the next incident makes it unavoidable.<\/p>\n<p class=\"wp-block-paragraph\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Comparisons of LangChain, CrewAI and AutoGen are easy to find \u2014 dozens of guides this year cover the same ground: developer experience, ecosystem maturity, how easy it is to wire up multi-agent workflows. None of them ask the question I actually care about: does the framework you pick change how easily your agent gets compromised? I ran the test. The answer is yes, by a&#8230; <\/p>\n<p class=\"more\"><a class=\"more-link\" href=\"https:\/\/newestek.com\/?p=16557\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-16557","post","type-post","status-publish","format-standard","hentry","category-uncategorized","is-cat-link-borders-light is-cat-link-rounded"],"_links":{"self":[{"href":"https:\/\/newestek.com\/index.php?rest_route=\/wp\/v2\/posts\/16557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/newestek.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/newestek.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/newestek.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/newestek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16557"}],"version-history":[{"count":0,"href":"https:\/\/newestek.com\/index.php?rest_route=\/wp\/v2\/posts\/16557\/revisions"}],"wp:attachment":[{"href":"https:\/\/newestek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/newestek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/newestek.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}