- qm ist ein Multiplayer-Agent-Harness, mit dem Startup-Teams gemeinsam mit Agenten in Slack-Kanälen, Gruppen-DMs und Projekten zusammenarbeiten können, während jedes Mitglied einen eigenen isolierten Arbeitsbereich nutzt
- Für jede Person und jeden Gesprächsraum werden Memory, Dateien, Keychain, Berechtigungen, geplante Aufgaben, Web-Apps und persistente Sandboxes getrennt; in Slack und im Web bleiben dieselbe Identität und Konfiguration erhalten
- Pi, OpenCode, Codex und Claude Code lassen sich an denselben Core anbinden; auch Session-Speicher, Sandboxes und Memory liegen hinter Interfaces, um eine Bindung an ein bestimmtes Modell oder einen Anbieter zu vermeiden
- Bietet die Sicherheitsmodi Strict, Auto und Dangerous und wendet in allen Modi Command Policies und erzwungene Ablehnungen für Aktionen wie rekursives Löschen oder destruktives SQL an
- Organisationsspezifische Konfiguration und Infrastruktur werden in einem separaten Deployment-Repository oder einem per normalem Klon erstellten privaten Repository gehalten; Betreiber müssen direkt in ihrem eigenen Fly.io- oder AWS-Konto deployen
Arbeitsbereiche für Agenten auf Organisationsebene
- Entwickelt mit persönlichen und geteilten Scopes als Grundeinheit, um die Komplexität zu reduzieren, die entsteht, wenn persönliche Assistenten-Agenten auf ein ganzes Unternehmen angewendet werden
- Jede:r Mitarbeiter:in kann in einem eigenen Arbeitsbereich arbeiten, ohne andere zu beeinflussen
- In Slack-Kanälen, Gruppen-DMs und Projekten können mehrere Personen mit demselben Agenten zusammenarbeiten
- Jede Person und jeder Gesprächsraum verfügt über eigene Memory, Dateien, Keychain-Ansicht, Berechtigungen, geplante Aufgaben, Web-Apps und persistente Sandboxes
- Zwischen Slack und der Web-App werden dieselbe Identität und Konfiguration verwendet
- Administratoren können Einstellungen auf Organisationsebene, Sicherheitsniveau sowie verfügbare Harnesses und Modelle steuern
- Technische Skills gehören einem Scope und können über Berechtigungen geteilt werden
- Für eine organisationsweite Hochstufung ist eine Admin-Genehmigung erforderlich
- Skill-Packs können aus Git-Repositories importiert werden
- Geplante Aufgaben (cron) und Überwachungsaufgaben (watch) laufen im Hintergrund, auch wenn der Nutzer nicht zusieht
Unterstützte Aufgaben
- Interne Memos, E-Mails, Dokumente, Datenbanken und das Web können gemeinsam durchsucht werden, um Unternehmenswissen abzurufen
- Interne Web-Apps können erstellt, für die benötigten Personen freigegeben und mit aktuellen Daten versorgt werden
- Nach dem Lernen des Schreibstils aus früheren gesendeten Nachrichten kann der Agent den Posteingang nach Zeitplan klassifizieren sowie Labels und Antwortentwürfe erstellen
- In bestehenden Repositories kann er Tests ausführen, PRs erstellen, CI überwachen und Systemlogs prüfen
- In geteilten Kanälen kann er Projekte verfolgen sowie Fortschritt und Folgeaufgaben posten
Core und Ausführungsstruktur
- Alle Anfragen laufen durch einen headless Core, der Antworten über verschiedene Modelle und Harnesses erzeugt
- Postgres speichert persistenten Zustand wie Nutzerdaten, Session-Historien, Queues und Memory
- Die von Agenten genutzte Tool-Oberfläche ist klein und fest definiert; das Tool
execute führt Befehle in der isolierten Sandbox des jeweiligen Scopes aus
- Die Sandbox verhält sich wie ein persistenter Computer, der dem jeweiligen Scope gehört
- Installierte Tools bleiben auch für spätere Aufgaben erhalten
- Web-UI, Admin-Panel und öffentliches Portal sind optionale Plugins, die auf der HTTP-API des Cores installiert werden
- Slack ist ein optionales In-Process-Plugin, das der Core direkt als Service-Client startet und überwacht
- Der Core führt TypeScript direkt in Node aus und verwendet Fastify für HTTP
- Das Slack-Plugin verwendet Bolt
- Die Web-UI wird mit Vite gebaut und mit Lit gerendert
- Harnesses, Session-Speicher, Sandboxes und Memory liegen jeweils hinter Interfaces; Produktionsimplementierungen lassen sich in einer einzigen Wiring-Datei austauschen
Deployment-Modell je Organisation
- Unternehmensspezifische Konfiguration, Custom Tools und Skills, Sandbox-Images und Infrastruktur liegen in einem vom Core getrennten Deployment-Verzeichnis
- Die
qm CLI validiert und deployt das Deployment-Verzeichnis
- In einem organisationseigenen Repository kann man eine Abhängigkeit zu
@yc-software/qm setzen und anschließend so initialisieren:
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install
- Die Initialisierung führt durch Infrastruktur, Web-Login, Connector-Credentials, optionalen Slack-Zugriff, Deployment und reale Validierung; ein Source-Checkout ist nicht erforderlich
- Das Deployment läuft im Cloud-Konto des Betreibers selbst
- Die Initialisierung erstellt oder aktiviert keine Deployment-CI, und im qm-Repository gibt es keinen Workflow für Produktions-Deployments
- Das konkrete Verfahren ist in
deployment.md beschrieben
Sicherheit und Secrets
- Agenten handeln mit den Credentials und Berechtigungen der Person, mit der sie arbeiten, und alle ausgeführten Aktionen werden in einem Audit-Log erfasst
- Eine Organisation wählt ein Sicherheitsniveau; engere Scopes können dieses nicht lockern, sondern nur verschärfen
- Strict: Pausiert alle Harness-Tool-Aufrufe bis zur menschlichen Genehmigung, mit Ausnahme von zwei wirkungslosen Turn-End-Aktionen
- Auto: Standardmodus; ein Klassifikator prüft externe Daten mit Herkunftslabel und Tool-Ergebnisse, bevor sie an das Modell weitergegeben werden
- In der Deployment-Umgebung kann ein eigener Prüf-Proxy angegeben werden
- Dangerous: Keine Inhaltsprüfung und keine Pausen zwischen Tool-Aufrufen
- Vordefinierte Command Policies gelten für alle Sicherheitsmodi
- Zusammen mit Genehmigungsregeln erzwingen sie die Ablehnung von Befehlen wie rekursivem Löschen oder destruktivem SQL
- Auch der Dangerous-Modus ist keine Ausnahme
- Threat Model, Betreiber-Voraussetzungen und bekannte Einschränkungen stehen in
SECURITY.md
Privates Custom-Repository
- Organisationen, für die ein Deployment-Repository allein nicht ausreicht, können ein privates Klon-Repository betreiben, damit Core und privater Custom-Code an einem Ort gelesen werden können
- Es muss als normaler Klon erstellt werden, nicht über GitHubs Fork-Funktion
- GitHub-Forks öffentlicher Repositories können nicht auf privat umgestellt werden
- GitHub-Forks teilen das Objekt-Netzwerk mit dem Original, sodass Commits, die in den Fork gepusht wurden, auf der öffentlichen Seite per SHA abgefragt werden können
- In einem normalen Klon-Repository besteht dieses Problem nicht, allerdings werden upstream-CI-Workflows im Organisationskonto tatsächlich ausgeführt
- Erforderliche Secrets müssen bereitgestellt oder unerwünschte Workflows deaktiviert werden
- Organisationsspezifische Konfiguration, Sandbox-Tools und Skills, Plugin-Images und Infrastruktur werden unter
deploy/layers/<org>/ gespeichert
- Der Core wird bytegenau identisch zum upstream gehalten, um den Merge-Umfang zu reduzieren
- Zwei Skills verwalten die Grenze zwischen öffentlichem Core und privatem Custom-Bereich
update-qm mergt upstream qm in das private Repository und erstellt einen Synchronisierungs-PR
upstream-pr erstellt einen Branch von upstream/main und sendet organisationsunabhängige Änderungen an qm
- Vor dem Push werden Diffs, Commit-Messages und Screenshots auf Organisationskennungen geprüft
- Dateien unter
deploy/layers/ werden nicht upstream übertragen
Beiträge und Lizenz
- Beiträge werden nicht als Code, sondern als von Menschen verfasste
.txt- oder .md-Dokumente angenommen
- Gewünschte Änderungen können informell in
adrs/ beschrieben werden; das Projekt setzt sie nach Einigung um
- Die detaillierten Regeln stehen in
CONTRIBUTING.md
- Schwachstellen müssen nicht als öffentliches Issue, sondern gemäß dem Verfahren in
SECURITY.md privat gemeldet werden
- Soweit nicht anders angegeben, gilt die MIT License
1 Kommentare
Meinungen auf Hacker News
Es ist interessant zu sehen, wie im LLM-Zeitalter neue UI-Grundelemente und Konzepte entstehen, aber es gibt so viele kreative Apps und so wenig Erklärung, dass schwer zu erkennen ist, was die einzelnen eigentlich tun.
Auf der Webseite des Hermes-Agenten habe ich die Funktionen überhaupt nicht verstanden, und erst nach längerem Herumstöbern auf der qm-Seite fand ich eine passende Erklärung. In letzter Zeit nutze ich für die Verwaltung von Coding-Sessions gern das von YC unterstützte Orca, aber da mir eine PostgreSQL-basierte Session-Datenbank fehlt, ist qm einen Test wert.
Ich freue mich, dass diese Richtung zusammen mit Buzz sichtbar wird. Der schwierigste Teil bei Multi-User-Agenten ist nicht die Agent-Schleife, sondern die Scope-Festlegung; die persönlichen Scopes und geteilten Räume von QM sind eine sinnvolle Lösung für unternehmensweite Assistenten.
Unser Team baut mit AQ (aq.dev) ein Multi-User-Coding-Tool, das Claude Code und Codex gemeinsam ausführt. Dass YC ein Multi-User-Agenten-Tool für die Arbeit herausbringt, bestätigt einerseits die Richtung, fühlt sich zugleich aber etwas surreal an.
Es gibt bereits viele ähnliche Produkte, und ich weiß nicht, warum man das hier statt Claude Cowork verwenden sollte. Cowork wirkt einfacher sowie ausgereifter und funktionsreicher, daher braucht es einen Vergleich
QM vs Cowork.Man sollte sich ansehen, wie organisationsweiter Kontext und Sicherheit umgesetzt wurden. Es wirkt sehr komplementär zu meinem Coding-Tool, das Einzelpersonen die optimale AI-Schnittstelle bietet; es wäre schön, mit nur ein paar großen Tickets sowohl eine unternehmensweite Architektur als auch ein produktives persönliches Coding-Interface zu haben.
Ich frage mich, ob Hermes die beste Wahl unter den zuvor verwendeten Agenten der OpenClaw-Familie ist und wofür Power-User solche Systeme tatsächlich einsetzen.
Ich nutze sie für einfache automatische Fixes bei CI-Fehlern, zum Empfangen von Produktionsalarmen mit anschließender Root-Cause-Analyse und Erstellen eines Fix-PRs, zur regelmäßigen Prüfung und Optimierung langsamer Datenbankabfragen sowie zum Erzeugen von Charts als Antwort auf einmalige Datenfragen. Ich habe sie auch fürs Coding unterwegs ausprobiert, bevorzuge aber interaktive Agenten, bei denen ich den Code direkt überprüfen kann.
Ich mag das Bauen von Software an sich und vollständige Kontrolle; die grundlegende Agent-Schleife ist tatsächlich nichts Besonderes. Außerhalb der Kernschleife gibt es sehr viele Stellschrauben, und es macht Spaß, verschiedene Erweiterungsansätze auszuprobieren. Ich muss mir keine Gedanken über Monetarisierung oder Allgemeingültigkeit machen, sondern kann einfach nur die Funktionen hinzufügen, die ich brauche, und muss es auch nicht unendlich pluginfähig machen. Ich bin nanoclaw und Hermes dankbar, dass sie mir die Kernideen gezeigt haben, aber jetzt möchte ich es auf meine Weise abwandeln.
Ich nutze es, um zusätzliche RSS-Feeds und Newsletter zu lesen, nur die für mich wichtigen Informationen herauszufiltern und mir Nachrichten und Markttrends zu liefern.
Es wirkt wie ein internes Tool, das YC hastig veröffentlicht hat, um den von Buzz besetzten Raum möglichst klein zu halten. Mich interessiert eine Bewertung von jemandem, der beide Tools direkt verglichen hat.
Ich frage mich, was
yc softwarebedeutet.Interessant ist, dass sie auch eine
anti-slop-Design-Skill mitliefern, die Interfaces erzeugen soll, die nicht wie Templates aussehen.Für hochwertige Konsumgüter verbieten sie Farbpaletten, die AI häufig nutzt, und definieren Landingpages und Portfolios als visuelle Produkte, sodass Textseiten mit nur einem Bereich für Fake-Screenshots als minderwertige Ergebnisse gelten. https://github.com/yc-software/qm/blob/7f2c916360f1797a8ff2a...
Der Titel wäre nützlicher, wenn er den Zweck des Tools erkennen ließe, etwa
qm - a multiplayer agent harness for work.