Answers that can be trusted
A grounding guard holds back any answer that states catalog facts without a lookup. Prices from the web appear only when they are literally present in the source with their currency.
مَسَارAgentic AI travel assistantLocal application
An agent that researches, reasons and acts — in Egyptian Arabic, Arabic and English.
A tool-calling travel assistant: the model chooses tools, the server validates and runs them against real data, and every step streams to the browser as it happens.
Actual application screenshots, captured against the deterministic test server (scripted model replies and recorded search results). Company, programs and prices are demonstration data.
Replace a scripted FAQ bot with a real agent loop: read the conversation, decide which tools to call, act on validated results and answer only from what was actually looked up — while keeping the customer in control of anything that writes data.
My part: product design, full-stack and agent engineering.
Node.js 24 runs strict TypeScript directly on node:http with SSE, Zod 4 and node-postgres. The agent runtime builds the prompt, calls Gemini (Groq fallback), validates and executes tool calls, and passes answers through grounding and style guards. Supabase Postgres 17 holds the catalog, conversations, consented memory (pgvector + pg_trgm) and CRM records under row-level security, with contact fields encrypted using AES-256-GCM. The client is React 19 + Vite with Tailwind CSS 4, Radix UI, Motion and a custom GLSL Three.js orb. Tests use node:test, in-memory PGlite with pgvector, and Playwright on desktop Chrome and a Pixel 7 profile.
A grounding guard holds back any answer that states catalog facts without a lookup. Prices from the web appear only when they are literally present in the source with their currency.
Write actions stop at an approval the customer confirms in the UI. The approval is tied to the exact arguments, expires after one use, and contact details are encrypted at rest.
A per-turn register hint and a style guard keep replies in the customer’s language and dialect — Egyptian, Modern Standard, English, mixed or Franco Arabic — with a designed RTL interface.
Feature-complete build with public source code on GitHub. There is no public hosted deployment; it runs locally. The travel company, its four programs and prices are demonstration data. MASAR never confirms bookings, availability or payments. Screenshots were captured against the project’s deterministic test server, which is why the model label reads “e2e-scripted”.