
Customer Assurance Operating System. Beantworten Sie die Sicherheitsfragebögen, die Ihnen Ihre Kunden senden, nur einmal.
Beantworten Sie die Sicherheitsfragebögen Ihrer Kunden nur einmal.
Jedes Unternehmen, das Kundendaten verarbeitet, bekommt immer wieder dieselben Anfragen: Sicherheitsfragebögen, Datenschutzprüfungen, Vendor-Risk-Reviews, Procurement-Due-Diligence, Nachweisanfragen. Die meisten Organisationen beantworten sie von Hand – eine Tabellenkalkulation des Kunden, ein Ordner mit Richtlinien, ein E-Mail-Thread und die Erinnerung einer Person daran, was sie letztes Mal gesagt hat.
CAOS macht daraus ein System of Record. Fragebögen werden zu strukturierter, beantwortbarer Arbeit. Fertige Antworten und Ihre Compliance-Dokumente werden zu einem durchsuchbaren, zitierbaren Korpus. Der nächste Fragebogen beginnt mit dem, was Sie bereits gesagt haben, wobei jede Aussage bis zu dem Dokument oder der früheren Antwort zurückverfolgt werden kann, aus dem sie stammt.
Es ist selbst gehostet. Ihre Richtlinien, Ihre Antworten und die Fragebögen Ihrer Kunden bleiben auf Ihrer Infrastruktur.
Status: v0. CAOS läuft in Produktion, aber dieses Repository ist neu öffentlich. Schnittstellen, Schema und Konfiguration sind noch in Bewegung. Externe Beiträge sind noch nicht geöffnet – siehe Mitwirken.
Liest Fragebögen ohne Raten. Laden Sie ein XLSX eines Kunden hoch und CAOS rendert es getreu – Blätter, Zeilen, Zellen, ausgeblendete Spalten, Validierungs-Dropdowns. Sie markieren dann, welche Zeilen beantwortbar sind und welche Zellen ausgefüllt werden sollen, in Bereichen statt einzeln. Es gibt keinen Pro-Kunde-Parser, weil es keinen Standard gibt: Eine fette Zeile kann eine Frage sein, eine leere Spalte das Antwortziel, und jede Heuristik, die eine Arbeitsmappe richtig versteht, versteht eine andere souverän falsch.
Baut einen Korpus aus bereits abgeschlossener Arbeit auf. Das Schließen eines Fragebogens veröffentlicht seine beantworteten Zeilen als wiederverwendbares Q&A. Hochgeladene Richtlinien, Zertifizierungen und Berichte werden zu zitierbaren Passagen. Beides wird unveränderlich versioniert, sodass sich eine Antwort, die Sie letztes Quartal gesendet haben, weiterhin anhand des damals aktuellen Dokuments erklärt.
Findet die richtige frühere Antwort. Der Abruf führt lexikalische und semantische Suche parallel aus, fusioniert ihre Rankings und rankt die besten Kandidaten neu. Compliance-Sprache braucht beides: exakte Tokens wie „SOC 2 Type II“, die Embeddings verschmieren, und Paraphrasen, die die Stichwortsuche völlig übersieht.
Entwirft belegte Antworten. Optional. Das Modell durchsucht Ihren Korpus über begrenzte,
allow-listete Werkzeuge und entwirft eine Antwort mit Zitaten – plus ein Label, das angibt, woher
seine Autorität stammt: Knowledge grounded, Mixed, General guidance oder Based on current answer. Eine General guidance-Antwort macht keine Aussage über Ihr Unternehmen und sagt das auch.
Antwortet in Google Chat. Ein /ciso-Slash-Command greift auf denselben belegten Korpus zu, mit
einem Link zurück in eine dauerhafte Konversation in der Web-App.
Exportiert zurück in die eigene Arbeitsmappe des Kunden. Antworten werden in die ursprüngliche Dateistruktur geschrieben, in die Zellen, die Sie zugeordnet haben – nicht in eine CAOS-förmige Annäherung daran.
Zeichnet alles auf. Ein Append-only-Prüfprotokoll mit datenbankerzwungener Unveränderlichkeit, das exakte Vorher-Nachher-Werte der Antworten trägt.
CAOS ist in neun Domänenmodule organisiert. Drei davon – Evidence, Knowledge und Tasks – sind global: Sie gehören keinen Projekten, weil ihr Wert aus der übergreifenden Nutzung über Engagements hinweg entsteht.
Internet
│
┌─────┴─────┐
│ nginx │ TLS · static frontend · /api proxy
└─────┬─────┘
┌──────────────┼──────────────┐
│ │ │
┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴──────┐
│ Frontend │ │ API │ │ Taskiq │
│ React │ │ FastAPI │ │ workers │
│ static │ │ :18800 │ │ │
└───────────┘ └─────┬─────┘ └─────┬──────┘
│ │
┌─────┴──────────────┴─────┐
│ │
┌─────┴──────┐ ┌──────┴─────┐
│ PostgreSQL │ │ Redis │
│ pgvector │ │ queue+cache│
└────────────┘ └────────────┘
│
┌─────┴─────┐
│ Providers │ Bedrock · local models · Google Chat
└───────────┘
Backend – Python 3.12+, FastAPI, SQLAlchemy 2 async, PostgreSQL mit pgvector, Redis,
Taskiq-Worker. Jedes Modul ist in domain → application → infrastructure → presentation
aufgeteilt, mit einseitigen Abhängigkeiten. domain hängt von nichts ab.
Frontend – React 19, TypeScript, Vite, Tailwind v4, shadcn/ui, Zustand. App-weiter Sitzungs- und
Shell-Zustand lebt in src/app; Feature- und Server-Cache-Zustand in Feature-Stores; langlaufende
Seiten-Workflows in Feature-Controllern.
Beide Abrufkanäle leben in PostgreSQL. Es gibt keine separate Vektordatenbank – ein Speicher bedeutet eine Transaktionsgrenze und ein Backup.
Externe Anbieter werden auf Distanz gehalten. Jede Integration trennt ein Platform Protocol (was CAOS erwartet, in Produktsprache), ein Adapter Protocol und eine Vendor Implementation – die einzige Schicht, die das SDK importiert. Deshalb laufen Embedding und Reranking auf festgelegten lokalen Modellen oder auf Bedrock, ohne dass Anwendungscode weiß, welches verwendet wird.
Detail: Architektur · Integrationsgrenzen
Ein Dokument wird abrufbar. Upload → unveränderliche Version → dauerhafter Ingest-Job → Commit → Zuweisung an einen Worker → Passagen von ≤1.500 Zeichen extrahieren, jede mit einem Zitatlokator (PDF-Seite, DOCX-Absatz, XLSX-Blatt/Zeile/Zelle) → Embeddings erzeugen → durchsuchbar. Der Job committet vor der Zuweisung, sodass ein Warteschlangenfehler ein sichtbarer, wiederholbarer Zustand wird statt einer unsichtbaren ausstehenden Zeile.
Ein Fragebogen wird zu beantworteter Arbeit. Upload → getreue Zeilenansichten → Sie ordnen
Zeilen und Antwortziele zu → ein Arbeitsbereichselement pro beantwortbarer Zeile, jedes zeigt auf
seine exakten Quellzellen → Autosave-Entwürfe → expliziter Abschluss mit Compare-and-Set auf
erwarteter Revision, sodass ein veralteter Tab ein 409 erhält, statt einen Kollegen zu
überschreiben.
Abgeschlossene Arbeit wird zu Knowledge. Das Schließen eines Fragebogens (oder eines Projekts, das alle schließt) veröffentlicht beantwortete Zeilen als wiederverwendbares Q&A. Unbeantwortete Zeilen veröffentlichen nichts. Die rohe Arbeitsmappe wird nie ingestiert – sie ist operative Arbeit, kein Grounding-Material.
Eine Frage wird zu einer belegten Antwort. Lexikalischer und semantischer Abruf laufen parallel → Reciprocal Rank Fusion kombiniert ihre Ränge → Tag-Boost → Ausschlussfilter → Reranking eines begrenzten Fensters von 50 Kandidaten → das Modell sucht, prüft und sucht erneut innerhalb eines festen Budgets → ein Entwurf mit Zitaten, die auf unveränderliche Quellversionen verweisen, und ein Grounding-Label.
Jede Stufe degradiert in einen schwächeren, aber ehrlichen Modus: Ausfall des Rerankers bedeutet fusionierte Reihenfolge und kein Konfidenz-Chip; Ausfall der Embeddings bedeutet lexikalischen Fallback, der als solcher ausgewiesen wird.
Detail: Datenfluss
Voraussetzungen: Docker mit Compose. Für Frontend-Arbeit Node.js >=22.22.0 und pnpm 11.9.0.
Backend-Entwicklung nutzt außerdem uv.
Kein AWS-Konto oder LLM-Anbieter nötig – Generierung ist standardmäßig deaktiviert und alles unten funktioniert ohne sie.
git clone https://github.com/DigiCred-OSS/caos-os.git
cd caos-os/backend
cp .env.example .env
Ersetzen Sie den Platzhalter BACKEND_USERS_SECRET in backend/.env durch mindestens 32 zufällige
Bytes:
python3 -c 'import secrets; print(secrets.token_urlsafe(48))'
Starten Sie PostgreSQL, Redis, die API und die Worker. Migrationen laufen automatisch über den
Dienst migrator:
cd backend && docker compose up --build
Der erste Start lädt etwa 500 MB an festgelegten Modell-Artefakten herunter. Die API ist dann unter
http://localhost:18800, Swagger unter /api/docs, PostgreSQL auf Host-Port 15432.
CAOS hat keine Registrierungsseite – erstellen Sie den ersten Administrator vom Host aus:
./caos-cli user create-superadmin --email [email protected]
cd frontend && pnpm install && pnpm dev
Öffnen Sie http://localhost:5173.
Verwenden Sie
localhostkonsistent für Frontend und API. Sitzungscookies sind host-bezogen; die Mischung vonlocalhostund127.0.0.1verwirft Ihre Sitzung stillschweigend – das häufigste Problem beim lokalen Setup.
Weiter: Erste-Schritte-Tutorial führt von hier zu einem beantworteten, exportierten Fragebogen.
local (festgelegter Nomic und ein
MiniLM-Cross-Encoder, ins Image eingebacken). In Produktion ist der Standard AWS Bedrock. Die
Laufzeit lädt nie Modelle herunter.BACKEND_KNOWLEDGE_GENERATION_PROVIDER
als auch _MODEL, um sie zu aktivieren.Jede Einstellung ist inline in backend/.env.example dokumentiert und in
der Konfigurationsreferenz gruppiert.
cd backend && uv sync --locked
uv run ruff check caos
uv run mypy caos
cd frontend && pnpm install && pnpm lint && pnpm build
Diese veröffentlichte Distribution enthält nicht die interne Testsuite von CAOS. Lint, Typprüfung und ein sauberer Build sind hier die Verifikationsstufen.
Verwenden Sie ./caos-cli für alle Migrationsarbeiten, statt Alembic direkt aufzurufen – es wählt
die richtige Umgebung, den richtigen Container und die richtige Datenbank.
Projektkonventionen, die nicht aus dem Code ersichtlich sind, stehen in AGENTS.md, mit
modulspezifischen Regeln in einem eigenen AGENTS.md pro Modul.
docs/ folgt Diátaxis – jede Seite ist ein Tutorial, eine
Anleitung, eine Referenz oder eine Erklärung, und die vier werden getrennt gehalten.
Bitte eröffnen Sie keine öffentlichen Issues für Schwachstellen. Informationen zur privaten Meldung finden Sie in SECURITY.md.
CAOS ist Open Source, aber noch nicht offen für externe Beiträge. Wir rechnen damit, ab 2027 externe Pull Requests anzunehmen. Bis dahin sind Fehlerberichte und Fragen über Issues willkommen und wirklich nützlich – siehe CONTRIBUTING.md.
Apache License 2.0. Copyright 2026 DigiCred Technologies Pvt Ltd.
| Modul | Zuständig für | Doku |
|---|
| Identity | Auth-Modi, Sitzungen, Rollen, Benutzer, externe Subjektbindungen | docs |
| Projects | Der Engagement-Container; Schließen-Kaskade | docs |
| Questionnaires | Arbeitsmappen-Lesen, Zeilenzuordnung, Antwort-Arbeitsbereich, Export | docs |
| Evidence | Globales Repository für wiederverwendbare Compliance-Artefakte | docs |
| Knowledge | Quellen, Passagen, Embeddings, Abruf, Ausschlüsse, Zitate | docs |
| AI | CISO-Gespräche, Generierungen, Grounding-Labels | docs |
| Chat | Google-Chat-Verifizierung, Identitätsbindung, Zustellung | docs |
| Tasks | Angeforderte menschliche Arbeit über Module hinweg | docs |
| Audit | Append-only-Ereignisprotokoll | docs |
| Einstieg | Erste Schritte |
| Bereitstellung | Produktionsbereitstellung · Konfiguration |
| Aktivieren | Antwortgenerierung · Google SSO · Google Chat |
| Verstehen | Architektur · Datenfluss · Unveränderlichkeit |
| Nachschlagen | HTTP API · Rollen · Operator CLI |