Skip to main content

handler

Attribute Macro handler 

Source
#[handler]
Expand description

Generate a HumanLoopHandler implementation from an impl block.

§Overridable Methods

  • on_approval(&self, tool_name: &str, args: &Value, prompt: &str) -> ApprovalDecision
  • on_input(&self, prompt: &str) -> String

§Example

struct AutoApproveHandler;

#[handler]
impl AutoApproveHandler {
    async fn on_approval(&self, _tool: &str, _args: &Value, _prompt: &str) -> ApprovalDecision {
        ApprovalDecision::Approved
    }
    async fn on_input(&self, prompt: &str) -> String {
        println!("Agent asks: {prompt}");
        "default response".to_string()
    }
}