<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arnaud Perret</title>
    <description>The latest articles on DEV Community by Arnaud Perret (@arnaud-agent-rail).</description>
    <link>https://dev.to/arnaud-agent-rail</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3897824%2Fb7654941-da84-43f5-9c9c-0188fc1ba329.png</url>
      <title>DEV Community: Arnaud Perret</title>
      <link>https://dev.to/arnaud-agent-rail</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arnaud-agent-rail"/>
    <language>en</language>
    <item>
      <title>Microsoft Agent 365 vs AgentRail: Governing Agents vs Governing Actions</title>
      <dc:creator>Arnaud Perret</dc:creator>
      <pubDate>Wed, 29 Apr 2026 17:24:56 +0000</pubDate>
      <link>https://dev.to/arnaud-agent-rail/microsoft-agent-365-vs-agentrail-governing-agents-vs-governing-actions-1dpk</link>
      <guid>https://dev.to/arnaud-agent-rail/microsoft-agent-365-vs-agentrail-governing-agents-vs-governing-actions-1dpk</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://agent-rail.dev/blog/microsoft-agent-365-vs-agentrail-governing-agents-vs-actions" rel="noopener noreferrer"&gt;https://agent-rail.dev/blog/microsoft-agent-365-vs-agentrail-governing-agents-vs-actions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On May 1st 2026, Microsoft launches Agent 365 — its control plane for enterprise AI agents. It covers agent registry, lifecycle management, security policies, and audit logging across the Microsoft 365 ecosystem.&lt;br&gt;
It's a significant move. And it raises an important question for every enterprise team deploying AI agents right now:&lt;br&gt;
If Microsoft is building the governance layer, does AgentRail still matter?&lt;br&gt;
The answer is yes. Not because AgentRail competes with Agent 365 — but because they solve fundamentally different problems at fundamentally different layers.&lt;/p&gt;

&lt;p&gt;What Microsoft Agent 365 Actually Does&lt;br&gt;
Agent 365 is a control plane for agents as entities. Think of it as the identity and lifecycle management layer for AI agents — the equivalent of what Active Directory and Intune do for human users and devices.&lt;br&gt;
Concretely, Agent 365 lets enterprise IT teams:&lt;/p&gt;

&lt;p&gt;Discover every agent deployed across the organization — who built it, what it has access to, when it was last active&lt;br&gt;
Register agents via governed workflows with security policy templates applied at onboarding&lt;br&gt;
Manage lifecycle — automatically expire inactive agents, identify agents without owners, block agents flagged as high-risk&lt;br&gt;
Audit agent interactions at the platform level — logs of what agents accessed and when&lt;br&gt;
Enforce security through Microsoft Defender, Entra conditional access policies, and Purview data governance&lt;/p&gt;

&lt;p&gt;This is genuinely valuable infrastructure. If your organization is running dozens or hundreds of agents across departments, knowing which agents exist and who owns them is a real problem that Agent 365 solves well.&lt;br&gt;
But here's what Agent 365 does not do.&lt;/p&gt;

&lt;p&gt;The Gap Agent 365 Doesn't Close&lt;br&gt;
Agent 365 governs agents. It answers the question: "Is this agent authorized to exist in our environment?"&lt;br&gt;
It does not answer the question that matters in the moment an incident happens: "Should this specific action, with this specific payload, on this production system, execute right now?"&lt;br&gt;
These are different questions. And confusing them is expensive.&lt;br&gt;
Here's a concrete example.&lt;br&gt;
Your support agent is registered in Agent 365. It has an Entra identity. It passed your IT onboarding workflow. Its permissions are configured correctly. Lifecycle governance is in place.&lt;br&gt;
That same agent receives a task: "Update account status for all customers inactive for 90 days."&lt;br&gt;
Agent 365 does not intercept this action before it executes. It does not score the risk — 847 records, production environment, Customer PII, bulk write operation. It does not apply a policy that says "bulk CRM writes in production require human approval." It does not route this to a reviewer with full context. It does not produce a cryptographically signed, replayable record of what the agent was trying to accomplish, what policy should have caught it, and what the outcome was.&lt;br&gt;
It logs that the action happened. After it happened.&lt;br&gt;
That's the gap.&lt;/p&gt;

