Об этом проекте

QM — это многопользовательская среда для рабочих агентов, доступная в Slack и в веб-интерфейсе. Это не просто персональный ассистент, а инструмент для стартапов: каждый сотрудник получает изолированное рабочее пространство, а также может совместно работать с агентом в каналах, групповых сообщениях и проектах. У каждого человека и каждого канала есть собственная ограниченная область памяти, файлов, представления связки ключей, разрешений, cron-задач, веб-приложений и защищённая песочница. Ключевые возможности, описанные в README: - Личные и общие области: люди настраивают агента под себя, но при этом продолжают работать с ним совместно в каналах Slack и проектах. - Slack и веб: одна и та же идентичность и конфигурация переносятся между Slack и веб-приложением. - Административный контроль: конфигурация на уровне организации, политики безопасности и совместного доступа, а также доступные среды и модели. - Веб-приложения: создание собственных внутренних приложений и их публикация для нужных людей. - Общие навыки: навыки принадлежат области и могут предоставляться по разрешению, с продвижением на всю организацию под контролем администратора и пакетами навыков, импортируемыми из git-репозиториев. - Фоновая работа: cron-задачи, наблюдения и входящие вебхуки выполняют работу, пока никто не следит. Примеры использования включают совместный поиск по внутренним заметкам, электронной почте, документам, базам данных и вебу; создание и публикацию внутренних приложений; изучение стиля письма по прошлым отправлениям и разбор входящих по расписанию с метками и черновиками ответов; работу в существующем репозитории для запуска тестов, открытия PR, мониторинга CI и проверки логов; а также отслеживание проекта в общем канале с обновлениями и напоминаниями. Архитектура: каждый ход проходит через центральное headless-ядро, которое может использовать различные модели и среды (Pi, OpenCode, Codex, Claude Code) для генерации ответов. Слой персистентности на Postgres хранит пользовательские данные, историю сессий и другое долговременное состояние. У агента небольшой фиксированный набор инструментов; один из инструментов — `execute`, который выполняет команды в собственной изолированной песочнице области. Веб-интерфейс и панель администратора используют один сервис; портал и опциональный встроенный брокер аутентификации — другой. Ядро работает на TypeScript в Node и использует Fastify для HTTP; плагин Slack использует Bolt; веб-интерфейс собирается с помощью Vite и рендерится с помощью Lit. Конфигурация, специфичная для компании, находится в каталоге развёртывания, который проверяется и развёртывается CLI `qm`. Подложки (среда, хранилище сессий, песочница, память) находятся за интерфейсами, а память может маршрутизироваться по области к внешним провайдерам при сохранении встроенного блокнота. Безопасность и секреты: агент действует от имени человека, для которого работает, с его учётными данными и разрешениями, а действия аудируются. Организация выбирает одну политику безопасности, которую более узкие области могут только ужесточать: Strict (каждый вызов инструмента среды приостанавливается для одобрения человеком, кроме двух завершителей хода без эффекта), Auto (по умолчанию; блокирует доступ к частной сети и использует контентный фильтр, если он настроен) и Dangerous (без проверки контента на основе политики и без шлюзов одобрения инструментов). Предварительно объявленная политика команд с правилами одобрения и жёсткими запретами применяется в любой политике. Политика совместного доступа независима: Isolated (по умолчанию) удерживает ресурсы в их области, если они явно не предоставлены; Open позволяет читать личные файлы, артефакты, навыки и память, включённые в общий доступ, в разрешённом общем канале в указанных пределах. В SECURITY.md описаны модель угроз и известные ограничения. Развёртывание: создайте принадлежащий организации репозиторий развёртывания, зависящий от `@yc-software/qm`, запустите `qm init` с идентификатором организации и целью (fly или aws), затем установите и следуйте сгенерированному навыку развёртывания. Каждое развёртывание работает в собственной облачной учётной записи оператора. Настройку можно выполнять через репозиторий развёртывания (конфигурация, инструменты, навыки, сервисы) или поддерживая форк исходного кода для изменений самого QM. README также описывает управляемую установку Slack через сервис хостинга, включая переменные окружения и контракты обратных вызовов. Вклад принимается в виде написанного человеком текста, а не кода: опишите желаемое изменение в файле .txt или .md в каталоге adrs/. Об уязвимостях следует сообщать приватно в соответствии с SECURITY.md. QM доступен по лицензии MIT, если не указано иное.