Why Tools exist
An agent often acts through APIs, MCP servers, command-line programs, SDK functions, or web interfaces. Replacing only the response text does not capture stateful consequences. A Firedrill Tool owns both the callable contract and what happens to the synthetic world when that contract is used.One behavior, several interfaces
Direct, HTTP, MCP, and spawned CLI bindings adapt to the same semantic operation. A Tool may also declare custom HTTP routes or a same-origin browser app when protocol or visual fidelity matters.Tool ownership
Tools can live beside the agent, in a private package, in an independent public package, or in a community catalog. A developer can use a local Tool immediately; contributing it is optional.Relationship to other concepts
- A world selects Tools and gives them shared state, time, and identities.
- A scenario changes the starting conditions for one use case.
- A drill gives an agent a task and asserts on the result.
- Evidence records what the Tool did during a run.
Create a Tool
Start with a stateful or stateless Tool template and test its contract.