2.2 Implement structured error responses for MCP tools
Trả lỗi có cấu trúc để agent biết nên thử lại, đổi cách, hay báo khách — thay vì một câu "Operation failed".
- Tool MCP báo lỗi bằng cờ isError (field của MCP; bên Claude API là is_error). Trong nội dung lỗi, tự thêm metadata như errorCategory (transient / validation / permission / business), isRetryable và mô tả dễ hiểu.
- Truy vấn thành công nhưng không có kết quả là kết quả hợp lệ, không phải lỗi. Đừng trả nó như lỗi truy cập — và cũng đừng trả lỗi truy cập như "rỗng".
- Vi phạm quy tắc nghiệp vụ (vd. quá hạn đổi trả): đánh dấu không retry được và kèm giải thích thân thiện để agent nói lại với khách.
- Lỗi tạm thời: subagent tự xử lý tại chỗ (retry) trước; chỉ chuyển lên coordinator lỗi không tự giải quyết được, kèm đã thử gì và kết quả dở dang.