&lt;p&gt;Two Layers. Two Questions. Both Necessary.&lt;br&gt;
The clearest way to understand the relationship between Agent 365 and AgentRail is through the questions each layer answers:&lt;br&gt;
Microsoft Agent 365 asks:&lt;/p&gt;

&lt;p&gt;Which agents are authorized to operate in our environment?&lt;br&gt;
What systems and data can each agent access?&lt;br&gt;
Who owns each agent and when does its authorization expire?&lt;br&gt;
What did agents access, at the platform level?&lt;/p&gt;

&lt;p&gt;AgentRail asks:&lt;/p&gt;

&lt;p&gt;Should this specific action execute right now?&lt;br&gt;
What is the risk score of this action, given its context?&lt;br&gt;
Which policy applies — and what decision does it produce?&lt;br&gt;
Who approved this action, with what rationale, at what time?&lt;br&gt;
Can we replay this action with a different policy to understand what should have happened?&lt;/p&gt;

&lt;p&gt;Agent 365 is the agent identity and lifecycle layer. AgentRail is the runtime action control layer. They operate at different points in the flow:&lt;br&gt;
Agent → [Agent 365: Is this agent authorized?] → Action → [AgentRail: Should this action execute?] → System&lt;br&gt;
Both checks are necessary. Neither replaces the other.&lt;/p&gt;

&lt;p&gt;What "Governing Actions" Actually Means&lt;br&gt;
When AgentRail intercepts a high-risk agent action, here is what happens in under 200 milliseconds — before a single record is touched, before a single API call completes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Capture — The action's full context is recorded: which agent, which user triggered it, what the intent was, what the prompt contained, which tool is being called, what the payload looks like, which environment is targeted.&lt;/li&gt;
&lt;li&gt;Evaluate — A risk score is computed based on multiple dimensions simultaneously: action type (read vs. write vs. delete), environment (dev vs. staging vs. production), volume of records affected, data classification of the target, historical behavior patterns of this agent.&lt;/li&gt;
&lt;li&gt;Policy match — The action is evaluated against versioned policy rules. If it matches a rule — "bulk writes to production CRM affecting more than 50 records require approval" — the appropriate decision is made automatically.&lt;/li&gt;
&lt;li&gt;Decide — Three possible outcomes: Allow (low-risk, proceed automatically), Require approval (high-impact, route to a human reviewer with full context), or Block (forbidden by policy, stopped at the edge).&lt;/li&gt;
&lt;li&gt;Record — Every action, regardless of outcome, produces an immutable Action Passport: a structured, cryptographically signed, replayable record of what happened, why, who decided, and what the outcome was.
This is not logging. Logs show that an event occurred. An Action Passport proves what was intended, what was decided, why, by whom, and what changed — in a form that can be replayed, exported, and used as compliance evidence.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Why This Matters for AI Act Compliance&lt;br&gt;
Both Microsoft and AgentRail address AI Act requirements — but at different levels of granularity.&lt;br&gt;
The EU AI Act requires, for high-risk AI systems: traceability of every decision, explainability of reasoning, meaningful human oversight before consequential actions, and auditability of evidence.&lt;br&gt;
Microsoft Agent 365 addresses the platform-level compliance requirements: agent identity, access logging, data governance through Purview.&lt;br&gt;
AgentRail addresses the action-level compliance requirements: per-action evidence of intent and context, per-decision policy traceability, per-action human oversight record, and cryptographic proof that can be exported for regulatory examination.&lt;br&gt;
A useful analogy: Agent 365 is to AI Act compliance what Active Directory is to general security compliance — necessary infrastructure, but not sufficient on its own for the specific requirements that apply to consequential autonomous actions.&lt;/p&gt;

