ACP · Integration

IntegrationsfahrplanIntegration roadmap

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:

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

Wissen aufnehmen, prüfen, veröffentlichenKnowledge onboarding, verification, publishing

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.

6

Steuerebene · M7Control plane · M7

Produktionshärtung, Abrechnung, AnmeldungProduction hardening, billing, SSO

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
  • Ratenbegrenzung, Sitzungswiderruf, Ingest-Zugangsdaten pro MandantRate limiting, session revocation, per-tenant ingest credentials
  • 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 Sponsor ② ③sponsor ② ③ M6 blockiertblocked
6 · Härtung und AbrechnungHardening and billing Produktionsumgebung, Domain, Identität, AbrechnungProduction environment, domain, identity, billing Sponsor ③ ④ ⑤ ⑥ ⑦sponsor ③ ④ ⑤ ⑥ ⑦ M7 blockiertblocked

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.