1 pontos por GN⁺ 2 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2 시간 전
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

    • No fim, basta criar seu próprio software personalizado. Hoje em dia, dá para se inspirar nessas ferramentas e, depois de algumas boas sessões com o Claude, implementar você mesmo o que quer
    • Ao enfatizar o diferencial de uma ferramenta, há o risco de ela parecer estranha e inútil. Por isso, mesmo ferramentas realmente inovadoras e diferentes tendem a ter páginas de marketing parecidas
    • A IA precisa de elementos básicos completamente novos em várias áreas
  • 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

    • Há demanda por usar LLMs executados localmente e clientes pi ou opencode, em vez de ficar preso para sempre ao ecossistema de modelos de pesos fechados da Anthropic e continuar pagando por token
    • Parece uma tentativa de pegar carona na buzzword multiusuário, que ninguém resolveu ainda, mas a UI é péssima e não parece ser a resposta
    • Talvez eu queira usar outros modelos
  • É 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

    • Um agente sempre ativo que pode acessar sistemas internos e ser executado por webhooks é muito conveniente
      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
    • Usei o Hermes, mas muitas vezes me incomodava querer controlar um ou dois níveis mais a fundo. Desde ontem estou criando minha própria versão altamente personalizada, só para mim, e estou me divertindo, mesmo considerando que ainda é apenas o primeiro dia de lua de mel
      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
    • O Hermes é enorme e tem muitos recursos desnecessários, então prefiro agentes pequenos que possam ser expandidos conforme a necessidade. Testei vários projetos no GitHub e o dirge (https://github.com/dirge-code/dirge) me impressionou; não tenho relação com o projeto
      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
    • Uso como ferramenta auxiliar de plantão que responde primeiro a alertas de produção. Na configuração padrão, não é tão eficiente quanto um agente de programação, mas ajuda bastante
    • A maioria parece usar LLMs para verificar e-mails e mensagens instantâneas periodicamente
  • 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-slop para criar interfaces que não pareçam templates
    Em 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...

    • No fim, isso apenas vai parecer diferente do design de IA ruim atual; com o tempo, talvez vire mais um ponto de convergência de design sem personalidade
  • O título seria mais útil se revelasse a finalidade da ferramenta, como qm - a multiplayer agent harness for work

    • Permitir que o leitor faça um pouco de esforço para entender o título é uma prática típica do HN