# CrewAI Integration
crewai-arcade enables you to add Arcade tools and Arcade Auth into your
CrewAI applications. Just create an `ArcadeToolManager` and add your
tools to your CrewAI Agent/Tasks.
## Initializing the ArcadeToolManager
There are two main ways to initialize your `ArcadeToolManager`
1. Default handling of tool authorization and execution:
```py
"""
When you provide a user id to the ArcadeToolManger,
it will handle the tool authorization and tool execution for you
"""
manager = ArcadeToolManager(default_user_id="me@example.com,
api_key="...")
```
2. Custom handling of tool authorization and execution
```py
"""
Provide a callback function to the `ArcadeToolManager` that handles
tool authorization and tool execution. The callback function will be
called whenever your CrewAI
application wants to call a tool.
"""
def custom_tool_executor(
manager: ArcadeToolManager, tool_name: str, **tool_input: dict[str, Any]
) -> Any:
"""Custom tool executor for the ArcadeToolManager
ArcadeToolManager's default executor handles authorization and tool
execution.
This function overrides the default executor to handle authorization and
tool execution
in a custom way.
"""
# Your custom tool auth logic goes here
# Your custom tool execution logic goes here
...
manager = ArcadeToolManager(executor=custom_tool_executor,
api_key="...")
```
## Tool Registration
1. Initialize the tools in the manager
```py
"""
Clears any existing tools in the manager and replaces them with tools
and toolkits that are provided.
"""
manager.init_tools(tools=["Google.ListEmails"], toolkits=["Slack"])
```
2. Add tools to the manager
```py
"""
Adds tools and toolkits to the manager's internal tool list.
"""
manager.add_tools(tools=["Google.ListEmails"], toolkits=["Slack"])
```
3. Retrieve tools and toolkits from the manager
```py
"""
Retrieves the provided tools and toolkits as CrewAI StructuredTools.
"""
manager.get_tools(tools=["Google.ListEmails"], toolkits=["Slack"])
```
## Auth Helpers
The `ArcadeToolManager` provides multiple helper methods for when you
need to create
a custom auth flow.
1. `authorize_tool` handles the whole authorization flow for you. This
is used internally when a custom auth flow is not needed.
2. `requires_auth(tool_name)` checks if the provided tool has
authorization requirements.
3. `authorize(tool_name, user_id)` authorizes the use of the provided
tool for the provided user ID
4. `is_authorized(tool_name, user_id)` checks if a tool is authorized
for use by the provided user ID
5. `wait_for_auth(auth_response)` waits for an authorization process to
complete before returning
## Tool Execution Helpers
1. `execute_tool` handles the whole tool execution flow for you. This is
used internally when a custom tool execution flow is not needed.
---------
Co-authored-by: lgesuellip <lgesuellipinto@uade.edu.ar>
Co-authored-by: lpetralli <123559656+lpetralli@users.noreply.github.com>
Co-authored-by: lgesuellip <102637283+lgesuellip@users.noreply.github.com>
Co-authored-by: “lgesuellip” <“lgesuellipinto@uade.edu.ar”>
|
||
|---|---|---|
| .github | ||
| .vscode | ||
| arcade | ||
| contrib | ||
| docker | ||
| examples | ||
| schemas/preview | ||
| toolkits | ||
| .editorconfig | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc.toml | ||
| .ruff.toml | ||
| CONTRIBUTING.md | ||
| cspell.config.yaml | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
Docs • Toolkits • Model Providers • Auth Providers • Examples
What is Arcade?
Arcade provides developer-focused tooling and APIs designed to improve the capabilities of LLM applications and agents.
By removing the complexity of connecting agentic applications with your users' data and services, Arcade enables developers to focus on building their agentic applications.
To learn more, check out our documentation.
Pst. hey, you, give us a star if you like it!
Quickstart
Requirements
- An Arcade account
- Python 3.10+ and pip
Installation
Install the package:
pip install arcade-ai
Log in to your account via the CLI:
arcade login
This opens a browser window for authentication.
Verify Installation with arcade chat
Use the arcade chat CLI app to test tools:
arcade chat
This connects to the Arcade Cloud Engine (api.arcade.dev) with all pre-built Arcade tools.
For example, try:
User (dev@arcade.dev):
> star the ArcadeAI/arcade-ai repo on Github
Arcade will prompt you to authorize with GitHub and will star the ArcadeAI/arcade-ai repo on your behalf.
You'll see:
Assistant (gpt-4o):
I starred the ArcadeAI/arcade-ai repo on Github for you!
Press Ctrl-C to exit the chat.
Arcade Cloud
Arcade Cloud is a hosted version of the Arcade engine that hosts a number of prebuilt toolkits for interacting with a variety of services.
Prebuilt Toolkits
Arcade offers a number of prebuilt toolkits that can be used by agents to interact with a variety of services.
| Service | Auth Type | Toolkit | Documentation |
|---|---|---|---|
| OAuth | Github | GitHub Toolkit Docs | |
| OAuth | Gmail Toolkit Docs | ||
| OAuth | Google Calendar Toolkit Docs | ||
| OAuth | Google Docs Toolkit Docs | ||
| OAuth | Google Drive Toolkit Docs | ||
| API Key | Search | Search Toolkit Docs | |
| OAuth | Slack | Slack Toolkit Docs | |
| OAuth | Spotify | Spotify Toolkit Docs | |
| API Key | Web | Web Toolkit Docs | |
| OAuth | X | X Toolkit Docs |
Supported Auth Providers
| Provider | Name | Documentation |
|---|---|---|
| github | GitHub Auth Docs | |
| Google Auth Docs | ||
| LinkedIn Auth Docs | ||
| microsoft | Microsoft Auth Docs | |
| slack | Slack Auth Docs | |
| spotify | Spotify Auth Docs | |
| x | X Auth Docs | |
| zoom | Zoom Auth Docs | |
| oauth2 | Generic OAuth2 Auth Docs |
Supported Language Models
The LLM API supports a variety of language models. Currently, the ones supported in Arcade Cloud are OpenAI, Anthropic, Ollama, and Groq.
| Model | Provider | Documentation |
|---|---|---|
|
|
OpenAI | OpenAI Models Docs |
|
|
Anthropic | Anthropic Models Docs |
|
|
Ollama | Ollama Models Docs |
|
|
Groq | Groq Models Docs |
For more information, refer to the supported models documentation.
Get Started with Arcade
To get started with Arcade, check out our quickstart guide.
Building Your Own Tools
Learn how to build your own tools by following our creating a custom toolkit guide.
Evaluating Tools
Arcade enables you to evaluate your custom tools to ensure they function correctly with the AI assistant, including defining evaluation cases and using different critics.
Learn how to evaluate your tools by following our evaluating tools guide.
Contributing
We love contributions! Please read our contributing guide before submitting a pull request. If you'd like to self-host, refer to the self-hosting documentation.