All projects

~/tgolab/projects $ cat solis.md

Solis — AI agent

Landingi

An AI agent that regularly makes recommendations on its own from EventTracker data. In a chat it answers questions about the data and suggests changes that raise conversion, streamed live.

AI sparkles next to insight cards with an alert and suggestions
Solis insights list with alert details and recommendations
Solis Insights panel next to landing page statistics
Solis chat with suggested questions about landing page data
Solis Insights widget with the latest alerts and suggestions
1 / 5

Problem

Landingi customers have plenty of data about their landing pages, but having the data doesn’t tell them what to improve. Solis interprets that data and turns it into concrete recommendations.

My role

The product’s frontend and the AI agent. The endpoints the agent calls from its skills were built on the backend, and we agreed on the overall architecture together as a team. Among other sources, the agent uses data collected by EventTracker, whose architecture and frontend I had built earlier.

What I built

  • An AI agent built on Mastra: a single agent with a set of skills that fetch data about the page and about visitor behaviour.
  • Choosing the model for the best balance of cost and answer quality, instead of defaulting to the most expensive one available.
  • Conversation history kept in threads on the backend.
  • Markdown answers streamed to the interface, so users see the text as it is generated instead of waiting for the whole response.
  • Contributing to background insight generation: customers’ pages are analysed from several angles together with behavioural data from EventTracker, and the insight itself is produced in a workflow built in n8n.

Challenges

01 · The cost of model calls

Kept down by trimming the context sent to the model and by caching, instead of sending full data sets with every request.

02 · Non-determinism

The model’s answers aren’t repeatable, so the interface and the flow have to cope with output that varies in quality and form.

03 · Model errors and timeouts

Depending on what exactly failed, the user gets a matching error view with the option to ask again, instead of a blank screen.

Outcomes

  • Hundreds of customers use the feature, actively asking for insights and data to improve how their landing pages perform.