>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Kotlin

Un agent IA autonome directement sur votre téléphone — Décryptage d'OpenDroid

Les assistants mobiles traditionnels comme Google Assistant ou Siri ont depuis longtemps atteint un plafond. Ils sont corrects pour programmer des minuteurs et ouvrir des applications, mais essayez de demander à votre téléphone d'effectuer une chaîne d'actions liées : vérifier la météo, envoyer un message à votre femme sur WhatsApp et régler une alarme. Généralement, vous obtenez soit une suggestion de recherche sur le web, soit une erreur de reconnaissance.

Le développeur Yashab Alam a décidé d'aborder le problème différemment et a publié le projet OpenDroid sur GitHub. C'est un agent IA autonome entièrement open source pour Android qui transforme votre smartphone en environnement d'exécution LLM.

Logo OpenDroid

Pourquoi un assistant supplémentaire est nécessaire

L'idée principale derrière OpenDroid est de donner au réseau neuronal un contrôle direct sur l'appareil via les services Android standard. Au lieu de modèles simples, le système utilise un cycle complet de planification et d'exécution.

Lorsque vous donnez une commande complexe, l'agent la décompose en sous-tâches, vérifie les résultats de chaque étape et reconstruit le plan si quelque chose ne fonctionne pas. Le code source du projet est entièrement ouvert, et vous choisissez quel modèle utiliser — cloud ou entièrement local.

Le projet a déjà recueilli plus de 600 étoiles sur GitHub et attire l'attention par son architecture solide basée sur Kotlin.

Comment l'agent fonctionne en coulisses

L'architecture d'OpenDroid suit les principes de Clean Architecture avec l'injection de dépendances via Dagger-Hilt. Le texte et la logique sont séparés en modules clairs, et l'interface est écrite en Jetpack Compose.

com.opendroid.ai

├── accessibility/      Автоматизация сторонних приложений
├── actions/            60+ исполнителей действий в 10 модулях
├── core/
   ├── agent/          AgentLoop, PlanManager, IntentClassifier
   ├── llm/            Провайдеры LLM, цепочки фоллбеков, промпты
   ├── memory/         4-уровневая система памяти
   └── voice/          Детекция активационного слова, STT, TTS
├── data/               База данных Room и хранилище DataStore
└── ui/                 16 экранов на Jetpack Compose

À l'intérieur, plusieurs moteurs spécialisés travaillent, chacun responsable de son propre domaine de travail.

Planificateur d'actions et gestion des erreurs

Le module PlanManager gère les commandes entrantes. Il accepte le texte ou la voix, l'envoie à l'IA et reçoit un plan séquentiel en sortie.

Si la commande contenait plusieurs intentions, par exemple « ouvrir WhatsApp et écrire un message », le moteur le décompose correctement en étapes en tenant compte des dépendances. Si Internet se coupe ou si une application plante pendant l'exécution, AgentLoop intercepte l'erreur et tente d'effectuer une action alternative.

Compréhension de l'écran via l'API Accessibility

L'un des composants les plus intéressants est le Vision Engine. Pour analyser ce qui se passe à l'écran, OpenDroid capture des captures d'écran via les services d'accessibilité (Accessibility API) et les envoie à un réseau neuronal multimodal.

Sur les appareils plus anciens ou lors de l'utilisation de modèles locaux légers, l'assistant passe à l'analyse de l'arbre Accessibility, extrayant la structure textuelle des éléments UI sans traitement d'image.

Interface OpenDroid Planificateur Système de mémoire Gestion des alarmes

Quatre niveaux de mémoire

Le contexte humain correspond rarement à un seul dialogue. OpenDroid utilise un système de stockage d'informations à quatre niveaux :

  • La mémoire de travail gère le contexte actuel de la tâche en cours d'exécution.
  • L'épisodique stocke l'historique des exécutions passées et leurs résultats.
  • Le sémantique mémorise les faits sur l'utilisateur et ses préférences.
  • Le procédural contient les macros utilisateur et les scénarios prêts à l'emploi.

Toutes les informations locales sont écrites dans une base de données Room avec sept tables, et les secrets comme les clés API sont stockés dans Android Keystore avec un chiffrement AES-GCM.

Support de 12 fournisseurs d'IA

OpenDroid ne lie pas les développeurs à un service spécifique. L'application prend en charge 12 fournisseurs de réseaux neuronaux avec des chaînes de repli configurables. Si le modèle principal ne répond pas, la requête passe automatiquement au fournisseur suivant.

La liste comprend Google Gemini, Anthropic Claude, OpenAI, Groq, DeepSeek, Mistral, OpenRouter, Cohere, Together AI et GitHub Copilot.

Pour les passionnés de confidentialité, il existe deux options de fonctionnement local :

  1. Connexion à un serveur Ollama local sur votre réseau domestique.
  2. Gestionnaire LiteRT-LM intégré qui peut télécharger et exécuter des modèles directement sur votre smartphone en mode hors ligne.

Ce que l'assistant peut faire en pratique

Le dépôt comprend plus de 60 actions prêtes à l'emploi. Elles couvrent presque tous les scénarios d'utilisation quotidienne du smartphone :

  • Paramètres système : activation du Wi-Fi, Bluetooth, lampe de poche, mode Ne pas déranger, ajustement de la luminosité et du volume.
  • Communication : appels, envoi de SMS, messages WhatsApp, création de brouillons d'e-mails.
  • Navigation et transport : planification d'itinéraires dans Google Maps, appel d'un taxi.
  • Finance : transferts rapides, partage de l'addition.
  • Médias : contrôle de la lecture de musique, recherche sur YouTube, prise de photos avec l'appareil photo.

Comment compiler et exécuter le projet

La compilation du projet nécessite Android SDK 35 (Android 15) et JDK 21. La version du JDK est strictement fixée dans la configuration Gradle.

La compilation est standard :

git clone https://github.com/yashab-cyber/opendroid.git
cd opendroid

./gradlew assembleDebug

Le fichier APK prêt sera dans le répertoire app/build/outputs/apk/debug/app-debug.apk.

Lors du premier lancement, l'application vous demandera d'accorder plusieurs autorisations système. Celles-ci incluent l'autorisation pour le service Accessibility, l'accès aux notifications et l'enregistrement audio pour le suivi de la phrase d'activation.

Après cela, vous devez simplement aller dans les paramètres et entrer la clé API de votre fournisseur choisi ou spécifier l'adresse du serveur Ollama.

Faut-il étudier le code d'OpenDroid

Le projet sera utile aux développeurs Android qui souhaitent comprendre comment créer des agents IA autonomes. Vous pouvez y voir une implémentation en direct de cycles de planification complexes et d'analyse d'interface sur un appareil mobile.

Les inconvénients incluent le niveau élevé d'autorisations requises pour le fonctionnement, ce qui est tout à fait naturel pour ce type d'utilitaires. De plus, les capacités de vision complète de l'écran nécessitent des modèles haut de gamme ou un matériel de smartphone puissant.

OpenDroid démontre où se dirige l'automatisation mobile et fournit une base architecturale prête pour vos propres expérimentations.

Projets similaires