A multi-agent customer support system built with OpenAI Agents SDK that handles weather queries, refund processing, sales inquiries, and general customer support with email notifications
This server has severe definition quality issues. Tool naming is inconsistent and ambiguous (two tools named 'send_email_to_user' with different signatures). Descriptions are vague and lack actionable context. Parameter schemas are present but descriptions are minimal. No output schemas documented. Error handling is absent, tools return bare strings or objects without guidance. The execute_sql tool is particularly dangerous with no input validation. Overall, this reads like a prototype, not production-ready code.
This executes the SQL Query
Shares plan details with users
Give details of weather of the city which users ask for.
Processes refund of user
Send refund confirmation email to user
The city for which user have asked weather. Share weather details with that user
Duplicate tool names: two tools named 'send_email_to_user' with different signatures (weather vs refund). LLMs cannot distinguish between them; one will be silently overwritten at registration.
execute_sql tool accepts raw SQL with zero input validation or sanitization. Vulnerable to SQL injection. No error handling, returns bare 'done' string regardless of success/failure. Dangerous for production.
No output schemas documented for any tool. LLMs cannot predict return structure. get_weather_details returns a string; fetch_plan_details returns an array of objects; process_refund returns {refundIssued:true}. Inconsistent and undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Descriptions are vague and lack context. 'Give details of weather' (get_weather_details), 'Shares plan details with users' (fetch_plan_details_tool), 'This executes the SQL Query' (execute_sql). None explain WHEN to use the tool or what it returns.
fetch_plan_details_tool has empty parameters schema (z.object({})). No way to filter or paginate results. Returns hardcoded array of 3 plans with no limit or offset support.