À propos du projet
QM est un harnais d'agents multiutilisateur pour le travail, disponible dans Slack et sur le web. Plutôt qu'un assistant personnel unique, il est conçu pour les startups : chaque employé dispose d'un espace de travail isolé, et les personnes peuvent aussi collaborer avec l'agent dans des canaux, des messages de groupe et des projets. Chaque personne et chaque salon possède sa propre mémoire délimitée, ses fichiers, sa vue du trousseau de clés, ses permissions, ses crons, ses applications web et son bac à sable durable.
Principales fonctionnalités décrites dans le README :
- Portées personnelles et partagées : les personnes personnalisent l'agent pour elles-mêmes tout en travaillant avec lui de manière collaborative dans les canaux Slack et les projets.
- Slack et web : la même identité et la même configuration sont conservées entre Slack et l'application web.
- Contrôle administrateur : configuration au niveau de l'organisation, postures de sécurité et de partage, et choix des harnais et modèles disponibles.
- Applications web : créer des applications internes personnalisées et les publier auprès des bonnes personnes.
- Compétences partagées : les compétences appartiennent à une portée et sont partageables par autorisation, avec une promotion contrôlée par l'administrateur à l'ensemble de l'organisation et des packs de compétences importés depuis des dépôts git.
- Travail en arrière-plan : les crons, les surveillances et les webhooks entrants exécutent du travail pendant que personne ne regarde.
Les cas d'usage incluent la recherche conjointe dans les notes internes, les e-mails, les documents, les bases de données et le web ; la création et la publication d'applications internes ; l'apprentissage d'une voix d'écriture à partir des envois passés et le tri d'une boîte de réception selon un calendrier avec des libellés et des brouillons de réponse ; le travail dans un dépôt existant pour exécuter des tests, ouvrir des PR, surveiller la CI et consulter les journaux ; et le suivi d'un projet dans un canal partagé avec des mises à jour et des relances.
Architecture : chaque tour passe par un cœur central sans interface qui peut utiliser divers modèles et harnais (Pi, OpenCode, Codex, Claude Code) pour générer des réponses. Une couche de persistance Postgres conserve les données utilisateur, l'historique des sessions et d'autres états durables. L'agent dispose d'une surface d'outils réduite et fixe ; un outil est `execute`, qui exécute des commandes dans le bac à sable isolé propre à la portée. L'interface web et le panneau d'administration partagent un même service ; le portail et le courtier d'authentification intégré facultatif en partagent un autre. Le cœur exécute TypeScript sur Node et utilise Fastify pour HTTP ; le plugin Slack utilise Bolt ; l'interface web se construit avec Vite et s'affiche avec Lit. La configuration propre à l'entreprise réside dans un répertoire de déploiement validé et déployé par la CLI `qm`. Les substrats (harnais, stockage de session, bac à sable, mémoire) se trouvent derrière des interfaces, et la mémoire peut être routée par portée vers des fournisseurs externes tout en conservant un carnet intégré.
Sécurité et secrets : l'agent agit en tant que la personne pour laquelle il travaille, avec ses identifiants et ses permissions, et les actions sont auditées. Une organisation choisit une posture de sécurité que les portées plus étroites ne peuvent que resserrer : Strict (chaque appel d'outil du harnais s'interrompt pour approbation humaine, sauf deux terminateurs de tour sans effet), Auto (par défaut ; bloque l'accès au réseau privé et utilise un filtre de contenu lorsqu'il est configuré) et Dangerous (aucun filtrage de contenu ni barrière d'approbation d'outil fondés sur la posture). Une politique de commandes prédéclarée avec des règles d'approbation et des refus stricts s'applique dans toutes les postures. La posture de partage est indépendante : Isolated (par défaut) garde les ressources dans leur portée sauf partage explicite ; Open permet aux fichiers personnels, artefacts, compétences et mémoire ayant fait l'objet d'un consentement d'être lus dans un salon partagé ayant fait l'objet d'un consentement, dans les limites énoncées. SECURITY.md documente le modèle de menace et les limitations connues.
Déploiement : créez un dépôt de déploiement appartenant à l'organisation dépendant de `@yc-software/qm`, exécutez `qm init` avec un slug d'organisation et une cible (fly ou aws), puis installez et suivez la compétence de déploiement générée. Chaque déploiement s'exécute dans le propre compte cloud de l'opérateur. La personnalisation peut se faire via le dépôt de déploiement (configuration, outils, compétences, services) ou en conservant un fork du code source pour les modifications de QM lui-même. Le README couvre aussi l'installation Slack gérée via un service d'hébergement, y compris les variables d'environnement et les contrats de rappel.
Les contributions sont prises sous forme de texte rédigé par des humains plutôt que de code : décrivez la modification souhaitée dans un fichier .txt ou .md sous adrs/. Les vulnérabilités doivent être signalées en privé conformément à SECURITY.md. QM est disponible sous licence MIT, sauf indication contraire.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.