- qm é um harness multijogador de agentes que permite que membros de uma startup colaborem com agentes em canais do Slack, mensagens em grupo e projetos, enquanto cada um usa seu próprio espaço de trabalho isolado
- Separa memória, arquivos, chaveiro, permissões, tarefas agendadas, apps web e sandboxes persistentes por pessoa e por sala de conversa, mantendo a mesma identidade e configuração no Slack e na web
- É possível conectar Pi, OpenCode, Codex e Claude Code ao mesmo núcleo, e também posicionar armazenamento de sessão, sandbox e memória atrás de interfaces para evitar dependência de modelo ou fornecedor
- Oferece modos de segurança Strict, Auto e Dangerous, aplicando em todos eles políticas de comando e recusas forçadas para ações como exclusão recursiva ou SQL destrutivo
- As configurações e a infraestrutura de cada organização ficam em um repositório de deploy separado ou em um repositório privado criado por clone comum, e o administrador deve fazer o deploy diretamente na sua própria conta Fly.io ou AWS
Espaço de trabalho de agentes por organização
- Para reduzir a complexidade de aplicar agentes do tipo assistente pessoal a toda a empresa, o escopo pessoal e compartilhado foi projetado como unidade básica
- Cada funcionário pode trabalhar em um espaço de trabalho independente sem afetar outras pessoas
- Em canais do Slack, mensagens em grupo e projetos, várias pessoas podem colaborar com o mesmo agente
- Cada pessoa e sala de conversa tem sua própria memória, arquivos, visão de chaveiro, permissões, tarefas agendadas, app web e sandbox persistente
- Usa a mesma identidade e configuração entre o Slack e o app web
- Administradores podem controlar configurações no nível da organização, postura de segurança e os harnesses e modelos disponíveis
- Skills técnicas pertencem ao escopo e podem ser compartilhadas por concessão de permissão
- A promoção para toda a organização exige aprovação de administrador
- É possível importar pacotes de skills de repositórios Git
- Tarefas agendadas (cron) e tarefas de monitoramento (watch) rodam em segundo plano, mesmo sem o usuário acompanhando
Tipos de trabalho suportados
- Pode pesquisar memorandos internos, e-mails, documentos, bancos de dados e a web em conjunto, além de consultar o conhecimento da empresa
- Pode criar apps web internos, publicá-los para as pessoas necessárias e manter os dados atualizados
- Depois de aprender o estilo de escrita do usuário a partir do histórico de envios, pode classificar a caixa de entrada conforme a agenda e criar rótulos e rascunhos de resposta
- Pode executar testes em repositórios existentes, criar PRs, monitorar CI e verificar logs do sistema
- Pode acompanhar projetos em canais compartilhados e publicar progresso e próximos passos
Núcleo e estrutura de execução
- Todas as solicitações passam por um núcleo headless, que gera respostas usando vários modelos e harnesses
- O Postgres armazena estado persistente como dados de usuários, histórico de sessões, filas e memória
- A superfície de ferramentas usada pelo agente é pequena e fixa, e a ferramenta
execute roda comandos na sandbox isolada daquele escopo
- A sandbox funciona como um computador persistente pertencente a cada escopo
- Ferramentas instaladas permanecem disponíveis nas tarefas seguintes
- UI web, painel de administração e portal público são plugins opcionais instalados sobre a API HTTP do núcleo
- O Slack é um plugin opcional in-process, iniciado e supervisionado diretamente pelo núcleo como cliente do serviço
- O núcleo executa TypeScript diretamente no Node e usa Fastify para HTTP
- O plugin do Slack usa Bolt
- A UI web é compilada com Vite e renderizada com Lit
- Harnesses, armazenamento de sessão, sandboxes e memória ficam cada um atrás de uma interface, e a implementação de produção pode ser trocada em um único arquivo de wiring
Modelo de deploy por organização
- Configuração da empresa, ferramentas e skills personalizadas, imagens de sandbox e infraestrutura ficam em um diretório de deploy separado do núcleo
- A
qm CLI valida e faz o deploy do diretório de deploy
- Em um repositório pertencente à organização, é possível depender de
@yc-software/qm e inicializar assim
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install
- O processo de inicialização orienta sobre infraestrutura, login web, credenciais de conectores, acesso opcional ao Slack, deploy e validação real, sem exigir checkout do código-fonte
- O deploy roda na própria conta de nuvem do operador
- A inicialização não cria nem ativa CI de deploy, e o repositório do qm também não tem workflow de deploy para produção
- O procedimento detalhado está em
deployment.md
Segurança e informações secretas
- O agente atua com as credenciais e permissões da pessoa com quem está trabalhando, e toda ação executada fica registrada em um log de auditoria
- A organização escolhe uma única postura de segurança, e escopos mais restritos só podem reforçá-la, nunca relaxá-la
- Strict: interrompe todas as chamadas de ferramentas do harness até aprovação humana, exceto duas ações de encerramento de turno sem efeito
- Auto: modo padrão, em que um classificador inspeciona dados externos com rótulo de origem e resultados de ferramentas antes de passá-los ao modelo
- No ambiente de deploy, é possível definir um proxy próprio de inspeção
- Dangerous: não há inspeção de conteúdo nem pausas entre chamadas de ferramentas
- Políticas de comando pré-declaradas se aplicam a todos os modos de segurança
- Junto com regras de aprovação, recusam à força comandos como exclusão recursiva e SQL destrutivo
- Nem o modo Dangerous é exceção
- Modelo de ameaças, pré-requisitos para operadores e limitações conhecidas podem ser consultados em
SECURITY.md
Repositório privado de customização
- Organizações para as quais o repositório de deploy não é suficiente podem manter um repositório privado clonado para ler o núcleo e o código privado de customização em um só lugar
- Ele deve ser criado por clone comum, não pelo recurso Fork do GitHub
- Um fork público do GitHub não pode ser convertido em privado
- Forks do GitHub compartilham a rede de objetos com a origem, então commits enviados ao fork podem ser consultados publicamente pelo SHA
- Em um repositório clonado comum esse problema não existe, mas workflows de CI do upstream passam a executar de fato na conta da organização
- É preciso fornecer os segredos necessários ou desativar workflows indesejados
- Configuração por organização, ferramentas e skills de sandbox, imagens de plugins e infraestrutura ficam em
deploy/layers/<org>/
- Mantém o núcleo idêntico byte a byte ao upstream para reduzir o tamanho dos merges
- Duas skills gerenciam a fronteira entre o núcleo público e a área privada de customização
update-qm faz merge do qm upstream no repositório privado e cria um PR de sincronização
upstream-pr cria uma branch a partir de upstream/main e envia para o qm mudanças independentes da organização
- Antes do push, verifica identificadores da organização em diff, mensagem de commit e screenshots
- Arquivos sob
deploy/layers/ não são enviados ao upstream
Contribuição e licença
- Contribuições são aceitas como documentos
.txt ou .md escritos por pessoas, não como código
- Basta escrever informalmente a mudança desejada em
adrs/, e o projeto a implementa após chegar a um consenso
- As regras detalhadas estão em
CONTRIBUTING.md
- Vulnerabilidades devem ser reportadas em privado, seguindo o processo de
SECURITY.md, e não por issue pública
- Salvo indicação em contrário, o conteúdo é fornecido sob a MIT License
1 comentários
Comentários do Hacker News
É interessante ver o surgimento de novos elementos básicos e conceitos de UI na era dos LLMs, mas há tantos apps criativos e tão pouca explicação que fica difícil entender o que cada um faz
Na página do agente Hermes, não entendi absolutamente nada da funcionalidade, e só encontrei uma explicação adequada depois de vasculhar bastante a página do qm. Ultimamente tenho usado bastante o Orca, apoiado pela YC, para gerenciar sessões de programação, mas como ele carece de um banco de dados de sessões baseado em PostgreSQL, talvez valha a pena testar o qm
Fico feliz em ver essa direção aparecendo junto com o Buzz. A parte mais difícil em agentes multiusuário não é o loop do agente, mas a definição de escopo, e os escopos por pessoa e as salas compartilhadas do QM são uma solução sensata para um assistente corporativo
Nossa equipe está criando o AQ (aq.dev), uma ferramenta de programação multiusuário que executa Claude Code e Codex juntos, então ver a YC lançar uma ferramenta de agentes multiusuário para trabalho confirma a direção, ao mesmo tempo que parece um pouco irreal
Já existem muitos produtos parecidos, então não sei por que eu usaria isto em vez do Claude Cowork. O Cowork parece mais simples, mais maduro e com mais recursos, então é necessária uma comparação
QM vs CoworkÉ preciso observar como foram implementados o contexto de toda a organização e a segurança. Isso parece muito complementar à minha ferramenta de programação, que hoje oferece a melhor interface de IA para indivíduos, e seria ótimo ter, com apenas alguns tickets grandes, tanto uma arquitetura corporativa quanto uma interface produtiva de programação individual
Fico curioso para saber se o Hermes é a melhor opção entre os agentes da família OpenClaw que disseram ter usado antes, e para que usuários avançados realmente usam sistemas assim
Uso para correções automáticas simples de falhas de CI, para receber alertas de produção, analisar a causa raiz e criar PRs de correção, para verificar e otimizar periodicamente consultas lentas de banco de dados e para gerar gráficos que respondem a perguntas pontuais sobre dados. Também usei para programar em deslocamento, mas prefiro agentes interativos em que posso verificar o código diretamente
Gosto do ato de criar software e de ter controle total; o loop básico do agente, na prática, não é nada especial. Há muitas coisas a ajustar fora do loop central, e é divertido testar várias formas de extensão. Posso simplesmente adicionar as funcionalidades de que preciso sem me preocupar com monetização ou uso geral, e não preciso torná-lo infinitamente plugável. Sou grato ao nanoclaw e ao Hermes por terem mostrado as ideias centrais, mas agora quero adaptar tudo do meu jeito
Uso para ler feeds RSS secundários e newsletters, filtrar apenas as informações importantes para mim e me entregar notícias e tendências de mercado
Parece uma ferramenta interna que a YC divulgou às pressas para minimizar o espaço tomado pelo Buzz. Gostaria de ver uma avaliação comparando diretamente as duas ferramentas
Fico curioso sobre o que significa
yc softwareÉ interessante que tenham distribuído junto uma skill de design
anti-sloppara criar interfaces que não pareçam templatesEm produtos de consumo premium, ela proíbe as paletas de cores que a IA usa com frequência e define landing pages e portfólios como produtos visuais, classificando como resultado de baixa qualidade páginas de texto que só têm áreas de screenshots falsas. https://github.com/yc-software/qm/blob/7f2c916360f1797a8ff2a...
O título seria mais útil se revelasse a finalidade da ferramenta, como
qm - a multiplayer agent harness for work