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-07 (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 à dix-huit champs structurés + pied-de-page signé.
acf_level{ level: "N0"|"N1"|"N2"|"N3", 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 SaaS qui qualifie des leads B2B entrants :
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
{
"acf_level": {
"level": "N1",
"rationale": "Decision is automated but a human sign-off remains in the loop for MQL routing. Tagged as N1 (assisted) — graduate to N2 only after a 30-day drift review."
},
"criticality": {
"score": "medium",
"rationale": "Limited financial exposure + standard personal data + internal audience. The risk is reputational and pipeline-quality, not life-safety or financial.",
"matrix_ref": "ACF-02 §3.2"
},
"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": "Inform leads that an AI is involved in the scoring", "applicable_date": "2026-08-02" }
],
"continuous": [
{ "article": "Art. 13", "requirement": "Maintain end-user transparency about the scoring logic", "applicable_date": "—" }
],
"on_incident": []
},
"applicable_fiches": [
{ "code": "ACF-04", "why": "Defines the agent identity card — required for any production agent" },
{ "code": "ACF-12", "why": "Mandate of the agent under a named DDAO" },
{ "code": "ACF-06", "why": "Kill switch testing every quarter" },
{ "code": "ACF-08", "why": "Signed decision register — six-month retention by deployer" }
],
"recommended_controls": [
"Disclose AI involvement in the contact form",
"Log every score assignment with input and rationale",
"Quarterly drift review of MQL precision/recall"
],
"ddao_controls": [
"C-AUTONOMY-01 — N1 gating: every MQL → human review before SDR outreach",
"C-LOG-03 — Signed decision register branched to ACF-08",
"C-DRIFT-02 — Monthly drift dashboard for fit-score distribution"
],
"ddao_escalation": {
"required": true,
"trigger_thresholds": [
"fit-score distribution shifts by > 2σ vs baseline",
"MQL → SQL conversion drops by > 30% week over week",
"any complaint from a tagged lead"
]
},
"sign_off_required": {
"security": false,
"privacy": true,
"compliance": true,
"legal": false,
"business_sponsor": true,
"board": false
},
"confidence": "high",
"assumptions": [
"Lead enrichment uses only public LinkedIn data via official API",
"No special-category personal data is processed"
],
"gaps_to_validate": [
"Confirm Salesforce write scope — the agent should NOT update opportunity stages",
"Confirm retention period of the signed register (six months minimum per Art. 26(6))"
],
"requires_human_review": true,
"doctrine_version": "ACF framework v1.0 / rules 2026-06",
"doctrine_hash": "sha256:bf0b6d8e4731ebdc58f6d6338702c5b74af47874cf0ad3dc958cde5c5b30b9dc",
"doctrine_signature": "ed25519:…",
"doctrine_archive_url": "https://acfstandard.io/doctrine/v1.0/archive.json",
"regulatory_snapshot": "EU AI Act 2024/1689 · GDPR 2016/679 · ISO 42001:2023 · NIST AI RMF 1.0 · COBIT 2019 — frozen 2026-06",
"generated_at": "2026-06-14T11:47:22.318Z",
"conversion_cta": "Generate the full auditable PDF report on https://acfstandard.com/compliance?ref=mcp",
"disclaimer": "Preliminary qualification only — not legal advice. Human review required."
}Erreurs courantes
InvalidEnumValue— un champ énuméré reçoit une valeur hors liste (ex. financial_exposure: "medium"). Corrigez vers une des valeurs canoniques.InputTooShort— description < 20 caractères ou decisions_taken vide. L’outil ne devine pas — corrigez l’entrée.DoctrineSnapshotMismatch— le doctrine_hash demandé n’est pas chargé. Mettez acf-mcp à jour ou pointez vers la version archivée.
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.