acf.classify-agent
Pre-go-live qualification of an AI agent, ten qualified-enum input fields, one structured output: autonomy level, criticality, AI Act role, applicable obligations, DDAO controls, required sign-offs.
requires_human_review is always true in the output. All enum fields are strict, the call is rejected, not guessed.When to use
Use this tool when an AI system is heading toward go-live and you need a structured first verdict on five questions at once: what autonomy level it operates at, what criticality it carries, what regulatory role it plays (AI Act + GDPR), what controls to put in place, and who must sign off on production. The tool aggregates the five verdicts into one call.
It is not a production-time tool: it is a scoping tool. The output is designed to land in an ACF-08 (First Agent Dossier) card that the DDAO will review and complete.
Input parameters
Ten core fields, all required unless noted. Enums are strict, the tool rejects the input rather than guessing.
namestring (2-200)requireddescriptionstring (20-1000)requireddecisions_takenstring[] (1-20)requiredhuman_approval_required"always" | "sometimes" | "never"requiredpersonal_data_level"none" | "standard" | "sensitive_special"requiredfinancial_exposure"none" | "low_operation" | "medium_contract" | "high_corporate"requiredexternal_actions"none" | "read_only" | "limited_write" | "full_write"requiredgpai_usedbooleanrequiredusage_audience"internal" | "third_party_b2b" | "public_consumer"requiredsectorstring (≤80)jurisdiction("eu" | "uk" | "us" | "ca" | "ch" | "br" | "jp" | "other")[]ai_act_triggersAiActTriggerEnum[]processing_purposesProcessingPurposeEnum[]locale"en" | "fr"default: "en"Output schema
The output is a structured object, followed by the signed doctrine footer.
autonomy_level{ level: "suggestive"|"co_decision"|"supervised_autonomous"|"autonomous", rationale: string }criticality{ score: "low"|"medium"|"high"|"critical", rationale, matrix_ref }regulatory_qualifications{ likely_ai_act_role, likely_gdpr_status }ai_act_obligations{ pre_go_live[], continuous[], on_incident[] }applicable_fiches{ code: string, why: string }[]recommended_controlsstring[]ddao_controlsstring[]ddao_escalation{ required: boolean, trigger_thresholds: string[] }sign_off_required{ security, privacy, compliance, legal, business_sponsor, board: boolean }confidence"low" | "medium" | "high"assumptionsstring[]gaps_to_validatestring[]requires_human_reviewtrueExample call
An agent qualifying a software vendor’s inbound B2B leads:
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.classify-agent",
arguments: {
name: "B2B lead-qualification agent",
description:
"Receives raw inbound leads from the website form, enriches them with public LinkedIn data, scores them on fit, and writes a category to Salesforce.",
decisions_taken: [
"assign a fit score 0-100",
"tag as MQL or disqualified",
"write the result to the Salesforce lead record",
],
human_approval_required: "sometimes",
personal_data_level: "standard",
financial_exposure: "low_operation",
external_actions: "limited_write",
gpai_used: true,
usage_audience: "internal",
sector: "saas",
jurisdiction: ["eu", "uk"],
ai_act_triggers: ["none"],
processing_purposes: ["marketing"],
locale: "en",
},
});
console.log(JSON.stringify(result.content, null, 2));Response
{
"autonomy_level": {
"level": "supervised_autonomous",
"rationale": "Conditional human approval, write actions allowed within a bounded perimeter → conditional execution (mandate required)."
},
"criticality": {
"score": "medium",
"rationale": "Standard personal data + low operational exposure → medium criticality (GDPR + operational impact).",
"matrix_ref": "cell(standard, low_operation)"
},
"regulatory_qualifications": {
"likely_ai_act_role": "deployer",
"likely_gdpr_status": "controller"
},
"regulatory_qualifications_confidence": {
"likely_ai_act_role": "high",
"likely_gdpr_status": "high"
},
"ai_act_obligations": {
"pre_go_live": [
{
"article": "art-50",
"requirement": "Transparency obligations on AI systems intended to interact with natural persons (clear notice that the user is interacting with an AI system, unless obvious from context).",
"applicable_date": "2026-08-02"
}
],
"continuous": [
{
"article": "art-51",
"requirement": "Classification of GPAI models and identification of systemic-risk models.",
"applicable_date": "2026-08-02"
},
{
"article": "art-53",
"requirement": "Technical documentation, training data summary, copyright policy, instructions for downstream providers.",
"applicable_date": "2026-08-02"
},
{
"article": "art-54",
"requirement": "Authorised representative requirement for non-EU GPAI providers placing models on the EU market.",
"applicable_date": "2026-08-02"
}
],
"on_incident": []
},
"applicable_fiches": [
{
"code": "ACF-13",
"why": "Formal mandate required once the agent decides on its own (supervised autonomous or autonomous)."
},
{
"code": "ACF-07",
"why": "Kill switch required once the agent decides on its own (supervised autonomous or autonomous)."
},
{
"code": "ACF-09",
"why": "Decision register required once the agent decides on its own (supervised autonomous or autonomous)."
}
],
"recommended_controls": [
"Formal agent mandate",
"Kill switch quarterly drill",
"Decision register",
"Quarterly risk review"
],
"ddao_controls": [
"ACF-CTRL-101 (preventive, ACF-13): Mandate templates calibrated by sector; review frequency tied to criticality.",
"ACF-CTRL-102 (corrective, ACF-07): Kill switch with 3 levels: freeze (instant), redirect (≤5min), revoke (≤1h).",
"ACF-CTRL-103 (detective, ACF-09): Decision register format aligned with Article 49 register for high-risk systems."
],
"ddao_escalation": {
"required": false,
"trigger_thresholds": [
"Action above bounded perimeter escalates to DDAO before execution.",
"Drift > 10% on key metric vs baseline escalates within 24h."
]
},
"sign_off_required": {
"security": true,
"privacy": true,
"compliance": false,
"legal": false,
"business_sponsor": true,
"board": false
},
"confidence": "medium",
"assumptions": [],
"gaps_to_validate": [],
"requires_human_review": true,
"rationale_per_rule": [
{
"rule_id": "ai-act-annex-iii.annex-iii-1a-biometric-identity",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-2-critical-infrastructure",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-3-educational",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-4-employment",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-5b-credit-scoring",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-5c-insurance-pricing",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-6-law-enforcement",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-7-migration-asylum",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-iii.annex-iii-8-justice-democracy",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-i.annex-i-medical-device",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-i.annex-i-vehicle-safety",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "ai-act-annex-i.annex-i-machinery",
"rule_version": "2026-06",
"fired": false,
"evidence": ""
},
{
"rule_id": "gpai-triggers",
"rule_version": "2026-06",
"fired": true,
"evidence": "enum:gpai_used=true"
},
{
"rule_id": "ai-act-roles.ai-act-role-deployer-internal-use",
"rule_version": "2026-06",
"fired": true,
"evidence": "enum:usage_audience=internal"
},
{
"rule_id": "gdpr-qualification.gdpr-controller-internal-use",
"rule_version": "2026-06",
"fired": true,
"evidence": "enum:usage_audience=internal; enum:personal_data_level=standard"
},
{
"rule_id": "sign-off-matrix.medium-standard-low_operation",
"rule_version": "2026-06",
"fired": true,
"evidence": "criticality=medium, pii=standard, fin=low_operation"
},
{
"rule_id": "ddao-controls-mapping.supervised_autonomous-high",
"rule_version": "2026-06",
"fired": true,
"evidence": "level=supervised_autonomous, risk=medium"
},
{
"rule_id": "autonomy-inference.supervised_autonomous",
"rule_version": "2026-06",
"fired": true,
"evidence": "human_approval=sometimes, ext=limited_write"
},
{
"rule_id": "criticality-matrix.standard-low_operation",
"rule_version": "2026-06",
"fired": true,
"evidence": "pii=standard, fin=low_operation"
}
],
"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.055Z",
"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.",
"conversion_cta": "Generate the full auditable PDF report on https://acfstandard.com/compliance?ref=mcp"
}Common errors
- Invalid parameters: one of the enumerated fields (human_approval_required, personal_data_level, financial_exposure, external_actions, usage_audience) outside its values, or empty decisions_taken. 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.assess-autonomy: drill into the autonomy-level decision in isolation.acf.map-ai-act-obligations: get the exhaustive AI Act obligation set once the qualification is stable.acf.assign-ddao-controls: assign the concrete controls the DDAO must enforce.