pub trait SteeringSource: Plugin {
// Required method
fn next_steering_messages<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<AgentMessage>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Source of “steering messages” — extra messages the user / harness wants to inject mid-run.
The loop calls next_steering_messages after the current assistant
turn finishes executing its tool calls and before the next LLM call.
Returned messages are appended verbatim to the transcript, then the
loop continues. Use cases: user typed something while the agent was
thinking, harness wants to inject a hint, watchdog wants to force a
checkpoint.
Tool calls already in flight are not interrupted — steering messages land between batches.
Required Methods§
fn next_steering_messages<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<AgentMessage>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".