1 puntos por GN⁺ 2 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

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

    • Al final, basta con crear uno mismo software personalizado. Hoy en día, después de inspirarte con estas herramientas y pasar por unas cuantas buenas sesiones con Claude, puedes implementar tú mismo lo que quieres
    • Si se enfatiza la diferenciación de la herramienta, existe el riesgo de que parezca extraña e inútil. Por eso, incluso herramientas realmente innovadoras y distintas tienden a tener páginas de marketing parecidas
    • La IA necesita elementos básicos completamente nuevos en varias áreas
  • 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 Cowork

    • Hay demanda por usar LLM autoalojados y clientes pi u opencode, en vez de quedar atado para siempre al ecosistema de modelos de pesos cerrados de Anthropic y seguir pagando por token
    • Parece que se están subiendo a la palabra de moda de multiusuario, algo que todavía nadie ha resuelto, pero la UI es mala y no parece ser la respuesta
    • Puede que quieras usar otros modelos
  • Vale 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

    • Un agente siempre activo que puede acceder a sistemas internos y ejecutarse por webhook es muy útil
      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
    • Usé Hermes, pero a menudo me resultaba incómodo porque quería controlar una o dos capas más a fondo. Desde ayer estoy construyendo directamente una versión altamente personalizada solo para mí y, aun considerando que apenas llevo un día de luna de miel, lo estoy disfrutando mucho
      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
    • Hermes es grande y tiene muchas funciones innecesarias, así que prefiero agentes pequeños que se puedan ampliar según se necesite. Probé varios proyectos en GitHub y dirge(https://github.com/dirge-code/dirge) me impresionó; no tengo relación con ellos
      Lo uso para leer feeds RSS y newsletters secundarios, filtrar solo la información importante para mí y entregarme noticias y tendencias del mercado
    • Lo uso como herramienta de apoyo de guardia que responde primero a alertas de producción. Con la configuración por defecto no es tan eficiente como un agente de programación, pero ayuda bastante
    • Parece que la mayoría lo usa para revisar periódicamente correos electrónicos y mensajes instantáneos con LLM
  • 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 software

  • Es interesante que también hayan publicado una skill de diseño anti-slop para hacer interfaces que no parezcan plantillas
    En 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...

    • Al final, solo se verá distinto del diseño de IA mediocre actual, pero con el tiempo quizá eso mismo termine convirtiéndose en otro punto de convergencia de diseño sin personalidad
  • Sería más útil un título como qm - a multiplayer agent harness for work, que deje claro para qué sirve la herramienta

    • Permitir que el lector haga un pequeño esfuerzo para entender el título es una costumbre propia de HN