customer-support-env / docs /test_usage_report_1.md
lebiraja's picture
docs: reorganize .md files into docs/ and rewrite README for Round 2
a8f3713
|
Raw
History Blame Contribute Delete
4.48 kB
# 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 /health` response:
- `{"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:
1. `respond`
2. `request_info`
3. `close`
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:
1. `respond` (empathetic)
2. `request_info`
3. `respond` (workaround/solution)
4. `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:
1. `respond` (acknowledge urgency)
2. `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|hard`
- `POST /step?session_id=...`
- `GET /health`
- `GET /`
Request contract validated:
- `step` accepts action payloads:
- `{"action_type":"respond","message":"..."}`
- `{"action_type":"request_info","message":"..."}`
- `{"action_type":"close","message":"..."}`
- `{"action_type":"escalate","reason":"..."}`
Response contract observed:
- `observation` object updates each step
- `reward` object includes `value`, component scores, and breakdown
- `done` flips to `true` on terminal actions
- `final_score` appears 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_sessions` increases during testing; completed sessions are cleaned up when done, and stale sessions are managed by TTL logic.
## 6. Recommended Next Test Pass (Optional)
1. Negative tests:
- invalid `session_id`
- malformed action payloads
- `step` after terminal state
2. Load/concurrency tests:
- multiple concurrent sessions across all tasks
3. Regression automation:
- convert these `curl` flows into a repeatable shell script or pytest API tests
## 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:
1. `respond` -> "I understand this is frustrating and I am here to help."
2. `request_info` -> "Please share your account email and device details so I can investigate this properly."
3. `respond` -> "Please try signing out, clearing app cache, and updating to the latest version."
4. `close` -> "Issue appears resolved with the workaround and verification. Closing this ticket."
Observed metrics by step:
- Step 1: `done=false`, reward `0.1473`
- Step 2: `done=false`, reward `0.2992`
- Step 3: `done=false`, reward `0.2693`
- Step 4: `done=true`, terminal reward `0.6678`, `final_score=1.0`
Final state summary:
- Episode completed successfully in `4` steps
- 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.