acf.search
Recherche plein-texte sur l’ensemble du corpus ACF® — principes, niveaux d’autonomie, dimensions, DDAO, fiches, guides réglementaires, glossaire, whitepaper. Renvoie une liste classée d’URIs canoniques à lire ensuite.
acf.search ne réécrit pas, ne résume pas et ne devine pas : il classe des URIs acf://… qu’un autre appel ira lire.Quand l’utiliser
Utilisez cet outil quand l’agent doit répondre à une question opérationnelle ou réglementaire et ne sait pas quelle ressource ACF® citer en priorité. La requête peut être un mot-clé technique (« kill switch »), une question métier (« qui doit signer le go-live ? ») ou une référence externe (« GDPR Art. 35 »). La sortie donne les URIs candidats classés par pertinence, pas leur contenu.
Étape de cadrage uniquement : enchaînez avec acf.fiche.lookup, acf.regulation.article ou un appel resources/read pour récupérer le contenu signé avant de répondre à l’utilisateur. Le score de lunr est pondéré pour promouvoir le corpus framework (principes, niveaux, dimensions) au-dessus des synonymes glossaire.
Paramètres d’entrée
Quatre champs simples. La requête est normalisée (diacritiques retirés, minuscules) avant indexation lunr.
querystring (1-200)requiredscope"all" | "framework" | "fiche" | "guide" | "whitepaper" | "glossary"default: "all"locale"en" | "fr"default: "en"limitinteger (1-20)default: 10Schéma de sortie
Une liste de hits classés par score décroissant, plus le pied-de-page signé qui identifie la version du corpus interrogé.
querystringscopestringlocale"en" | "fr"hits{ uri, title, snippet, score, category, locale }[]doctrine_versionstringdoctrine_hashstringdoctrine_signaturestringdoctrine_archive_urlstringgenerated_atstring (ISO-8601)disclaimerstringExemple d’appel
L’agent cherche les ressources liées au kill switch pour préparer une réponse à l’audit DORA :
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.search",
arguments: {
query: "kill switch escalation thresholds",
scope: "all",
locale: "en",
limit: 5,
},
});
console.log(JSON.stringify(result.content, null, 2));Réponse
{
"query": "kill switch escalation thresholds",
"scope": "all",
"locale": "en",
"hits": [
{
"uri": "acf://fiche/ACF-06",
"title": "ACF-06 — Kill switch and degraded modes",
"snippet": "Defines the mandatory shutdown paths, the escalation thresholds that fire them, and the quarterly test cadence required for any N2+ agent.",
"score": 8.42,
"category": "fiche",
"locale": "en"
},
{
"uri": "acf://framework/principle/P-04",
"title": "Principle P-04 — Reversibility",
"snippet": "Every autonomous decision must remain reversible by a human operator within a bounded recovery window.",
"score": 6.18,
"category": "principle",
"locale": "en"
},
{
"uri": "acf://framework/autonomy-level/N2",
"title": "Autonomy level N2 — Supervised autonomy",
"snippet": "The agent decides and executes on its own; the DDAO sets escalation thresholds, a kill switch, and a signed decision register.",
"score": 5.71,
"category": "autonomy_level",
"locale": "en"
},
{
"uri": "acf://fiche/ACF-08",
"title": "ACF-08 — Signed decision register",
"snippet": "Every escalation event is logged in the signed register with the trigger threshold that fired it.",
"score": 4.92,
"category": "fiche",
"locale": "en"
},
{
"uri": "acf://glossary/kill%20switch",
"title": "kill switch",
"snippet": "Mandatory shutdown path that any DDAO can fire at any time, without prior sign-off, to stop an agent.",
"score": 3.65,
"category": "glossary",
"locale": "en"
}
],
"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",
"generated_at": "2026-06-14T11:47:22.318Z",
"disclaimer": "Search results rank candidate resources by relevance — read the cited resources before quoting them."
}Erreurs courantes
InvalidEnumValue— scope reçoit une valeur hors liste (ex. scope: "fiches" au pluriel). Corrigez vers une des six valeurs canoniques.QueryTooLong— query > 200 caractères. acf.search est conçu pour des mots-clés, pas pour des paragraphes entiers — résumez l’intention en quelques tokens.EmptyHits— aucun résultat ne dépasse le seuil de pertinence. Élargissez le scope à "all", retirez les caractères spéciaux ou reformulez.
Outils liés
acf.fiche.lookup— lire le contenu signé d’une fiche ACF® candidate identifiée par acf.search.acf.regulation.article— récupérer le texte vérifié d’un article réglementaire quand la requête pointe vers un guide AI Act, RGPD, DORA, NIS2 ou ISO 42001.acf.classify-agent— quand la recherche débouche sur une qualification d’agent, basculer vers l’outil REASON dédié.