- qm es un harness de agentes multijugador que permite a los integrantes de una startup colaborar con agentes en canales de Slack, mensajes grupales y proyectos, mientras cada persona usa su propio espacio de trabajo aislado
- Separa memoria, archivos, keychain, permisos, tareas programadas, apps web y sandboxes persistentes para cada persona y sala de conversación, manteniendo la misma identidad y configuración en Slack y en la web
- Pi, OpenCode, Codex y Claude Code pueden conectarse al mismo núcleo, y el almacenamiento de sesiones, los sandboxes y la memoria también se colocan detrás de interfaces para evitar la dependencia de un modelo o proveedor específico
- Ofrece modos de seguridad Strict, Auto y Dangerous, y en todos los modos aplica políticas de comandos y denegaciones forzadas para operaciones como borrado recursivo o SQL destructivo
- La configuración e infraestructura de cada organización se mantienen en un repositorio privado creado a partir de un repositorio de despliegue separado o mediante una clonación normal, y el operador debe desplegar directamente en su propia cuenta de Fly.io o AWS
Espacio de trabajo de agentes a nivel de organización
- Está diseñado con alcances personales y compartidos como unidad básica para reducir la complejidad que surge al aplicar agentes tipo asistente personal a toda una empresa
- Cada empleado puede trabajar en un espacio de trabajo independiente sin afectar a otras personas
- En canales de Slack, mensajes grupales y proyectos, varias personas pueden colaborar con el mismo agente
- Cada persona y sala de conversación tiene su propia memoria, archivos, vista de keychain, permisos, tareas programadas, apps web y sandbox persistente
- Usa la misma identidad y configuración entre Slack y la app web
- Los administradores pueden controlar la configuración a nivel de organización, la postura de seguridad y los harnesses y modelos disponibles
- Las habilidades técnicas pertenecen a un alcance y pueden compartirse mediante autorización
- La promoción a toda la organización requiere aprobación de un administrador
- Se pueden importar paquetes de habilidades desde repositorios Git
- Las tareas programadas (cron) y las tareas de monitoreo (watch) se ejecutan en segundo plano aunque el usuario no las esté observando
Trabajos compatibles
- Puede buscar en conjunto en memorandos internos, emails, documentos, bases de datos y la web, y consultar conocimiento de la empresa
- Puede crear apps web internas, publicarlas para quienes las necesiten y mantener los datos actualizados
- Tras aprender el estilo de escritura del usuario a partir de historiales de envíos anteriores, puede clasificar la bandeja de entrada según un calendario y crear etiquetas y borradores de respuesta
- Puede ejecutar pruebas en repositorios existentes, crear PR, monitorear CI y revisar logs del sistema
- Puede hacer seguimiento de proyectos en canales compartidos y publicar avances y tareas de seguimiento
Núcleo y estructura de ejecución
- Todas las solicitudes pasan por un núcleo headless, que genera respuestas con distintos modelos y harnesses
- Postgres almacena el estado persistente, incluidos datos de usuario, historial de sesiones, colas y memoria
- La superficie de herramientas que usa el agente es pequeña y fija; la herramienta
execute ejecuta comandos en el sandbox aislado del alcance correspondiente
- El sandbox funciona como una computadora persistente que posee cada alcance
- Las herramientas instaladas se conservan para trabajos posteriores
- La UI web, el panel de administración y el portal público son plugins opcionales que se instalan sobre la API HTTP del núcleo
- Slack es un plugin opcional en proceso que el núcleo inicia y supervisa directamente como cliente de servicio
- El núcleo ejecuta TypeScript directamente en Node y usa Fastify para HTTP
- El plugin de Slack usa Bolt
- La UI web se compila con Vite y se renderiza con Lit
- Los harnesses, el almacenamiento de sesiones, los sandboxes y la memoria están cada uno detrás de interfaces, y las implementaciones de producción pueden reemplazarse desde un único archivo de cableado
Modelo de despliegue por organización
- La configuración de cada empresa, las herramientas y habilidades personalizadas, las imágenes de sandbox y la infraestructura se colocan en un directorio de despliegue separado del núcleo
- La
qm CLI valida y despliega el directorio de despliegue
- En un repositorio propiedad de la organización, se puede depender de
@yc-software/qm e inicializarlo así
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install
- El proceso de inicialización guía la infraestructura, el inicio de sesión web, las credenciales de conectores, el acceso opcional a Slack, el despliegue y la verificación real, sin requerir un checkout del código fuente
- El despliegue se ejecuta en la cuenta de nube propia del operador
- La inicialización no crea ni activa CI de despliegue, y el repositorio de qm tampoco incluye workflows de despliegue a producción
- El procedimiento concreto está documentado en
deployment.md
Seguridad y secretos
- El agente actúa con las credenciales y permisos de la persona con la que trabaja, y todas las acciones realizadas quedan en un registro de auditoría
- La organización elige una única postura de seguridad, y los alcances más estrechos solo pueden reforzarla, no relajarla
- Strict: detiene todas las llamadas a herramientas del harness hasta la aprobación humana, salvo dos acciones de cierre de turno que no tienen efecto
- Auto: modo predeterminado, en el que un clasificador inspecciona datos externos con etiqueta de origen y resultados de herramientas antes de pasarlos al modelo
- En el entorno de despliegue se puede especificar un proxy de inspección propio
- Dangerous: no hay inspección de contenido ni pausas entre llamadas a herramientas
- Las políticas de comandos declaradas de antemano se aplican a todos los modos de seguridad
- Junto con las reglas de aprobación, deniegan forzosamente comandos como borrado recursivo o SQL destructivo
- El modo Dangerous no es una excepción
- El modelo de amenazas, los requisitos previos del operador y las limitaciones conocidas pueden consultarse en
SECURITY.md
Repositorio privado de personalización
- Las organizaciones para las que no baste el repositorio de despliegue pueden operar un repositorio clon privado para poder leer el núcleo y el código privado personalizado en un solo lugar
- Debe crearse mediante una clonación normal, no con la función Fork de GitHub
- Los forks de GitHub de repositorios públicos no pueden convertirse en privados
- Los forks de GitHub comparten la red de objetos con el original, por lo que los commits enviados al fork pueden consultarse por SHA desde el lado público
- En un repositorio clonado normal no existe ese problema, pero los workflows de CI de upstream se ejecutan realmente en la cuenta de la organización
- Se deben proporcionar los secretos necesarios o desactivar los workflows no deseados
- La configuración específica de la organización, las herramientas y habilidades de sandbox, las imágenes de plugins y la infraestructura se guardan en
deploy/layers/<org>/
- Mantener el núcleo idéntico byte a byte con upstream reduce el tamaño de las fusiones
- Dos habilidades gestionan el límite entre el núcleo público y el área privada de personalización
update-qm fusiona el qm upstream en el repositorio privado y crea un PR de sincronización
upstream-pr crea una rama desde upstream/main y envía a qm cambios independientes de la organización
- Antes de hacer push, revisa identificadores de la organización en diffs, mensajes de commit y capturas de pantalla
- Los archivos bajo
deploy/layers/ no se envían a upstream
Contribuciones y licencia
- Las contribuciones se reciben como documentos
.txt o .md escritos por personas, no como código
- Si se redactan informalmente los cambios deseados en
adrs/, el proyecto los implementa tras llegar a un acuerdo
- Las reglas detalladas están en
CONTRIBUTING.md
- Las vulnerabilidades deben reportarse de forma privada siguiendo el procedimiento de
SECURITY.md, no mediante issues públicos
- Las partes sin indicación en contrario se ofrecen bajo la MIT License
1 comentarios
Comentarios de Hacker News
Es interesante ver aparecer nuevos elementos básicos de UI y conceptos en la era de los LLM, pero hay demasiadas apps creativas y faltan explicaciones, así que cuesta entender qué hace cada una
En la página web del agente Hermes no entendí en absoluto sus funciones, y solo después de revisar bastante la página de qm encontré una explicación adecuada. Últimamente uso mucho Orca, respaldado por YC, para gestionar sesiones de programación, pero como le falta una base de datos de sesiones basada en PostgreSQL, qm parece valer la pena probarlo
Me alegra ver una dirección así junto con Buzz. La parte más difícil en agentes multiusuario no es el loop del agente sino el scoping, y el alcance por persona y las salas compartidas de QM son una solución razonable para asistentes de toda la empresa
Mi equipo está creando AQ (aq.dev), una herramienta de programación multiusuario que ejecuta Claude Code y Codex juntos, así que ver a YC lanzar una herramienta de agentes multiusuario para el trabajo confirma la dirección, aunque también se siente un poco irreal
Ya hay muchos productos parecidos, así que no veo por qué debería usar esto en lugar de Claude Cowork. Cowork parece más simple y más pulido, además de tener más funciones, así que hace falta una comparación
QM vs CoworkVale la pena revisar cómo implementaron el contexto y la seguridad a nivel organizacional. Parece muy complementario con mi herramienta de programación, que actualmente ofrece la mejor interfaz de IA para individuos; sería bueno tener tanto la arquitectura para toda la empresa como una interfaz productiva de programación personal con apenas unos cuantos tickets grandes
Me pregunto si, entre los agentes de la familia OpenClaw que Hermes dijo haber usado antes, esta es la mejor opción, y en qué usan realmente estos sistemas los usuarios avanzados
Lo uso para arreglos automáticos simples de fallas de CI, recibir alertas de producción y luego hacer análisis de causa raíz y generar PR de corrección, revisar y optimizar periódicamente consultas lentas de base de datos, y crear gráficos para responder preguntas puntuales sobre datos. También lo he usado para programar en movimiento, pero prefiero un agente interactivo donde pueda revisar el código directamente
Me gusta tanto crear software como tener control total, y el loop básico del agente en realidad no tiene nada de especial. Hay muchísimas cosas que ajustar fuera del loop principal, y es divertido probar distintas formas de extenderlo. No tengo que preocuparme por monetización ni generalidad; solo agrego lo que necesito, y tampoco hace falta diseñarlo para que sea infinitamente extensible vía plugins. Agradezco que nanoclaw y Hermes me mostraran la idea central, pero ahora quiero adaptarla a mi manera
Lo uso para leer feeds RSS y newsletters secundarios, filtrar solo la información importante para mí y entregarme noticias y tendencias del mercado
Parece una herramienta interna que YC publicó a toda prisa para minimizar el terreno que le quitó Buzz. Me interesa ver evaluaciones de gente que haya comparado ambas directamente
Me pregunto qué significa
yc softwareEs interesante que también hayan publicado una skill de diseño
anti-sloppara hacer interfaces que no parezcan plantillasEn bienes de consumo de alta gama, prohíbe las paletas de colores que la IA usa con frecuencia, y como las landing pages y los portafolios son productos visuales, clasifica como resultados de baja calidad las páginas de texto que solo dejan un área de captura de pantalla falsa. https://github.com/yc-software/qm/blob/7f2c916360f1797a8ff2a...
Sería más útil un título como
qm - a multiplayer agent harness for work, que deje claro para qué sirve la herramienta