acf.classify-agent
Qualification préliminaire d’un agent IA avant go-live, dix champs énumérés en entrée, une évaluation structurée en sortie : niveau d’autonomie, criticité, rôle AI Act, obligations applicables, contrôles DDAO, sign-offs requis.
requires_human_review vaut toujours true en sortie. Tous les champs énumérés sont stricts, l’entrée est rejetée plutôt que devinée.Quand l’utiliser
Utilisez cet outil quand un système d’IA arrive avant son go-live et qu’il faut un premier verdict structuré sur cinq questions en parallèle : à quel niveau d’autonomie il opère, quelle criticité il porte, quel rôle régulatoire il occupe (AI Act + RGPD), quels contrôles mettre en place, et qui doit signer son passage en production. L’outil agrège les cinq verdicts en un seul appel.
Ce n’est pas un outil de production : c’est un outil de cadrage. La sortie est conçue pour entrer dans une fiche ACF-08 (Dossier Premier Agent) que le DDAO va revoir et compléter.
Paramètres d’entrée
Dix champs principaux, tous obligatoires sauf indication contraire. Les énumérations sont strictes, l’outil rejette l’entrée plutôt que de deviner.
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"Schéma de sortie
La sortie est un objet structuré, suivi du pied-de-page signé de la doctrine.
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_reviewtrueExemple d’appel
Un agent qui qualifie les leads B2B entrants d’un éditeur de logiciel :
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));Réponse
{
"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"
}Erreurs courantes
- Paramètres invalides : un des champs énumérés (human_approval_required, personal_data_level, financial_exposure, external_actions, usage_audience) hors de ses valeurs, ou decisions_taken vide. L’appel échoue avec une erreur JSON-RPC dont le message liste les champs en cause.
- Confiance basse : quand peu de champs de contexte sont fournis, confidence vaut low et assumptions dit ce qui a été supposé. Complétez l’entrée avant de vous appuyer sur le résultat.
Outils liés
acf.assess-autonomy: creuser la décision de niveau d’autonomie en isolation.acf.map-ai-act-obligations: obtenir l’ensemble exhaustif des obligations AI Act une fois la qualification stabilisée.acf.assign-ddao-controls: assigner les contrôles concrets que le DDAO doit imposer.