Why LLM orchestration is broken (and how cryptographic agent identities fix it)
<p>Last week, a “helpful” coding agent opened a PR, commented on the issue, triggered CI, and then tried to deploy to staging.</p> <p>The weird part? Nobody could answer a basic question:</p> <p><strong>What rights did that agent actually have, and who gave them?</strong></p> <p>Not “which API key did it use.”<br> Not “which workflow ran.”<br> Not even “which model generated the output.”</p> <p>I mean: <strong>which agent</strong> took the action, <strong>what it was allowed to do</strong>, and <strong>whether that authority was delegated intentionally</strong>.</p> <p>That’s the orchestration rights problem, and it’s getting worse as teams wire up Claude, Cursor, Copilot, Devin, internal bots, MCP servers, GitHub Actions, and homegrown tools into one giant autonomous spaghetti pile.</p> <
Last week, a “helpful” coding agent opened a PR, commented on the issue, triggered CI, and then tried to deploy to staging.
The weird part? Nobody could answer a basic question:
What rights did that agent actually have, and who gave them?
Not “which API key did it use.” Not “which workflow ran.” Not even “which model generated the output.”
I mean: which agent took the action, what it was allowed to do, and whether that authority was delegated intentionally.
That’s the orchestration rights problem, and it’s getting worse as teams wire up Claude, Cursor, Copilot, Devin, internal bots, MCP servers, GitHub Actions, and homegrown tools into one giant autonomous spaghetti pile.
The real problem isn’t tool calling
Most agent systems today still treat identity like this:
-
the agent uses a shared API key
-
the orchestrator decides what tools it can call
-
logs tell you something happened
-
approvals happen out-of-band, if at all
That works until multiple agents share the same tools, act on behalf of users, or hand off tasks to other agents.
Then your access model turns into:
“I guess this request came from the agent-ish part of the system?”
That’s not identity. That’s vibes.
What actually needs to exist
If agents are going to act in production, they need the same primitives we expect from humans and services:
-
a stable identity
-
verifiable authentication
-
delegated rights
-
auditable actions
-
revocation and policy checks
In practice, that means giving each agent its own cryptographic identity instead of letting it hide behind shared tokens.
For example, an agent can have an Ed25519 keypair and use it to sign requests. Now a tool, MCP server, or proxy can verify:
-
which agent is calling
-
whether it’s acting for itself or on behalf of a user
-
what rights were delegated
-
whether policy allows this action
That sounds obvious when you say it out loud, but most LLM orchestration stacks still don’t do it.
Why delegation chains matter
A lot of agent actions are really delegated authority:
-
Alice approves a task
-
Planner agent breaks it into subtasks
-
Coder agent edits code
-
Deployer agent pushes to staging
If all those steps share one token, you lose the chain of responsibility.
With delegated identity, you can represent it more like this:
Alice ↓ delegates "open PRs on repo X" Planner Agent ↓ delegates "edit files in /src only" Coder Agent ↓ requests "write src/auth.ts" MCP Tool / Repo APIAlice ↓ delegates "open PRs on repo X" Planner Agent ↓ delegates "edit files in /src only" Coder Agent ↓ requests "write src/auth.ts" MCP Tool / Repo APIEnter fullscreen mode
Exit fullscreen mode
Now the receiving system can evaluate the full chain, not just the last caller.
That matters for security, but also for debugging. When something goes wrong, you want to know:
-
did the user approve this?
-
did the planner exceed scope?
-
did the coding agent attempt an action outside policy?
Without cryptographic identities and delegation, you’re mostly reconstructing intent from logs after the fact.
A tiny runnable example
Here’s the basic idea in Node using Ed25519 signatures.
npm install tweetnacl tweetnacl-util
Enter fullscreen mode
Exit fullscreen mode
const nacl = require("tweetnacl"); const util = require("tweetnacl-util");const nacl = require("tweetnacl"); const util = require("tweetnacl-util");const keys = nacl.sign.keyPair(); const request = JSON.stringify({ agent: "coder-agent", action: "write_file", resource: "src/auth.ts" });
const msg = util.decodeUTF8(request); const sig = nacl.sign.detached(msg, keys.secretKey);
const ok = nacl.sign.detached.verify(msg, sig, keys.publicKey);
console.log("request:", request); console.log("verified:", ok); console.log("agent pubkey:", Buffer.from(keys.publicKey).toString("hex"));`
Enter fullscreen mode
Exit fullscreen mode
That example only proves authorship, not authorization. In a real system, you’d pair it with:
-
RBAC or policy rules
-
short-lived delegated tokens
-
approval workflows for sensitive actions
-
audit logs tied to the verified agent identity
If you already use OPA, keep using OPA. It’s a good fit for policy evaluation here. The missing piece is often just that the “subject” in your policy needs to be a real agent identity, not a shared service account.
What this architecture looks like
[ User ] │ approves / delegates ▼ [ Agent Identity ] │ signs request ▼ [ Orchestrator ] │ passes delegation chain ▼ [ MCP Server / Tool Proxy ] │ verifies signature + policy ▼ [ Tool executes or denies ][ User ] │ approves / delegates ▼ [ Agent Identity ] │ signs request ▼ [ Orchestrator ] │ passes delegation chain ▼ [ MCP Server / Tool Proxy ] │ verifies signature + policy ▼ [ Tool executes or denies ]Enter fullscreen mode
Exit fullscreen mode
That verification step is where a lot of current stacks are still weak.
If your MCP server can’t distinguish between:
-
a trusted deploy agent
-
a random local script
-
a compromised agent session
…then your authorization model is mostly ceremonial.
What changed recently
A year ago, a lot of this was theoretical because agents mostly generated text and maybe called a weather API.
Now they:
-
edit production code
-
open PRs
-
access secrets
-
trigger workflows
-
hit internal APIs
-
coordinate with other agents
That means identity is no longer optional plumbing. It’s part of the execution model.
The moment one agent can delegate work to another, you need rights to travel with the request in a verifiable way.
Try it yourself
If you’re working on agent security or MCP auth, here are a few free tools that are actually useful:
-
Want to check your MCP server? Try https://tools.authora.dev
-
Run npx @authora/agent-audit to scan your codebase
-
Add a verified badge to your agent: https://passport.authora.dev
-
Check out https://github.com/authora-dev/awesome-agent-security for more resources
The practical takeaway
If your agent platform still relies on shared API keys and trust-me bro orchestration, you don’t really have agent authorization.
You have tool access with extra steps.
Cryptographic agent identities won’t solve every problem, but they do give you a solid answer to the question that matters most:
who is this agent, and what is it actually allowed to do?
How are you handling agent identity today? Drop your approach below.
-- Authora team
This post was created with AI assistance.
DEV Community
https://dev.to/authora/why-llm-orchestration-is-broken-and-how-cryptographic-agent-identities-fix-it-3ni5Sign in to highlight and annotate this article

Conversation starters
Daily AI Digest
Get the top 5 AI stories delivered to your inbox every morning.
More about
claudemodelproductb8662
llama-model: read final_logit_softcapping for Gemma 4 ( #21390 ) macOS/iOS: macOS Apple Silicon (arm64) macOS Intel (x64) iOS XCFramework Linux: Ubuntu x64 (CPU) Ubuntu arm64 (CPU) Ubuntu s390x (CPU) Ubuntu x64 (Vulkan) Ubuntu arm64 (Vulkan) Ubuntu x64 (ROCm 7.2) Ubuntu x64 (OpenVINO) Windows: Windows x64 (CPU) Windows arm64 (CPU) Windows x64 (CUDA 12) - CUDA 12.4 DLLs Windows x64 (CUDA 13) - CUDA 13.1 DLLs Windows x64 (Vulkan) Windows x64 (SYCL) Windows x64 (HIP) openEuler: openEuler x86 (310p) openEuler x86 (910b, ACL Graph) openEuler aarch64 (310p) openEuler aarch64 (910b, ACL Graph)

A New York Times critic used AI to write a review, but good criticism can’t be outsourced
An author and freelance journalist has admitted to using AI to help him write a book review for The New York Times . Alex Preston’s review of Jean-Baptiste Andrea’s novel Watching Over Her , published by The New York Times in January 2026, draws phrases and full paragraphs from Christobel Kent’s review in The Guardian . The “error” was brought to light by a reader, who alerted The New York Times to the similarities. Preston told The Guardian he is “hugely embarassed” and “made a huge mistake.” The Times promptly dropped Preston, calling his “reliance on A.I. and his use of unattributed work by another writer” a “clear violation of the Times’s standards.” An editor’s note now precedes the review online, advising readers of the issue and providing a link to the Guardian review. Preston’s apo

The app for tracking TV, movies, podcasts, and everything
Hi, friends! Welcome to Installer No. 122, your guide to the best and Verge-iest stuff in the world. (If you're new here, welcome, go 'Zona, and also you can read all the old editions at the Installer homepage.) This week, I've been reading about early Apple employees and weather apps and one-page productivity systems, watching [ ]
Knowledge Map
Connected Articles — Knowledge Graph
This article is connected to other articles through shared AI topics and tags.
More in Products

A New York Times critic used AI to write a review, but good criticism can’t be outsourced
An author and freelance journalist has admitted to using AI to help him write a book review for The New York Times . Alex Preston’s review of Jean-Baptiste Andrea’s novel Watching Over Her , published by The New York Times in January 2026, draws phrases and full paragraphs from Christobel Kent’s review in The Guardian . The “error” was brought to light by a reader, who alerted The New York Times to the similarities. Preston told The Guardian he is “hugely embarassed” and “made a huge mistake.” The Times promptly dropped Preston, calling his “reliance on A.I. and his use of unattributed work by another writer” a “clear violation of the Times’s standards.” An editor’s note now precedes the review online, advising readers of the issue and providing a link to the Guardian review. Preston’s apo

The app for tracking TV, movies, podcasts, and everything
Hi, friends! Welcome to Installer No. 122, your guide to the best and Verge-iest stuff in the world. (If you're new here, welcome, go 'Zona, and also you can read all the old editions at the Installer homepage.) This week, I've been reading about early Apple employees and weather apps and one-page productivity systems, watching [ ]




Discussion
Sign in to join the discussion
No comments yet — be the first to share your thoughts!