Skip to main content

before_agent

Attribute Macro before_agent 

Source
#[before_agent]
Expand description

Middleware: run a hook before the agent loop starts.

The decorated async function must accept &mut Vec<Message> and return Result<(), SynapticError>. The macro generates a struct that implements AgentMiddleware with only before_agent overridden, plus a factory function returning Arc<dyn AgentMiddleware>.

§Example

use synaptic_macros::before_agent;
use synaptic_core::{Message, SynapticError};

#[before_agent]
async fn setup(messages: &mut Vec<Message>) -> Result<(), SynapticError> {
    println!("Agent starting with {} messages", messages.len());
    Ok(())
}

let mw = setup(); // Arc<dyn AgentMiddleware>