&lt;p&gt;The Runtime Stack That Enterprise Teams Are Building&lt;br&gt;
The most sophisticated enterprise teams we talk to are not choosing between Agent 365 and AgentRail. They are building a layered stack:&lt;br&gt;
Identity and lifecycle → Microsoft Agent 365 (or Okta, or Entra natively)&lt;br&gt;
Runtime action control → AgentRail&lt;br&gt;
Agent framework → Claude Code, LangChain, Dust, n8n, or custom&lt;br&gt;
Enterprise systems → GitHub, Salesforce, HubSpot, Stripe, internal APIs&lt;br&gt;
Each layer does one thing well. The governance gap isn't filled by any single tool — it's filled by the right combination of purpose-built layers.&lt;br&gt;
AgentRail fits into this stack without replacing anything. It works alongside Agent 365, not instead of it. If your agents are registered in Agent 365 and governed at the platform level, AgentRail adds the action-level control that the platform layer doesn't provide.&lt;/p&gt;

&lt;p&gt;A Note on Ecosystem&lt;br&gt;
Microsoft Agent 365 is built for the Microsoft ecosystem — agents with Entra identities, published through Microsoft 365 channels, integrated with Defender and Purview.&lt;br&gt;
AgentRail is runtime-agnostic. It works with Claude Code, LangChain, CrewAI, Dust, Glean, n8n, and custom-built agents — regardless of which cloud they run on, which identity provider manages them, or which framework built them.&lt;br&gt;
For organizations running mixed environments — some Microsoft-native agents alongside custom-built or third-party agents — AgentRail provides action-level governance across the entire fleet, not just the Microsoft-registered portion.&lt;/p&gt;

&lt;p&gt;The Bottom Line&lt;br&gt;
Microsoft Agent 365 is a significant and welcome addition to enterprise AI infrastructure. It solves a real problem: the proliferation of ungoverned agents across organizations that have no visibility into what agents exist, who owns them, or whether they're still active.&lt;br&gt;
AgentRail solves a different problem: what happens when those agents act. The moment a governed agent calls a production API, sends a bulk write to a CRM, modifies permissions in an identity system, or triggers a financial transaction — that's when action-level governance matters.&lt;br&gt;
Microsoft governs your agents.&lt;br&gt;
AgentRail governs their actions.&lt;br&gt;
Both questions need answers. The enterprises that answer both will be the ones that scale AI agent deployment with confidence — and the ones that can prove it when their auditors, regulators, or legal counsel ask.&lt;/p&gt;

&lt;p&gt;AgentRail is the runtime action control layer for enterprise AI agents — independent of framework, cloud, and identity provider. It works alongside Microsoft Agent 365, not instead of it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Claude Code in Enterprise Production: What Risks to Control</title>
      <dc:creator>Arnaud Perret</dc:creator>
      <pubDate>Sat, 25 Apr 2026 17:28:28 +0000</pubDate>
      <link>https://dev.to/arnaud-agent-rail/claude-code-in-enterprise-production-what-risks-to-control-15dm</link>
      <guid>https://dev.to/arnaud-agent-rail/claude-code-in-enterprise-production-what-risks-to-control-15dm</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh80nsd3dvemtx3q8ezdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh80nsd3dvemtx3q8ezdz.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;a href="https://agent-rail.dev/blog/claude-code-enterprise-production-risks" rel="noopener noreferrer"&gt;https://agent-rail.dev/blog/claude-code-enterprise-production-risks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claude Code can deploy code, merge pull requests, and modify production systems autonomously. Here's what enterprise teams need to govern before deploying it at scale.&lt;/p&gt;

&lt;p&gt;Claude Code is one of the most capable coding agents available today. It can write code, run tests, open pull requests, merge branches, interact with CI/CD pipelines, and — with the right tools — deploy directly to production environments.&lt;/p&gt;

&lt;p&gt;For individual developers, this is transformative. For enterprise teams, it introduces a governance question that most organizations are not yet equipped to answer: when Claude Code acts autonomously on your production systems, who is in control?&lt;/p&gt;

&lt;p&gt;What Claude Code Can Actually Do&lt;br&gt;
It is worth being precise about Claude Code's capabilities in an enterprise context, because the gap between "coding assistant" and "autonomous production actor" is larger than many teams realize.&lt;/p&gt;

