// guiding_principle
"Your agents are only as good as your tools."
Tools are how agents interact with the world. When tools are well-designed, orchestration stays simple and agents behave predictably. When tools are sloppy, the orchestration layer has to compensate - and it never does it well. These patterns capture what works, so you get well-designed tools every time.
Where Tools Fit
Tools are the interface between agents and the external world. Click a category to filter.
Agents
Systems APIs · Databases · Services · File Systems · Enterprise Apps
# Patterns for Agentic Tools
Design patterns for building quality tools for AI agents.
52 patterns across 10 categories.
## Guiding Principle
> "Your agents are only as good as your tools."
Tools are how agents interact with the world. When tools are well-designed, orchestration stays simple and agents behave predictably. When tools are sloppy, the orchestration layer has to compensate - and it never does it well. These patterns capture what works, so you get well-designed tools every time.
---
## Tool
The atomic unit. What IS a tool? The fundamental building blocks of agent tooling.
### Tool
The atomic callable unit that an agent can invoke to perform work.
- Category: Tool
- Slug: tool
### Query Tool
A read-only tool that retrieves data without side effects.
- Category: Tool
- Slug: query-tool
### Command Tool
A tool that performs actions with side effects.
- Category: Tool
- Slug: command-tool
### Discovery Tool
A tool that reveals available operations, schema, or capabilities.
- Category: Tool
- Slug: discovery-tool
---
## Tool Interface
The contract between agent and tool. How agents see, understand, and call tools.
### Tool Description
Write descriptions optimized for LLM comprehension, not human reading.
- Category: Tool Interface
- Slug: tool-description
### Constrained Input
Use enums, ranges, and validation to limit inputs to valid values.
- Category: Tool Interface
- Slug: constrained-input
### Smart Defaults
Reduce required parameters by providing sensible defaults.
- Category: Tool Interface
- Slug: smart-defaults
### Natural Identifier
Accept human-friendly identifiers and resolve them internally.
- Category: Tool Interface
- Slug: natural-identifier
### Mutual Exclusivity
Enforce 'exactly one of X or Y' parameter constraints.
- Category: Tool Interface
- Slug: mutual-exclusivity
### Performance Hint
Guide agents toward efficient usage patterns.
- Category: Tool Interface
- Slug: performance-hint
### Parameter Coercion
Accept flexible input formats and normalize internally.
- Category: Tool Interface
- Slug: parameter-coercion
---
## Tool Discovery
Navigation and selection in a tool ecosystem. How agents find the right tool.
### Tool Registry
Provide a catalog of available tools with their capabilities.
- Category: Tool Discovery
- Slug: tool-registry
### Schema Explorer
Progressively reveal structure through layered discovery.
- Category: Tool Discovery
- Slug: schema-explorer
### Dependency Hint
Embed 'call X before Y' guidance in tool descriptions.
- Category: Tool Discovery
- Slug: dependency-hint
### Capability Matching
Find tools by intent or capability, not just name.
- Category: Tool Discovery
- Slug: capability-matching
### Health Check
Verify tool availability before relying on it.
- Category: Tool Discovery
- Slug: health-check
---
## Tool Composition
Building complex operations from simple tools. How tools combine and chain.
### Abstraction Ladder
Provide tools at multiple levels of granularity for the same capability.
- Category: Tool Composition
- Slug: abstraction-ladder
### Task Bundle
Combine multiple operations into a single tool.
- Category: Tool Composition
- Slug: task-bundle
### Batch Operation
Process multiple items in a single tool call.
- Category: Tool Composition
- Slug: batch-operation
### Operation Mode
Provide different modes for different access patterns.
- Category: Tool Composition
- Slug: operation-mode
### Tool Chain
Explicitly define sequences of tool calls for complex workflows.
- Category: Tool Composition
- Slug: tool-chain
### Scatter-Gather Tool
Fan out to multiple sources, then combine results.
- Category: Tool Composition
- Slug: scatter-gather-tool
---
## Tool Execution
The internal processing patterns. How tools do their actual work.
### Synchronous Execution
Immediate request-response execution.
- Category: Tool Execution
- Slug: synchronous-execution
### Async Job
Handle long-running operations with job IDs and polling.
- Category: Tool Execution
- Slug: async-job
### Idempotent Operation
Make operations safe to retry with identical results.
- Category: Tool Execution
- Slug: idempotent-operation
### Transactional Boundary
Ensure all-or-nothing execution for multi-step operations.
- Category: Tool Execution
- Slug: transactional-boundary
### Compensation Handler
Undo completed steps when a multi-step operation fails.
- Category: Tool Execution
- Slug: compensation-handler
### Timeout Boundary
Define maximum execution time with graceful termination.
- Category: Tool Execution
- Slug: timeout-boundary
---
## Tool Output
Communicating results back to agents. How tools return useful information.
### Response Shaper
Transform raw API responses into agent-friendly formats.
- Category: Tool Output
- Slug: response-shaper
### Token-Efficient Response
Minimize response size while preserving essential information.
- Category: Tool Output
- Slug: token-efficient-response
### Paginated Result
Handle large result sets with cursor-based pagination.
- Category: Tool Output
- Slug: paginated-result
### Progressive Detail
Return summary by default, full detail on request.
- Category: Tool Output
- Slug: progressive-detail
### GUI URL
Include links to view or edit results in a web interface.
- Category: Tool Output
- Slug: gui-url
### Partial Success
Report mixed success/failure results for batch operations.
- Category: Tool Output
- Slug: partial-success
---
## Tool Context
The MCP-native category. Stateful connections and context management.
### Identity Anchor
Establish user identity and context at the start of a session.
- Category: Tool Context
- Slug: identity-anchor
### Resource Reference
Point to external data by URI instead of embedding it.
- Category: Tool Context
- Slug: resource-reference
### Context Injection
Automatically inject relevant context the agent didn't request.
- Category: Tool Context
- Slug: context-injection
### Context Boundary
Define the scope or boundaries of tool operations.
- Category: Tool Context
- Slug: context-boundary
---
## Tool Resilience
Recovery, retry, and degradation patterns. How tools handle failures gracefully.
### Recovery Guide
Provide actionable error messages that tell agents how to fix the problem.
- Category: Tool Resilience
- Slug: recovery-guide
### Error Classification
Distinguish between retryable and permanent failures.
- Category: Tool Resilience
- Slug: error-classification
### Confirmation Request
Request clarification when input is ambiguous.
- Category: Tool Resilience
- Slug: confirmation-request
### Fuzzy Match Threshold
Auto-accept high-confidence matches, confirm uncertain ones.
- Category: Tool Resilience
- Slug: fuzzy-match-threshold
### Graceful Degradation
Return partial results when full operation isn't possible.
- Category: Tool Resilience
- Slug: graceful-degradation
### Fallback Tool
Provide alternative tools when the primary is unavailable.
- Category: Tool Resilience
- Slug: fallback-tool
---
## Tool Security
Trust, authorization, and data protection. How access is controlled.
### Secret Injection
Inject credentials at runtime, never passing them through the LLM.
- Category: Tool Security
- Slug: secret-injection
### Permission Gate
Enforce access control in code, not prompts.
- Category: Tool Security
- Slug: permission-gate
### Scope Declaration
Declare required OAuth scopes per tool.
- Category: Tool Security
- Slug: scope-declaration
### Audit Trail
Log all tool invocations for security and debugging.
- Category: Tool Security
- Slug: audit-trail
---
## Compositional
Cross-cutting patterns that span multiple categories. System-wide concerns.
### Tool Gateway
Provide a unified interface to multiple tool backends.
- Category: Compositional
- Slug: tool-gateway
### Tool Adapter
Wrap legacy APIs as agent-friendly tools.
- Category: Compositional
- Slug: tool-adapter
### Canonical Tool Model
Use standard data models across the tool ecosystem.
- Category: Compositional
- Slug: canonical-tool-model
### Tool Versioning
Support multiple tool versions coexisting.
- Category: Compositional
- Slug: tool-versioning
---
Full documentation: https://arcade.dev/patterns
LLM-optimized text: https://arcade.dev/patterns/llm.txt