API Bac à sable : exécution isolée de code pour agents IA

Les flux de travail des agents nécessitent fréquemment une exécution déterministe. Lorsqu'un agent doit effectuer une analyse statistique, générer un graphique, valider un calcul ou transformer un ensemble de données, il a besoin d'une exécution déterministe avec des résultats exacts. L'agent réfléchit à ce qu'il doit calculer. Le bac à sable effectue ce calcul.

Conçu pour Perplexity, désormais disponible en tant que service

Nous avons créé le bac à sable pour prendre en charge ce modèle en interne. Perplexity Computer, notre Agent Financier, et la Recherche approfondie exécutent tous leur code dans des environnements isolés. Computer exécute des milliers de sessions par minute. L'Agent Financier utilise le bac à sable pour les calculs de données de marché en temps réel. La Recherche approfondie l'utilise pour la génération de fichiers, le traitement de données et la conversion de format au milieu d'un flux de travail. L'API du bac à sable rend le même environnement d'exécution disponible sous forme de service autonome.

Sessions avec état et systèmes de fichiers persistants

Chaque Session s'exécute dans son propre pod Kubernetes isolé. Le développeur ne gère aucune infrastructure sous-jacente : nous nous occupons du provisionnement, de la mise en réseau et du nettoyage. Les langages pris en charge sont Python, JavaScript et SQL, avec une installation de paquets d'exécution disponible par Session.

Les Sessions sont avec état. Un système de fichiers persistant est monté via FUSE. Le démon FUSE intercepte les opérations sur les fichiers et les traduit pour l'agent : lecture, écriture, liste des fichiers et suivi des modifications depuis la création de la Session. Les fichiers créés à une étape sont disponibles aux étapes suivantes. Les flux de travail de longue durée peuvent être mis en pause, repris des heures plus tard, et continuer avec l'état complet intact. Chaque Session prend en charge jusqu'à cinq processus en arrière-plan.

Confiance zéro par défaut

L'architecture de sécurité suppose par défaut que le code n'est pas fiable. Les bacs à sable n'ont pas d'accès direct au réseau. Lorsque la connectivité sortante est requise, le trafic est acheminé via un proxy de sortie fonctionnant en dehors du bac à sable. Le proxy fait correspondre les demandes sortantes par domaine de destination et injecte les informations d'identification appropriées. Le code s'exécutant à l'intérieur du bac à sable n'a jamais accès aux clés API brutes ou aux secrets. Les délais d'attente et les limites de ressources intégrés imposent des limites d'exécution.

L'API Agent comme couche d'orchestration

L'API du bac à sable sera disponible en tant qu'outil au sein de l'API Agent, permettant à l'exécution d'orchestration de déléguer l'exécution de code déterministe au milieu du flux de travail. L'agent décide de ce qu'il doit calculer, envoie la demande au bac à sable, observe le résultat et poursuit sa boucle de raisonnement. Même clé API, même ensemble de crédits.

L'API du bac à sable arrive bientôt. Nous ouvrirons prochainement une version bêta privée, avec une documentation disponible sur docs.perplexity.ai