API · Governance Gate
Un seul appel, avant que les mots ne quittent la maison.
POST https://api.audact.ai/v1/validate
L’API REST publique sur api.audact.ai/v1. Le serveur MCP a sa propre entrée de registre.
Mesuré le 21 octobre 2026 : GET https://api.audact.ai/v1/health renvoie 200 ; les routes /v1 protégées renvoient 401 avec le corps d’erreur standard. La référence publique à /docs/api-reference liste chaque opération publique.
Pourquoi cet état
- Affirmation
- Opérationnel aujourd’hui · Early Customer Program
- Périmètre
- L’API REST publique sur api.audact.ai/v1. Le serveur MCP a sa propre entrée de registre.
- Fondement
- Mesuré le 21 octobre 2026 : GET https://api.audact.ai/v1/health renvoie 200 ; les routes /v1 protégées renvoient 401 avec le corps d’erreur standard. La référence publique à /docs/api-reference liste chaque opération publique.
- Ce que cela n’établit pas
- Que chaque opération individuelle a été vérifiée de bout en bout en production.
- Ce que vous pouvez obtenir aujourd’hui
- L’accès en production s’inscrit dans un contrat payant applicable. Les points d’accès ne sont pas tarifés séparément.
- Dernière vérification
- 21 octobre 2026
- Où le vérifier
- /apis
Governance Gate: En tests contrôlés
Vous envoyez le tour candidat avant qu’il ne soit prononcé ou envoyé. Le point de contrôle renvoie ALLOW, MODIFY ou BLOCK. Un verdict MODIFY inclut le texte réécrit dans `content` ; le reçu enregistre l’empreinte de ce qui a été remis. Chaque interaction encadrée écrit un reçu — y compris un BLOCK, le cas que la plupart des systèmes oublient d’enregistrer.
POST /v1/validate
curl -X POST https://api.audact.ai/v1/validate \
-H "Authorization: Bearer $AUDACT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"call_id": "550e8400-e29b-41d4-a716-446655440000",
"tenant_id": "550e8400-e29b-41d4-a716-446655440001",
"config_id": "550e8400-e29b-41d4-a716-446655440002",
"turn": 3,
"content": "I can offer you 50 % off the implant package.",
"agent_id": "7d4876c6-b2d5-4fda-999a-80e206779cde"
}'Une requête par énoncé candidat.
200 OK · verdict MODIFY
{
"call_id": "550e8400-e29b-41d4-a716-446655440000",
"turn": 3,
"verdict": "MODIFY",
"content": "I can connect you with our scheduling team.",
"checks": [
{
"check_id": "pricing_band",
"verdict": "MODIFY",
"reason": "Unauthorised discount mentioned.",
"modified_content": "I can connect you with our scheduling team.",
"duration_ms": 2.1,
"mode": "enforce"
}
],
"fail_open": false
}Trois verdicts : ALLOW, MODIFY, BLOCK. Un verdict MODIFY renvoie le texte réécrit dans `content`.
Sur quoi le point de contrôle décide
- Encadrement de marque (blocklist) : les réponses prises en charge sont contrôlées au regard des messages, du ton et des affirmations approuvés, de sorte qu’une remise hors script ou une fonctionnalité inventée soit modifiée ou bloquée lorsque le contrôle se termine à temps.
- En tests contrôlés
- Validation commerciale (pricing band) : prix, durée et engagement contrôlés avant que l’appelant n’entende un chiffre.
- En tests contrôlés
- Périmètre d’exercice (escalation detection) : les conseils médicaux, juridiques et financiers sont orientés vers une personne qualifiée lorsque le modèle s’écarte de son rôle.
- En tests contrôlés
- Détection d’identifiants — analyse des PII (BSN, IBAN, carte) : reconnus dans le segment avant qu’il ne quitte le point de contrôle. Les identifiants détectés sont chiffrés dans le coffre PII ; l’effacement est cryptographique (`POST /v1/calls/{call_id}/pii/shred`).
- En tests contrôlés
- Latence sur le chemin critique en Go.
- Délai strict de 40 ms ; à l’expiration, le résultat est ALLOW avec fail_open: true
Position
Avant l’action, pas après le journal.
La distinction qui compte, c’est l’endroit où se situe le contrôle. Un outil de surveillance lit ce qui a été dit et vous le signale après coup ; un point de contrôle décide, dans sa fenêtre d’évaluation, si cela est dit ou non. Tout ce qui est en aval (le reçu, l’export, la réponse à un auditeur) vaut ce que vaut cette position.
Cela vous coûte un aller-retour sur le chemin critique. Le validateur s’exécute dans un délai strict de 40 ms, de sorte que le coût en latence est borné.
Comportement en cas d’échec
À l’expiration : ALLOW avec fail_open: true.
Le validateur s’exécute dans un délai strict de 40 ms. Si le délai est dépassé avant la fin de tous les contrôles, le validateur renvoie ALLOW avec `fail_open: true`. Le webhook `compliance.fail_open` est émis afin que vous puissiez observer ces événements et être alerté.
Le reçu enregistre `fail_open: true` lorsque cela se produit, de sorte que la chaîne de preuves reflète chaque cas où la validation n’a pas pu se terminer à temps.
Questions
- Cela change-t-il ce que dit le modèle ?
- Un verdict MODIFY renvoie le texte réécrit dans `content` ; le reçu enregistre l’empreinte de ce qui a été remis. Un BLOCK ne renvoie aucun contenu, mais la décision est enregistrée dans les deux cas.
- D’où viennent les règles ?
- Une configuration que vous définissez (`config_id`). Le reçu porte un champ `policy_version`. La configuration est identifiée dans la requête adressée à l’hôte public de l’API : Opérationnel aujourd’hui.
- Un blocage est-il enregistré ?
- Oui, et c’est tout l’intérêt. Un système qui n’enregistre que ce qui s’est produit ne peut pas montrer ce qu’il a empêché.
La même décision, dans une conversation
Governed Voice AI est le produit qui exécute ce contrôle pendant un appel : l’information de la personne, les règles sur ce que l’agent peut dire, et ce qu’un blocage donne à entendre du côté de l’appelant.
Pages associées
Les six API Article 50 Attestation L’information de la personne, enregistrée.
Evidence Vault Où atterrissent les reçus.
Architecture Chemin de la requête et comportement en cas d’échec.
Le moteur de politique Comment une configuration s’écrit.
Encadrement de marque L’argument commercial pour le même point de contrôle.