acf.assess-autonomy
Standalone autonomy decision: should the agent propose, decide or execute? Four input fields, one delegated autonomy level out (suggestive, co-decision, supervised autonomous or autonomous), with go/no-go criteria, gating thresholds, and kill switch design.
requires_human_review is always true. The go/no-go criteria in the output are only valid after human review, this is not a go-live verdict.When to use
Use this tool when the only blocking question is: “what ACF® autonomy level should this agent have?”. You already know what it does, you know what happens on error, you want a structured verdict on the delegated autonomy level (suggestive, co-decision, supervised autonomous, autonomous) with the associated go/no-go criteria. It is the surgical version of classify-agent when only the autonomy axis is in debate.
It answers the DDAO question: “do we allow this agent to execute, or only to propose?”. The output includes a three-level kill switch design (freeze, redirect, revoke) directly usable in the ACF-07 card.
Input parameters
Five input fields, four of them required. Enums are strict.
agent_descriptionstring (10-1500)requiredintended_actionsstring[] (1-20)requiredreversibility"fully" | "partially" | "irreversible"requiredaudit_requirements"none" | "internal" | "regulatory" | "forensic"requiredhuman_in_loop_cost"low" | "medium" | "high"locale"en" | "fr"default: "en"Output schema
Recommended level, go/no-go criteria, gating thresholds, kill switch design, referenced fiches, signed footer.
recommended_level{ level: "suggestive"|"co_decision"|"supervised_autonomous"|"autonomous", rationale: string }go_no_go_criteria{ criterion: string, status: "pass"|"conditional"|"fail" }[]gating_thresholds{ condition: string, escalation: string }[]kill_switch_design{ levels: string[], response_time_s: number[] }referenced_fichesstring[]confidence"low" | "medium" | "high"assumptionsstring[]gaps_to_validatestring[]rationale_per_rule{ rule_id, rule_version, fired, evidence }[]requires_human_reviewtrueExample call
A procurement agent drafting purchase orders under EUR 5k:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "npx",
args: ["-y", "acf-mcp"],
});
const client = new Client({ name: "demo", version: "1.0" }, {});
await client.connect(transport);
const result = await client.callTool({
name: "acf.assess-autonomy",
arguments: {
agent_description:
"Procurement agent that drafts purchase orders for office supplies under EUR 5k and submits them to the ERP for approval.",
intended_actions: [
"draft purchase order from request",
"validate vendor against approved list",
"submit PO to ERP for human approval",
],
reversibility: "partially",
audit_requirements: "internal",
human_in_loop_cost: "medium",
locale: "en",
},
});
console.log(JSON.stringify(result.content, null, 2));Response
{
"recommended_level": {
"level": "supervised_autonomous",
"rationale": "Partial reversibility with internal audit allows supervised autonomy within a documented mandate."
},
"go_no_go_criteria": [
{
"criterion": "Mandate signed by the named DDAO",
"status": "conditional"
},
{
"criterion": "Kill switch documented and tested",
"status": "fail"
},
{
"criterion": "Decision register format defined",
"status": "conditional"
},
{
"criterion": "Escalation thresholds named in numeric terms",
"status": "fail"
},
{
"criterion": "Sign-off from DPO if PII transits the agent",
"status": "conditional"
}
],
"gating_thresholds": [
{
"condition": "Any action above bounded perimeter",
"escalation": "Block + DDAO ack before execution"
},
{
"condition": "Drift > 10% on key metric vs baseline",
"escalation": "Auto-suspend within 24h + post-mortem"
},
{
"condition": "3 consecutive incidents in 24h",
"escalation": "Auto-suspend + immediate DDAO review"
}
],
"kill_switch_design": {
"levels": [
"freeze (instant)",
"redirect (≤5 min)",
"revoke (≤1 h)"
],
"response_time_s": [
5,
300,
3600
]
},
"referenced_fiches": [
"ACF-07",
"ACF-P6",
"ACF-13",
"ACF-09"
],
"confidence": "medium",
"assumptions": [
"Inference is deterministic over the 4 supplied dimensions; sector calibration not included."
],
"gaps_to_validate": [
"Confirm whether any intended action handles PII (Article 35 GDPR DPIA may apply).",
"Confirm whether the kill switch has been tested in the last quarter."
],
"requires_human_review": true,
"rationale_per_rule": [
{
"rule_id": "assess-autonomy.decision-tree",
"rule_version": "2026-06",
"fired": true,
"evidence": "reversibility=partially, audit=internal, hil_cost=medium"
}
],
"doctrine_version": "ACF framework v1.0 / rules 2026-06",
"doctrine_hash": "sha256:119819463363cde0649504ab8ed5a96982fdb8506441f2c5e76e7e3c3feb77f1",
"doctrine_signature": "ed25519:3R0oIiqL3Kgd…",
"doctrine_archive_url": "https://acfstandard.io/archive/doctrine/v1.0/doctrine-v1.0.json",
"regulatory_snapshot": "EU AI Act (Reg. 2024/1689, incl. Digital Omnibus deferral) + GDPR (Reg. 2016/679) + DORA (Reg. 2022/2554) + NIS2 (Dir. 2022/2555) + ISO 42001:2023: as of 2026-06-07",
"generated_at": "2026-11-01T12:06:31.043Z",
"disclaimer": "Preliminary qualification produced by the ACF® deterministic engine. Not legal advice. Human review required. Do not use for autonomous regulatory decision-making. See doctrine_archive_url for the version of the doctrine used."
}Common errors
- Invalid parameters: reversibility, audit_requirements or human_in_loop_cost outside their enums, or empty intended_actions. The call fails with a JSON-RPC error whose message lists the offending fields.
- Low confidence: when few context fields are provided, confidence is low and assumptions states what was assumed. Complete the input before relying on the result.
Related tools
acf.classify-agent: broaden beyond the autonomy decision alone to also get criticality, regulatory role and sign-offs.acf.assign-ddao-controls: turn the recommended level into concrete controls the DDAO must enforce.acf.evaluate-agent-mandate: audit an existing mandate in the light of the recommended autonomy level.