db \`7MM"""Mq. .g8"""bgd db \`7MN. \`7MF'\`7MM"""YMM
;MM: MM \`MM..dP' \`M ;MM: MMN. M MM \`7
,V^MM. MM ,M9 dM' \` ,V^MM. M YMb M MM d
,M \`MM MMmmdM9 MM ,M \`MM M \`MN. M MMmmMM
AbmmmqMA MM YM. MM. AbmmmqMA M \`MM.M MM Y ,
A' VML MM \`Mb.\`Mb. ,' A' VML M YMM MM ,M
.AMA. .AMMA..JMML. .JMM. \`"bmmmd'.AMA. .AMMA..JML. YM .JMMmmmmMMMAn opinionated control plane for AI agents.
Why do AI agents need a control plane?
AI agents connect data, secrets, and tools faster than manual security review can follow. A control plane gives every agent a verified identity and evaluates its authority when it acts.
What does Arcane guard?
Arcane connects three jobs that are usually fragmented: finding and verifying agents, governing what they do, and understanding what their work costs. Identity, policy, task, outcome, and spend stay attached to one decision record.
Discover and identify
Find agents from registrations, runtime evidence, and observed SDK, gateway, and MCP activity—then bind each one to a verified workload and delegating authority.
Govern every action
Evaluate the agent, task, tool, arguments, source policy, and resource-owner policy together before an action reaches its target.
Understand and optimize
Roll model calls, tool use, retries, outcomes, token usage, and spend into the same task record so cost can be compared with quality.
- agent
- research-agent@v0.4
- authority
- maya@revenue
- task
- prepare-account-brief
- action
- crm.accounts.read
- policy
- revenue.research.v12
- usage
- 38,420 tokens
- cost
- $0.84
How does Arcane keep agent policy current?
Arcane observes agent actions, proposes narrower policy from real behavior, and routes meaningful changes to an operator for review. Approved policy becomes active without turning every workflow into a manual ticket.
allow research-agent to read drive.files when delegated by an engineering-org user
research-agent attempted drive.files.read 47 times in the last 30 days — all from engineering users. No matching rule. Promoting shadow → active would convert 47 reviews to allows.
permit (
principal in Group::"research-agent",
action == Action::"read",
resource in ResourceType::"drive.files"
) when {
principal.delegated_by.org == "engineering"
};How does Arcane authorize each agent action?
Arcane verifies runtime evidence when it mints identity, evaluates each requested action against source and target policy, and executes allowed work through an SDK or enforcement boundary.
Establish runtime identity
Configure the registered agent and minting zone, then present trusted workload evidence through token exchange. The agent name is context; the issuer-verified subject token establishes workload trust.
const arcane = new ArcaneClient({
baseUrl: process.env.ARCANE_BASE_URL!,
orgId: process.env.ARCANE_ORG_ID!,
zoneId: process.env.ARCANE_ZONE_ID!,
applicationKey: process.env.ARCANE_APPLICATION_KEY!,
agentKey: "release-bot",
mode: "token_exchange",
getSubjectToken: () => k8sPsatSubjectToken(),
});
// The zone STS verifies evidence before minting.Evaluate the requested action
Ask the minting zone to evaluate the agent, target resource, action, and request arguments. The target zone is resolved from the resource and contributes its own policy.
const decision = await arcane.evaluate({
resource: "jira-prod",
action: "jira.issue.search",
requestContext: {
request: { jql: "project = ARC" },
},
});
// allow · deny · escalate (no immediate access)Execute through an enforcement boundary
Use Arcane's in-path proxy when the upstream credential must remain server-side, or vend a scoped credential only when the resource's enforcement mode permits it.
const result = await arcane.proxy({
resource: "jira-prod",
action: "jira.issue.search",
input: { jql: "project = ARC" },
});
// Upstream execution occurs only after allow.What does an agent decision record contain?
Each record names the user, agent, workload, task, requested resource, policy rule, outcome, token use, and cost. The same context powers the audit trail and Cost Center.