← All work

Tekion · Sales AI · Vehicle domain

A better route from
question to vehicle.

I worked on the vehicle intelligence inside a multi-agent sales assistant—connecting what a customer means with what’s actually in inventory.

My focusVehicle Enquiry + Inventory Expert
The challengeNatural language → grounded answers
The stackLangGraph · Elasticsearch · MCP
The 30-second version

A supervisor routes the question. My vehicle workflow understands the request, searches with filters and embeddings, and checks inventory. Other specialists handle dealership information, appointments, and human follow-up.

01 / Architecture

The system, at a glance.

A supervisor connects each request to the right specialist. My contribution is highlighted in blue.

Select the blue vehicle card to explore my contribution.

Customer message
BDC SUPERVISOR

Understand the request. Choose the specialist.

Uses conversation context and coordinates the next step.

Routes to the relevant specialist
MY WORK · VEHICLE DOMAIN Vehicle Enquiry Understands vehicle questions and follow-ups. Inventory Expert Explore my vehicle workflowCollapse vehicle workflow
INSIDE MY DOMAIN

From a customer’s question to a grounded vehicle answer.

  1. 01 / UNDERSTAND

    Vehicle Enquiry

    Resolves the request and follow-ups like “the second one,” then decides whether a search is needed.

    A contextualized inventory query
  2. 02 / FIND & VERIFY

    Inventory Expert

    Searches dealership stock, matches the criteria, and checks live availability through its tools.

    Vehicle matches + availability
  3. 03 / EXPLAIN

    Vehicle Enquiry → Supervisor

    Explains the findings and returns the answer or a next-step signal for the supervisor to coordinate.

    An answer the customer can act on

Questions answerable from conversation context can skip the inventory search.

Inside Inventory ExpertFive specialist tools behind the search
  1. 01Normalize

    Match vehicle names and trims to dealer data.

  2. 02Search

    Apply exact filters and semantic matching.

  3. 03Combine

    Merge parallel searches across attributes.

  4. 04Check

    Look up availability for specific vehicles.

  5. 05Inspect

    Retrieve a vehicle’s detailed equipment.

See how the agent chooses filters or embeddings
Elasticsearch · vehicle data & embeddingsMCP · live availability checks

Other specialists routed by the supervisor

DEALERSHIP

Dealer Expert

Answers questions about hours, location, and policies.

SCHEDULING

Booking Appointment

Books, reschedules, or cancels sales visits.

HUMAN SUPPORT

Handoff

Prepares CRM follow-up when a person needs to help.

Results and next-step signals return to the supervisor
Supervisor finalizationResponderCustomer reply
SHARED CONTEXT

Conversation memory · customer preferences · vehicles discussed · dealership information

A simplified view of the current routing setup. The supervisor can coordinate more than one specialist for a mixed request; the responder shapes the final customer-facing message.

Other modules in the repository

Finance, Credit App, and Trade-In concierges generate links for self-service flows. They are registered helpers but are currently hidden from the supervisor’s direct tool list.

Finance & Appraisal, Pipeline Accelerator, and the standalone Entity Extractor also exist in the repository, but are not registered as supervisor agents in the current setup.

02 / Request walkthrough

From question to answer.

Follow the moving signal. The input and output below change at every step.

Animated walkthroughPaused · inspect the current step
CUSTOMER REQUEST

“A Toyota SUV under $40K with premium wheels.”

  1. 01SupervisorRoute the request
  2. 02Vehicle EnquiryPrepare the search
  3. 03Inventory ExpertRetrieve & verify
  4. 04Vehicle EnquiryExplain the results
  5. 05SupervisorCoordinate the reply
  6. 06ResponderShape the final answer
01 / 06

Supervisor

Understand the intent and choose the vehicle specialist.

INPUT
message: "Toyota SUV under $40K with premium wheels."
context: conversation + dealership
OUTPUT
route: Vehicle Enquiry
task: find vehicles matching these requirements

A customer message becomes a task for the vehicle domain.

02 / 06

Vehicle Enquiry

