0.0 / 30
What changed in the harness
Selection accuracy 93→90, token cost up 1%, unconfirmed writes 0%→0%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
26.2 / 30
03Economics
18.5 / 20
04Discoverability
13.1 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
3 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
search_hotels |
params_unexplained |
Search hotels, lodging, accommodations, resorts, and places to stay for a trip. Filter by city, country, check-in/check-out dates, room type (standard, deluxe, suite, penthouse, or accessible), nightly price, star rating, and amenities (pool, gym, wifi, etc.). Returns matching properties with rates, photos, and availability across 2M+ properties (LiteAPI). Use this when the user wants to book a hotel, find a place to stay, compare lodging options, or pick a resort. |
search_dining |
no_return_description |
Search restaurants, dining options, and reservation availability by city, date, time, cuisine, party size, neighborhood, and price range. Returns matching restaurants with available time slots, price range, cuisine, and neighborhood details. Use this when the user wants to find a restaurant, book dinner, plan a meal, get reservations, or pick a place to eat on a trip. Dining partnerships are in progress; surfaces availability today, full reservation flow in the next release. |
search_events |
no_return_description |
Search live events, concerts, sports games, theater, comedy, and shows in a city (Ticketmaster + SeatGeek catalog). Filter by city, date range, category (music / sports / arts / theater / family / comedy), and keyword (artist name, team name, show title). Returns matching events with venue, date/time, and ticket price ranges. Use this when the user wants tickets to a concert, a sports game, a Broadway show, or any live event during their trip. |
Selection evidence
Confusable tool pairs.
11 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
search_flights |
search_transport |
medium | A vague request like 'book my ride to the airport' or 'arrange transport for my trip' could be ambiguous between flights and ground transport; also 'airport transfer' phrasing overlaps with flight arrival context described in search_transport. |
search_hotels |
search_dining |
low | Both take city and date-like fields but serve clearly distinct intents (lodging vs restaurants); a task like 'find a place to stay and eat near South Beach' could momentarily conflate them but wording rarely overlaps enough to cause real confusion. |
search_activities |
search_events |
high | Both cover 'things to do in a city' with overlapping categories (nightlife/culture vs music/arts/comedy); a request like 'find something fun to do tonight' or 'book tickets for a show' is genuinely ambiguous between a Viator tour/attraction and a Ticketmaster/SeatGeek live event. |
search_dining |
search_activities |
low | A request like 'plan something fun for dinner' could touch both but dining is narrowly about restaurants/reservations while activities is about tours/attractions, so overlap is minor (e.g., food tours vs restaurant booking) but plausible for 'food tour' style requests. |
search_dining |
search_events |
low | Little semantic overlap between restaurant reservations and live events; confusion is unlikely except for dinner-show combos, which is a narrow edge case. |
search_flights |
search_activities |
low | Flights and activities serve very different intents (getting somewhere vs things to do there); minimal chance of genuine tool-selection confusion. |
search_flights |
search_dining |
low | No meaningful semantic overlap between airfare booking and restaurant reservations; confusion is implausible. |
search_flights |
search_events |
low | Flights and live events are distinct domains; a request like 'get me tickets to Miami' is ambiguous in casual language but the tool descriptions (airfare vs concerts/games) make correct selection clear. |
search_hotels |
search_activities |
low | Hotels (lodging) and activities (tours/attractions) are distinct; unlikely to be confused except in vague 'plan my trip' requests where an agent would likely call both anyway rather than pick wrong. |
search_hotels |
search_events |
low | No significant overlap between lodging search and live event tickets; confusion is implausible. |
search_hotels |
search_transport |
low | Hotels and ground transport are distinct domains (lodging vs rides/rentals); minimal risk of genuine misselection despite shared 'city' field. |
Compare the field