Pattern detected
IllustrativeProduction database migrations have been approved 8 times when requested by Release Bot during scheduled deployment windows.
Every agent gets an identity, a clear scope and a decision before it acts. BehalfID learns from human decisions to make that control more precise over time.
Deploy payments API to production
Built for teams running agents in real workflows
Every approval and decline gives BehalfID more context about how your team handles risk. Over time, the engine can recognize recurring patterns, improve recommendations and reduce unnecessary interruptions—without overriding the policies you set.
Explicit permissions and organizational policy always remain in control.
1 similar decisions observed · approvals and declines both count as evidence
Release Bot asks to run a production database migration.
Not enough comparable decisions yet. Requests keep following the policy you defined, and the engine keeps watching.
Adaptive mode observes how authorized humans decide recurring requests. It uses those decisions to surface policy recommendations and, when explicitly enabled, handle well-understood cases with less interruption.
Decisions and their context are recorded. Nothing about runtime behaviour changes.
Repeatable patterns are surfaced as a proposed rule, with the decisions behind it.
An administrator enables a recommendation before it can affect a single decision.
BehalfID does not silently expand an agent’s permissions. Learned patterns become bounded recommendations or administrator-enabled rules, and every one of them can be reviewed, audited or turned off.
How adaptive mode worksPatterns cover the whole decision surface: what should keep waiting for a person, what is consistently declined, who should review it, and when a request no longer looks like the ones approved before.
Production database migrations have been approved 8 times when requested by Release Bot during scheduled deployment windows.
Requests to expose public database ports have been declined 5 times.
Infrastructure changes are consistently routed to the Security Lead.
This request differs from previously approved deploys because it adds a new external destination.
Autonomy should not mean unlimited authority.
Replace shared credentials with named identities, scoped authority, and a complete record of who acted.
Owned by Maya Okafor · Engineering
Scope is a boundary, not a setting buried in a policy file. Inside it, agents move. Outside it, they ask.
Inside scope. Nothing to ask.
Inside scope, spend capped at $500/day.
Outside scope until a named human says yes.
Open a pull request on the checkout service.
Drop the SDK into the code path that performs the action. No proxy, no sidecar, no migration.
Read the quickstartimport { behalf } from "@behalfid/sdk";
const decision = await behalf.verify({
agent: "cursor-agent",
action: "deploy_service",
resource: "payments-api",
});
if (decision.allowed) await deploy();{
"allowed": false,
"reason": "production requires approval",
"approval": "requested",
"decidedBy": "Engineering Lead"
}