ACF
acfstandard.io
Developer docs
EN
REASON

acf.advisor

Conseil de gouvernance ACF® à partir d’un cas en texte libre, un paragraphe en entrée, une évaluation structurée en sortie : principes activés, niveau d’autonomie, risque, articles applicables, premières actions, risques opérationnels. C’est l’outil de conversion de la bibliothèque ACF® vers le rôle d’advisor.

!Attention
Cet outil produit une évaluation préliminaire à partir d’heuristiques sur texte libre, pas un avis juridique. requires_human_review vaut toujours true. Pour une qualification plus défensive, repassez via acf.classify-agent avec des énumérations qualifiées.

Quand l’utiliser

Utilisez cet outil quand un porteur de cas (DSI, métier, conseil) arrive avec une description prose de son agent IA et a besoin d’un premier verdict structuré sur la gouvernance ACF® applicable : quels principes s’activent, quel niveau d’autonomie déléguée est cohérent, quelles obligations réglementaires se déclenchent, quelles fiches mobiliser dans quel ordre. C’est l’outil « première étape » avant qualification rigoureuse.

Il répond à la question board-level : « par où on commence sur ce cas-là ? ». La sortie est conçue pour être servie à un comité IA ou à un DDAO qui décidera des étapes suivantes.

Paramètres d’entrée

Un champ obligatoire (la description du cas), trois champs contextuels optionnels qui resserrent la calibration.

case_descriptionstring (20-2000)required
Description prose du cas : ce que l’agent fait, qui le pilote, sur quoi il agit, qui valide. Plus la description est précise, plus les heuristiques d’inférence sont solides.
sectorstring (≤80)
Secteur d’activité (« banque », « healthtech », « public sector »…). Sans secteur, la criticité utilise une calibration neutre.
jurisdiction"eu" | "uk" | "us" | "ca" | "ch" | "br" | "jp" | "other"
Juridiction principale de déploiement. Par défaut, l’outil raisonne en supposant EU.
deployment_scale"pilot" | "department" | "enterprise" | "public"
Échelle de déploiement. Influence la criticité et les premières actions recommandées.
locale"en" | "fr"default: "en"
Langue de la sortie textuelle.

Schéma de sortie

La sortie est un objet structuré avec niveau d’autonomie, niveau de risque, principes activés, fiches priorisées, articles applicables, premières actions, risques opérationnels, pied-de-page signé.

autonomy_level{ level: "suggestive"|"co_decision"|"supervised_autonomous"|"autonomous", rationale: string }
Niveau d’autonomie ACF® inféré et sa justification.
risk_level{ level: "low"|"medium"|"high"|"unacceptable", rationale: string }
Classe de risque AI Act-compatible, dérivée de la criticité (fiche ACF-03, Matrice de Criticité).
activated_principles{ code: string, why: string }[]
Principes ACF® (P1 à P4) déclenchés par le cas, chacun motivé.
priority_fiches{ code: string, order: number, why: string }[]
Fiches ACF® à mobiliser, dans l’ordre, avec la raison de chacune.
applicable_articles{ regulation: string, article: string, why: string }[]
Articles AI Act / RGPD / DORA / NIS2 / ISO 42001 mobilisés par le cas.
first_actionsstring[] (≤5)
Les cinq premières actions opérationnelles à enclencher.
operational_risksstring[]
Risques opérationnels typiques liés au profil inféré.
confidence"low" | "medium" | "high"
Confiance globale de l’évaluation. Reste « medium » par défaut quand l’entrée est uniquement prose.
assumptionsstring[]
Hypothèses explicites prises lors de l’inférence (notamment les enums inférés du texte).
gaps_to_validatestring[]
Trous à combler par revue humaine, dont la recommandation systématique de repasser via classify-agent.
rationale_per_rule{ rule_id, rule_version, fired, evidence }[]
Trace par règle déclenchée : identifiant, version, statut, preuve issue du texte.
requires_human_reviewtrue
Constant. Aucun appel ne le retourne false.

Exemple d’appel

Un assistant RH interne qui propose une shortlist validée par un recruteur :

advisor.tstypescript
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.advisor",
  arguments: {
    case_description:
      "We are rolling out an internal HR assistant that summarises candidate CVs, proposes a shortlist score, and writes the shortlist to our ATS. A recruiter validates each shortlist before any candidate is contacted. The agent reads structured candidate profiles (name, email, education) and uses a GPAI under the hood for the summarisation.",
    sector: "human-resources",
    jurisdiction: "eu",
    deployment_scale: "department",
    locale: "en",
  },
});

console.log(JSON.stringify(result.content, null, 2));

Réponse

response.jsonjson
{
  "autonomy_level": {
    "level": "co_decision",
    "rationale": "No clear autonomy threshold matched the declared inputs; defaulting to co-decision (the agent proposes, a human validates). Confirm with the team."
  },
  "risk_level": {
    "level": "medium",
    "rationale": "Combination of personal_data_level + financial_exposure not yet calibrated; defaulting to medium for safety."
  },
  "activated_principles": [
    {
      "code": "P1",
      "why": "Decision sovereignty applies to every agentic deployment, regardless of autonomy."
    }
  ],
  "priority_fiches": [
    {
      "code": "ACF-01",
      "order": 1,
      "why": "Start here: the sovereignty score is the entry point of the toolkit."
    }
  ],
  "applicable_articles": [],
  "first_actions": [
    "Identify or appoint the DDAO accountable for the agent (cf. ACF-13).",
    "Document the agent constitution (decision perimeter, allowed/forbidden actions: cf. ACF-04).",
    "Open the decision register and define the retention policy (cf. ACF-09 + ACF-P14)."
  ],
  "operational_risks": [],
  "confidence": "low",
  "assumptions": [
    "human_approval, external_actions and personal_data_level were inferred from the free-text description; pass classify-agent with qualified enums for higher confidence."
  ],
  "gaps_to_validate": [
    "re-run via acf.classify-agent with structured enums for a more defensible qualification."
  ],
  "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": false,
      "evidence": ""
    },
    {
      "rule_id": "autonomy-inference.default-co_decision",
      "rule_version": "2026-06",
      "fired": true,
      "evidence": "inferred human_approval=sometimes, external=read_only from description"
    },
    {
      "rule_id": "criticality-matrix.default-medium",
      "rule_version": "2026-06",
      "fired": true,
      "evidence": "inferred pii=standard, financial=none from description"
    }
  ],
  "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.037Z",
  "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": "Continue this assessment with the auditable ACF® Compliance workspace at https://acfstandard.com/compliance?ref=mcp"
}

Erreurs courantes

  • Paramètres invalides : case_description trop courte (moins de 20 caractères) : l’outil ne devine pas, fournissez une description minimale du cas. 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.
  • acf.classify-agent: repasser avec des énumérations qualifiées dès que le cas est précisé, pour gagner en confiance.
  • acf.assess-autonomy: creuser la seule décision de niveau d’autonomie quand c’est le point bloquant.
  • acf.identify-governance-gaps: élargir du cas isolé à l’audit de gouvernance globale de l’organisation.