Both queue and steer in Hermes Agent look like "don't interrupt the current task", but behave completely differently. The official documentation is clearly written: queue is to wait for the current mission to end before starting the next round; steer is to insert your follow-up message into the current run, so that the agent will receive it after the next tool call.
When to use queue
You have a second question, but don't rush, or you just want to complete the current task and then move on to the rest of the task.
When to use steer
You want to add a constraint to the current task, such as "continue, but only look at today's log" or "don't fix it, just list the risks first". You don't have to completely interrupt the restart, and you don't want to wait for it to end before starting a new round.
Note that the official also says a boundary: if the agent hasn't actually started running, steer will degrade to an effect similar to queue.
In a word: queue is the next round, and steer is the halfway point in this round.
Practical judgment formula
If you want to say "finish this round first, then deal with my new problem in the next round", select queue; If you want to say "don't stop, but bring this new constraint in", choose steer. Many people mix the two into one function, and the result is either the task is interrupted too early or the supplementary conditions come too late.
Official open source address: https://github.com/NousResearch/hermes-agent; Official document entry: https://hermes-agent.nousresearch.com/.