So verläuft eine IntegrationHow an integration proceeds
Sieben Phasen, auf die sich Ihre Seite und unsere Seite einigen können. Jede Phase hat ein Ziel, eine Aufgabenteilung, eine überprüfbare Definition von „fertig“ und genau eine Abhängigkeit, die sie blockiert.Seven phases your side and our side can agree on. Each phase has a goal, a division of labour, a checkable definition of “done”, and exactly one dependency that blocks it.
Die Reihenfolge ist keine Terminplanung. Phasen 0 bis 3 laufen heute mit dem Code in diesem Repository; Phasen 4 und 5 warten auf Zugangsdaten und einen SIP-Anschluss, Phase 6 auf die Steuerebene. Was noch nicht fertig ist, steht am Ende dieser Seite beim Namen.The order is a sequence, not a schedule. Phases 0 to 3 run today on the code in this repository; phases 4 and 5 wait on credentials and a SIP trunk, phase 6 on the control plane. What is not ready yet is named at the bottom of this page.
Stand des ProduktsState of the product
Unsere internen Meilensteine sind nicht Ihre Phasen — aber sie bestimmen, welche Phase heute möglich ist. Deshalb stehen sie hier:Our internal milestones are not your phases — but they decide which phase is possible today. So here they are:
M2 —
Wissenssubsystem: Markdown in Git als Quelle der Wahrheit, Intake, Index, Golden-Gateknowledge subsystem: Markdown in Git as the source of truth, intake, index, golden gatefertigcomplete
M3 —
Konsolen: Betrieb, Wissen und Character, Mandantenverwaltungconsoles: operations, knowledge and character, tenant administrationfertigcomplete
M4 —
Kunden-Widgets: einbettbarer Chat, themebar über Design-Tokenscustomer widgets: embeddable chat, themeable through design tokensfertigcomplete
M5 —
Integrationsmaterial: Leistungen, Voraussetzungen, dieser Fahrplan, das Handbuchintegration material: features, requirements, this roadmap, the manualin Arbeit — dieses Materialin progress — this material
M6 —
Livegang: echte Engines und SIP-Telefoniego-live wiring: real engines and SIP telephonyoffen — wartet auf Zugangsdatenopen — waiting on credentials
Eine Regel gilt über alle Meilensteine: die Testsuite läuft offline auf Mocks, mit null Zugangsdaten. Eine Änderung, die dafür ein Geheimnis nötig macht, wird abgelehnt — genau diese Eigenschaft macht „live durch Konfiguration“ möglich.One rule holds across every milestone: the test suite runs offline on mocks with zero credentials. A change that makes a secret necessary to reach green is rejected — that property is exactly what makes “live by configuration” possible.
0
Ohne Zugangsdaten · heute möglichZero credentials · possible today
Bewertung auf MocksEvaluation on mocks
Sie prüfen die Plattform vollständig offline: eigener Rechner, kein Schlüssel, keine Daten von Ihnen, kein Vertrag. Es laufen dieselben Codepfade wie später im Betrieb — nur mit Mock-Engines statt Modell, Spracherkennung und Telefonie.You evaluate the platform completely offline: your own machine, no key, none of your data, no contract. The same code paths run that will run in production — only with mock engines instead of a model, speech recognition and telephony.
ZielGoal
Eine belastbare Ja/Nein-Entscheidung, bevor irgendjemand ein Geheimnis herausgibt.A defensible yes/no decision before anyone hands over a secret.
WirWe do
Übergabe des Repositories oder eines ImagesHand over the repository or an image
Durchgang durch Demo, Konsolen und WidgetWalk through the demo, the consoles and the widget
Offene Punkte benennen, statt sie zu versteckenName the open points instead of hiding them
SieYou do
Lokal starten und den QA-Gate laufen lassenRun it locally and run the QA gate
Das Handbuch abarbeiten, Abschnitte 1 und 2Work through the manual, sections 1 and 2
Fachlich prüfen: Eskalation, Freigaben, AblehnungenJudge the substance: escalation, approvals, refusals
Fertig, wennDone when
Der Gate auf Ihrem Rechner grün istThe gate is green on your machine
Sie ein vollständiges Gespräch mit Freigabe gesehen habenYou have seen a full conversation with an approval
Ihre Ablehnungsgründe schriftlich vorliegenYour objections are written down
Abhängigkeit: keine. Diese Phase ist der Beweis dafür, dass es keine gibt.Dependency: none. This phase is the proof that there is none.
1
Ausstellung durch uns · heute möglichIssued by us · possible today
Mandant, API-Schlüssel, erster AufrufTenant, API key, first call
Ihr Mandant bekommt eine eigene Kennung, eigene Daten und einen eigenen Schlüssel. Jede Route leitet den Mandanten aus dem Schlüssel ab — ein Aufrufer kann nie benennen, wessen Daten er lesen möchte.Your tenant gets its own id, its own data and its own key. Every route derives the tenant from the key — a caller can never name whose data it wants to read.
ZielGoal
Ihre Systeme sprechen unter Ihrer eigenen Mandantenkennung mit der Plattform.Your systems talk to the platform under your own tenant id.
WirWe do
Mandanten anlegen: Kennung, Region, DatenwurzelCreate the tenant: id, region, data root
Schlüssel ausstellen und den Klartext genau einmal übergebenIssue the key and hand over the plaintext exactly once
Konsolenkonten für Ihre Betreuung einrichtenSet up console accounts for your supervisors
SieYou do
Klartext direkt in Ihren Secret-Store, nie in E-Mail oder ChatPut the plaintext straight into your secret store, never into email or chat
Serverseitig aufrufen, nie aus einer Browserseite herausCall from your server, never from a browser page
Widerruf beim Personalwechsel einplanenPlan revocation into staff changes
Fertig, wennDone when
GET /v1/tenant Ihre Kennung und Region liefertGET /v1/tenant returns your id and region
Ein falscher Schlüssel 401 ergibt, ein fremdes Gespräch 404A wrong key gives 401, another tenant's conversation gives 404
Der Schlüssel in Ihrem Store liegt, nicht in einem TicketThe key lives in your store, not in a ticket
Abhängigkeit: es gibt heute keinen Endpunkt, der Mandanten anlegt oder Schlüssel ausstellt. Beides passiert im Prozess über ApiKeyStore.issue() und ist damit ein manueller Schritt bei uns; die Selbstbedienung kommt mit M7. Ebenso fehlt heute jede Ratenbegrenzung.Dependency: there is no endpoint today that creates a tenant or issues a key. Both happen in-process through ApiKeyStore.issue(), which makes it a manual step on our side; self-service lands in M7. There is likewise no rate limiting anywhere today.
2
Ihre Dokumente · heute möglichYour documents · possible today
Der Agent antwortet aus Ihren Dokumenten oder er antwortet nicht. Aufnahme läuft in sechs Stufen; Stufe 5 — die Freigabe — ist ausdrücklich ein Mensch, der den Entwurf neben seiner Quelle liest. Der Weg Entwurf → veröffentlicht existiert nicht, auch nicht über die API.The agent answers out of your documents or it does not answer. Intake runs in six stages; stage 5 — approval — is deliberately a human reading the draft beside its source. The path draft → published does not exist, not even through the API.
ZielGoal
Antworten, die an Ihrem Quelltext hängen — und eine Verweigerung, wo keine Quelle ist.Answers grounded in your source text — and a refusal where there is no source.
WirWe do
Einlesen, nach Überschrift strukturieren, klassifizierenIngest, structure by heading, classify
Verifizieren: jede Zahl muss wörtlich in der Quelle stehenVerify: every figure must appear verbatim in the source
Golden-Set aufbauen und das Gate scharf schaltenBuild the golden set and arm the gate
SieYou do
Dokumente liefern — samt Herkunft und GültigkeitSupply documents — with their provenance and validity
Eine Person benennen, die freigeben darfName the person allowed to approve
Entscheiden, was Kunden gesagt werden darf und was nichtDecide what may be told to customers and what may not
Fertig, wennDone when
Ihre Kernthemen veröffentlicht sind und gefunden werdenYour core topics are published and retrievable
Das Golden-Gate eine absichtliche Verschlechterung blockiertThe golden gate blocks a deliberate regression
Interne Inhalte im Kundenkanal nachweislich nicht auftauchenInternal-only material provably never appears in the customer channel
Abhängigkeit: Ihre Dokumente und eine benannte freigebende Person. Technisch offen: POST /v1/knowledge legt nur Entwürfe an — für verifizieren und veröffentlichen gibt es heute keinen HTTP-Endpunkt, das passiert serverseitig über die Registry. Datei-, URL- und Harvest-Aufnahme sind in der Konsole sichtbar, aber als „wartet auf Backend“ gekennzeichnet.Dependency: your documents and a named approver. Technically open: POST /v1/knowledge only creates drafts — there is no HTTP endpoint today for verify or publish; that happens server-side through the registry. File, URL and harvest intake are visible in the console but labelled as awaiting a backend.
3
Auf Ihrer Website · heute möglichOn your website · possible today
Chat-Widget mit herkunftsgebundenem SchlüsselChat widget with an origin-bound key
Ein Script-Tag auf Ihrer Seite. Es trägt einen öffentlichen Einbettungsschlüssel (acp_pk_), niemals einen API-Schlüssel: Der Schlüssel ist an eine Liste erlaubter Herkünfte gebunden und kauft nur eine kurzlebige Sitzung. Kopiert auf eine fremde Domain ist er wertlos.One script tag on your site. It carries a public embed key (acp_pk_), never an API key: the key is bound to an allow-list of origins and buys only a short-lived session. Copied onto someone else's domain it is worthless.
ZielGoal
Besucher Ihrer Website chatten mit dem Agenten, ohne dass Ihre Seite ein Geheimnis trägt.Visitors to your site chat with the agent without your page carrying a secret.
WirWe do
Einbettungsschlüssel für genau Ihre Herkünfte ausstellenIssue an embed key for exactly your origins
Hinweistext nach EU-KI-Verordnung serverseitig ausliefernServe the EU AI Act disclosure from the server
Design-Tokens auf Ihre Marke setzenSet the design tokens to your brand
SieYou do
Script-Tag einbauen — eine Zeile, keine AbhängigkeitAdd the script tag — one line, no dependency
Alle Herkünfte nennen: www, Staging, Shop-SubdomainName every origin: www, staging, the shop subdomain
Hinweistext und Datenschutzhinweis rechtlich abnehmenGet the disclosure and privacy notice signed off
Fertig, wennDone when
Das Widget auf Ihrer Domain öffnet und antwortetThe widget opens on your domain and answers
Der Hinweis steht, bevor der Besucher tippen kannThe disclosure is shown before the visitor can type
Derselbe Schlüssel auf fremder Domain mit 401 scheitertThe same key fails with 401 on a foreign domain
Abhängigkeit: Ihre Herkunftsliste und die rechtliche Abnahme des Hinweistextes. Auch die Ausstellung eines Einbettungsschlüssels hat heute keinen Endpunkt (dieselbe M7-Lücke wie beim API-Schlüssel). Antworten kommen bis Phase 4 aus Mock-Engines.Dependency: your origin list and legal sign-off on the disclosure. Embed-key issuance likewise has no endpoint today (the same M7 gap as the API key). Until phase 4 the answers come from mock engines.
4
Braucht Zugangsdaten · M6Needs credentials · M6
Livegang mit echten EnginesGoing live with real engines
Jeder Pfad kippt einzeln um: Modell, Spracherkennung, Sprachausgabe, Transport. Ein Umschalten ist eine Konfigurationszeile plus ein Geheimnis — kein Codewechsel und kein Stichtag, an dem alles gleichzeitig live geht.Each path flips on its own: model, speech-to-text, text-to-speech, transport. A flip is one configuration line plus a secret — no code change, and no single date on which everything goes live at once.
ZielGoal
Echte Antworten eines echten Modells, innerhalb des Latenzbudgets pro Zug.Real answers from a real model, inside the per-turn latency budget.
WirWe do
Router auf die gewählten Anbieter richten, EU-Gate erhaltenPoint the router at the chosen providers, keep the EU gate
Geheimnisse über *_FILE einhängen, nie als Klartext im ProzessumfeldMount secrets through *_FILE, never as plaintext in the process environment
Den Live-Vertragstest für Werkzeugaufrufe nachziehen (H3)Add the live contract test for tool calls (H3)
SieYou do
Modellschlüssel stellen — oder Selbsthosting freigebenProvide a model key — or approve self-hosting
Schlüssel für Spracherkennung und Sprachausgabe stellenProvide speech-to-text and text-to-speech keys
Auftragsverarbeitung und EU-Datenhaltung unterschreibenSign the data processing agreement and EU residency decision
Fertig, wennDone when
Ein Gespräch durchgängig auf echten Engines läuftA conversation completes end to end on real engines
Ein Werkzeugaufruf mitten im Gespräch nicht abbrichtA tool call mid-conversation does not break the turn
Der Rückweg auf Mock reine Konfiguration bleibtGoing back to mock stays pure configuration
Abhängigkeit: Sponsorenpunkte ① Schlüssel für Modell und Spracherkennung sowie ⑥ Auftragsverarbeitung und Hinweistexte. Offener Prüfbefund H3: der Live-Pfad zu Claude bricht heute nach einem Werkzeugaufruf — unsichtbar in der CI, weil dort nur Mocks laufen. Muss vor diesem Schritt geschlossen sein.Dependency: sponsor items ① model and speech keys, and ⑥ data processing agreements and disclosure copy. Open audit finding H3: the live Claude path breaks after a tool call today — invisible in CI because only mocks run there. It must be closed before this step.
5
Braucht SIP-Anschluss · M6Needs a SIP trunk · M6
TelefonieTelephony
Eine echte Rufnummer erreicht den Agenten. Der Transport ist LiveKit plus SIP; die Regeln des Hauses gelten am Telefon unverändert — kein autonomes ausgehendes Anwählen, Freigabepflicht ab Betrag, sofortiger Ausstieg im Gespräch.A real phone number reaches the agent. Transport is LiveKit plus SIP; the house rules hold unchanged on the phone — no autonomous outbound dialling, approval above a threshold, instant opt-out during the call.
ZielGoal
Ein eingehender Anruf wird vollständig geführt, mitgelesen und übernehmbar.An inbound call is handled end to end, readable live, and can be taken over.
WirWe do
Transport und Rufverteilung einrichtenWire up the transport and call routing
Tokenausgabe authentifizieren und begrenzen (H2)Authenticate and rate-limit token minting (H2)
Latenzbudget messen und die Engine-Wahl danach richtenMeasure the latency budget and choose engines by it
SieYou do
SIP-Anschluss und Rufnummern bereitstellenProvide the SIP trunk and the numbers
Ansage, Einwilligung und Aufzeichnungspolitik festlegenDecide the announcement, consent and recording policy
Rufumleitung und Öffnungszeiten in Ihrer Telefonanlage setzenSet forwarding and opening hours in your telephony system
Fertig, wennDone when
Ein echter Anruf vollständig durchläuftA real call completes
Die Übernahme durch einen Menschen die Leitung hältA human takeover keeps the line up
Autonomes Auswählen weiterhin verweigert wirdAutonomous outbound dialling is still refused
Abhängigkeit: Sponsorenpunkt ② SIP-Anschluss und Rufnummern, dazu ③ eine eigene Produktionsumgebung. Offener Prüfbefund H2: die Ausgabe von LiveKit-Tokens ist heute nicht authentifiziert — sie liegt im Deployment-Kleber, nicht im Kern, und muss vor der Telefonie authentifiziert und begrenzt sein.Dependency: sponsor item ② SIP trunk and numbers, plus ③ a production environment of its own. Open audit finding H2: LiveKit token minting is unauthenticated today — it sits in the deployment glue, not the core, and must be authenticated and rate-limited before telephony goes live.
Aus einem Projekt wird ein Dienst: Mandanten und Schlüssel liegen in einer Steuerebene statt im Prozessspeicher, Sitzungen lassen sich widerrufen, Aufrufe sind begrenzt, und die Freigabe zur Produktion ist eine bewusste Entscheidung nach QA-Abnahme.A project becomes a service: tenants and keys live in a control plane instead of process memory, sessions can be revoked, calls are rate-limited, and the production go is a deliberate decision after QA sign-off.
ZielGoal
Betrieb ohne Sonderwege: Bereitstellung, Widerruf und Abrechnung als normale Vorgänge.Operations without special cases: provisioning, revocation and billing as routine actions.
WirWe do
Mandanten- und Schlüsselspeicher, Bereitstellungs-EndpunkteTenant and key store, provisioning endpoints
Ende-zu-Ende-, Last- und Sicherheitstests bis zur QA-AbnahmeEnd-to-end, load and security testing through to QA sign-off
SieYou do
Anmeldeverfahren entscheiden: eigenes Konto oder Ihr IdentitätsanbieterDecide sign-in: own accounts or your identity provider
Abrechnungs- und Berechtigungsmodell bestätigenConfirm the billing and entitlement model
Betriebsfenster, Ansprechpartner und Eskalationsweg benennenName the operating window, contacts and escalation path
Fertig, wennDone when
Ein Freigabekandidat mit QA-Abnahme vorliegtA release candidate with QA sign-off exists
Ein Schlüsselwiderruf sofort und nachweislich wirktA key revocation takes effect immediately and provably
Die Produktionsfreigabe bewusst erteilt wurdeThe production go has been deliberately given
Abhängigkeit: Sponsorenpunkte ③ Produktionsumgebung und Registry, ④ Domain und Wildcard-Zertifikat, ⑤ Abrechnung und Identität, ⑥ Auftragsverarbeitung, ⑦ Markenmaterial. Ohne diese Punkte endet der Weg sauber bei Phase 5.Dependency: sponsor items ③ production environment and registry, ④ domain and wildcard certificate, ⑤ billing and identity, ⑥ data processing agreements, ⑦ brand assets. Without them the path ends cleanly at phase 5.
Phasen und AbhängigkeitenPhases and dependencies
Eine Zeile pro Phase: was sie blockiert, wer es liefert, und ob sie heute schon möglich ist.One row per phase: what blocks it, who supplies that, and whether it is possible today.
PhasePhase
Blockierende AbhängigkeitBlocking dependency
Wer liefertSupplied by
MeilensteinMilestone
HeuteToday
0 · Bewertung auf MocksEvaluation on mocks
keinenone
——
M0–M4
möglichpossible
1 · Mandant und SchlüsselTenant and key
Ausstellung im Prozess; kein Endpunkt, keine RatenbegrenzungIn-process issuance; no endpoint, no rate limiting
wir, manuellus, manually
M1 · M7
möglichpossible
2 · WissenKnowledge
Dokumente und eine freigebende PersonDocuments and a named approver
Sieyou
M2
möglichpossible
3 · Chat-WidgetChat widget
Herkunftsliste, Abnahme des HinweistextesOrigin list, disclosure sign-off
Sieyou
M4
möglichpossible
4 · Echte EnginesReal engines
Modell-, STT- und TTS-Schlüssel; Befund H3 offenModel, STT and TTS keys; finding H3 open
Sponsor ① ⑥sponsor ① ⑥
M6
blockiertblocked
5 · TelefonieTelephony
SIP-Anschluss und Rufnummern; Befund H2 offenSIP trunk and numbers; finding H2 open
Was heute ausdrücklich nicht fertig istWhat is explicitly not ready today
Diese Liste gehört in jede Integrationsplanung. Sie ist nicht die Ausnahmeliste hinter dem Vertrag, sie steht vorne.This list belongs in every integration plan. It is not the small print behind the contract; it goes at the front.
Keine Ratenbegrenzung — nirgends, auch nicht bei der Konsolenanmeldung und nicht bei der Webhook-Zustellung. Bis M7 ist die Rechenzeit von argon2 die einzige Bremse.No rate limiting — anywhere, including console login and webhook delivery. Until M7 the cost of argon2 is the only brake.M7M7
Kein Sitzungswiderruf — Konsolen-Cookies sind zustandslos mit zwölf Stunden Gültigkeit. Ein gelöschtes Konto oder eine entzogene Rolle beendet eine laufende Sitzung nicht.No session revocation — console cookies are stateless with a twelve-hour life. Deleting a user or removing a role does not end an outstanding session.M7M7
Keine Bereitstellung per API — Mandanten anlegen, Schlüssel ausstellen, Schlüssel widerrufen und auflisten haben keinen HTTP-Endpunkt. Die Mandantenverwaltung zeigt den serverseitigen Aufruf, statt Erfolg vorzutäuschen.No provisioning API — creating a tenant, issuing, revoking and listing keys have no HTTP endpoint. The admin console shows the server-side call instead of faking success.M7M7
Mandantenregister im Arbeitsspeicher — aus der Umgebung befüllt. Der dauerhafte Speicher der Steuerebene kommt mit M7; die Schnittstelle steht, damit der Austausch nichts anderes berührt.In-memory tenant registry — seeded from the environment. The control-plane store lands in M7; the interface is fixed so the swap touches nothing else.M7M7
H2 · Tokenausgabe für LiveKit nicht authentifiziert — offener Prüfbefund im Deployment-Kleber. Muss authentifiziert und begrenzt sein, bevor Telefonie live geht.H2 · unauthenticated LiveKit token minting — an open audit finding in the deployment glue. It must be authenticated and rate-limited before telephony goes live.M6 · offenM6 · open
H3 · Live-Rundlauf mit Werkzeugaufruf — der Live-Pfad zu Claude bricht heute nach einem Werkzeugaufruf. In der CI unsichtbar, weil dort nur Mocks laufen; nötig ist ein Vertragstest, der die Rollenabfolge prüft.H3 · live tool round-trip — the live Claude path breaks after a tool call today. Invisible in CI because only mocks run there; it needs a contract test that validates role alternation.M6 · offenM6 · open
Kein Endpunkt für Verifizieren und Veröffentlichen — die API legt Entwürfe an; der Übergang zu veröffentlicht läuft serverseitig über die Registry, und Datei-, URL- und Harvest-Aufnahme warten auf ihr Backend.No verify or publish endpoint — the API creates drafts; the transition to published runs server-side through the registry, and file, URL and harvest intake await their backend.M5 · M7M5 · M7
Ingest-Token gilt für die Plattform, nicht pro Mandant — Sprachworker sind Plattforminfrastruktur; der Mandant reist im geprüften Rumpf mit. Zugangsdaten pro Mandant sind M7.The ingest token is a platform credential, not per tenant — voice workers are platform infrastructure; the tenant travels in the validated body. Per-tenant credentials are M7.M7M7
Kein Bildmodell, kein Stimmenklon — Avatarvorschläge sind Prompt-Briefings, und das Klonen einer Stimme bleibt gesperrt, bis eine ausdrückliche, protokollierte Einwilligung vorliegt.No image model, no voice cloning — avatar proposals are prompt briefs, and voice cloning stays disabled until there is explicit, logged consent.M6+M6+
/openapi.json und /docs sind öffentlich — sie geben die Routenoberfläche preis. Bekannt, bewertet, informativ; vor der Produktion zu entscheiden./openapi.json and /docs are public — they disclose the route surface. Known, assessed, informational; to be decided before production.offenopen