&lt;p&gt;With standard integrations, Claude Code can:&lt;/p&gt;

&lt;p&gt;Read and write files across your codebase&lt;br&gt;
Execute shell commands and scripts&lt;br&gt;
Interact with Git — commits, branches, pull requests, merges&lt;br&gt;
Call APIs through MCP (Model Context Protocol) tools&lt;br&gt;
Interact with GitHub Actions, CI/CD pipelines, and deployment systems&lt;br&gt;
Access databases and internal APIs through configured tool integrations&lt;br&gt;
In a well-configured enterprise environment, this means Claude Code can autonomously take actions that directly affect production systems — merging code, triggering deployments, modifying configuration, or running scripts that change live data.&lt;/p&gt;

&lt;p&gt;This is not a criticism of Claude Code. It is the point of it. The capability is the value.&lt;/p&gt;

&lt;p&gt;But capability without governance is risk.&lt;/p&gt;

&lt;p&gt;The Four Risk Categories for Claude Code in Enterprise&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Production Code Deployment Risk
The most direct risk is that Claude Code, operating on a task, makes changes that reach production environments in ways that were not intended or reviewed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This can happen through several paths:&lt;/p&gt;

&lt;p&gt;Merging a pull request that triggers an automatic deployment pipeline&lt;br&gt;
Pushing directly to a branch with auto-deploy configured&lt;br&gt;
Modifying infrastructure-as-code files that trigger cloud resource changes&lt;br&gt;
Interacting with CI/CD systems in ways that initiate production workflows&lt;br&gt;
In each case, the action is technically authorized — Claude Code has the credentials and permissions to perform it — but the organization may not have intended for an autonomous agent to make this class of decision without human review.&lt;/p&gt;

&lt;p&gt;What governance looks like: Policy rules that require human approval for any action involving production branch merges, deployment triggers, or infrastructure modifications. Risk scoring based on the target environment (development vs. staging vs. production) and the type of change.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Codebase Integrity Risk
Claude Code operating across a codebase can make changes that are individually reasonable but collectively problematic — refactoring that introduces subtle bugs, dependency updates that create compatibility issues, or architectural changes that conflict with decisions made in other parts of the codebase.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The risk compounds when Claude Code is operating autonomously across multiple tasks simultaneously, or when it is working in a codebase where the full context of prior decisions is not captured in the code itself.&lt;/p&gt;

&lt;p&gt;What governance looks like: Audit trails that capture the full context of each code change — what Claude Code was trying to accomplish, what files were modified, what tests were run, what the outcome was. This context is essential for debugging when something goes wrong.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Secrets and Sensitive Data Risk
Claude Code, in the course of working on a codebase, may encounter or need to handle sensitive information — API keys, database credentials, customer data in test fixtures, internal system addresses, or proprietary business logic.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The risk is not primarily that Claude Code will exfiltrate this information maliciously. The risk is that it might inadvertently include sensitive data in outputs, logs, pull request descriptions, or comments in ways that expand exposure beyond the intended scope.&lt;/p&gt;

&lt;p&gt;What governance looks like: Policy rules that flag actions involving files known to contain sensitive data, require review for pull requests that touch configuration or secrets management code, and capture payload context in a way that can be audited without reproducing the sensitive content itself.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scope Creep Risk
AI agents operating autonomously tend to take the actions necessary to complete their assigned task — which sometimes means actions that were not explicitly authorized but that the agent judges necessary to achieve the goal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For Claude Code, this might mean: opening additional pull requests to fix issues discovered while working on the primary task, modifying files outside the explicitly specified scope, or interacting with systems beyond the immediate task context in order to gather information or complete a prerequisite.&lt;/p&gt;

&lt;p&gt;This is often useful behavior. It is also behavior that can take actions outside the organizational intent of the original task.&lt;/p&gt;

&lt;p&gt;What governance looks like: Clear scope boundaries enforced at the policy level, with alerts or approval requirements when Claude Code attempts to take actions outside the defined task scope.&lt;/p&gt;

