Skip to content

Voice Agent Portfolio

Four production voice agents on self-hosted Converso, all with the same proven architecture.

Type: LIVE

flowchart LR
    A["πŸ‘€ Caller<br/>Web / Phone"] -->|WebRTC| B["πŸŽ›οΈ Converso<br/>converso.work"]
    B --> C["🧠 LLM<br/>minimax / kimi"]
    B --> D["πŸŽ™οΈ STT<br/>Deepgram nova-3"]
    B --> E["πŸ”Š TTS<br/>Chariot Neha"]
    B --> F{"βš™οΈ Workflow"}
    subgraph AGENTS["4 live agents"]
        direction TB
        G["SaffronStays :8941"]
        H["Smera Dental :8942"]
        I["Oberoi :8943"]
        J["Raheja :8944"]
    end
    F --> AGENTS
    AGENTS --> K["πŸ—„οΈ SQLite / Postgres"]
    AGENTS --> L["πŸ“² Telegram alerts"]
    style A fill:#eef2ff,stroke:#0a1930,color:#0a1930
    style B fill:#0a1930,color:#fff,stroke:#d4af37,stroke-width:2px
    style C fill:#eef2ff,stroke:#0a1930,color:#0a1930
    style D fill:#eef2ff,stroke:#0a1930,color:#0a1930
    style E fill:#eef2ff,stroke:#0a1930,color:#0a1930
    style F fill:#fffbeb,stroke:#b8860b,color:#0a1930
    style G fill:#f8fafc,stroke:#64748b,color:#0f172a
    style H fill:#f8fafc,stroke:#64748b,color:#0f172a
    style I fill:#f8fafc,stroke:#64748b,color:#0f172a
    style J fill:#f8fafc,stroke:#64748b,color:#0f172a
    style K fill:#f8fafc,stroke:#64748b,color:#0f172a
    style L fill:#f8fafc,stroke:#64748b,color:#0f172a
    style AGENTS fill:#fdf6e3,stroke:#d4af37,color:#0a1930

Live agents

Agent Voice Site Workflow Mock API
SaffronStays (Aarti) aura-2-helena-en saffron.converso.work wf2 :8941
Smera Dental (Dr. Raashi) helena-en smera.converso.work wf3 :8942
Oberoi Realty (Neha) Chariot Hinglish oberoi.converso.work wf7 :8943
Raheja Prime Two (Neha) Chariot Hinglish raheja.converso.work wf8 :8944

All four are covered by the 5-minute watchdog (companion_watchdog.sh) and auto-restart on reboot (@reboot cron + restart: unless-stopped).

Call flow (every agent)

sequenceDiagram
    participant C as Caller
    participant W as Widget
    participant P as Converso Pipeline
    participant M as Mock API
    participant T as Telegram

    C->>W: Click "Talk to X"
    W->>P: WebRTC voice session
    P->>M: list_projects / get_project
    M-->>P: pricing, inventory
    P->>M: register_lead / book_site_visit
    M->>T: alert (fire-and-forget)
    P-->>C: Neha speaks (markdown stripped, symbols spoken naturally)
    P->>P: endCall: extract name/phone/interest β†’ DB

Companion page wireframe

Two-pane layout β€” identical across all agents, themed per brand (Oberoi maroon/gold, Raheja blue).

flowchart LR
    subgraph L["🌐 LEFT PANE β€” builder site"]
        A["iframe via /proxy<br/>+ mirror fallback"] --> B["nav-sync: auto-navigates<br/>to discussed property<br/>(/mock/recent @2.5s)"]
    end
    subgraph R["πŸ’¬ RIGHT PANE β€” agent panel"]
        C["πŸ‘€ Neha Β· ⏱ timer<br/>🎀 mute Β· πŸŒ™ theme"] --> D["πŸ’¬ chat + transcript<br/>hint chips Β· typing dot"]
    end
    L ~~~ R
    style L fill:#f8fafc,stroke:#64748b,color:#0a1930
    style R fill:#fffbeb,stroke:#d4af37,color:#0a1930
    style A fill:#eef2ff,stroke:#0a1930,color:#0a1930
    style B fill:#eef2ff,stroke:#0a1930,color:#0a1930
    style C fill:#fefce8,stroke:#ca8a04,color:#0a1930
    style D fill:#fefce8,stroke:#ca8a04,color:#0a1930

Operations

  • Watchdog: checks ports 8941–8944 + generator :8935 + all 4 sites every 5 min, revives dead mocks
  • TTS symbol fix: markdown stripped before synthesis (*β†’dropped, %β†’"percent", β‚Ήβ†’"rupees", &β†’"and", +β†’"plus") in Chariot TTS
  • Rebuild-safe: canonical copies at /root/converso/api/services/pipecat/chariot_tts.py + dograh-widget-patched.js
  • Skill: real-estate-voice-agent β€” full deploy recipe + gotchas, new builder sites are 30-minute clones

Details per agent: [[D-insights Voice Agent Platform]]