Anomaly detection on agent behaviour
Circuit breaker on agent loops
Agent identity credential
Agent key binding and custody
Declared agent purpose and scope
Rate limiting on agent actions
Agent session revocation
State rollback after an agent action
Terminate a running agent
Attested agent-to-agent channel
Behavioural baseline for an agent
Blast radius containment for agent execution
Capability attenuation across the delegation chain
Declared capability manifest
Context provenance for agent working memory
Continuous usage control after grant
Transparency-log anchoring of evidence
Graceful degradation on policy engine failure
AgenTrust
Agentic Controls
Thirty controls for AI agents, each stated as one requirement and cross-linked to the Common Requirement that already covers it in OpenCRE. Every control has a stable permalink so an @@ -333,6 +334,7 @@
Model weight custo
Model weights released into infrastructure the model owner does not control remain under the owner's custody, including against the infrastructure operator.
+What this page does not do
What this page does not do
Schema validation of agent input
Model weight custody against the hosting operator
Encoding and injection prevention
Personal data protection in agent output
Policy verdict rationale
Prompt injection prevention
Resource allowlist
Runtime attestation evidence
Structured action logging
Tool authorization decision
Transaction and spend limits
Signed, third-party-verifiable evidence record
{e(c["name"])}
', + f' {tags}', + f'{e(c["requirement"])}
', + f' ', + ] + spec = c.get('spec') or {} + if spec.get('status') == 'public': + lines.append(f' ') + lines += [f' ', 'AgenTrust
Agentic Controls
+ {words(total).capitalize()} controls for AI agents, each stated as one requirement and cross-linked to the + Common Requirement that already covers it in OpenCRE. Every control has a stable permalink so an + external standard can cite it without the link rotting.
+The links point outward on purpose
+Most of what an agent needs is not new. Identity, least privilege, logging, injection handling and + rate limiting are decades old, and OpenCRE already organizes them across ASVS, CWE, ISO 27001, + NIST 800-53, SAMM and the OWASP AI Exchange. So each control below names the Common Requirement it + belongs to rather than restating it.
+Where a control reads new, it is usually the same requirement applied to a different subject: a + non-human principal, a grant derived from another grant, or a platform the relying party does not + control. That distinction is what the OpenCRE links make visible.
+This is a mapping, not a conformance claim. A link to a + Common Requirement says a control belongs to that topic. It is not evidence that anything is + implemented, tested, or deployed.
{words(total).capitalize()} controls
+Where a control is enforced at a specific point in the agent loop, the point is named on the + control itself. {words(with_point).capitalize()} of the {words(total)} have one. The rest do not have a single point and are left + unmarked rather than forced into one.
'''] + lines = [] + family = None + for c in controls: + if c['family'] != family: + family = c['family'] + lines += ['', f'{e(c["family"])} · {e(c["family_name"])}
'] + lines += card(c) + lines += ['', 'What this page does not do
', '- ',
+ f'
- It does not claim these controls are absent from OpenCRE. Every one of the {words(total)} maps to an', + ' existing Common Requirement. None proposes a new one. ', + '
- It does not rank the controls or assert a maturity model over them. ', + '
- It does not assert that any AgenTrust implementation satisfies any of them. Conformance is', + ' tested per specification, not asserted here. '] + lines += private_bullet(controls) + lines += ['
{e(c["name"])}
+Redirecting to the control set.
+