Cua
Cua, outil intelligent axé sur la conception par IA
Étiquettes :Outils de conception IAUne phrase pour présenter
Cua est une infrastructure open source destinée aux agents d’IA utilisant un ordinateur, qui permet aux modèles d’observer l’écran, de cliquer, de saisir des données, d’exécuter du code et d’enregistrer des trajectoires reproductibles dans des environnements isolés sous Linux, Windows, macOS ou Android.
Présentation des outils
Cua a été développé par Cua AI, Inc., et s’adresse aux équipes chargées du développement d’agents IA, de leur évaluation, de l’apprentissage renforcé et de la génération de données. Il propose à la fois une sandbox open source locale, ainsi que des clusters de machines dédiés pour le déploiement cloud, BYOC et local, sur demande.
Le produit n’est pas un robot de conversation destiné aux utilisateurs ordinaires, mais plutôt un ensemble d’outils de pilotage, de sandbox, de SDK, de virtualisation et de benchmarking. Les utilisateurs doivent comprendre Python, les machines virtuelles, les conteneurs, les privilèges des systèmes d’exploitation et la sécurité des proxies.
Composants clés
| Composant | Rôle principal | Scénarios adaptés | Caractéristiques clés |
|---|---|---|---|
| Cua Driver | Contrôler les applications de bureau réelles | Automatisation en arrière-plan du système et connexion par proxy | Clic directionnel, saisie et enregistrement de la trajectoire |
| Cua Sandbox | Créer un environnement de bureau isolé | Développement, test et exécution en tâche unique | Une interface unique pour l’utilisation locale et cloud |
| Cua Fleets | Gérer un pool de machines flexibles | Évaluation parallèle, entraînement et génération de données en batch | Préchauffage, récupération sur demande et réduction à zéro |
| CuaBot | Fournir aux agents de codage des capacités d’utilisation d’ordinateur | Collaboration en sandbox multi-agents | CLI et flux de travail du proxy |
| cua-agent | Framework d’agent pour l’utilisation des ordinateurs | Boucle de modèle personnalisé et exécution de tâches | Permet de combiner différents modèles et environnements |
| Cua Bench | Environnements d’apprentissage de référence et renforcé | Évaluation du modèle et expériences de reconstitution | Tâches, récompenses et trajectoires |
| Lume | Gestion de machines virtuelles Apple Silicon | Virtualisation locale macOS et Linux | Basé sur le framework de virtualisation d’Apple |
| Lumier | Interface containerisée de Lume | Gérer les machines virtuelles avec un flux de travail dans un conteneur familier | Pour Apple Silicon |
Fonction principale
Sandbox multi-systèmes d’exploitation
La même suite d’interfaces Sandbox et Image permet de créer des conteneurs Linux, des machines virtuelles Linux, des environnements macOS, Windows et Android. Ces environnements peuvent fonctionner sur des backends de virtualisation locaux tels que Docker, QEMU, Hyper-V ou Apple, ou être migrés vers Cua Cloud.
Écran et contrôle d’entrée
L’agent peut prendre des captures d’écran, lire l’état des fenêtres, déplacer la souris, cliquer, saisir au clavier, gérer le presse-papiers et exécuter des gestes pour appareils mobiles. En combinant les opérations GUI avec l’exécution de commandes, il est possible de remplacer les logiciels qui ne proposent qu’une interface graphique sans API fiable.
Pilote de bureau en arrière-plan
Cua Driver peut envoyer des entrées vers la fenêtre d’une application spécifique, en s’efforçant de ne pas prendre le contrôle du curseur, du focus ou de l’espace de bureau actuel de l’utilisateur. Il convient pour exécuter en même temps des tâches manuelles et des tâches d’agent sur l’appareil local, mais nécessite néanmoins une enregistrement d’écran, des fonctionnalités d’accessibilité ou des droits système appropriés.
Construction d’image
Une image est une description d’environnement immuable et configurable en chaîne, permettant d’installer des paquets système, des dépendances Python, des fichiers et des commandes d’initialisation. Il est également possible de créer des environnements personnalisés à partir d’images OCI, d’un disque local ou d’une ISO.
Modèles temporaire, permanent et de connexion
Les sandbox temporaires sont détruits à la fin de la tâche et conviennent aux CI et aux évaluations ponctuelles ; les sandbox persistants nommés peuvent conserver leur état entre processus ; le mode Connect ne se connecte qu’aux machines existantes et n’est pas responsable de leur création ou de leur suppression.
Sauvegardes et bifurcations
L’utilisateur peut enregistrer l’état du disque ayant subi une initialisation coûteuse sous forme d’image, puis démarrer en parallèle plusieurs branches de copie à l’écriture. Chaque branche dispose d’un disque écritible indépendant, sans modifier l’aperçu original ni les environnements frères.
Cluster de machines parallèles
Cua Fleets étend un environnement sandbox unique en un pool de machines préchauffées, permettant d’obtenir un environnement en quelques millisecondes et d’exécuter en parallèle des tâches d’évaluation, des tours d’apprentissage par renforcement ou de génération de données. Le site officiel propose actuellement des clusters dédiés sur demande.
Trajectoires et génération de données
Chaque observation et manipulation à l’écran peut être enregistrée sous forme de trajectoire réplayable, utilisée pour le débogage, l’évaluation et l’entraînement. L’éditeur propose également un service de livraison de données comprenant un évaluateur, des trajectoires d’or à examen manuel et des critères d’acceptation.
Politique de permissions
Cua Driver permet d’utiliser YAML ou Rego pour définir quels outils, applications, canaux de navigateur et répertoires le proxy peut appeler. Les politiques s’appliquent aux limites du fonctionnement natif sur l’appareil ; les appels via SDK, CLI, MCP ou sockets ne peuvent pas contourner les résultats de refus.
Système d’exploitation et exécution du backend
| Système | Exécution locale | Exécution dans le cloud | Backend par défaut ou typique | Précautions à prendre |
|---|---|---|---|---|
| Conteneur Linux | Soutien | Soutien | Docker et XFCE | Démarrage léger, les limites d’isolation diffèrent de celles d’une VM complète |
| Machine virtuelle Linux | Soutien | Soutien | QEMU et KVM | Ubuntu 24.04 par défaut |
| macOS | Soutien | Soutien | Lume et la virtualisation d’Apple | Principallement destiné aux appareils Apple Silicon |
| Windows | Soutien | Soutien | QEMU ou Hyper-V | Peut exécuter Windows 11 et les charges de travail Server |
| Android | Soutien | Soutien | Simulateur QEMU | Soutien à l’installation d’APK et aux gestes multi-points |
| Image disque intégrée | Soutien | Dans la planification des fonctionnalités cloud | qcow2, vhdx, raw, img et ISO | Vérifier l’autorisation de l’image et le contenu malveillant |
Premier tutoriel sur les sandbox locaux
- Préparez un environnement Python et Docker pris en charge, et assurez-vous que les ressources de virtualisation sont suffisantes.
- Installez le paquet Cua Python, puis importez Sandbox et Image dans le projet.
- Choisir un conteneur Linux pour le premier test, afin d’éviter de contrôler directement l’ordinateur personnel.
- Démarrer l’environnement avec un cycle de vie temporaire et exécuter d’abord des commandes d’information système inoffensives.
- Tester la barre d’adresse, les captures d’écran et les entrées de souris, puis enregistrer les résultats dans un répertoire séparé.
- Une fois la tâche terminée, il faut s’assurer que l’environnement temporaire a été détruit et qu’il n’y a plus de fichiers sensibles résiduels.
- Lorsqu’il est nécessaire de réutiliser, créez des images ou des snapshots avec des noms clairs ; ne faites pas un usage abusif des sandbox persistants.
Installer et restreindre le pilote Cua
- Installez la version stable du pilote sur des appareils macOS, Windows ou Linux pris en charge.
- Exécuter des commandes de diagnostic pour vérifier le binaire, le répertoire d’installation, la télémétrie et les dépendances de la plateforme.
- Accordez les droits d’observation de l’écran et de contrôle assisté selon les indications du système ; ne testez que sur un compte dédié.
- Préférez les modes standard ou bounded, et n’utilisez pas par défaut un mode unrestricted.
- Autoriser explicitement les captures d’écran, les requêtes de fenêtres et les outils d’entrée nécessaires à l’aide de YAML ou de Rego, tout en refusant le reste.
- Après avoir démarré le service, connectez-vous à MCP ou SDK pour valider les limites avec une application non sensible.
- Rejet de la stratégie de test, annulation de la session et sortie anormale, puis élargissement progressif des autorisations.
Workflow d’évaluation en batch
- Définir la tâche, l’image de départ, les critères de succès, le délai d’expiration et les opérations interdites.
- Forker plusieurs environnements indépendants à partir d’une capture d’écran unifiée, afin d’éviter que les différentes parties ne s’impactent mutuellement.
- Fixer le modèle, les prompts, la graine aléatoire et la version du logiciel pour chaque agent.
- Exécuter des tâches en parallèle et enregistrer l’écran, les actions, les commandes, les récompenses et les raisons d’échec.
- Utiliser l’évaluateur automatique pour vérifier les résultats, puis sélectionner un échantillon à examiner manuellement.
- Statistiques séparées pour les pannes environnementales, les erreurs de décision des agents et les mauvaises évaluations de l’évaluateur.
- Lors de la publication des résultats, enregistrez la version de Cua, l’hash de l’image et la licence afin d’assurer la reproductibilité.
À qui s’adresse-t-il
- Chercheurs en agents d’IA : création de benchmarks d’utilisation informatique inter-systèmes et d’environnements d’apprentissage par renforcement.
- Équipe d’évaluation des modèles : exécution en parallèle de tâches reproductibles pour collecter les trajectoires et le taux de réussite.
- Développeur : Intégrer l’observation de l’écran, le contrôle des entrées et l’exécution des commandes à son propre proxy.
- Équipe de logiciels desktop : tester l’installation, les fichiers et les flux de travail GUI dans un environnement isolé.
- Équipe des données : Génération de données de trajectoires d’opérations évaluées automatiquement et vérifiées manuellement.
- Équipe de la plateforme d’IA d’entreprise : utilisation de BYOC ou d’un déploiement local pour créer des clusters de proxy de bureau contrôlés.
Scénarios d'utilisation typiques
- Vérifier si l’agent peut accomplir la même tâche avec différents thèmes, polices, langues et tailles d’écran.
- Laissez l’agent d’encodage installer des applications sur le bureau temporaire, exécuter des étapes GUI et enregistrer des captures d’écran.
- Évaluer en parallèle des tâches de navigateur, d’Office, de conception, de CAD ou de logiciels Windows anciens.
- Créer un environnement Android pour installer le paquet de test et exécuter des gestes de clic, de glissement et de plusieurs doigts.
- Contrôler les fenêtres d’applications spécifiques en arrière-plan sous macOS, sans déplacer le curseur actuel de l’utilisateur.
- Organiser les trajectoires de succès et d’échec en données de formation, de tests de régression ou d’audit comportemental.
Comparaison des modes d’accès
| Modèle | Approche par autorisation par défaut | Adapté à l’environnement | Recommandations pour le contrôle des risques |
|---|---|---|---|
| standard | Les observations courantes et la capacité de saisie peuvent être exécutées directement | CLI locale ou MCP supervisé manuellement | Il reste nécessaire de restreindre les navigateurs connectés et les applications sensibles. |
| bounded | Il doit figurer sur la liste de vérification. | Agents sans surveillance, passerelles et applications intégrées | Utilisé en priorité pour la production et les scénarios d’entreprise |
| unrestricted | Accepter une large gamme de capacités autorisées en temps de exécution | Machine de test destructible ou entièrement fiable | Ne pas utiliser sur un ordinateur personnel quotidien |
Le mode de permissions ne définit que les limites d’autonomie par défaut ; les politiques d’utilisateur et les politiques d’administrateur peuvent restreindre davantage ces limites, mais ne peuvent pas dépasser les plafonds intégrés. Les politiques sont chargées au démarrage du processus ; après modification, il est généralement nécessaire de redémarrer le système en cours d’exécution.
Prix et mode de déploiement
Jusqu’en août 2026, Cua ne dispose d’aucun tableau de prix en ligne publié, par heure, par machine ou par poste. Les Sandbox, Driver, Bench et Lume locaux sont disponibles sur GitHub ; les Fleets dédiés, l’hébergement, le BYOC ainsi que le déploiement local nécessitent une demande pour un devis personnalisé.
| Mode de déploiement | Prix du logiciel | Coûts d’infrastructure | Scénarios adaptés | Mode d’obtention |
|---|---|---|---|---|
| Sandbox open source local | Licence MIT, sans abonnement logiciel | Fournir sa propre CPU, mémoire, stockage et licence système | Développement, tests unitaires et évaluations à petite échelle | Installation depuis le dépôt officiel |
| Pilote Cua local | Composants open source | Utiliser l’ordinateur existant | Contrôler les applications de bureau réelles | Installer la version stable |
| Cua Cloud | Non divulgué | Selon le plan commercial | Environnement de hébergement inter-systèmes | Demande d’accès |
| Dedicated Fleets | Cotation sur mesure | Déterminé en fonction de la taille, du système et de la concurrence | Entraînement, évaluation et génération de données en masse | Contacter l’équipe |
| BYOC ou On-prem | Cotation sur mesure | Assumé par le cloud du client ou le data center | Exigences élevées en matière de données et de limites réseau | Évaluation d’entreprise |
| Vérifier les données de trajectoire | Cotation sur mesure | Par mission, taille et exigences de vérification | Ensemble d’entraînement et trajectoire d’or | Demander un devis après avoir défini les critères d’acceptation |
Le fait que ce soit open source et gratuit ne signifie pas qu’il n’y a aucun coût de fonctionnement. Les licences Windows et macOS, l’équipement cloud, le stockage, l’appel des modèles, l’annotation manuelle et les opérations de sécurité peuvent tous représenter des postes budgétaires importants.
Sécurité et confidentialité
- Un agent d’utilisation informatique peut voir l’écran, saisir du texte, lire le presse-papiers et manipuler les applications, avec des droits équivalents à une puissante capacité de contrôle à distance.
- Privilégiez l’utilisation de sandbox temporaires, de comptes de test, de données simulées et de identifiants à court terme, et évitez de vous connecter directement à votre poste de travail personnel.
- Par défaut, le pilote Cua envoie une télémétrie de produit sans contenu ; il est possible de l’arrêter par commande et de vérifier les événements fixes qui seront envoyés.
- Lorsque la télémétrie est désactivée, l’identifiant d’installation anonyme est conservé ; en réinitialisant l’identifiant, cet ID ainsi que les marques d’événement sont supprimés.
- La politique de confidentialité officielle indique que les fonctionnalités d’IA peuvent transmettre des entrées, des sorties et des informations personnelles à des fournisseurs d’IA tiers, y compris OpenAI.
- Les informations personnelles sont conservées dans la mesure nécessaire à l’exécution des finalités du service et aux exigences légales, sans engagement de durée fixe uniforme.
- Le site officiel indique les certifications SOC 2 Type I, BYOC et capacités On-prem ; l’entreprise doit néanmoins demander la portée de l’audit actuel ainsi que les annexes du contrat.
- Avant d’installer des images tierces, des APK et des outils de proxy, il convient de vérifier la source, l’hash, la licence et la présence de comportements malveillants.
Logiciels libres et licences
Le dépôt principal de trycua/cua est soumis à la licence MIT, qui autorise l’utilisation, la modification, la distribution et la commercialisation, mais exige que les droits d’auteur ainsi que la mention de licence soient conservés. Le logiciel est fourni tel quel, sans aucune garantie de vendabilité ou d’adaptation à un usage particulier.
| Projet | Licence ou statut | Signification | Précautions à prendre |
|---|---|---|---|
| Entrepôt principal de Cua | MIT | Le SDK principal, le sandbox, les pilotes et les benchmarks peuvent être utilisés et modifiés | Déclaration de licence réservée |
| Partie d’adaptation Kasm | MIT | Selon sa licence d'utilisation | Vérifier la déclaration du répertoire correspondant |
| OmniParser | CC BY 4.0 | Les conditions de signature doivent être remplies lors de l'utilisation. | Ce n’est pas le MIT |
| Dépendance supplémentaire Omni optionnelle | Composants sous AGPL 3.0 | La distribution et les services réseau peuvent engendrer des obligations supplémentaires | Vérifier la licence avant utilisation commerciale |
| Copie des compétences du conducteur ClawHub | MIT-0 | Les limites de publication des compétences sont plus souples | Ne pas modifier les licences des autres fichiers du entrepôt |
| Cua Cloud et les flottes dédiées | Services commerciaux | Infrastructure de gestion et support | Ce n’est pas équivalent à du code open source sur le cloud. |
Exigences techniques
| Capacité | Exigences principales | Explication | Questions fréquentes |
|---|---|---|---|
| Python Sandbox SDK | Ce tutoriel utilise Python 3.12 ou 3.13 | Le nom du paquet est cua | L’environnement ancien nécessite de vérifier la compatibilité avec la version spécifique. |
| Conteneur Linux | Docker Desktop ou Docker Engine | Tableau de bord XFCE léger | La stratégie de l’entreprise peut limiter Docker |
| Linux VM | QEMU, de préférence avec KVM | Isolation plus complète | Plus lent en l’absence d’accélération matérielle |
| macOS VM | Apple Silicon et Lume | Utiliser le framework de virtualisation d’Apple | Faire attention à la licence de l’image système |
| Windows VM | QEMU ou Hyper-V | Adapté aux postes de travail et aux logiciels hérités | Autorisation d’un système légal est requise |
| Cua Driver macOS | macOS 14 ou ultérieur | Nécessite des fonctionnalités d’assistance et d’enregistrement d’écran | Application de signature liée aux permissions |
Avantages du produit
- Un ensemble d’interfaces couvrant Linux, Windows, macOS et Android, permettant de reproduire des expériences entre plateformes.
- Placer l’exécution du code et le contrôle GUI dans la même sandbox convient aux tâches de bureau réelles.
- Les environnements temporaires, les snapshots et les branches réduisent la contamination mutuelle des tâches ainsi que les coûts d’initialisation répétée.
- Les SDK open source, les pilotes, la virtualisation et les outils de benchmarking facilitent l’audit et l’extension.
- La politique de permissions est appliquée de manière uniforme dans les limites du runtime natif, couvrant divers modes d’accès.
- On peut passer progressivement d’un développement local à des solutions cloud, BYOC et des clusters parallèles dédiés.
Restrictions d'utilisation et précautions
- Le proxy desktop est sensible aux changements d’interface, aux retards, aux polices, aux langues et aux fenêtres contextuelles ; le taux de réussite ne peut être mesuré qu’une seule fois.
- Certaines fonctionnalités gérées en arrière-plan dépendent des mécanismes internes du système d’exploitation ou des fonctionnalités d’accessibilité, ce qui peut entraîner des problèmes de compatibilité après mise à jour.
- La virtualisation multi-systèmes locale nécessite des ressources matérielles importantes, et macOS et Windows présentent également des contraintes liées aux licences.
- Il n’existe pas de prix standards publics pour les clusters cloud et dédiés ; le budget du projet doit être discuté séparément.
- Bien que le dépôt principal soit MIT, les modèles, analyseurs, images et applications disponibles sont chacun soumis à leur propre licence.
- Une configuration stratégique incorrecte peut libérer accidentellement des fichiers, des terminaux, le presse-papiers ou le navigateur connecté.
- Les trajectoires peuvent contenir des informations personnelles, des clés et des données clients sur l’écran ; elles doivent être chiffrées, minimisées et disposer d’une date de suppression.
- Une confirmation manuelle est requise avant d’exécuter des actions de suppression, d’achat, d’envoi de messages ou de publication en ligne.
API, SDK et MCP
Cua fournit un SDK Python, une interface CLI, un serveur MCP et des interfaces de pilote locales. Les développeurs peuvent utiliser une API Sandbox unifiée pour contrôler les commandes, prendre des captures d’écran, gérer la souris, le clavier, le presse-papiers ainsi que les gestes de mouvement, et intégrer le pilote dans des clients MCP tels que Claude Code, Cursor, Codex, etc.
Les SDK et MCP ne sont que des points d’accès aux fonctionnalités ; pour une utilisation en production, il est nécessaire d’ajouter des politiques au niveau des limites de processus, des droits système, du réseau et des opérations métier. Ne considérez pas le rejet par langage naturel du modèle comme le seul contrôle de sécurité.
Informations de base
| Projet | Contenu |
|---|---|
| Nom de l’outil | Cua |
| Société de développement | Cua AI, Inc. |
| Type d’outil | Sandbox d’agent pour l’utilisation informatique, pilotes, clusters et infrastructure d’évaluation |
| Système de support | Linux, Windows, macOS et Android |
| Backend local | Docker, QEMU, Hyper-V, la virtualisation d’Apple et Lume |
| dans le cloud | Oui, des flottes dédiées sur demande. |
| API et SDK | SDK Python, CLI et MCP |
| GitHub officiel | Oui |
| Licence open source | Entrepôt principal MIT, à l’exception des composants tiers et optionnels |
| Modèle de prix | Open source local et gratuit, hébergement, BYOC et déploiement local : demande de prix |
Indice de recommandation
Le score de recommandation est de 4,6 sur 5. Cua couvre un large éventail de systèmes, présente des frontières claires en matière de logiciel open source, et relie le sandbox, les pilotes, l’évaluation et les clusters à grande échelle en une chaîne technique cohérente.
Les principaux obstacles sont la complexité de la virtualisation et de la sécurité, le manque de transparence sur les prix dans le cloud, ainsi que l’instabilité du proxy client lui-même. Il convient aux équipes de développement et aux plateformes, mais pas aux utilisateurs d’automatisation ordinaires qui ne disposent pas de capacités d’isolation et d’audit.
Questions fréquentes
Cua est-il gratuit ?
Les frameworks open source locaux peuvent être utilisés gratuitement, mais vous devez assumer vous-même les coûts du matériel, des licences système, des modèles et de la maintenance. Les services cloud, Fleets dédiés, BYOC et services de données sont soumis à une demande de prix.
Quels systèmes d’exploitation Cua prend-il en charge ?
Prend en charge Linux, Windows, macOS et Android. Les différents systèmes utilisent des backends tels que Docker, QEMU, Hyper-V ou l’virtualisation d’Apple.
Cua est-il un projet open source ?
Oui, le dépôt principal utilise la licence MIT. Les dépendances Omni optionnelles, OmniParser, les images d’exploitation et les services commerciaux cloud doivent être évalués séparément.
Peut-on contrôler l’ordinateur actuel ?
Il est possible de se connecter à l’écran de travail actuel via le pilote Cua, mais le risque est plus élevé que dans un sandbox isolé. Il convient d’utiliser le mode borné, des droits minimaux et des comptes de test dédiés.
Est-il possible d’effectuer des opérations en arrière-plan sur les applications macOS ?
Driver permet d’envoyer des événements vers une fenêtre spécifique sans déplacer le curseur principal, ce qui est idéal pour les opérations en arrière-plan. La compatibilité dépend toujours de l’application, de la version du système et des permissions.
Est-ce que MCP est fourni ?
Fourni. MCP permet de connecter les pilotes à des clients proxy prenant en charge ce protocole, et la politique de droits est toujours appliquée localement en temps réel.
Faut-il télécharger des données dans le cloud ?
Pas nécessairement, le mode local peut fonctionner sur son propre matériel. Lors de l’utilisation de Cua Cloud, de modèles tiers ou de services de données hébergés, le chemin des données change.
La télémétrie peut-elle être désactivée ?
Oui. Le pilote active par défaut la télémétrie des produits sans contenu ; l’utilisateur peut la désactiver, vérifier les événements et réinitialiser l’identifiant d’installation anonyme.
Est-ce adapté à l’automatisation de la production ?
Il peut servir d’infrastructure, mais il est nécessaire de terminer d’abord l’isolement, les permissions, les tests de régression, l’approbation manuelle et la récupération en cas de panne. On ne peut pas assimiler directement une démo de recherche à la fiabilité en production.
Est-il possible d’installer des applications Android ?
Il est possible d’installer des APK dans l’image Android et d’exécuter des gestes de clic, de glissement et multi-doigts. Le paquet d’installation doit néanmoins être vérifié pour ce qui est du canal, de la signature et de la sécurité.
Résumé
Cua fournit à l’agent Computer-Use une pile technologique ouverte allant d’une sandbox locale unique à des clusters parallèles inter-systèmes, tout en prenant en compte le suivi des trajectoires, l’évaluation, les permissions et divers modes d’accès.
Il est recommandé de commencer par effectuer des expériences minimales dans un environnement Linux temporaire, puis d’introduire progressivement des images persistantes, des pilotes de bureau et des clusters cloud en fonction des tâches ; à chaque étape où les capacités s’élargissent, il convient de resserrer simultanément les permissions et de vérifier les limites des données.
Numéro d’enregistrement de sécurité publique du Guangxi : 45132202000164