A phone-capable restaurant voice ordering agent with menu search, order management, and dietary information checking
Restaurant Voice Agent defines 10 tools with basic schemas and descriptions. All tools have names starting with action verbs (search_, get_, add_, remove_, update_, check_, compute_, confirm_, cancel_) and descriptions present. However, descriptions are terse (10-50 chars for most), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. Tools like add_order_item and confirm_order handle state changes but lack explicit error guidance or confirmation patterns. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Schema completeness varies: search_menu and get_menu_item have basic type info, but check_dietary_info conflates three concerns (allergen check, dietary question, item lookup) in one tool. Composition issues: add_order_item, remove_order_item, and update_order_item could be unified into a single order_item management tool. Parameter naming is inconsistent: session_id vs item_id vs line_item_id. No pagination support on search_menu despite potentially large result sets.
Add a menu item to the user's order.
Cancel the order.
Check if an item contains an allergen or is safe for a dietary restriction.
Get the deterministic subtotal, tax, fees, and total of the order.
Confirm the order.
Get detailed info for a specific menu item by its ID.
Get a human-readable summary of the current order.
Descriptions are terse (10-50 chars) and lack context on WHEN to use each tool or WHAT it returns.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., what fields does get_order_summary return? Is line_item_id included for update_order_item?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Remove a specific line item from the order by its line_item_id.
Search the menu for items by name or category.
Update the quantity or add special instructions to a specific line item.
check_dietary_info conflates three concerns: allergen checking, dietary question answering, and item lookup. Per pattern:tool, each tool should do exactly one thing. Split into check_allergen and check_dietary_restriction.
Irreversible operations (confirm_order, cancel_order) lack confirmation patterns or dry-run support. Per pattern:confirmation-request, agents make mistakes, these should support a confirmation step before execution.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. confirm_order and cancel_order should be marked destructiveHint=true; search_menu and get_menu_item should be marked readOnlyHint=true. Per spec 2026-07-28, tool annotations enable safer agent planning.