In response to Taemyr
It is most likely impossible, if the Guards can answer with other words than yes/no:
The liar can just answer "I don't know" to any question he knows, so we cannot get any information out of him, While the stabber can always answer exactly like the truth-teller, except for the final answer we need.
This means, whatever we do we can never decide between the Knave and the truth teller - that only leaves us with the liar. And he can just answer "I don't know" to any question we ask, If we ask him recursive questions, he can just replace it with anything "What would you answer if...." and he just says JELLYFISH!
As far as I can see - unsolvable.
Or the default method (If the liar always lies with opposites so yes->no):
Ask the first one: "If I would ask you if Guard 2 is merciful, what would you say?"
The thruth-teller will answer thruthfull, the Liar will lie about his lie and also say the truth, the killer will say anything.
We then choose Guard2 if he is merciful, otherwise Guard3. If the first one was the Knave, we have a safe one, otherwise we got a thruthful answer and will also have a safe one.
Then we can just ask one or two question to the truthteller/liar:
If I would ask the other merciful guard (the one who doesn't stab people) is the first door safe, what would he say?
If he says no, take the door otherwise ask the same for the 2nd door, if no take it, otherwise take door 3.
So 3 Questions overall.