&lt;p&gt;What Enterprise Governance for Claude Code Looks Like in Practice&lt;br&gt;
Here is a concrete example of how governance changes the risk profile of a Claude Code deployment.&lt;/p&gt;

&lt;p&gt;Scenario: A developer asks Claude Code to refactor a module and open a pull request for review.&lt;/p&gt;

&lt;p&gt;Without governance: Claude Code works through the task, makes the changes, opens the pull request, and — noticing that the tests were failing on main — also merges an unrelated bug fix to unblock the CI pipeline. The merge triggers a deployment. The deployment includes an unreviewed change. A production incident follows.&lt;/p&gt;

&lt;p&gt;Every individual action Claude Code took was technically authorized. The sequence of actions was not what the organization intended.&lt;/p&gt;

&lt;p&gt;With governance: - Claude Code opens the pull request as requested — low risk, allowed automatically - Claude Code attempts to merge the unrelated bug fix — production branch merge, risk score elevated, routed for human approval - The reviewer sees the context: which agent, which task, what merge, what the CI status is - The reviewer approves or blocks with full information - Every action is recorded with intent, payload, and outcome as immutable evidence&lt;/p&gt;

&lt;p&gt;The developer still gets the value of Claude Code. The organization maintains control over production-impacting decisions.&lt;/p&gt;

&lt;p&gt;The MCP Surface Area&lt;br&gt;
Claude Code's MCP (Model Context Protocol) integration significantly expands its tool access. Through MCP, Claude Code can be connected to virtually any API or system — databases, internal tools, cloud platforms, communication systems, external services.&lt;/p&gt;

&lt;p&gt;Each MCP connection expands what Claude Code can do autonomously. Without governance at the MCP action layer, each new tool integration also expands the potential blast radius of an unintended action.&lt;/p&gt;

&lt;p&gt;Effective governance for MCP-connected Claude Code deployments requires policy coverage at the tool level — not just "Claude Code is allowed to use the database MCP" but "Claude Code is allowed to read from the database MCP in development, and requires approval to write to any database in production."&lt;/p&gt;

&lt;p&gt;Building the Right Trust Model&lt;br&gt;
The goal of governance for Claude Code is not to slow it down or to add friction to every action. It is to build the right trust model — one where the level of human oversight is proportional to the potential impact of the action.&lt;/p&gt;

&lt;p&gt;Low-risk actions (reading code, running tests, creating branches) should proceed automatically. Medium-risk actions (opening pull requests, modifying configuration) should be logged and monitored. High-risk actions (merging to production branches, triggering deployments, modifying infrastructure) should require explicit human approval.&lt;/p&gt;

&lt;p&gt;This graduated trust model allows Claude Code to operate at full speed on the vast majority of its work, while ensuring that the decisions with real production impact remain under meaningful human control.&lt;/p&gt;

&lt;p&gt;Practical Steps for Enterprise Teams&lt;br&gt;
If you are deploying Claude Code in an enterprise environment, here are the immediate steps that reduce risk most significantly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Inventory Claude Code's tool access. List every system Claude Code can interact with — Git repositories, CI/CD systems, databases, APIs. This is your governance surface area.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Classify actions by environment and impact. Separate read actions from write actions. Separate development environment actions from production environment actions. These two dimensions drive most of your risk assessment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Define approval requirements for high-impact actions. At minimum, production branch merges, deployment triggers, and infrastructure changes should require human review before execution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Establish audit trails for every action. Every action Claude Code takes should be captured with full context — what it was trying to do, what it did, and what the outcome was. This is essential for incident investigation and compliance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test your policies before you need them. Run Claude Code against historical tasks with your governance policies active in simulation mode to validate that they catch the right actions before you rely on them in production.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Claude Code is genuinely powerful technology. Deploying it with governance in place does not reduce that power — it makes the power safe to use at enterprise scale.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AgentRail works with Claude Code and other agent runtimes to provide the control layer that makes autonomous coding agents safe to deploy in enterprise production environments.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://agent-rail.dev/" rel="noopener noreferrer"&gt;https://agent-rail.dev/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>claude</category>
      <category>devops</category>
      <category>security</category>
    </item>
  </channel>
</rss>