Prepare a search that separates exact facts from descriptive intent.

INPUT
task: Toyota SUV under $40K with premium wheels
context: customer preferences + prior vehicles
OUTPUT
inventory query:
  make: Toyota · body: SUV · max price: 40000
  equipment request: "premium wheels"

The question becomes exact criteria plus a descriptive equipment request.

03 / 06

Inventory Expert

Apply structured filters, rank feature/option embeddings, then check availability.

INPUT
filters: Toyota · SUV · price ≤ 40000
semantic query: "premium wheels"
embedding: features + options
OUTPUT
illustrative candidates: [Vehicle A, Vehicle B]
source: vehicle equipment descriptions
availability: confirmed · tool errors: none

Exact filters keep the requested scope; embeddings retrieve relevant equipment descriptions.

04 / 06

Vehicle Enquiry

Explain the candidates using their actual returned equipment descriptions.

INPUT
candidates: [Vehicle A, Vehicle B]
equipment descriptions + availability
OUTPUT
draft: "These two Toyota SUVs are within budget."
next step: compare their wheel specifications

Retrieved vehicle data becomes an answer, with equipment specifics available for comparison.

05 / 06

Supervisor

Bring the specialist answer back into the conversation.

INPUT
vehicle answer: two in-budget candidate SUVs
next step: compare equipment
OUTPUT
reply content: vehicle findings + next step
source: Vehicle Enquiry
destination: Responder

The specialist answer becomes the content for the final reply.

06 / 06

Responder

Apply the customer-facing tone and format.

INPUT
reply content: candidate SUVs + equipment comparison
source: Vehicle Enquiry
OUTPUT
"I found two Toyota SUVs within your budget.
Let’s compare their wheel specifications."

The prepared content becomes the message the customer sees.

ILLUSTRATIVE DATA · 36-SECOND LOOP

Vehicle A and B are example results. Timing explains the sequence; it is not measured service latency.

Read the six steps at your own pace
  1. 1. SupervisorA customer message becomes a task for the vehicle domain.
  2. 2. Vehicle EnquiryThe question becomes exact criteria plus a descriptive equipment request.
  3. 3. Inventory ExpertExact filters keep the requested scope; embeddings retrieve relevant equipment descriptions.
  4. 4. Vehicle EnquiryRetrieved vehicle data becomes an answer, with equipment specifics available for comparison.
  5. 5. SupervisorThe specialist answer becomes the content for the final reply.
  6. 6. ResponderThe prepared content becomes the message the customer sees.
Inside inventory retrieval

Search in parallel.
Bring the matches together.

When color and equipment descriptions need separate semantic searches, their results meet at the vehicle ID.

Structured requirements travel with each search. Partial-match fallbacks are handled separately.

Inside a follow-up

Keep the context.
Understand “the second one.”

The next question can refer to something the customer has already seen.

Illustrative conversation: references come from the vehicles already discussed.

All three diagrams share the pause control. Reduced-motion preferences show the complete request sequence without animation.

03 / Search intelligence

Exact facts. Flexible language.

Choose an example to see how the search adapts.

A make and model are clear identifiers. Features and options are often written differently by customers and manufacturers. My inventory workflow separates what must match exactly from what needs to match in meaning.

Structured search

“2023 Toyota RAV4” → match make, model, and year fields.

Embedding search

“Premium wheels” → compare meaning with feature and option descriptions.

Choose a customer request
EXAMPLE REQUEST

“Do you have a 2023 Toyota RAV4?”

STRUCTURED SEARCH
  1. 01 / NORMALIZE

    Understand the identifiers

    Resolve names and spelling against the dealer’s actual values.

  2. 02 / FILTER

    Match the fields

    make: Toyotamodel: RAV4year: 2023
  3. 03 / CHECK

    Confirm availability

    Check the matching vehicles against live inventory.

No embedding needed.

Once the identifiers are resolved, exact field filters answer this request.

EXAMPLE REQUEST

“Show me cars with premium wheels and chrome accents.”

