Agent Playbook
Guidance for LLM agents driving these tools — paste-able into a system prompt.
Use it in your agentCopy the playbook as Markdown into your system prompt, or point your agent at the URL.
/docs/agent-playbook.md- Always pass the user's coordinates (
latitude/longitude) — nearly every tool is location-scoped. Get saved addresses fromuser_infoif the user says "home" or "work". - Respect chain dependencies:
context_blobfromrequest_ridemust be passed verbatim tocreate_rideand expires quickly;pricingIdfromget_ride_cancellation_attributesis required bycancel_ride;catalog_option_ids fromfood_get_item_optionsare required to add customizable food items. - Never checkout blind: call
cart_get_basket_pricefirst and pass its total astotal_priceto checkout. Confirm order contents, address, and price with the user before any mutating tool. - Payment defaults are auto-resolved (working card → wallet → cash); only pass
payment_typeif the user asks. - Personalize with
get_activities(past)— prefer the user's known favourites over cold search. - Budget for multi-step journeys: a full food order is ~6+ sequential tool calls; keep your agent's tool-loop limits generous.
- Errors come back as an
errorstring field in the tool's structured output, or as MCP tool errors (e.g. a missingAuthorizationheader is rejected). Retry idempotent reads; never blind-retry mutating tools. - Long streams: keepalive comments (
: keepalive) arrive every 15 s on SSE streams — ignore them.
The golden rule
Read-only tools are free to call while reasoning. Mutating tools spend the user's money or change their real-world state — always confirm first, and never retry them blindly after a timeout.