Aller au contenu principal

Module Thalia — Runtime IA

Le module Thalia est la couche runtime de l'agent IA on-premise. Il implémente les trois piliers de la gouvernance IA : audit, permissions, et validation humaine.

astuce

Pour l'architecture globale de Thalia (vision, roadmap, RAG), voir la section Thalia — IA.

Services

ThaliaPermissionService

Vérifie si une action IA est autorisée pour un utilisateur et un scope donné.

use Modules\Thalia\Services\ThaliaPermissionService;

$result = app(ThaliaPermissionService::class)->check(
user: $user,
tool: 'bookstack.search',
scope: 'bridge.read'
);
// $result->allowed (bool)
// $result->reason (string)

En mode permissif (Phase 4 par défaut) : retourne toujours allowed = true mais trace l'accès dans thalia_ai_logs.

ThaliaAuditService

Enregistre toutes les actions IA dans thalia_ai_logs.

  • ThaliaAuditService::sanitizeParams() filtre automatiquement les champs token, secret, key avant d'écrire en log.

ThaliaValidationService

Gère le workflow de validation humaine pour les actions sensibles.

  • Crée des entrées dans thalia_pending_actions
  • Notifie un approbateur via AlertService
  • Expire les actions non validées après TTL configurable

Modèles

ModèleTableDescription
ThaliaAiLogthalia_ai_logsJournal de toutes les actions IA
ThaliaPendingActionthalia_pending_actionsActions en attente de validation humaine
ThaliaToolPermissionthalia_tool_permissionsPermissions par outil et scope

Seeder permissions

php artisan db:seed --class="Modules\Thalia\Database\Seeders\ThaliaToolPermissionSeeder"

Initialise les permissions de base (ex. bridge.bookstack.* / scope bridge.read).

Schéma thalia_ai_logs

ColonneTypeDescription
idbigintPK
id_userbigintUtilisateur ayant déclenché l'action
toolvarcharOutil appelé (ex. bookstack.search)
scopevarcharScope de permission
paramsjsonParamètres sanitizés
resultjsonRésultat ou erreur
allowedbooleanDécision de permission
duration_msintDurée d'exécution
created_attimestampHorodatage