Business Intelligence Agent for Automotive Dealers with Dynamic UI and Instant Actions

prosus · Automotive · 2025 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.5 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Business intelligence agents for marketplace sellers

Prosus needed an AI assistant that helped Otomoto dealers understand platform data and take listing actions, but the first chat-based agent saw weak adoption because dealers did not know what to ask and the open text box hid the agent's value.

Constraints:

Architecture

Prosus moved from a basic ReAct-style chat agent to a business-intelligence assistant with purpose-built aggregation tools, CSV-shaped data responses, context-sensitive action buttons, interactive clickable outputs, streaming, and eval loops that track tool correctness and unanswered questions.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  dealer-platform-ui["dealer platform UI"] --> dynamic-navbar["dynamic navbar"]
  dynamic-navbar --> ai-assistant-chat-surface["AI assistant chat surface"]
  ai-assistant-chat-surface --> agent-backend["agent backend"]
  agent-backend --> purpose-built-aggregation-tools["purpose-built aggregation tools"]
  purpose-built-aggregation-tools --> dealer-data-platform["dealer data platform"]
  purpose-built-aggregation-tools --> csv-response-format["CSV response format"]
  csv-response-format --> agent-backend
  agent-backend --> frontend-clickable-renderer["frontend clickable renderer"]
  frontend-clickable-renderer --> ai-assistant-chat-surface
  agent-backend --> fallback-query-tool["fallback query tool"]
  agent-backend --> evaluation-pipeline["evaluation pipeline"]
  evaluation-pipeline --> tool-backlog["tool backlog"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
dealer platform UI The Otomoto interface where dealers manage listings and invoke assistant actions. dynamic navbar, AI assistant chat surface
dynamic navbar Shows context-aware buttons and preset prompts based on the current platform tab. dealer platform UI, AI assistant chat surface
AI assistant chat surface Hosts the conversation, streamed answer, and interactive rendered elements. dynamic navbar, agent backend, frontend clickable renderer
agent backend Routes dealer questions to fixed aggregation tools and produces the natural-language answer. AI assistant chat surface, purpose-built aggregation tools, fallback query tool, evaluation pipeline, frontend clickable renderer
purpose-built aggregation tools Retrieve and aggregate specific dealer data concepts with summary stats, explanations, and raw snippets. agent backend, dealer data platform, CSV response format
dealer data platform Stores listing, inquiry, promotion, click, view, and phone-call data used by the assistant. purpose-built aggregation tools
CSV response format Compact table representation used to reduce token consumption versus JSON. purpose-built aggregation tools, agent backend
frontend clickable renderer Replaces compact backend tokens with clickable links and UI elements. AI assistant chat surface
evaluation pipeline Checks tool calls, tool-output use, unanswered questions, and user engagement signals. agent backend, tool backlog
tool backlog Collects missing capability requests that guide future tool creation and review. evaluation pipeline
fallback query tool Experimental last-resort query path when fixed safe tools cannot answer. agent backend

Data flow

A dealer opens the assistant from a platform tab or suggested action button; the backend invokes fixed purpose-built aggregation tools over platform data; tools return summary statistics, explanations, and compact raw CSV snippets; the LLM produces an answer with special tokens for clickable entities; the frontend renders the answer as interactive UI; event logs, unanswered questions, and tool evals feed the next tool-design iteration.

4 supporting quotes
“this is meant to help them parse this data, read this data and then most importantly from that take an action like give us a suggestion tell it tell them what to do next and this was a disrupt project. So when we talk about disrupt projects these are”transcript, stated
“every tool is related to a specific con concept and it will aggregate the data for the use case. It will then explain any data concepts in the returned data in like plain text in case that's necessary and return a small snippet of raw data and sort of if you”transcript, stated
“double the number of tokens as for something like CSV. Um and for us, so we've defaulted, we've moved away from the JSON representation to the CSV representation. And because we're adding this aggregate at the top with the summary statistics, that's helping a lot in dealing with the”transcript, stated
“the front end knows to look for the specific token and then replace that with a clickable link. And now because we've done it in this way, we're changing how the front end renders this sort of thing, but we haven't actually had to change our back end because”transcript, stated

Why this architecture

Prosus optimized for adoption and safe action rather than a pure chatbot: suggested buttons helped dealers discover value, purpose-built tools bounded data access, CSV controlled tokens, and frontend rendering made answers actionable without asking the model to produce fragile URLs.

3 supporting quotes
“know their business. they know their process. So we we needed to check could we get them to engage with an agent in any meaningful way um and you know what that looked like and to do that we really need to get feedback quickly. Uh so we decided to go for a limited skill set agent. So we didn't”transcript, stated
“these tools need to do it in a way that is safe and reliable. Uh because we want to make sure that the data we're returning is correct.”transcript, stated
“we wanted it to be actionable. We wanted them to be able to do something with the response as soon as they got it.”transcript, stated

Models used: ReAct agent · LLM-backed business intelligence assistant

Scale

Alternatives considered (roads not taken)

Open-ended chat as the primary interface

Rejected because: Dealers did not know what to ask and clicked suggested buttons more often than typing their own questions.

“users didn't know what to ask. They were opening this platform and they were going what can you do? How do I how do I ask you questions? why can't you do this? Uh, and they got frustrated at the limited abilities of the agents and that's a pretty positive”transcript, stated
“They clicked on it rather than having to type it. Um, and they would click on those more than they would ask their own questions.”transcript, stated

Very narrow one-action tools

Rejected because: Single-purpose tools were safe but too inflexible when dealers needed questions beyond the exact predefined action.

“It can do exactly one thing and it can only do that thing. It's great in that it's reliable. It's safe. Uh but it's not so great in that if you move past it or you need to do anything else, you don't have the tools to do it. On the other end of the spectrum,”transcript, stated
“if you move past it or you need to do anything else, you don't have the tools to do it. On the other end of the spectrum, for example, the idea if you just asked it to write the SQL queries to talk to your database, uh you kind of end up in this giant”transcript, stated

Letting the model write arbitrary SQL over dealer data

Rejected because: The team judged this too complex, hard to context-build, and risky compared with fixed purpose-built aggregation tools.

“if you just asked it to write the SQL queries to talk to your database, uh you kind of end up in this giant toolbox”transcript, stated
“that creates a level of complexity and also a a challenge in building and context building uh that was really going to slow us down”transcript, stated

JSON as the table representation for agent data

Rejected because: JSON is easier for the model to interpret row-by-row but was almost double the token cost of CSV.

“initially we were turning returning data as JSON because it is much more interpretable on an individual level right it's each one is self-contained and you can the details, but it's an incredibly expensive way to share data in terms of tokens. Uh I think”transcript, stated
“it's an incredibly expensive way to share data in terms of tokens. Uh I think yeah, it's almost double the number of tokens as for something like CSV.”transcript, stated

Agent-generated tools

Rejected because: The team is interested, but monitoring, testing, correctness, and safety make this difficult enough to keep it experimental.

“if it's generating its own tool, you have to know that it did it. You have to be able to test that when it's doing this that they're they're correct and they're safe.”transcript, stated

Patterns

tool-use-orchestration (agent-tools)

The assistant uses fixed purpose-built aggregation tools rather than freeform database access, then iterates the toolset based on unanswered questions and evals.

“our tool design kind of consolidated on what we call purpose-built aggregation tools.”transcript, stated
“that tracks questions we couldn't answer that helps us also define when we need to add tools or when we need to review which tools we have”transcript, stated

context-compaction (context-management)

The data representation is compressed from JSON to CSV plus aggregate summaries to reduce prompt tokens while preserving enough context for dealer questions.

“we've moved away from the JSON representation to the CSV representation.”transcript, stated
“because we're adding this aggregate at the top with the summary statistics, that's helping a lot in dealing with the comprehensibility of the data”transcript, stated

latency-optimization (user-experience)

Streaming is used as a quick win to improve perceived responsiveness even without changing agent intelligence.

“one of the like quick wins for us was to implement streaming, right? So we didn't change the agent, we didn't make it any smarter”transcript, stated
“creating the impression or creating the experience that the the agent was answering them faster”transcript, stated

eval-driven-development (evaluation)

The team evaluates whether the correct tool was called and whether tool outputs were used correctly, then feeds failures into tool review and creation.

“it will do an evaluation of was the correct tool called and was the uh tool output used correctly.”transcript, stated
“both of these can be flags if something is going wrong um that the tools need to be reviewed.”transcript, stated

Tradeoffs

Guide users with buttons instead of relying on open-ended chat.

Chose Context-aware buttons and dynamic UI over A generic open chat entry point.

Rationale: Buttons made the agent's affordances discoverable and led users into follow-up questions.

“When we gave them buttons to click on, they were more likely to to to ask a second ask a question later on.”transcript, stated
“the purple line that you can barely see, that's them asking an open question at the opening”transcript, stated

Choose purpose-built aggregation tools.

Chose A middle-ground fixed toolset with aggregation by business concept over Both one-action tools and arbitrary SQL generation.

Rationale: The middle ground kept enough flexibility for dealer analytics while preserving safety, reliability, and implementation speed.

“we landed up somewhere in the middle with this idea of like a Swiss Army knife.”transcript, stated
“it's got a fair number of tools that you know it's not super limited uh but it's a it is a a fixed number”transcript, stated

Use CSV for returned tabular data.

Chose CSV plus summary statistics over JSON-only data payloads.

Rationale: CSV reduced token cost substantially, while aggregate summaries compensated for lower row-level readability.

“Uh I think yeah, it's almost double the number of tokens as for something like CSV. Um and for us, so we've defaulted, we've moved away from the JSON representation to the CSV representation.”transcript, stated
“>> Um and that's that's the the the tradeoff for us and that's why these summary statistics start to matter a lot more. Huh.”transcript, stated

Treat click events as engagement rather than answer-quality evals.

Chose Use clicks to understand interaction and follow-up behavior over Interpreting every click as proof of answer correctness.

Rationale: Clicks show that UI elements engage users, while tool-quality evals separately inspect correct tool use and output use.

“The clicking on it is more interesting for us from an engagement perspective.”transcript, stated
“it doesn't even really matter about the the eval side. It's more about the engagement.”transcript, stated

Gotchas (what bit them)

A working chat agent can fail because users do not know what to ask.

Root cause: The initial interface exposed an open text box and a limited skill set without enough guided affordances.

Resolution: Move discovery into context-aware buttons and dynamic UI that leads dealers into valuable actions.

“users didn't know what to ask. They were opening this platform and they were going what can you do?”transcript, stated
“being able to click on something was more engaging than open questions.”transcript, stated

Letting agents emit frontend links is fragile and token-expensive.

Root cause: The model had to preserve URL-encoded content correctly and carry verbose link text through the prompt.

Resolution: Use compact backend tokens that the frontend replaces with clickable links.

“we were relying on the agent to maintain correctly the the link which is this URL this like URL encoded content”transcript, stated
“the front end knows to look for the specific token and then replace that with a clickable link.”transcript, stated

CSV saves tokens but makes row-level comprehension harder.

Root cause: CSV separates values from headers, so the model must map columns back to meanings.

Resolution: Pair compact CSV snippets with aggregate statistics and plain-text data explanations.

“It's it's harder to read, right? So if um the LLM needs to answer a question about a specific uh like specific element”transcript, stated
“So you lose a little bit of the the um sort of comprehension of the data.”transcript, stated

Generated tools are attractive but difficult to operate safely.

Root cause: The system must detect, test, monitor, and maintain agent-created tools before trusting them with data.

Resolution: Keep generated tools experimental and rely on evals plus unanswered-question logs to guide human-reviewed tool creation.

“if it's generating its own tool, you have to know that it did it. You have to be able to test that when it's doing this”transcript, stated
“it does have a parallel process that runs and tracks if we didn't answer a question what was the question and what was the tool that would have helped”transcript, stated

Evaluation

Prosus combines adoption/engagement telemetry, unanswered-question review, and explicit tool evals checking whether the right tool was called and whether outputs were used correctly.

Metrics: dealer engagement rate · repeat usage · button click rate · follow-up question behavior · P99 latency · correct tool called · tool output used correctly · unanswered questions by missing tool

4 supporting quotes
“only 10% of the dealers that we showed anything the the agent to actually engaged with it in any sort of measurable way”transcript, stated
“our P99 is almost 20 seconds. Uh I think this is from the last month.”transcript, stated
“it will do an evaluation of was the correct tool called and was the uh tool output used correctly.”transcript, stated
“tracks questions we couldn't answer that helps us also define when we need to add tools”transcript, stated

Outcomes

The deployment targets Otomoto's dealer platform, described as serving thousands of dealers and millions of users. Reported operational metrics include 100% exposure within two weeks, 10% measurable engagement in the first iteration, and a P99 answer time near 20 seconds before streaming.

3 supporting quotes
“When we gave them buttons to click on, they were more likely to to to ask a second ask a question later on.”transcript, stated
“This validates the core hypothesis that guided interactions through buttons can lead users into more exploratory conversations with the agent.”summary, stated
“The team sees this as validation for making the UI even more dynamic, potentially reducing reliance on open questions altogether”summary, stated