À propos du projet

Koris Assistant est un framework d'agent IA autonome écrit en TypeScript strict et exécuté avec Node.js 24+ et pnpm. Il est organisé comme un système modulaire avec quatre familles de plugins : canaux, outils, compétences et serveurs MCP. Les plugins peuvent être téléchargés à la demande depuis un dépôt compagnon et chargés à chaud sans redémarrer l'agent. Les canaux incluent Telegram, WhatsApp, une interface terminal interactive et un tableau de bord web React 19. Une passerelle de messages unifiée et un gestionnaire de sessions pilotent tous ces éléments. Le framework prend également en charge le Model Context Protocol sur HTTP Streamable, découvrant des outils distants et les nommant comme server__tool dans le pipeline d'outils LLM. Le support vocal est local : la reconnaissance vocale utilise Whisper via sherpa-onnx et la synthèse vocale utilise les voix neuronales Piper, toutes deux servies par un sidecar léger sur le port 6006. Les notes vocales dans WhatsApp ou l'interface web sont transcrites automatiquement, et un mode de réponse vocale par conversation est disponible. La mémoire et les sessions sont persistées dans SQLite, couvrant les faits à long terme, les leçons, les résumés, les embeddings sémantiques, le suivi des sessions et l'historique des conversations. L'accès aux modèles est multi-fournisseurs : Ollama, des préréglages compatibles OpenAI tels que openai, deepseek, groq, openrouter, xai, mistral, together, gemini et nvidia, plus un fournisseur Mock. Différents fournisseurs et modèles peuvent être attribués par rôle, par exemple l'agent principal par rapport aux travailleurs en arrière-plan ou aux embeddings. Les coques client incluent le tableau de bord web, le TUI, une application de bureau Tauri utilisant la webview native du système d'exploitation, et une coque de bureau Electron. Des sous-agents d'arrière-plan planifiés par cron, appelés agents heartbeat, gèrent les routines autonomes, la maintenance et les notifications. L'exécution des outils est sandboxée, y compris curl HTTP limité par domaine, la recherche web SearXNG auto-hébergée, le suivi des problèmes, la gestion des beats, les autocollants et les plugins personnalisés. Le projet documente une fonctionnalité « errands » : des conversations déléguées exécutées par un plugin d'agent Negotiator qui poursuit un objectif avec un contact tout en informant l'utilisateur demandeur. Chaque errand crée une session enfant déléguée fraîche par cible, avec l'ID de session parent, l'ID d'errand et les instructions stockés dans les métadonnées SQLite. Les commandes incluent la liste, l'approbation, la réponse, la nouvelle tentative, la fermeture et l'annulation des errands. Le README décrit les transitions d'état, la récupération de livraison, la promotion de file d'attente, le comportement d'expiration et les limitations connues concernant le polling web et la livraison exactement une fois. La configuration implique l'installation des dépendances, la copie d'un fichier de paramètres d'exemple vers koris.json ou l'utilisation d'un assistant de configuration web, la validation de la configuration et la construction. L'agent peut ensuite s'exécuter comme service web, dans le TUI ou comme application de bureau. Des services Docker Compose optionnels fournissent SearXNG et le sidecar audio. Le projet indique qu'il utilise des vérifications TypeScript strictes, des suites de tests Vitest et des tests de mutation Stryker, et est sous licence ISC.