All work

Mystic Horizon / Voice AI · Memory · Follow-up

A conversation is only the beginning.

For example, a caller asks for a follow-up next week. Mystic Horizon captures the conversation as memory and a pending commitment, so the owner can inspect what should happen next.

Independent working prototype

Mystic Horizon dashboard with a relationship graph, conversation panel, and live voice and tool activity displays.
The prototype’s operator dashboard. This still comes from the recorded interface walkthrough.

The problem

A useful conversation can leave behind scattered details and a promise that nobody follows up. An agent needs a record of the interaction, a way to recover relevant context, and an explicit account of what it intends to do next.

My contribution

I designed and implemented this personal prototype with AI-assisted development, connecting the voice interface, persistent memory, action lifecycle, and operator dashboard. The work includes provider integration, state and retrieval design, troubleshooting, and regression checks.

Python · aiohttp · SQLite / FTS5 / sqlite-vec · LiveKit · Twilio

Follow the workflow

  1. Capture the interaction

    Dashboard or telephone conversations become transcripts, structured facts, and commitments stored in SQLite.

  2. Bring back useful context

    Full-text and vector retrieval find relevant history for a later interaction, combining exact terms with semantic recall.

  3. Make follow-up explicit

    A scheduler evaluates pending commitments and can act, wait, cancel, or escalate. Actions have stored state that can be inspected independently of the conversation.

  4. Keep the operator informed

    The dashboard and CLI expose transcripts, people, actions, tool events, and provider readiness so the owner can investigate behavior.

Decisions and tradeoffs

Inspectable state in one database

SQLite, FTS5, and sqlite-vec keep records and retrieval close together. This is a manageable fit for a personal agent; a service shared by many customers would need a different operating model.

Choice across the speech path

LiveKit connects browser voice and optional Twilio telephony. Local speech and embedding options offer more control over processing, while adding model downloads and hardware dependencies. Cloud providers remain available.

Actions are records, not just promises

The scheduler works with persisted commitments and explicit decisions. That makes retries and investigation possible, while leaving the quality of model judgments as something to evaluate.

Explore the evidence

See the operator interface

A recorded walkthrough shows the dashboard, conversation surface, and agent state. It is a tour of the prototype rather than a performance benchmark.

Watch the recorded walkthrough

Inspect the implementation

The public repository maps memory, action scheduling, voice adapters, tool permissions, and dashboard behavior to their source files.

Explore the source

Review the verification boundary

The September 4, 2026 verification record reports 630 non-benchmark tests passed, 3 skipped, and 26 benchmark cases deselected. Tests use temporary state and mocked external providers.

Read verification notes

Where it stands

This is an independent prototype. Recorded checks do not establish live-call quality, model judgment accuracy, sustained-load performance, or production uptime. Local storage also does not mean every operation stays local: selected cloud providers process the data needed for their features.

The next useful improvement

Evaluate complete conversation-to-action scenarios with representative examples, then use the recorded state to explain failures and measure improvements.