technical architecture openshell nemotron

Plongée technique dans l'architecture NemoClaw

Eric Ericsson

Eric Ericsson

@eericsson

March 19, 2026

12 min

Plongée technique dans l'architecture NemoClaw

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 :

yaml
# 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 :

typescript
// 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

python
# 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 :

yaml
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

yaml
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. 1.OpenClaw reçoit la tâche et construit un plan d'exécution
  2. 2.Privacy Router classifie la sensibilité des données et sélectionne l'endpoint de modèle approprié
  3. 3.Nemotron évalue le plan d'exécution par rapport aux politiques de sécurité et classifie l'intention
  4. 4.OpenShell crée un bac à sable isolé pour l'exécution de la tâche
  5. 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. 6.L'agent s'exécute dans le bac à sable, chaque action étant auditée
  7. 7.Les actions à haut risque sont remontées aux opérateurs humains pour approbation
  8. 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étriqueValeur
Latence d'évaluation des politiques (p50)45 ms
Latence d'évaluation des politiques (p99)180 ms
Temps de création du bac à sable120 ms
Application de la politique réseau15 ms
Débit (agents simultanés)64
Surcharge mémoire par bac à sable256 Mo

Sur un cluster DGX H100 (8 GPU) :

MétriqueValeur
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.

Restez informé

Recevez les nouvelles versions, les avis de sécurité et les actualités de l'écosystème NemoClaw. Pas de spam, désabonnement à tout moment.