Spaces:
Sleeping
Sleeping
CustomerSupportEnv Usage Report
Date: 2026-04-08
Environment: Live API at http://localhost:7860
Method: Manual customer-style API testing with curl
1. Access and Base URL Checks
GET http://0.0.0.0:7860/->200 OK(service reachable, root metadata returned)GET http://localhost:7860/->200 OK(recommended local URL)GET http://localhot:7860/-> failed (Could not resolve host)
Note: localhot is a typo. Use localhost.
2. Health Check
GET /healthresponse:{"status":"ok","active_sessions":4}
- Result: API is healthy and serving requests.
3. End-to-End Scenario Results (All Tasks)
Easy Scenario (task=easy)
Ticket observed: TKT-001 (billing, medium)
Flow executed:
respondrequest_infoclose
Observed outcome:
- Episode completed:
done=true - Terminal reward value:
0.5229 - Final score:
1.0 - Steps used:
3 - Behavior: Correctly gathered required info and closed with refund resolution.
Medium Scenario (task=medium)
Ticket observed: TKT-015 (technical, medium)
Flow executed:
respond(empathetic)request_inforespond(workaround/solution)close
Observed outcome:
- Episode completed:
done=true - Terminal reward value:
0.7511 - Final score:
1.0 - Steps used:
4 - Behavior: Strong handling of multi-turn support with information gathering and practical fix.
Hard Scenario (task=hard)
Ticket observed: TKT-022 (technical, critical)
Flow executed:
respond(acknowledge urgency)escalate(SLA/critical urgency in reason)
Observed outcome:
- Episode completed:
done=true - Terminal reward value:
0.6282 - Final score:
0.955 - Steps used:
2 - Behavior: Correct critical-incident triage (early escalation with urgency language).
4. API Usage Summary
Primary endpoints validated in real usage:
POST /reset?task=easy|medium|hardPOST /step?session_id=...GET /healthGET /
Request contract validated:
stepaccepts action payloads:{"action_type":"respond","message":"..."}{"action_type":"request_info","message":"..."}{"action_type":"close","message":"..."}{"action_type":"escalate","reason":"..."}
Response contract observed:
observationobject updates each steprewardobject includesvalue, component scores, and breakdowndoneflips totrueon terminal actionsfinal_scoreappears on terminal responses
5. Operational Notes
- The application is suitable for demo and integration testing of support-agent action policies.
- Reward shaping is clearly exposed and useful for debugging policy behavior.
active_sessionsincreases during testing; completed sessions are cleaned up when done, and stale sessions are managed by TTL logic.
6. Recommended Next Test Pass (Optional)
- Negative tests:
- invalid
session_id - malformed action payloads
stepafter terminal state
- invalid
- Load/concurrency tests:
- multiple concurrent sessions across all tasks
- Regression automation:
- convert these
curlflows into a repeatable shell script or pytest API tests
- convert these
7. Single Scenario Report (Latest Live Run)
Scenario ID: medium-live-2026-04-08
Execution type: Manual curl flow against running server
Start endpoint: POST /reset?task=medium
Initial context:
- Session ID:
1c715e2f-1af0-474c-bd81-d1362d48d690 - Ticket ID:
TKT-019 - Category:
account - Priority:
medium - Subject:
Email notifications stopped arriving
Action sequence executed:
respond-> "I understand this is frustrating and I am here to help."request_info-> "Please share your account email and device details so I can investigate this properly."respond-> "Please try signing out, clearing app cache, and updating to the latest version."close-> "Issue appears resolved with the workaround and verification. Closing this ticket."
Observed metrics by step:
- Step 1:
done=false, reward0.1473 - Step 2:
done=false, reward0.2992 - Step 3:
done=false, reward0.2693 - Step 4:
done=true, terminal reward0.6678,final_score=1.0
Final state summary:
- Episode completed successfully in
4steps - Final customer sentiment:
0.203 - Unresolved issues:
[] - Info/action log returned by API without errors (
"error": null)
Conclusion:
- This medium-difficulty customer scenario passed end-to-end and validates expected behavior:
- empathy -> info gathering -> actionable resolution -> closure.