Conversational Twin

Ed Donner

A conversational twin of self. Replies are augmented from unstructured source files. Session context is kept in cloud storage so the dialogue can continue across visits.

Next.js · AWS Lambda · API Gateway · CDN · block storage · Terraform · GitHub Actions

Open live demo ↗

Overview

Conversational Twin is a serverless chat product: CloudFront hosts the site and embeddable widget; API Gateway and Lambda own /chat. One Conversational Twin agent on Lambda builds a persona prompt, talks to Bedrock Nova, and keeps session memory in S3.

System design

  • Embed host, agent API. OPG Labs embeds the widget; the browser never calls Bedrock.
  • Persona before reply. Resume, LinkedIn, and style notes shape every turn.
  • Session memory in S3. Dialogue continues across visits via per-session JSON.
  • Same path for voice and type. Whisper and TTS wrap the same /chat agent path.

Product path

What a visitor can do. Diagram key: ✦ AI agent · purple = actor · white = service.

---
config:
  theme: default
  themeVariables:
    background: "#ffffff"
    fontSize: "14px"
---
flowchart TB
    person[Website visitor]
    host[OPG Labs host page]
    widget[Twin widget]
    twin["✦ Conversational Twin"]
    reply[Reply plus face]

    person -->|open project page| host
    host -->|embeds widget| widget
    person -->|type a message| widget
    person -->|speak into mic| widget
    widget --> twin --> reply --> widget

    classDef agent fill:#e8f0ee,stroke:#0f3d36,stroke-width:2px,color:#0d0d0d
    classDef service fill:#fafaf8,stroke:#c8c8c2,stroke-width:1px,color:#0d0d0d
    classDef actor fill:#f3eef8,stroke:#6b4f9a,stroke-width:2px,color:#0d0d0d
    class twin agent
    class host,widget,reply service
    class person actor

Memory, persona, and voice detail live on Mental Model and the Conversational Twin tab.

Clean product overview and path. Mental Model holds the five-layer map and Anthropic workflows; Conversational Twin owns chat and voice detail.