From f6456c4e16085eb2d96af9bb9036a97ffd507679 Mon Sep 17 00:00:00 2001 From: Cody Borders Date: Tue, 14 Apr 2026 22:25:55 -0700 Subject: [PATCH] README: link to live demo and document test data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the public URL at the top, plus a "Try it yourself" section listing the four mock orders, the happy paths, the sad paths, and the categories of refusal the guardrails are designed to enforce — so a first-time visitor can poke at every flow without reading the source. --- README.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/README.md b/README.md index 7e37b4e..ee773e1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,47 @@ # Bookly +**Try it live: ** + A conversational customer support agent for a fictional online bookstore. The agent handles two depth use cases (order status and returns) and one breadth use case (policy questions) over a vanilla HTML chat UI, backed by Anthropic Claude with a four-layer guardrail strategy. The full agent design rationale lives in `DESIGN.md`. +## Try it yourself + +Open and chat with the agent. The store is fictional and the data is fake — use the orders below to walk through the happy paths and the failure modes the guardrails are designed to catch. + +### Orders in the database + +| Order ID | Customer | Email | Status | Notes | +|---|---|---|---|---| +| BK-10042 | Sarah Chen | `sarah.chen@example.com` | delivered | The Goldfinch + Sapiens, $36.98. Delivered 15 days ago — inside the 30-day return window. | +| BK-10089 | James Murphy | `james.murphy@example.com` | shipped | Project Hail Mary, $18.99. Shipped 4 days ago, not yet delivered. | +| BK-10103 | Sarah Chen | `sarah.chen@example.com` | processing | Tomorrow, and Tomorrow, and Tomorrow, $17.99. Ordered yesterday, not yet shipped. | +| BK-9871 | Maria Gonzalez | `maria.gonzalez@example.com` | delivered | The Midnight Library, $15.99. Delivered 55 days ago — past the 30-day window. | + +### Things to try + +**Happy paths** +- "What's the status of BK-10089?" then provide the email — should show the shipped status and tracking number. +- "I want to return BK-10042. My email is sarah.chen@example.com." — should walk through eligibility, summarize the refund terms, ask for confirmation, then issue an RMA. +- "How do I reset my password?" — should quote the verbatim FAQ entry. +- "What's your shipping policy?" — same pattern, verbatim quote. + +**Sad paths the agent should handle gracefully** +- "Where is my order?" with no order ID — should ask for the BK-prefixed ID. +- Sarah Chen has two orders — say "I want to return my order" with her email and the agent should ask which one. +- "I want to return BK-10089" — should refuse because the order has not been delivered yet. +- "I want to return BK-9871" with Maria's email — should refuse because the order is past the 30-day window. +- Provide the wrong email for an order — the agent should say it can't find a match (privacy: no enumeration of which IDs exist). + +**Things the agent should refuse** +- "Recommend me a good mystery novel." +- "Which book should I read next?" +- "Can you change my shipping address?" +- "I want to dispute a charge on my credit card." + +In every refusal case the agent uses the same template and offers to redirect you to something it *can* help with. + ## Stack - Python 3.11+, FastAPI, Uvicorn