Next-Session-Prompt — Receptionist-Brain Unblock + Smoke
Status am Ende 2026-05-15 Session: 95% der Plattform live, Smoke blockt auf Cloudflare-Access-Service-Token. Plus echte Salon-Daten fehlen noch (Arne-Setup-Call).
Komplette Capability-Doku: receptionist. Was hier folgt ist die TODO-Liste fuer den Unblock-Anlauf.
Live (alles seit 2026-05-15 deployed)
- CDK-Stack
ReceptionistBrainStackinav-productioneu-central-1 - Brain-Lambda
receptionist-brain(Stream-getriggert, Python 3.12 ARM_64, Haiku-4.5, Tool-Use-Loop mit Safety-Net) - 4 DDB-Tables:
receptionist-customers,-conversations,-end-customers,-events - DDB-Stream auf
mcp-whatsapp-inboxaktiv (NEW_IMAGE) - Customer 1 in DDB geseedet (Friseur im Sueden, Placeholder-Daten)
- Code:
~/source/agents-platform/lambdas/receptionist-brain/(5 Files + 1 Prompt-Template) - Stack:
~/source/agents-platform/infra/lib/receptionist-brain-stack.ts
Blocker fuer ersten echten End-to-End-Smoke
1. Cloudflare Access Service-Token (10 Min)
mcp-whatsapp.agenticventures.de/mcp ist seit dem 2026-05-15-Audit-Hardening hinter Cloudflare Access. Brain-Code ist CF-Access-aware, braucht aber den Token.
Schritte:
- https://one.dash.cloudflare.com/bf395d62cc6a9117564c0712fa9e3ad2/access/service-auth → „Create Service Token”
- Name:
receptionist-brain - Duration: 1 Year (Reminder fuer Rotation in 11 Monaten setzen)
- Speicher client_id + client_secret SOFORT (kommen nur einmal)
- Name:
- Bei beiden Access-Apps die Policy adden (
mcp-whatsapp.agenticventures.de/mcp+mcp-calcom.agenticventures.de/mcp):- Policy „Receptionist-Brain”: Include = Service Auth → Service Token =
receptionist-brain
- Policy „Receptionist-Brain”: Include = Service Auth → Service Token =
- AWS-Secret anlegen (Brain liest das lazy bei erstem MCP-Call):
aws --profile av-production secretsmanager create-secret \ --name receptionist-brain/cf-access-mcp \ --region eu-central-1 \ --secret-string '{"client_id":"<ID>","client_secret":"<SECRET>"}' - Brain laed das Secret beim ersten Invoke (lazy + gecacht). Kein Lambda-Redeploy noetig.
2. Smoke retry (5 Min)
Nach Service-Token-Setup:
NOW=$(date +%s)
WAMID="wamid.smoke-$(uuidgen | tr -d '-' | head -c 16)"
aws --profile av-production dynamodb put-item \
--table-name mcp-whatsapp-inbox \
--region eu-central-1 \
--item "{
\"wamid\": {\"S\": \"$WAMID\"},
\"from_phone\": {\"S\": \"4915128945607\"},
\"contact_name\": {\"S\": \"Marvin\"},
\"type\": {\"S\": \"text\"},
\"text_body\": {\"S\": \"Hi, koennen wir morgen 14 Uhr einen Damen-Schnitt machen?\"},
\"timestamp\": {\"N\": \"$NOW\"},
\"raw_json\": {\"S\": \"{}\"},
\"received_at\": {\"N\": \"$NOW\"},
\"inbox_partition\": {\"S\": \"main\"}
}"
# 10s warten
sleep 10
aws --profile av-production logs tail /aws/lambda/receptionist-brain --since 30s --format short | tail -20Erwartet: Bot antwortet auf dein WhatsApp mit Slot-Vorschlaegen oder einer Klaerungs-Frage (z.B. „bei wem?”), bot_response_sent-Event in receptionist-events.
3. Echte Test-WA von Marvin (3 Min)
Wenn Smoke gruen: echte WhatsApp an +1 555-973-8821 schicken. Service-Window muss offen sein (24h seit letzter Inbound).
Mittelfristig (kommt nach Setup-Call mit Arne)
- Echte Salon-Daten in
receptionist-customers(Adresse, Oeffnungszeiten, 5 MAs mit echten Cal.com-User-IDs) - Cal.com-Team-Account fuer Friseur im Sueden aufsetzen (statt Marvin’s Test-User)
- Service-Liste mit echten Preisen + Dauern (Marvin’s Test-Services sind ok als Schema-Vorlage, Inhalte muessen Arnes echtes Angebot sein)
Naechste Plattform-Aufgaben
| Task | Wann | Wo |
|---|---|---|
| KPI-Daily-Summary-Lambda | nach echter Live-Daten | eigene Session, ce:plan |
| Conversation-Audit-Trail (Compliance) | Pre-Live-Gate | eigene Session |
| Permanent-Token (WhatsApp System User) | Pre-Live-Gate | 15 Min, Anleitung in _index Verlauf-Eintrag |
| Restaurant-Vertical (Customer 2) | wenn Restaurant-Customer da ist | mittelfristig, ResyBackend Adapter |
mcp-whatsapp Inbox-Schema erweitern um phone_number_id (aktuell Fallback-Lookup auf ersten aktiven Customer) | bei Customer 2 spaetestens | klein, ~1h |
| mcp-calcom Multi-Tenant (per-Customer API-Key) | bei 2. Salon-Customer | mittel, ~3h |
Bekannte Drifts
mcp-whatsapp-inboxStream wurde via CLI aktiviert, der McpWhatsappHosted-CDK-Stack hatstream: NEW_IMAGEnoch nicht im Code. Bei naechstemcdk deployauf den mcp-whatsapp-Stack im~/source/mcps/mcp-whatsapp/infra/wird CloudFormation versuchen den Stream zu deaktivieren. Fix:stream: dynamodb.StreamViewType.NEW_IMAGEin derInboxTable-Definition adden (Dateilib/mcp-whatsapp-hosted-stack.tsZeile ~100). Klein, ein-Zeiler.
Prompt-Block (kopier in naechste Session)
Wir machen weiter mit receptionist-Brain Smoke-Unblock. Stand: 95% live, Brain blockt auf Cloudflare-Access-Service-Token.
Lies erst: intern/projekte/friseur-im-sueden-bot/next-session-prompt.md
+ intern/capabilities/receptionist.md
Heute zu erledigen:
1. Cloudflare Access Service-Token `receptionist-brain` anlegen
2. Token-Policy auf beide Access-Apps adden (mcp-whatsapp + mcp-calcom)
3. AWS-Secret `receptionist-brain/cf-access-mcp` mit client_id + client_secret
4. Smoke via fake Inbox-Item (Marvin's Phone 4915128945607)
5. Bei gruen: echte WhatsApp-Test
Falls Smoke gruen + Zeit uebrig: KPI-Daily-Summary Lambda starten (`routine-anlegen`-Skill oder direkt im agents-platform-Pattern).
Wichtig: Stack-Drift in McpWhatsappHosted (stream-spec nur via CLI aktiviert, nicht im CDK). Beim naechsten cdk deploy dort den Drift schliessen.