Patterns for Agentic Tools: Your agents are only as good as your tools.

Patterns for Agentic Tools: Your agents are only as good as your tools.

Guru Sattanathan's avatar
Renato Byrro's avatar
Evan Tahler's avatar
Guru Sattanathan & Renato Byrro +1 more
FEBRUARY 9, 2026
6 MIN READ
PRODUCT RELEASE
Rays decoration image
Ghost Icon

The Moment

Every few years, a new pattern language emerges that changes how we build software.

In 1994, the Gang of Four gave us Design Patterns. In 2003, Hohpe and Woolf gave us Enterprise Integration Patterns. Since then: Microservices Patterns, Cloud Patterns, and now Agent Patterns.

But there's a gap. Agents can chat and reason on their own - but they can't ‘act’ without tools. Standards like MCP have unlocked how agents discover and call tools. The protocol layer is solved. What's missing is the design layer: patterns for building tools that agents can actually use well. That's the missing layer.

What We Learned

We've built over 8000 tools across 100+ integrations - the largest catalog of agent-ready tools in production. Not API wrappers. Production-grade tools that handle the edge cases: rate limits, pagination, auth refresh, partial failures. 

Every mistake you can make: unclear descriptions, unhelpful errors, parameters that made sense to us but not to an LLM, we've made it. We learned that "working" isn't the same as "agent-usable." 

A tool can return the right data and still fail because the agent couldn't figure out when to call it.

After thousands of iterations, patterns emerged. We built internal checklists, review processes, and eventually a framework that let us ship quality tools consistently. Not theory - just what works when you're building tools that agents actually use.

We documented them. Now we're sharing them. Explore the full catalog at arcade.dev/patterns.

The Paradigm Shift

For two decades, we built integration around a simple model: middleware orchestrates, applications consume. ESBs routed messages. Workflow engines enforced sequence. The integration layer decided what happened, when, and in what order.

Agent tooling collapses that entire layer. There is no bus. There is no predetermined workflow. The agent decides which tool to call, interprets the parameters, handles the response, and figures out what to do next. The orchestration logic that lived in your middleware is now emergent, reconstructed by the agent on every invocation, with no guarantee it plays out the same way twice.

This isn't traditional integration with a new consumer. It's an entirely new type of consumer and the fundamentals have changed.

Aspect

Traditional (2003)

Agent Tools (2025+)

Consumer

Applications

AI Agents (LLMs)

State Model

Stateless messages

Stateful sessions

Routing

Predetermined flows

Agent-selected (non-deterministic)

Error Handling

Dead letter queues

Recovery guidance for retry

Documentation

Human-readable

Agent-optimized

Composition

ESB orchestration

Agent-driven chaining

When an LLM selects which tool to call, interprets parameters, and decides what to do with errors, the design constraints are fundamentally different. The old patterns don't fit. We need new ones. 

So where do you start? With a way to classify what you're building.

Three Axes of Classification

Every tool exists somewhere in three dimensions. Understanding where helps you pick the right patterns.

Maturity is the vertical axis: how sophisticated your tool is. Atomic tools do one thing: get_user(id). Orchestrated tools coordinate many, managing state across calls. We'll dig deeper into this axis in the maturity model below.

Integration is what your tool connects to, APIs, databases, file systems, or system operations. Each carries different design constraints. Database tools need the Idempotent Operation pattern because agents retry on timeout and your tool must handle duplicate calls gracefully.

Access is how execution works. Synchronous tools are straightforward: call, wait, respond. But a report generation tool that blocks for 45 seconds will timeout or stall the agent. That's where the Async Job pattern comes in: the agent calls generate_report(), receives a job ID, and polls check_status(job_id) until complete.

Your coordinates across all three axes determine which patterns you need. A tool that is Composite × Database × Async has very different design requirements than one that is Atomic × API × Sync.

Cross-Cutting Concerns

Knowing where your tool sits on the three axes tells you which patterns to look at. But four concerns cut across every axis: agent experience, security boundaries, error-guided recovery, and tool composition. Get these wrong and it doesn't matter how well you've classified your tool.

Agent Experience

Design for the LLM, not the human. Tool descriptions, parameter names, and error messages should be optimized for agent comprehension.

The Parameter Coercion pattern is a good example: an agent might pass "2024-01-15", "January 15", or "yesterday",  your tool accepts all of them and normalizes internally.

Security Boundaries

Prompts express intent, code enforces rules. Never trust the agent to enforce security. Authorization and secrets must be handled server-side.

The Context Injection pattern passes user identity, permissions, and credentials through a server-side context object, never through the LLM.

Error-Guided Recovery

Errors should teach, not just fail. When things go wrong, provide actionable guidance. What should the agent try next? A raw 429 means nothing to an LLM. A response that says "rate limited, retry after 30 seconds or reduce batch size to 50" gives the agent a path forward.

Tool Composition

