Plongée technique dans l'architecture NemoClaw
NemoClaw n'est pas un produit unique — c'est une architecture de sécurité en couches conçue pour rendre les agents IA autonomes sûrs pour le déploiement en production. Cet article parcourt chaque couche, explique comment elles interagissent et fournit le contexte technique nécessaire pour évaluer NemoClaw dans votre propre infrastructure.
Vue d'ensemble de l'architecture
La pile NemoClaw se compose de quatre couches principales, chacune adressant une dimension différente de la sécurité des agents :
┌─────────────────────────────────────────────┐
│ Agent Application │
│ (OpenClaw Agent Framework) │
├─────────────────────────────────────────────┤
│ Privacy Router │
│ (Local vs. Cloud Model Routing) │
├─────────────────────────────────────────────┤
│ Nemotron Policy Engine │
│ (120B MoE Intent Classification) │
├─────────────────────────────────────────────┤
│ OpenShell Runtime │
│ (Kernel-Level Sandbox + Isolation) │
├─────────────────────────────────────────────┤
│ Host OS / Hardware (DGX) │
└─────────────────────────────────────────────┘
Chaque couche fonctionne indépendamment et peut être déployée seule, mais la pile complète offre une sécurité en profondeur qu'aucune couche individuelle ne peut atteindre seule.
Couche 1 : Runtime de sécurité OpenShell
OpenShell est le fondement du modèle de sécurité de NemoClaw. Il fournit un sandboxing au niveau du noyau pour l'exécution des agents, garantissant que même un agent compromis ne peut pas franchir sa limite de sécurité.
Comment fonctionne OpenShell
OpenShell utilise une combinaison d'espaces de noms du noyau Linux, de filtres seccomp-BPF et de programmes eBPF personnalisés de NVIDIA pour créer des environnements d'exécution isolés pour chaque tâche d'agent :
# openshell-policy.yaml
apiVersion: openshell.nvidia.com/v1
kind: SandboxPolicy
metadata:
name: customer-support-agent
spec:
isolation:
network: restricted
filesystem: read-only
syscalls: minimal
resources:
maxMemory: 4Gi
maxCPU: 2
gpuAccess: inference-only
permissions:
allowedAPIs:
- crm.read
- crm.update
- ticket.create
- ticket.resolve
deniedAPIs:
- admin.*
- billing.*
- user.delete
auditLog:
enabled: true
destination: siem://security-events
Chaque appel système effectué par l'agent est intercepté par la couche eBPF d'OpenShell, classifié selon la politique, puis autorisé, refusé ou remonté pour approbation humaine. L'intégralité du pipeline de décision s'exécute dans l'espace noyau, ajoutant moins de 50 microsecondes de latence par appel système.
Workflows d'approbation par l'opérateur
Pour les opérations à haut risque — suppression de données, modification d'infrastructure, envoi de communications externes — OpenShell peut mettre en pause l'exécution de l'agent et router l'action vers un opérateur humain pour approbation :
// Approval workflow configuration
const approvalPolicy = {
triggers: [
{ action: 'data.delete', threshold: 'always' },
{ action: 'infra.modify', threshold: 'always' },
{ action: 'email.send', threshold: 'external-only' },
{ action: 'payment.process', threshold: 'above-100-usd' },
],
channels: ['slack', 'teams', 'pagerduty'],
timeout: '15m',
defaultAction: 'deny',
};
Cela garantit que les agents peuvent fonctionner de manière autonome pour les tâches routinières tout en maintenant une supervision humaine pour les actions conséquentes.
Couche 2 : Moteur de politiques Nemotron 120B MoE
Le modèle Nemotron 120B Mixture-of-Experts sert de moteur intelligent d'évaluation des politiques de NemoClaw. Contrairement aux systèmes de sécurité traditionnels basés sur des règles, Nemotron peut comprendre l'intention derrière les actions des agents et les évaluer par rapport à des politiques de sécurité en langage naturel.
Classification d'intention
Lorsqu'un agent demande une action, Nemotron classifie l'intention selon plusieurs dimensions :
- •Sensibilité : Quelle est la sensibilité des données impliquées ? (publique, interne, confidentielle, restreinte)
- •Réversibilité : Cette action peut-elle être annulée ? (totalement réversible, partiellement réversible, irréversible)
- •Portée : Combien de systèmes ou d'utilisateurs sont affectés ? (individuel, équipe, organisation, externe)
- •Conformité : Cette action relève-t-elle d'un cadre réglementaire ? (RGPD, HIPAA, SOC 2, PCI-DSS)
La classification s'exécute en moins de 200 ms sur un seul GPU A100, et en moins de 50 ms sur un DGX Spark avec la variante quantifiée du modèle.
Politiques en langage naturel
Les équipes de sécurité peuvent définir des politiques en français courant, que Nemotron interprète et applique :
Policy: "Customer support agents may access customer records for active tickets only.
They may not access financial data, modify account settings, or communicate
with customers outside of the ticketing system. All PII must be redacted
from internal logs."
Nemotron convertit ces politiques en langage naturel en règles de sécurité exécutables, comblant le fossé entre l'intention de l'équipe sécurité et l'application technique.
Couche 3 : Privacy Router
Le Privacy Router est la couche de routage intelligent des modèles de NemoClaw. Il détermine si chaque tâche d'agent doit être traitée par un modèle local (Nemotron fonctionnant sur site) ou routée vers un endpoint de modèle cloud, en fonction de la classification de sensibilité des données.
Logique de routage
# Simplified Privacy Router logic
def route_request(request: AgentRequest) -> ModelEndpoint:
sensitivity = classify_sensitivity(request.context)
if sensitivity in ['restricted', 'confidential']:
# Highly sensitive data stays local
return local_nemotron_endpoint
if sensitivity == 'internal':
# Internal data can use cloud with encryption
return cloud_endpoint_with_e2e_encryption
if sensitivity == 'public':
# Public data can use any endpoint for best performance
return optimal_cloud_endpoint
# Default: local processing
return local_nemotron_endpoint
Le Privacy Router maintient un cache de classification en temps réel, de sorte que les requêtes répétées avec un contexte similaire sont routées sans réévaluation. Lors des benchmarks, le routeur ajoute moins de 5 ms de latence au pipeline de requêtes.
Conformité en matière de résidence des données
Pour les organisations soumises à des exigences de résidence des données (RGPD européen, PIPL chinois, etc.), le Privacy Router peut imposer des contraintes de routage géographique :
privacyRouter:
residencyRules:
- region: EU
dataTypes: [personalData, financialData]
allowedEndpoints: [eu-west-1-local, eu-central-1-local]
- region: CN
dataTypes: [all]
allowedEndpoints: [cn-north-1-local]
fallback: local-only
Couche 4 : Moteur de politiques réseau
Le moteur de politiques réseau contrôle les ressources externes auxquelles un agent peut accéder. Il fonctionne comme un proxy transparent, inspectant et filtrant toutes les requêtes réseau sortantes des bacs à sable d'agents.
Définition de politique
networkPolicy:
name: sales-ops-agent
egress:
allow:
- domain: "*.salesforce.com"
methods: [GET, POST, PATCH]
- domain: "api.hubspot.com"
methods: [GET]
- domain: "smtp.company.com"
ports: [587]
deny:
- domain: "*" # deny all other outbound traffic
ingress:
allow:
- source: "webhook.salesforce.com"
path: "/api/v1/events"
inspection:
tlsDecrypt: true
logPayloads: false
scanForPII: true
Le moteur de politiques réseau prend en charge l'interception TLS pour les requêtes sortantes (avec une gestion appropriée des certificats), lui permettant d'analyser les charges utiles des requêtes pour détecter les fuites accidentelles de données personnelles.
Assembler le tout
Lorsqu'un agent OpenClaw reçoit une tâche, la requête traverse la pile NemoClaw comme suit :
- 1.OpenClaw reçoit la tâche et construit un plan d'exécution
- 2.Privacy Router classifie la sensibilité des données et sélectionne l'endpoint de modèle approprié
- 3.Nemotron évalue le plan d'exécution par rapport aux politiques de sécurité et classifie l'intention
- 4.OpenShell crée un bac à sable isolé pour l'exécution de la tâche
- 5.Le moteur de politiques réseau configure l'accès réseau du bac à sable en fonction du rôle de l'agent
- 6.L'agent s'exécute dans le bac à sable, chaque action étant auditée
- 7.Les actions à haut risque sont remontées aux opérateurs humains pour approbation
- 8.Les résultats sont renvoyés via le Privacy Router, les données personnelles étant masquées dans les journaux
L'intégralité de ce pipeline ajoute environ 300 ms de latence à la première requête d'une session, et moins de 100 ms pour les requêtes suivantes (grâce au cache). Pour la plupart des charges de travail entreprise, cette surcharge est négligeable par rapport au temps d'inférence du modèle.
Benchmarks de performance
Sur un seul DGX Spark :
| Métrique | Valeur |
|---|---|
| Latence d'évaluation des politiques (p50) | 45 ms |
| Latence d'évaluation des politiques (p99) | 180 ms |
| Temps de création du bac à sable | 120 ms |
| Application de la politique réseau | 15 ms |
| Débit (agents simultanés) | 64 |
| Surcharge mémoire par bac à sable | 256 Mo |
Sur un cluster DGX H100 (8 GPU) :
| Métrique | Valeur |
|---|---|
| Latence d'évaluation des politiques (p50) | 12 ms |
| Latence d'évaluation des politiques (p99) | 45 ms |
| Débit (agents simultanés) | 512 |
Pour commencer
La documentation de l'architecture NemoClaw est disponible sur GitHub à nvidia/nemoclaw. Chaque couche peut être déployée indépendamment, vous pouvez donc adopter NemoClaw de manière incrémentale — en commençant par le sandboxing OpenShell et en ajoutant les autres couches à mesure que vos exigences de sécurité évoluent.
Dans le prochain article, nous vous guiderons à travers un tutoriel pratique pour déployer la pile NemoClaw complète sur un DGX Spark.