FEATURES + OPTIONS EMBEDDINGS
  1. 01 / INTERPRET

    Keep the descriptive meaning

    Customer wording may differ from the equipment descriptions in inventory.

  2. 02 / COMPARE

    Search by meaning

    Encode the phrase and compare it with indexed feature and option text.

  3. 03 / CHECK

    Return grounded candidates

    Retrieve relevant vehicle records and check live availability.

WHAT GETS SEARCHED?

FeaturesStandard equipment described on the vehicle.

OptionsAdd-ons and packages listed for that vehicle.

The feature/option embedding represents this equipment text, so a customer’s phrase can be compared with descriptions that use different words.

Similar meaning can survive different wording.

An embedding is a numerical representation of meaning. It helps retrieve relevant descriptions without requiring the same words.

EXAMPLE REQUEST

“A Toyota SUV under $40K with premium wheels.”

FILTERS + SEMANTIC RANKING
EXACT REQUIREMENTS

Keep these as filters

make: Toyotabody: SUVprice ≤ $40,000
DESCRIPTIVE REQUIREMENT

Match this by meaning

“premium wheels”

Search feature and option embeddings.

Rank semantic matches within the filtered inventory

Semantic ranking stays inside this search’s make, body, and budget filters.

Live availability check → vehicle results
Precision and flexibility work together.

The fields narrow the candidates. Embeddings rank the descriptive match. A later zero-result retry may relax selected criteria; the answer should make those changes clear.

Why customer language is tricky

“Sunroog.” “Sunroof.”
“Moonroof.”

A typo, a familiar term, and a related equipment term can all point toward a roof-feature request. The agent interprets that intent; semantic retrieval helps when the inventory describes it differently.

Exact equipment still comes from the vehicle’s data.

“sunroog”a possible typo“moonroof”a related term“a roof that opens”a description
UNDERSTAND THE INTENTA roof-feature request
KNOWN INDEXED FIELDUse an exact feature filtersunroofMoonroof
FREE-FORM DESCRIPTIONUse semantic retrievalFeature + option text

Known equipment can take the exact path, too. The current implementation prefers a direct field when a requested feature maps to one. Embeddings handle the descriptive remainder, such as package names or equipment wording without a dedicated field.

How matches become a reliable answer
RETRIEVALFind promising matches.

Semantic similarity retrieves candidates; it does not certify exact equipment or guarantee every typo is understood.

GROUNDINGExplain the actual vehicle.

Use the returned equipment descriptions and availability results to describe what is really offered.

HOW I EXPLAIN MY WORK “I keep vehicle facts as filters, use embeddings for messy feature and option language, and ground the answer in actual inventory.”

04 / Engineering decisions

Built for real conversations.

Expand only what you want to explore.

01 / SEARCH RELEVANCEMatch intent to actual inventory.

Make/model/year queries use normalized field filters. Known equipment can use direct fields, too. Messy feature descriptions and package names use feature/option embeddings; mixed requests keep their exact constraints while ranking semantic matches. Independent semantic searches can run in parallel and meet at the vehicle ID.

ElasticsearchSemantic searchAsync Python
02 / AGENT DESIGNGive each layer a focused job.

Vehicle Enquiry handles conversational context and response generation. Inventory Expert uses a ReAct loop with five tools: normalize entities, search inventory, combine attribute searches, check availability, and inspect vehicle details.

ReActTool callingStructured responses
03 / CORRECTNESSKeep important constraints intact.

Request-scoped context keeps dealer identity isolated during concurrent searches. Model–trim pairing avoids invalid combinations, and code preserves required test-drive eligibility across retries. Tool results apply pricing disclosure rules before reaching the model.

ContextVarsFilter enforcementData preparation
04 / FAILURE HANDLINGMake uncertainty visible.

Availability-service failures are reported as errors rather than empty stock. Selected failures have bounded retries. Prompt-guided broadening can relax secondary search criteria, and the vehicle layer can signal the supervisor when a person needs to help.

MCPError reportingObservability

Continue the conversation

Curious about the work?

I’d be happy to walk you through the decisions behind it.

Let’s talk