Tools should compose well together like Unix pipes, not like a chain of command. That means consistent response shapes so one tool's output feeds cleanly as another's input, batch support so agents don't loop one-at-a-time, and multiple abstraction levels so the agent picks the right granularity for the task.

The Landscape: 54 Patterns, 10 Categories

These four principles:  agent experience, security boundaries, error-guided recovery, and tool composition, thread through everything. They show up differently depending on the tool, but the questions they raise are universal: How will agents understand this? How do we keep it secure? What happens when it fails? How do tools fit together without directing each other?

We organized our answers into 54 patterns across 10 categories. Each category maps to one of those recurring questions:

Category The Question Cross-Cuts With
Tool Types Query, Command, or Discovery?
Tool Interface How will agents understand and call it? Agent Experience
Tool Discovery How do agents find the right tool? Agent Experience
Tool Composition Should it bundle operations? Maturity
Tool Execution Sync, async, or transactional? Access Pattern
Tool Response What should results look like? Agent
Tool Context How is identity and state managed? Security Boundaries
Tool Resilience How does it recover from failures? Error-Guided Recovery
Tool Security How is access controlled? Security Boundaries
Integration How does it connect to external systems? Integration Type

Each pattern includes the problem it solves, when to apply it, implementation considerations, and code examples. 

The full catalog is at arcade.dev/patterns.

Now how do you actually put it to use?

Building Your First Tool

Where you start depends on two things: where your tool sits on the three axes, and what maturity level you're at today.

Classify Your Tool

Work through four questions: What type is this: Query, Command, or Discovery? What integration: API, Database, File System, or System? What access pattern: sync, async, streaming, or event-driven? And what maturity level: single operation or bundled workflow?

Find Your Level

Your position on the maturity axis tells you which patterns to start with. Don't over-engineer: start atomic, watch how agents actually use your tools, and level up when you see the signals in your traces.

The observable signals between levels are real things you'll find in your logs: high retry rates mean your tool needs better descriptions and error guidance. Repeated tool sequences mean it's time to bundle. Partial completions on multi-step operations mean you need transaction boundaries and compensation.

Join Us

These patterns exist because of the engineering discipline behind them. The Arcade engineering team, particularly Eric, Renato, and Francisco , authored thousands of tools and built the quality control processes that turned hard-won lessons into repeatable standards. 

This work is dedicated to them, to the broader tool engineering and MCP community, and to every team that's learned the hard way that "working" and "agent-usable" aren't the same thing.

The full set of patterns is at arcade.dev/patterns. Each pattern includes diagrams, code examples, and implementation considerations.

We're releasing these patterns openly because better tools benefit everyone. When the ecosystem builds better tools, agents get more capable. When agents get more capable, more people build with them. That's the future we want to help create.

What did we miss? What patterns have you discovered that aren't here? Where did we get it wrong? We'd love your feedback - send us a note, tell us what doesn't make sense.

This is a shared language. Help us make tools better.


Explore the full pattern catalog. 
All 54 patterns with examples, trade-offs, and implementation guidance: 
arcade.dev/patterns

Ready to build? 
Arcade gives you the runtime, the tools, and the auth layer to ship agents that actually work in production. 
Get started

SHARE THIS POST

RECENT ARTICLES

TUTORIALS

OpenClaw can do a lot, but it shouldn't have access to your tokens

OpenClaw (a.k.a. Moltbot, a.k.a. ClawdBot) went viral and became one of the most popular agentic harnesses in a matter of days. Peter Steinberger had a successful exit from PSPDFKit, and felt empty until the undeniable potential of AI sparked renewed motivation to build. And he's doing it it non-stop. OpenClaw approaches the idea of an Personal AI agent as a harness that communicates with you (or multiple users) in any of the supported channels in multiple sessions connected to the underlying

THOUGHT LEADERSHIP

Federation Over Embeddings: Let AI Agents Query Data Where It Lives

Before building vector infrastructure, consider federation: AI agents with tool access to your existing systems. For most enterprise use cases, that's all you need. Someone told you to pivot to AI. Add an AI layer. “We need to be AI-first.” Fair enough. So you start thinking: what does AI need? Data. Obviously. So the playbook writes itself: collect data in a central place, set up a vector database, do some chunking, build a RAG pipeline, maybe fine-tune a model. Then query it. Ship the chatb

Rays decoration image
MCP

The MCP Gateway Pattern: scaling agentic integrations without tool sprawl

MCP makes it easy to go from “agent” to “agent that takes action.” The trap is that success compounds: every new system becomes a new server, every team ships “just one more tool,” and soon your integration surface is too large to reason about, too inconsistent to secure, and too messy to operate. Meanwhile, the model gets blamed for failure modes that are actually integration design problems. Tool definitions balloon. Selection accuracy drops. Context gets eaten before anyone types a prompt. A

Blog CTA Icon

Get early access to Arcade, and start building now.