Back to work
Applied AI · Desktop · 2026 Private build

SilkOffRoad AI Agent

A local-first macOS cockpit for a tour business. Open it in the morning, sync, and it drafts grounded, guardrailed replies to client inquiries — which you edit and approve before anything is sent. The AI may only quote facts that live in the master data.

Client SilkOffRoad Tours, internal
Role Product · AI engineering · Full-stack
Stack Electron · React · better-sqlite3 · LLMs
Year 2026
SilkOffRoad AI Agent — inbox with a client thread and a grounded draft reply quoting real tour facts

Brief

SilkOffRoad gets a steady stream of inquiries about tours — dates, prices, what's included, rental terms. Answering each one well means staying perfectly consistent with the real 2026 departures, prices, and policies, which is exactly where hand-written replies drift and overpromise. The brief was an assistant that drafts the reply for the owner to approve, that can only state facts that exist in the source data, and that keeps working with no internet.

Approach

A local-first macOS app (Electron + React, better-sqlite3) reads the master tour spreadsheet — ten tours with real departures, prices, policies, FAQ, templates, and rentals — into SQLite. A two-stage pipeline runs per message: Gemini Flash-Lite triages and extracts client facts, then a GPT mini model retrieves the relevant tours and policies and writes a draft that answers the client's latest message and cites its sources, using the rest of the thread only as context so settled points aren't re-answered.

Safety is two independent layers. Every draft passes a model QA review and a model-independent guardrail scan that flags any price or term not found in the source data, with sixteen forbidden-claims rules injected into every prompt; values marked needs_owner_review are never quoted. It degrades gracefully offline — no cloud model falls back to owner-approved templates, no Google falls back to the local .xlsx — and an optional on-device Ollama model (qwen3) keeps the whole thing local. Gmail sync pulls threads and sends approved replies in-thread.

SilkOffRoad AI Agent — the Today dashboard with daily plan and items needing attention
SilkOffRoad AI Agent — the grounded knowledge base of ten tours and fifteen departures

Outcome

Each morning starts with drafts already written and checked, so replying becomes editing rather than composing — and the guardrails make it safe to move fast, because an invented price is caught before it reaches a client. Because grounding and templates both work offline, the cockpit keeps drafting on a thin mountain connection or none at all.

Private build. Walkthrough available on request.

The agent is in active use for a running tour business. A recorded walkthrough or live demonstration of the grounding and guardrail flow can be arranged on request.

Next project LinkedIn Content Agent