Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions app/en/guides/create-tools/improve/types-of-tools/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,20 @@ description: "Learn about Optimized and Unoptimized tools"

# Types of Tools

This page explains the two types of tools Arcade offers and how they differ in their design approach.

Arcade offers two types of tools:

- Unoptimized tools
- Optimized tools

The distinction is merely a matter of how Arcade designs them. Both types of tools can be used seamlessly in the same way. No difference exists in their interfaces, the way they are called, or how you interact with them through the Arcade [Dashboard](https://api.arcade.dev/dashboard/) or the Arcade [SDK clients](/references).
The distinction is how Arcade designs them. Both types of tools work seamlessly in the same way. No difference exists in their interfaces, how you call them, or how you interact with them through the Arcade [Dashboard](https://api.arcade.dev/dashboard/) or the Arcade [SDK clients](/references).

Before we understand the two types, let's first understand the background for why we need to differentiate between them.
Before understanding the two types, first understand the background for why differentiation between them matters.

## Why LLMs perform poorly when calling HTTP APIs

Traditionally, the HTTP APIs offered by upstream services such as GitHub, Google, Slack, etc., were designed to be consumed by human software engineers. When we expose such interfaces for LLMs to call as tools, they usually do not perform very well.
Traditionally, the HTTP APIs offered by upstream services such as GitHub, Google, Slack, etc., developers designed to allow human software engineers to consume them. When these interfaces become available for LLMs to call as tools, they typically do not perform well.

One of the main reasons is that the data model of the HTTP API rarely matches the data model of an AI-powered chat interface.

Expand All @@ -38,26 +40,26 @@ In order to bridge the gap in the data models, the LLM has to make multiple API
3. Open a DM (direct message) channel between the user and John, and get this channel's ID
4. Send the message to the channel

Even the most powerful LLMs usually perform poorly when they need to reason such complex workflows on the fly, not to mention the increased cost and risk of hallucinations. As a result, AI Agents and chatbots that rely on HTTP APIs often end up being unreliable.
Even the most powerful LLMs typically perform poorly when they need to reason such complex workflows on the fly, not to mention the increased cost and risk of hallucinations. As a result, AI Agents and chatbots that rely on HTTP APIs often end up being unreliable.

## Optimized tools

Arcade's Optimized MCP Servers are designed to match the typical data models expected in AI-powered chat interfaces and are subject to evaluation suites to ensure LLMs can safely use them.
Arcade's Optimized MCP servers match the typical data models expected in AI-powered chat interfaces, and evaluation suites test them to ensure LLMs can safely use them.

Following the example above, our Slack MCP Server offers the [`Slack.SendMessage`](/resources/integrations/social-communication/slack#slacksendmessage) tool, which accepts a `username` as argument, matching exactly both the action and argument value expected to be present in the LLM context window.
Following the example above, the Slack MCP server offers the [`Slack.SendMessage`](/resources/integrations/social-communication/slack#slacksendmessage) tool, which accepts a `username` as argument, matching exactly both the action and argument value expected to be present in the LLM context window.

When a user says "Send a DM to John asking about a project update", the LLM can directly call the `Slack.SendMessage` tool with the `username` argument, and the tool will take care of the rest.

Optimized tools dramatically improve the speed, reliability and cost-effectiveness of AI Agents and chatbots.

Since they require careful design and evaluation, Optimized tools take time and effort to build. Arcade understands that your Agent or chatbot project might need capabilities not yet covered by Arcade's Optimized MCP Servers. For this reason, Arcade also offers low-level Unoptimized MCP Servers (formerly known as Starter MCP Servers).
Since they require careful design and evaluation, Optimized tools take time and effort to build. Arcade understands that your Agent or chatbot project might need capabilities not yet covered by Arcade's Optimized MCP servers. For this reason, Arcade also offers low-level Unoptimized MCP servers (formerly known as Starter MCP servers).

## Unoptimized tools

To provide your Agent or chatbot with more freedom to interact with upstream services, we offer Unoptimized MCP Servers.
To provide your Agent or chatbot with more freedom to interact with upstream services, Arcade offers Unoptimized MCP servers.

Unoptimized tools are heavily influenced by the original API design. Each tool mirrors one HTTP endpoint.
Unoptimized tools heavily reflect the original API design. Each tool mirrors one HTTP endpoint.

Although we redesign the tool name and argument descriptions to make them more suitable for LLMs, Unoptimized tools are still not optimized for LLM usage. Also, they are not subject to evaluation suites like Optimized tools. For those reasons, we recommend thoroughly evaluating each Unoptimized tool with your Agents or chatbots before using it in production.
Although developers redesign the tool name and argument descriptions to make them more suitable for LLMs, Unoptimized tools are still not optimized for LLM usage. Also, they are not subject to evaluation suites like Optimized tools. For those reasons, you should thoroughly evaluate each Unoptimized tool with your Agents or chatbots before using it in production.

When an Optimized tool covers your Agent's needs, we recommend using it instead of an Unoptimized one. Use Unoptimized tools as a complement. Carefully engineer your prompts to ensure your Agent can call them safely.
When an Optimized tool covers your Agent's needs, use it instead of an Unoptimized one. Use Unoptimized tools as a complement. Carefully engineer your prompts to ensure your Agent can call them safely.
Loading