CHAPTER 03 · Tool Design · 10 / 11
Tools and the provider abstraction
If you support multiple model providers (Chapter 4), define your tools once in a single canonical schema format and convert to each provider's dialect at the boundary. Then adding a tool is purely additive: one schema, one executor branch, and it works across every model. Don't let provider-specific tool formats leak into your tool definitions.