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:
- Dealers had rich platform data but were overwhelmed by organizing it into actions.
- The project needed to show adoption quickly with a limited skill-set agent.
- Data retrieval tools had to be safe and reliable because incorrect dealer analytics could drive wrong business actions.
- Large tabular responses created latency and token-cost pressure.
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"]
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
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
Models used: ReAct agent · LLM-backed business intelligence assistant
Scale
- Otomoto is described as Poland's largest secondhand-car dealer platform.“in Poland. They're actually the biggest one and they have yeah they have thousands of dealers and millions of users on the platform.”transcript, stated
- The first experiment reached all target users within two weeks.“within two weeks, we had reached 100% of the users. So at this point, we've saturated it.”transcript, stated
- Only about 10% of exposed dealers engaged with the first version in a measurable way.“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
- The system had a P99 answer latency near 20 seconds before streaming mitigated perceived wait time.“our P99 is almost 20 seconds. Uh I think this is from the last month. That's pretty long if you have to wait that long”transcript, stated
- A clickable-link token example used 66 tokens for a short title before the frontend-token contract reduced token load.“it blew up our tokens. We had 66 tokens for example in this example and this is quite a short uh title.”transcript, stated
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.
Very narrow one-action tools
Rejected because: Single-purpose tools were safe but too inflexible when dealers needed questions beyond the exact predefined action.
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.
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.
Agent-generated tools
Rejected because: The team is interested, but monitoring, testing, correctness, and safety make this difficult enough to keep it experimental.
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.
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.
latency-optimization (user-experience)
Streaming is used as a quick win to improve perceived responsiveness even without changing agent intelligence.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Outcomes
- The first chat-only version reached the target users but produced only about 10% measurable dealer engagement.
- Button-led interactions were more likely to lead to follow-up questions than open-ended starting questions.
- The team used this evidence to make the assistant more dynamic, interactive, and action-oriented.
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.