Middleware interface
public interface AgentMiddleware {
AgentResponse invoke(AgentRequest req, AgentChain next);
}Advertisement
Composition
AgentChain chain = AgentChain.of(
new AuthMiddleware(policy),
new RateLimitMiddleware(limiter),
new TracingMiddleware(tracer),
new CostMiddleware(meter),
myAgent
);
return chain.invoke(req);Advertisement
Order matters
Auth before rate limit (don't limit unauthorized). Tracing before everything else (want full spans).