Use this when finding hotels by name, destination or aggregate review themes.
Resolve ambiguous destinations (e.g. 港区/中央区/北区) from explicit user context or ask
which prefecture/city before looking up themes or asking about subtypes. Never
assume Tokyo or another city; do not invent a prefecture.
Example: 港区で眺めのいいホテル needs a city clarification, not a Tokyo search.
Offer 東京都港区, 大阪市港区 and 名古屋市港区, not just Tokyo and Osaka.
大阪市港区で眺めのいいホテル is explicit: preserve Osaka, never substitute Tokyo.
For bare 品川 ask 品川駅周辺 or 品川区. Station areas and city/ward boundaries differ.
An administrative-area match never verifies distance from a station. If a station
or walking-radius constraint cannot be verified, ask before broadening the area;
do not silently search 博多区 for 博多駅周辺 or label such results station-near.
Dates are optional for hotel discovery and aggregate review analysis. Run these
searches without dates; do not require a stay date just to find breakfast themes.
Ask dates only when prices, budget filtering or date-prefilled booking links are
requested. Metro registration/login is not required. Return up to 5 hotels.
Pass all known dates, party, themes and budget together. Every selected theme must
match: include only explicitly required themes. For good breakfast, use a returned
general breakfast theme when available. If only narrower subtypes are returned,
ask one brief clarification before searching; do not select buffet without consent.
Related themes can be comparison dimensions, not mandatory search filters.
Put the requested city/ward in location
and hotel/chain name in hotel_name;
do not merge them. A prefecture alone does not narrow to its similarly named city.
Keep branch/building/sub-brand words in hotel_name. Location is not a meal preference
or walking-distance guarantee. Japanese and English city forms are accepted.
For explicit exclusions, pass prior returned IDs in exclude_hotel_ids or the user's
named hotel/brand keywords in exclude_hotel_names. Exclusions run before ranking and
budget selection, so eligible replacements can fill the requested limit. Preserve
exclusions on follow-up searches along with all other conditions. Name exclusions
are not a corporate ownership or entire hotel-group guarantee: do not infer unnamed
affiliated brands. Clarify a requested corporate group if its brands are unknown.
Names allow width/kana/separator variants and curated aliases, not arbitrary typos.
If search_diagnostic is returned, explain its reason. name_suggestions are only
possible identities, NOT matching recommendations; ask which hotel was intended.
name_search_limited is an inconclusive bounded search, not proof that a hotel
does not exist or lacks review evidence. Missing names can reflect catalog coverage
or a different registered name. Never replace an unavailable named branch with a
similarly named sister hotel or claim it is that same property.
They have no verified theme/price match. After confirmation, retry recommend_hotels
with the confirmed name and ALL original place, branch, theme, date, party and budget
conditions. Do not bypass these filters by fetching suggestion IDs through details.
A limited/unavailable name lookup is not proof that the hotel is absent.
Zero results do not prove missing data, poor reviews or sell-out; clarify the name
or city without dropping other conditions. Show returned registered names. Ask for
destination when a vague trip is unresolved; do not substitute national leaders.
No photo URLs are returned. Prefer text and clickable links; omit image carousels
and unavailable-image placeholders. External citations must match the exact
branch and location, not merely the same brand; omit unverified factual claims.
Report the actual number of hotels displayed, not the requested limit. Do not count
name_suggestions or excluded locations as matches. If fewer match, state that count.
Review-count order is not overall quality. Nightly and whole-stay budget caps are JPY
per room, not per person; never divide total budget by nights. Both caps apply if set.
Budget filtering must occur before top-k; unknown/stale prices cannot satisfy a cap.
A sum of observed nightly minima is not a same-plan quote or live availability.
Prices and date-prefilled booking searches support 2 adults, 1 room, no children only.
Never change party/dates, silently relax conditions or invent prices/links.
Show supplied booking URLs verbatim, including dates. Use normal clickable Markdown
links, not button-only controls. No separate lookup for the same
links or prices already returned here. An unsupported condition requires asking the
user before continuing, not a retry through another tool. No booking/payment actions.
Include each displayed price's OTA source and source_observed_at; an unknown source
time must be labeled unknown, not replaced with response checked_at.
Show every displayed source availability status with source_observed_at and timezone,
or 取得日時不明 when absent. Stale timestamps are historical only;
never show expired prices.
For not_collected, do not invent a failed-fetch reason or claim it was never collected.
Search one condition set at a time and reuse returned results;
do not fan out repeated searches.