KedgeFlow: A Programmable Control Plane for Enterprise AI Agents
Abstract
Enterprise AI agents can execute altered versions of approved actions, concurrently reuse the same permission, or retry operations whose responses were lost. These failures arise when approval and resource execution lack a shared contract. KedgeFlow specifies language-independent contracts for trusted controllers to authorize state-changing operations and privileged gateways to enforce that authority independently of agent reasoning. Inspired by OpenFlow, it connects policy checks supported by evidence, signed permission for an exact action, a shared allowance that can be consumed only once, target-side conditions for applying the change, and retained outcome records. Under trusted issuance of exact-action authority, two conditional properties establish at most one successful claim per allowance and link every governed dispatch to a matching grant, claim, and subsequent dispatch authorization, even when the agent is compromised. A reference implementation exposes this execution path to agent systems through the Model Context Protocol (MCP). In the single-resource evaluation, 6,560 concurrent ledger claim attempts yielded exactly one successful claim for each of 82 allowances. Boundary tests rejected unauthorized and altered requests before consumption. A 32-call gateway race produced one committed mock effect, and a retry after a lost response produced no additional dispatch. Deliberately permissive policy nevertheless authorized an undesirable effect, exposing the limits of execution authorization. Evaluation uses three members of the etcd coordinated key-value store on one host, synthetic authentication and authorization inputs, and a mock target that rejects stale requests. Distributed reservations, enforcement of every production access route, native crash recovery, exactly-once effects at real targets, and interoperability between independent implementations remain untested.
Figures & tables
| Contract operation | Required semantics | Reference implementation | Outstanding work |
|---|---|---|---|
| Governance: publish | Authorized versioned policy, descriptors, keys, ownership and revocations. | Startup keys/descriptors; atomic conditional policy/ownership updates. | Administration service, dynamic installation and per-grant revocation. |
| Runtime Admission: propose / grant | Freeze proposal; obtain certificate, denial or request for evidence; issue bounded authority. | Record/schema vectors, remediation and independent test-policy fixture. | Admission service, evidence evaluation and certificate-to-grant validation. |
| Enforcement Control: install | Authenticate programmed objects and expected version; preserve signed scope. | Static configuration; policy identity/digest/epoch and ownership updates over etcd. | Controller transport, dynamic keys/descriptors/profiles and revocation exchange. |
| Enforcement Control: activate authority | Coordinate exact grants, active root generations and fences in one authority domain. | Tested issuance/replacement transactions; installed digest/root state. Envelope verified on Execution. | Authenticated controller grant distribution and independent peer exchange. |
| Enforcement Control: feedback | Report accepted versions/coverage or rejection and supported adapter guarantees. | Library success to caller; Execution discovery and tool listing only. | Gateway control acknowledgments and full adapter-capability feedback. |
| Execution: execute / status | Authenticate exact request/grant; claim then authorize dispatch; return attempt/receipt. | Bounded JSON transport, grant transmission, gateway, fixed adapter, validated mock results; one SDK path. | Signed gateway receipts, remote status and full transport conformance. |
| Attacker-controlled case | GW | Probe | Auth. | Grant | Claim | Authz. | Target | Commit | Unknown |
|---|---|---|---|---|---|---|---|---|---|
| Injected runbook unauthorized mutation | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | No |
| Forged approval in tool response | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | No |
| Changed resource after admission | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | No |
| Changed parameters after admission | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | No |
| Grant payload substitution | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | No |
| Other-audience signed envelope replay | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | No |
| Boundary | Scope or untested assumption |
|---|---|
| Agent attacks | Redirection assumed; no evaluated model or attack corpus. |
| Admission | Minimal fixture; production policy/evidence/issuer assumed. |
| Mediation | Three probes; OS custody and writer coverage untested. |
| Distributed | One host; no crash, quorum-loss, or cross-cluster tests. |
| Target effects | Fenced mock; no native adapter or physical exactly-once. |
| Recovery | Library query fixture; no target status service or crash journal. |
Runtime Enforcement for AI Agents
Runtime enforcement for AI agents checks and constrains actions as they execute, helping prevent unsafe or unauthorized effects.
See all 278 papers