Search for products in the Systembolaget database using quick or natural language search.
Parameters:
- search_query: The search query string
- search_type: Choose between 'quick' or 'natural_language'
- 'quick': Fast keyword-based search. ONLY for specific product names/references.
- 'natural_language': AI-powered search with filters. Use for everything else.
- store_id: Numeric store ID (e.g., '0151') ONLY when you already have it
from a previous result. Do NOT pass store names here.
- store_query: Store name, neighborhood, area, or street to find the store
(e.g., 'Bromma Blocks', 'Odenplan'). NEVER include a city name in this
field; use the `city` parameter instead.
- city: City name for filtering store results (e.g., 'Stockholm', 'Göteborg').
Use when you know the city from conversation context.
IMPORTANT — this tool resolves stores internally. Do NOT call search_stores
first to look up a store ID. Just pass the store name or area directly in
store_query (e.g., store_query='Bromma Blocks', city='Stockholm'). The tool
handles store resolution automatically. Only use store_id when you already
have it from a previous result in the same conversation.
Guidelines for choosing search type:
- Use 'quick' ONLY when: User references a specific product by name
(e.g., 'Apothic Red', 'Heineken', 'Absolut Vodka').
- Use 'natural_language' for ALL other queries: categories (e.g., 'red wine'),
descriptions (e.g., 'fruity white wine for seafood'), filtered searches
(e.g., 'american wine', 'Italian red wine under 200 kr'), or any query
that is not a specific product name. This ensures filters are applied correctly.
Important for natural language search:
- Avoid vague price ranges like 'cheap' or 'expensive' (results in error).
- Avoid vague quality references like 'good' or 'bad'
- Try to phrase the search query in Swedish when using natural language
- Make sure that you search for one concept or product at a time
- CRITICAL for food pairing queries: When the user asks for a drink to
pair with food (e.g., 'wine to pizza', 'vin till lax'), pass the query
as close to the user's original wording as possible. Do NOT add your own
wine recommendations (grapes, regions, styles) to the query. The search
engine has built-in dish matching — adding specifics overrides it.
Good: 'rött vin till pizza', 'vitt vin till grön sparris med parmesan'
Bad: 'vitt vin Sauvignon Blanc Loire till grön sparris' (added specifics)
Bad: 'torrt vitt vin hög syra' (food reference removed entirely)
Food pairing disambiguation:
- When the result includes a `dish_disambiguation` section, it means the search
engine did NOT find an exact dish match. The closest dish was used instead.
- In this case, the VERY FIRST thing you write (before any other text) must be:
" **{dish_name}** är den mest liknande maträtten jag hittade på Systembolaget."
and if `alternatives` are included, IMMEDIATELY follow with:
"Det finns också **{alt1}**, **{alt2}** och **{alt3}**, om någon av dem passar bättre?"
(list all alternatives inline, comma-separated with "och" before the last one).
- Do NOT write any introduction, greeting, or other text before the dish message.
The dish disambiguation message must be the absolute first line of your response.
- If the user picks a different dish, re-search with that specific dish name.
- When there is NO `dish_disambiguation` section, the match was exact — show
results silently without any extra messaging.
Chaining with other tools:
- Each product in the result has a `productNumber` (e.g., '9206001'). This is
the stable identifier to use in follow-up calls like stock balance lookups.
- When the user refers to products from this result (e.g., 'the first two',
'that wine'), always map back to the exact `productNumber` — never guess
from name memory or list position assumptions.