If I had multiple agents worked on the same ticket and this ticket had CSAT survey as Good so this rate will be reflected on the last assigned agent and in fact it may had good csat because of the 1st agent and because it has to be changed or escalated the rate reflected on the last on.
The thing is If I want to make some rewarding system for my agents to stay better in supporting customers and to know who did better job from the agents can I offer requester CSAT multiple times for example when ticket is escalated or can I do any workaround regarding this rewarding system .
I think this feature need to be there regardless of the rewarding system .



Yes, a ticket would have had to be set to Solved at least once before your customer could rate a ticket. I'm afraid it is not possible to rate tickets based on certain moments. However, if your Zendesk account supports custom Explore report queries, you can check out these Explore recipes that I found externally:
https://opservator.com/zendesk/reporting-csat-assignee
I hope that helps!