docs(agenten): Fallakte Livia und Agenten-Briefing sichern
`LIVIA_PROFIL_UND_PROMPT.md` hält Livia als Exposé Master fest, wie sie vor Runde 8 war: Personalblatt, Aufgabenkatalog, Kanäle und Systeme, das Exposé-Dossier mit elf Bereichen und neun Pflichtfeldern, die `missingFacts`-Regel der Textmaschine — dazu ein System-Prompt, mit dem sich diese Fassung ausserhalb des Repositories rekonstruieren lässt. `archive/livia/` ergänzt die Beschreibung um die Wiederherstellung: die 23 Dateien der Exposé-Funktion als wörtliche Kopie im Original-Pfadlayout sowie ein Manifest jeder Stelle, an der Livia in geteilten Dateien verdrahtet war. Beides ist mit Runde 8 nicht überholt, sondern der Referenzstand: die Exposé-Funktion wurde nicht entfernt, sondern nachgeordnet. Das Manifest beschreibt allerdings den Rückbau eines vollständigen Entfernens und damit ein Szenario, das so nicht eingetreten ist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
ba8dc39483
commit
2037e5a463
33 files changed
+4431
No files matched your search
@@ -0,0 +1,450 @@
|
||||
# Property On — Agenten-Ansatz: Entwicklungsstand
|
||||
|
||||
> **Zweck dieses Dokuments:** Vollständiges Briefing über den Agenten-Ansatz der Plattform
|
||||
> «Property On» (Repository `property-match`), Stand **5. August 2026**.
|
||||
> Alle Angaben sind direkt aus dem Quellcode ausgelesen, nicht aus Konzeptpapieren.
|
||||
>
|
||||
> **Wenn du (ChatGPT) dieses Dokument liest:** Es ist die Faktenbasis für eine Präsentation
|
||||
> zum Entwicklungsstand. Abschnitt 8 trennt ausdrücklich zwischen *gebaut und lauffähig* und
|
||||
> *bewusst als Demo simuliert*. Diese Trennung bitte niemals verwischen — die Präsentation
|
||||
> muss Nachfragen standhalten.
|
||||
|
||||
---
|
||||
|
||||
## 1. Produktvision in einem Satz
|
||||
|
||||
Property On ist keine Immobilienplattform mit angeflanschtem Chatbot, sondern eine
|
||||
**Decision-Intelligence-Plattform**, deren Arbeit von fünf **digitalen Mitarbeitenden**
|
||||
erledigt wird — jeder mit Namen, Porträt, Personalnummer, Abteilung, definiertem
|
||||
Aufgabenprofil und einer festgelegten Autonomiestufe.
|
||||
|
||||
Der konzeptionelle Kern, der den Ansatz von «KI-Features» unterscheidet:
|
||||
|
||||
| Klassischer KI-Ansatz | Property-On-Agentenansatz |
|
||||
|---|---|
|
||||
| Ein Assistent, überall derselbe | Fünf Rollen mit je eigenem Arbeitsplatz und Zuständigkeit |
|
||||
| «AI»-Knopf an bestehender Oberfläche | Die Seite *ist* der Arbeitsplatz des Agenten |
|
||||
| Blackbox-Ausgabe | Jede Aussage mit Quelle, Fundstelle und Konfidenz |
|
||||
| Autonom oder gar nicht | Drei abgestufte Autonomiestufen je Agent |
|
||||
| Wird als Technologie verkauft | Wird als Personal eingeführt — inkl. «Personalverwaltung» |
|
||||
|
||||
Die drei Leitprinzipien aus der Projektdokumentation (`CLAUDE.md`), die jede
|
||||
Designentscheidung schlagen:
|
||||
|
||||
1. **Explainability-first** — jeder Score, jedes Badge, jede Empfehlung ist rückverfolgbar.
|
||||
Wenn nicht nachvollziehbar ist *warum*, ist das Feature nicht fertig.
|
||||
2. **Trust-first** — Konfidenz, Datenaktualität und Datenlücken werden aktiv angezeigt.
|
||||
Nichts wird sicherer dargestellt, als die Datenlage hergibt.
|
||||
3. **Better-than-Google** — ranken, Zielkonflikte erklären, Zukunftssignale zeigen und eine
|
||||
konkrete nächste Handlung empfehlen; nicht bloss Treffer auflisten.
|
||||
|
||||
---
|
||||
|
||||
## 2. Die fünf Agenten im Überblick
|
||||
|
||||
Der Menüpunkt heisst **«Meine Agenten»**. Die Reihenfolge folgt dem Arbeitsablauf, nicht dem
|
||||
Alphabet.
|
||||
|
||||
| # | Agent | Funktion | Abteilung | Pers.-Nr. | Autonomiestufe | Route |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | **Ferdi** | Fristen-Wächter | Bewirtschaftung | PO-ZD-02 | Freigabe erforderlich — «autonom beim Erinnern, Freigabe bei Eskalationen» | `/supply/reminder-manager` |
|
||||
| 2 | **Bruno** | Besichtigungsassistent | Vermarktung | PO-ZD-13 | Autonom | `/supply/besichtigungen` |
|
||||
| 3 | **Livia** | Exposé Master | Vermarktung | PO-ZD-21 | Autonom | `/supply/my-listings` |
|
||||
| 4 | **Nora** | Marktchancen / Leads | Marktbeobachtung | PO-ZD-19 | Nur Vorschlag | `/supply/market-intelligence` |
|
||||
| 5 | **Sina** | Datenpflege | Bewirtschaftung | PO-ZD-03 | Autonom, ausschliesslich lesend | `/supply/data-quality` |
|
||||
|
||||
**Die Autonomiestufen sind das stärkste Argument der Präsentation.** Sie sind kein Etikett,
|
||||
sondern im Datenmodell verankert (`AgentAutonomyLevel`) und je Agent begründet:
|
||||
|
||||
- **Nora darf nichts entscheiden** — sie erkennt Marktsignale und schlägt vor. Ein Mensch
|
||||
entscheidet, ob daraus ein Lead wird.
|
||||
- **Ferdi darf erinnern, aber nicht eskalieren** — die Eskalation gegenüber einem Mieter ist
|
||||
eine geschäftliche Handlung mit Aussenwirkung und braucht eine Freigabe.
|
||||
- **Sina darf autonom arbeiten, weil sie ausschliesslich liest** — sie beantwortet Fragen aus
|
||||
hinterlegten Dokumenten und belegt jede Aussage mit Fundstelle. Ohne Schreibrecht kein Risiko.
|
||||
- **Bruno und Livia arbeiten autonom**, weil ihr Ergebnis (Briefing, Exposé-Entwurf) dem
|
||||
Menschen vorgelegt wird, bevor es nach aussen geht.
|
||||
|
||||
---
|
||||
|
||||
## 3. Die fünf Agenten im Detail
|
||||
|
||||
### 3.1 Ferdi — Fristen-Wächter
|
||||
|
||||
**Problem:** Optionsfristen, Break-Klauseln und Anpassungstermine verschwinden in Verträgen,
|
||||
Nachträgen und Excel-Listen. Wer eine Frist verpasst, verliert Geld oder eine Fläche.
|
||||
|
||||
**Was Ferdi tut** (aus dem Personaldossier):
|
||||
- Liest Mietverträge, Nachträge und Zusatzvereinbarungen der Standorte Zürich, Winterthur,
|
||||
Basel, Zug, Bern und St. Gallen ein
|
||||
- Extrahiert Fristen, Optionen und Break-Klauseln **mit Fundstelle im Dokument**
|
||||
- Lässt jeden neu gefundenen Termin **einmalig durch die Bewirtschaftung bestätigen**
|
||||
(Human-in-the-Loop an der Datenquelle, nicht erst am Ergebnis)
|
||||
- Gleicht den bestätigten Bestand jeden Morgen mit dem Kalender ab
|
||||
- Erinnert gestaffelt: 12, 9, 6 und 3 Monate vor Stichtag
|
||||
- Meldet nach fünf Arbeitstagen ohne Reaktion ein zweites Mal
|
||||
- Legt bei anhaltendem Ausbleiben eine **Eskalation zur Freigabe** vor
|
||||
|
||||
**Ergebnisse:** Fristen-Alerts, Wochen-Pipeline montags 07:00 Uhr, Eskalationsvorschläge,
|
||||
lückenloses Meldeprotokoll je Vertrag.
|
||||
|
||||
**In der Oberfläche:** Chat-Einstieg, darunter Filterleiste und Reminder-Liste, seitliche
|
||||
Detailansicht. Zusätzlich gebaut: **Kalender-Terminplanung** — aus einem Reminder lässt sich
|
||||
ein Kalendereintrag erzeugen (Titel-Schema `Ferdi: {Typ} – {Objekt}`, mit strukturiertem
|
||||
Anhang aus den Reminder-Daten).
|
||||
|
||||
---
|
||||
|
||||
### 3.2 Bruno — Besichtigungsassistent
|
||||
|
||||
**Problem:** Vor einer Besichtigung fehlt dem Makler die Vorbereitung, nach der Besichtigung
|
||||
verschwindet das Gesagte. Beides kostet Abschlüsse.
|
||||
|
||||
**Zwei Auftragstypen, ein Arbeitsplatz:**
|
||||
|
||||
**Vorbereitung** — Bruno liefert vor dem Termin ein Briefing:
|
||||
- Objektbild, Adresse, Fläche, Mietpreis, Verfügbarkeit, Parkplätze
|
||||
- Objektbeschrieb
|
||||
- **Lagebericht von Livia** (Agent-zu-Agent-Zulieferung — ein wichtiger Punkt: die Agenten
|
||||
arbeiten einander zu, sie stehen nicht nebeneinander)
|
||||
- **Verkaufsargumente**
|
||||
- **Mögliche Einwände mit vorbereiteter Antwort** — je Einwand ein Antwortvorschlag
|
||||
- **Rechercheergebnisse zum Interessenten aus öffentlichen Quellen** — und hier die
|
||||
entscheidende Regel: *jede* Angabe steht mit Quellenangabe da. Findet Bruno nichts
|
||||
Belegbares, steht «Keine belegbaren öffentlichen Angaben gefunden» — nicht eine plausible
|
||||
Vermutung. Begründung im Code: *«Eine Vermutung im Briefing wird am Termin zur Behauptung.»*
|
||||
- Optional: Audiofassung des Briefings (für die Fahrt zum Termin)
|
||||
|
||||
**Nachbereitung** — nach dem Termin:
|
||||
- Der Makler diktiert oder schreibt formlos (Eingangskanal wird protokolliert)
|
||||
- Bruno zeigt transparent, **welche Verarbeitungsschritte** er daraus gemacht hat
|
||||
- Ergebnis ist eine benannte Datei (Protokoll / Kundennotiz) plus Bemerkungen
|
||||
|
||||
**Eingebaute Kontrolle:** Steht eine Besichtigung in **weniger als 24 Stunden** an und wurde
|
||||
noch kein Bericht angefordert, erscheint eine Warnung mit direktem Handlungsknopf
|
||||
«Bericht anfordern». Das ist ein konkretes Beispiel für einen Agenten, der nicht nur
|
||||
ausführt, sondern die Lücke im Prozess selbst meldet.
|
||||
|
||||
---
|
||||
|
||||
### 3.3 Livia — Exposé Master
|
||||
|
||||
**Problem:** Ein vollständiges Gewerbe-Exposé zu erstellen ist ein Tagesgeschäft von mehreren
|
||||
Stunden — Daten zusammensuchen, Texte schreiben, Bilder sortieren, exportieren.
|
||||
|
||||
**Arbeitsplatz:** Leadliste (aktiv / archiviert). Leads kommen aus Noras Signalen, sobald ein
|
||||
Bewirtschafter sie zur Exposé-Erstellung weitergeleitet hat. Beim Öffnen eines Leads gleitet
|
||||
die Zeile nach oben und der dreistufige Arbeitsbereich klappt auf.
|
||||
|
||||
**Der Drei-Schritt-Ablauf: Hochladen → Exposé → Export**
|
||||
|
||||
**Schritt 1 – Hochladen:** Objektdaten und Bilder aus «Meine Objekte» vorbefüllen oder
|
||||
Unterlagen hochladen.
|
||||
|
||||
**Schritt 2 – Exposé:** Ein Dossier aus **11 fachlichen Bereichen** — das ist der inhaltliche
|
||||
Beweis, dass hier eine echte Fachdomäne abgebildet ist und keine generische Formularmaske:
|
||||
|
||||
| # | Bereich | Beispielfelder | Datenquellen |
|
||||
|---|---|---|---|
|
||||
| 1 | Eckdaten & Vermarktung | Objektart, Vermarktungsart, Status, Objektreferenz | — |
|
||||
| 2 | Lage | Strasse, PLZ, Ort, Gemeinde, Kanton | — |
|
||||
| 3 | Koordinaten & Distanzen | ÖV-Haltestelle, Einkauf, Schule, Autobahn (in m) | Swisstopo, ÖV-Fahrplan, OpenStreetMap |
|
||||
| 4 | Gebäude- & Gemeindedaten | ÖV-Güteklasse, Solareignung, Einwohner, Steuerbelastung, Leerwohnungsziffer | ARE, BFE Sonnendach, BFS, ESTV |
|
||||
| 5 | Flächen & Gebäude | Nutzfläche, Raumhöhe, **Kubatur SIA 416** | — |
|
||||
| 6 | Gebäude & Verfügbarkeit | Stockwerk, Baujahr, letzte Renovation, Zustand | — |
|
||||
| 7 | Grundstück & Baurecht | Nutzungszone, Überbauungsziffer, Ausnützungsziffer | geodienste / Swisstopo |
|
||||
| 8 | Preise & Kosten | Nettomiete CHF/m²/J, Nebenkosten, NK-Art, Kaution, Parkierung | — |
|
||||
| 9 | Ausstattung & Merkmale | Photovoltaik, Wärmepumpe, E-Ladestation, Minergie, Seesicht … | — |
|
||||
| 10 | Energie & Technik | Heizsystem, Wärmeverteilung, GEAK, kWp | — |
|
||||
| 11 | Texte & Beschriebe | Titel, Kurzbeschrieb, Objekt-/Lage-/Gemeinde-/Ausstattungsbeschrieb, Highlights | **KI-Textentwurf** |
|
||||
|
||||
Zwei Details, die den Qualitätsanspruch zeigen:
|
||||
- **Schweizer Fachnormen sind eingebaut** — Kubatur nach SIA 416, GEAK, Minergie,
|
||||
ÖV-Güteklasse nach ARE, Leerwohnungsziffer. Alle behördlichen Datenquellen sind benannt und
|
||||
**die Werte bleiben überschreibbar** — der Mensch behält das letzte Wort.
|
||||
- **Pflichtfeldlogik:** 9 Felder sind Pflicht (Objektart, Vermarktungsart, Strasse, PLZ, Ort,
|
||||
Nutzfläche, Verfügbarkeit, Nettomiete, Exposé-Titel, Kurzbeschrieb, Objektbeschrieb).
|
||||
Fehlt eines, wird es rot umrandet. Begründung im Code: *«Eine Broschüre ohne Kubatur ist
|
||||
verkaufbar, eine ohne Mietpreis nicht.»*
|
||||
|
||||
**KI-Texterstellung mit hartem Leitplanken-Prinzip:** Der Textentwurf nutzt
|
||||
**ausschliesslich die erfassten Objektdaten**. Im Backend-Dienst wird die Textgenerierung
|
||||
bewusst an einen deterministischen Baustein delegiert, damit **kein Sprachmodell fehlende
|
||||
Fakten erfindet**. Das ist die direkte technische Umsetzung des Trust-first-Prinzips.
|
||||
|
||||
**Schritt 3 – Export:** HTML-Vorschau, PDF (über den Druckdialog) und Word (`.doc`).
|
||||
|
||||
---
|
||||
|
||||
### 3.4 Nora — Marktchancen / Leads
|
||||
|
||||
**Problem:** Marktchancen entstehen aus schwachen Signalen — einer Handelsregister-Mutation,
|
||||
einer Baubewilligung, einem Gespräch im Netzwerk. Diese Signale sind verteilt und flüchtig.
|
||||
|
||||
**Zwei Quellen, zwei Reiter:**
|
||||
|
||||
**Reiter «KI-Signale»** — automatisch erkannte Signale aus öffentlichen Quellen
|
||||
(SHAB, Zefix, Web), je Signal eine Detailansicht mit Einordnung.
|
||||
|
||||
**Reiter «Netzwerk»** — der menschliche Kanal. Ein Bewirtschafter erfasst selbst einen
|
||||
Hinweis aus seinem Netzwerk. Filter nach **Intern** und **Plattform** — d. h. das Wissen
|
||||
einzelner Mitarbeitender wird zu Plattformwissen, ohne dass es dafür ein separates CRM-Ritual
|
||||
braucht.
|
||||
|
||||
**Autonomiestufe «Vorschlag»:** Nora entscheidet nichts. Sie erkennt, ordnet ein und legt vor.
|
||||
Der Mensch leitet ein Signal per Mehrfachauswahl an **Livia** weiter — dort wird daraus ein
|
||||
Exposé-Lead. Das ist die sichtbare Übergabe zwischen zwei Agenten und der beste
|
||||
Demo-Moment der Präsentation.
|
||||
|
||||
**Weitere Ergebnisse laut Dossier:** Wochen-Mails, Leads, Marktbausteine.
|
||||
|
||||
---
|
||||
|
||||
### 3.5 Sina — Datenpflege
|
||||
|
||||
**Problem:** Schlechte Objektdaten machen jede nachgelagerte Auswertung wertlos. Aber niemand
|
||||
pflegt Daten «auf Vorrat» — man braucht den konkreten Hinweis, *welches* Objekt jetzt
|
||||
angefasst werden muss.
|
||||
|
||||
**Bewusste Design-Entscheidung, die man in der Präsentation zeigen sollte:** Die Seite hatte
|
||||
früher Auswertungskarten und eine Qualitätsverteilung. Beide sind **entfernt** worden. Die
|
||||
Begründung steht im Code: *Kennzahlen beantworten «wie steht es insgesamt?», auf dieser Seite
|
||||
zählt aber «welches Objekt muss ich anfassen?».* Das ist Prinzip 1 der Projektrichtlinien in
|
||||
Reinform — jeder Bildschirm wird um **eine Entscheidung** herum gebaut.
|
||||
|
||||
**Was übrig blieb:** Chat-Einstieg, Freitextsuche, drei Filter (Ort/PLZ, Gewerbetyp, Status)
|
||||
und eine nach Objektname oder Datenqualität sortierbare Liste. Datenqualität unter 60 %
|
||||
wird rot. Klick auf ein Objekt öffnet die **direkt editierbare** Detailansicht.
|
||||
|
||||
**Zweites Aufgabenprofil laut Dossier:** Sina beantwortet Vertrags- und Objektfragen
|
||||
**ausschliesslich aus hinterlegten Dokumenten und immer mit Fundstelle** — autonom, aber
|
||||
ausschliesslich lesend.
|
||||
|
||||
> ⚠️ **Vor der Präsentation prüfen:** Die Funktionsbezeichnung in der Oberfläche
|
||||
> («Datenpflege») und das Aufgabenprofil im Personaldossier (dokumentenbasierte
|
||||
> Fragebeantwortung) beschreiben zwei unterschiedliche Schwerpunkte. Wenn jemand nachfragt,
|
||||
> ist die saubere Antwort: Sina ist der lesende Daten- und Dokumentenagent; die Oberfläche
|
||||
> zeigt heute den Datenpflege-Teil, der Dokumenten-Q&A-Teil ist im Rollenprofil beschrieben
|
||||
> und noch nicht als eigener Bildschirm gebaut.
|
||||
|
||||
---
|
||||
|
||||
## 4. Das gemeinsame Bedienmuster
|
||||
|
||||
Alle fünf Agentenseiten sind gleich aufgebaut — das ist eine bewusste Entscheidung, damit die
|
||||
Agenten als *ein Team* wahrgenommen werden und nicht als fünf Werkzeuge.
|
||||
|
||||
**Der Chat-Einstieg** (eine einzige gemeinsame Komponente, `AgentWorkspaceHero`):
|
||||
- Porträt 88 px, Name, Funktionsbezeichnung
|
||||
- Immer dieselbe Frage: **«Wie kann ich dir heute weiterhelfen?»**
|
||||
- Mehrzeiliges Eingabefeld, Platzhalter «Nachricht an {Name} senden»
|
||||
- Optional: zusätzliche Kanäle (z. B. WhatsApp) als Hinweis darunter
|
||||
|
||||
Was bewusst **fehlt** — und warum das ein Argument ist, kein Mangel:
|
||||
kein generischer «AI-Assistent»-Knopf, keine Vorschlagskacheln, kein Verlauf.
|
||||
Der Chat ist agentenspezifisch und bleibt auf der jeweiligen Seite. Die operative
|
||||
Liste beginnt erst unterhalb des Weissraums.
|
||||
|
||||
**Objektverlinkung:** Jeder Objektname auf jeder Agentenseite ist ein Link in «Meine Objekte»
|
||||
(`/supply/properties/{id}`). Alle Verweise zeigen auf **real existierende Objekte im
|
||||
Datenbestand** — es gibt keine erfundenen Objektnamen in den Agentendaten. Das ist per Skript
|
||||
gegen den Objektbestand geprüft worden (IDs und Titel, null Abweichungen).
|
||||
|
||||
---
|
||||
|
||||
## 5. Die Verwaltungsebene — «Agenten als Personal»
|
||||
|
||||
Unter «Meine Agenten» liegen drei Verwaltungsbereiche als Reiter derselben Seite
|
||||
(`/supply/team?section=…`). Sie sind der konzeptionelle Kern des Ansatzes:
|
||||
|
||||
| Reiter | Inhalt |
|
||||
|---|---|
|
||||
| **Personalverwaltung** | Personalblatt je Agent: Personalnummer, Abteilung, E-Mail, Zweck, Eingangsdaten, Arbeitsablauf, Ergebnisse, Autonomiestufe |
|
||||
| **Bearbeitungsverlauf** | Erledigte Aufträge und pendente Anfragen |
|
||||
| **Kanäle & Systeme** | Welcher Agent hängt an welchem System — mit Verbindungsstatus |
|
||||
|
||||
**Kanäle & Systeme ist der wichtigste Bildschirm für eine kritische Zuhörerschaft**, weil er
|
||||
den Realitätsgrad ehrlich ausweist. Jede Anbindung trägt einen Status:
|
||||
`CONNECTED` / `DISCONNECTED` / `ROADMAP`.
|
||||
|
||||
Erfasste Anbindungen (Auszug mit realem Status):
|
||||
|
||||
| System / Kanal | Status |
|
||||
|---|---|
|
||||
| Microsoft 365 — gemeinsame Postfächer | Verbunden |
|
||||
| WhatsApp Business — Diensthandys | Verbunden |
|
||||
| Kalender der Standortteams | Verbunden |
|
||||
| Dokumentenablage und Standortbibliotheken | Verbunden |
|
||||
| CRM der Vermarktung | Verbunden |
|
||||
| Öffentliche Quellen — SHAB, Zefix, Web | Verbunden |
|
||||
| Microsoft Teams — Kanal Marktbeobachtung | Nicht verbunden |
|
||||
| Bewirtschaftungssystem ImmoTop2 | Nicht verbunden |
|
||||
| Telefonanlage und Diktatlinie | Roadmap |
|
||||
|
||||
Beachte die Formulierung bei der Dokumentenablage — sie beschreibt nicht nur *was*
|
||||
angebunden ist, sondern die Belegpflicht: *«Jede Aussage aus einem Dokument wird mit
|
||||
Dateiname, Seite und Zitat belegt.»*
|
||||
|
||||
---
|
||||
|
||||
## 6. Technischer Stand
|
||||
|
||||
**Stack:** Vite 8 · React 19 · TypeScript 6 (`strict`) · MUI v9 · Tailwind CSS v4 ·
|
||||
React Router v7 · TanStack Query v5 · Zustand v5 · Zod · Playwright · Vitest
|
||||
|
||||
**Architektur — vier Schichten, keine wird übersprungen:**
|
||||
|
||||
```
|
||||
Provider → Service → Hook (React Query) → Component
|
||||
```
|
||||
|
||||
- **Provider** ist der einzige Code, der Daten anfasst. Jede Entität hat ein Interface
|
||||
(`IPropertyProvider`) und eine Mock-Implementierung (`MockupPropertyProvider`).
|
||||
Eine echte Implementierung (REST, Supabase) lässt sich einsetzen, **ohne eine einzige
|
||||
aufrufende Stelle zu ändern** — das ist der Grund, warum der Mockdaten-Stand kein
|
||||
Wegwerfprototyp ist.
|
||||
- **Service** kapselt Geschäftslogik, kennt kein React.
|
||||
- **Hook** kapselt React Query.
|
||||
- **Component** ist reine Darstellung.
|
||||
|
||||
**Für den Agenten-Ansatz neu gebaute Datenschichten** (je Provider + Service + Hook):
|
||||
Kalendertermine · Exposé-Leads · Exposé-Entwürfe · Besichtigungsaufträge · Agenten-Verzeichnis
|
||||
|
||||
**KI-Anbindung — modellagnostisch:** Der gesamte Zugriff läuft über ein einziges Interface
|
||||
`IAIService` mit rund 15 Fähigkeiten (Bedarf parsen, Match erklären, Zielkonflikte
|
||||
zusammenfassen, Entscheidungsbriefing, Datenqualität bewerten, Marktsignal klassifizieren,
|
||||
Exposé-Text erzeugen …). Kein Bildschirm importiert je einen LLM-Client direkt.
|
||||
|
||||
Zwei Implementierungen:
|
||||
- `MockAIService` — deterministisch, ohne Netzwerk (Entwicklung, CI)
|
||||
- `BackendAIService` — ruft `POST /api/ai/chat/completions` auf dem PowerOn-Backend auf
|
||||
|
||||
**Sicherheitsrelevant und in der Präsentation erwähnenswert:** Der LLM-Schlüssel liegt
|
||||
**ausschliesslich serverseitig**. Die frühere Variante mit einem Schlüssel im Frontend-Bundle
|
||||
wurde entfernt; der Code weist einen Versuch, sie zu nutzen, aktiv mit einer Warnung ab.
|
||||
Fällt das Backend aus, schaltet der Dienst automatisch auf den Mock zurück — **kein
|
||||
KI-Ausfall blockiert einen Arbeitsablauf**.
|
||||
|
||||
**Codequalität, Stand heute:**
|
||||
|
||||
| Kennzahl | Wert |
|
||||
|---|---|
|
||||
| Quelldateien (`src/`) | 719 |
|
||||
| Codezeilen (`src/`) | 80 936 |
|
||||
| Tests | **405 / 405 grün** (25 Testdateien) |
|
||||
| Lint-Fehler | 0 |
|
||||
| Lint-Warnungen | 0 |
|
||||
| `any`-Casts | 0 |
|
||||
| Toter Code | 0 |
|
||||
| Seiten über dem 300-Zeilen-Limit | 0 |
|
||||
| Commits gesamt | 222 |
|
||||
| Deployment | Vercel, Produktion (Branch `Agents2`) |
|
||||
|
||||
Zum Vergleich der Ausgangslage vor der letzten Aufräumrunde: 102 Lint-Fehler,
|
||||
1 144 Warnungen, 31 `any`-Casts, ~1 535 Zeilen toter Code, grösste Seite 1 130 Zeilen
|
||||
(heute 196). Die Aufräumarbeit wurde mit einem Screenshot-Vergleich über 20 Ansichten
|
||||
abgesichert: 14 pixelgleich, 6 mit ausschliesslich den drei beabsichtigten
|
||||
Beschriftungsänderungen.
|
||||
|
||||
---
|
||||
|
||||
## 7. Warum dieser Ansatz trägt — die Argumente
|
||||
|
||||
1. **Rollen statt Funktionen.** Ein Bewirtschafter muss nicht lernen, welches KI-Feature was
|
||||
kann. Er muss wissen, wen er fragt. Das ist dieselbe kognitive Leistung wie bei
|
||||
menschlichen Kollegen — und deshalb keine Einführungshürde.
|
||||
|
||||
2. **Abgestufte Autonomie macht Akzeptanz verhandelbar.** «Die KI übernimmt» scheitert an
|
||||
Vertrauen. «Nora schlägt vor, Sie entscheiden; Ferdi erinnert, die Eskalation gibt der
|
||||
Mensch frei» ist verhandelbar — und die Stufe lässt sich pro Agent anheben, wenn sich
|
||||
Vertrauen aufgebaut hat.
|
||||
|
||||
3. **Belegpflicht ist im Produkt verankert, nicht im Marketing.** Fundstelle im Vertrag,
|
||||
Quelle bei der Interessentenrecherche, benannte Behördenquelle beim Exposé-Feld,
|
||||
deterministische Textgenerierung statt frei erfindendem Modell.
|
||||
|
||||
4. **Die Agenten arbeiten einander zu.** Nora erkennt → Mensch leitet weiter → Livia erstellt
|
||||
das Exposé → Livias Lagebericht taucht in Brunos Besichtigungsbriefing auf. Das ist eine
|
||||
Prozesskette, kein Werkzeugkasten.
|
||||
|
||||
5. **Der Mock-Unterbau ist austauschbar, nicht wegzuwerfen.** Wegen der strikten
|
||||
Provider-Schicht ist der Schritt zum Produktivsystem ein Implementierungswechsel hinter
|
||||
einem Interface — nicht ein Neubau.
|
||||
|
||||
---
|
||||
|
||||
## 8. Ehrliche Abgrenzung: was läuft, was ist Demo
|
||||
|
||||
**Diesen Abschnitt bitte in der Präsentation nicht weglassen.** Er ist der Grund, warum das
|
||||
Gezeigte glaubwürdig bleibt.
|
||||
|
||||
### Vollständig gebaut und lauffähig
|
||||
- Alle fünf Agentenarbeitsplätze mit vollständiger Oberfläche und Interaktion
|
||||
- Die drei Verwaltungsbereiche (Personal, Verlauf, Kanäle & Systeme)
|
||||
- Das gesamte Exposé-Dossier mit 11 Bereichen, Pflichtfeldprüfung, Vorschau und Export
|
||||
(HTML / PDF via Druckdialog / Word)
|
||||
- Filtern, Sortieren und direktes Bearbeiten der Objektdaten
|
||||
- Besichtigungs-Vorbereitung und -Nachbereitung inkl. 24-Stunden-Warnung
|
||||
- Mehrfachauswahl und Weiterleitung von Signalen an Livia
|
||||
- Kalender-Terminplanung aus Reminders
|
||||
- Objektverlinkung quer über alle Agentenseiten
|
||||
- Vier Architekturschichten, 405 grüne Tests, produktiv deployt
|
||||
|
||||
### Bewusst als Demo simuliert — mit ehrlicher Rückmeldung an den Nutzer
|
||||
- **Der Chat hat kein Backend.** Beim Absenden erscheint der Hinweis
|
||||
«Nachricht an {Name} vorgemerkt — der Chat ist in dieser Demo noch nicht angebunden.»
|
||||
Das war eine bewusste Entscheidung: eine erfundene Agentenantwort wäre schlimmer als eine
|
||||
ehrliche Rückmeldung.
|
||||
- **Berichtsvorschau, Berichtsdownload und Audiofassung bei Bruno** melden ebenfalls offen,
|
||||
dass sie noch nicht angebunden sind.
|
||||
- **Alle Fachdaten sind Mockdaten** (Objekte, Leads, Besichtigungsaufträge, Reminder,
|
||||
Signale). Sie sind untereinander konsistent und gegen den Objektbestand geprüft, aber sie
|
||||
stammen nicht aus einem Produktivsystem.
|
||||
- **Systemanbindungen** tragen ihren echten Status — ImmoTop2 und Teams sind als *nicht
|
||||
verbunden*, die Telefon-/Diktatlinie als *Roadmap* ausgewiesen.
|
||||
|
||||
### Noch nicht gebaut
|
||||
- Chat-Backend und agentenspezifische Dialogführung
|
||||
- Produktive Anbindung an ImmoTop2, Teams, Telefonanlage/Diktat
|
||||
- Sinas dokumentenbasierte Fragebeantwortung als eigener Bildschirm
|
||||
- Automatisierte Ausführung der Agentenabläufe im Hintergrund (heute wird das Ergebnis
|
||||
dargestellt, nicht der Lauf ausgelöst)
|
||||
|
||||
---
|
||||
|
||||
## 9. Offene Punkte / Kandidaten für die Roadmap-Folie
|
||||
|
||||
1. **Chat-Backend** — der grösste sichtbare Schritt zum Produktiverlebnis
|
||||
2. **ImmoTop2-Anbindung** — ohne sie bleibt Ferdis Terminbestand ein Import
|
||||
3. **Hintergrundausführung der Agentenläufe** (Zeitpläne, Auslöser, Protokoll)
|
||||
4. **Sina als Dokumenten-Q&A** mit Fundstellenanzeige
|
||||
5. Feinschliff: 23 Komponenten liegen zwischen 250 und 325 Zeilen (über dem weichen
|
||||
250-Zeilen-Ziel; alle *Seiten* liegen unter dem harten 300-Zeilen-Limit)
|
||||
6. Oberflächen-Testabdeckung ist dünn (4 UI-Tests bei 404 Komponenten; die 405 Tests decken
|
||||
vor allem Logik-, Service- und Scoring-Schichten ab)
|
||||
7. Der Produktionsbetrieb läuft auf Branch `Agents2`; `main` ist noch nicht nachgezogen
|
||||
|
||||
---
|
||||
|
||||
## 10. Vorschlag für den Präsentationsbogen
|
||||
|
||||
| # | Folie | Kernaussage |
|
||||
|---|---|---|
|
||||
| 1 | Ausgangslage | Fristen, Exposés, Besichtigungen und Datenpflege sind Handarbeit, verteilt über Systeme |
|
||||
| 2 | Der Ansatz | Nicht ein Assistent — **fünf digitale Mitarbeitende** mit Rolle, Abteilung und Autonomiestufe |
|
||||
| 3 | Das Team | Die Fünfer-Tabelle aus Abschnitt 2 |
|
||||
| 4 | Autonomie als Vertrauensmodell | Drei Stufen, je Agent begründet — die Stufe wächst mit dem Vertrauen |
|
||||
| 5 | **Live-Demo: die Kette** | Nora erkennt Signal → Weiterleitung → Livia erstellt Exposé → Export |
|
||||
| 6 | Live-Demo: Tiefe | Livias 11 Bereiche mit Schweizer Fachnormen und benannten Behördenquellen |
|
||||
| 7 | Live-Demo: Verlässlichkeit | Brunos Interessentenrecherche — jede Angabe mit Quelle, sonst gar nicht |
|
||||
| 8 | Agenten als Personal | Personalverwaltung + Kanäle & Systeme mit echtem Verbindungsstatus |
|
||||
| 9 | Technischer Stand | 719 Dateien, 405 grüne Tests, 0 Lint-Fehler, produktiv deployt, austauschbare Datenschicht |
|
||||
| 10 | Was Demo ist | Abschnitt 8 — offen benannt |
|
||||
| 11 | Nächste Schritte | Abschnitt 9 |
|
||||
|
||||
**Der stärkste Demo-Moment** ist Folie 5: die Übergabe von Nora an Livia. Sie zeigt in
|
||||
dreissig Sekunden, dass es sich um ein zusammenarbeitendes Team handelt und nicht um fünf
|
||||
nebeneinanderstehende Werkzeuge.
|
||||
|
||||
**Der stärkste Vertrauensmoment** ist Folie 7: dass Bruno lieber «nichts Belegbares gefunden»
|
||||
sagt, als etwas Plausibles zu erfinden.
|
||||
Reference in new issue
Block a user