Skip to content

Arcade Expert Toolkit #405

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Arcade Expert Toolkit #405

wants to merge 4 commits into from

Conversation

EricGustin
Copy link
Member

@EricGustin EricGustin commented May 20, 2025

PR Description

This is a unique type of toolkit and is still in a nascent stage, but it has plenty of potential. This PR introduces the first tool for an Arcade Toolkit for Arcade (meta, I know).

This PR introduces ArcadeExpert.SearchDocumentation. Given a provided query, it leverages Arcade documentation's llm.txt to extract up to 5 relevant links and scrape their content. It uses an LLM to determine the most relevant links. Using similarity search instead of an LLM to determine the most relevant links would probably be the more idiomatic way to do this, but simplicity wins for now.

Ideally, this toolkit would be added as an MCP server to an Arcade user's IDE.

Example queries

  • I want to create a new Reddit OAuth Provider. How do I do this?
  • Write a template for a syntactically correct Arcade tool that requires Auth
  • Where is my engine.yaml file that Arcade is telling that I need?

@EricGustin EricGustin changed the title Ericgustin/arcade expert tk Arcade Expert Toolkit May 20, 2025
Copy link

codecov bot commented May 20, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

openai_client = OpenAI(api_key=openai_api_key)

# Get Arcade.dev documentation's llms.txt file
url = "https://docs.arcade.dev/llms.txt"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

@@ -0,0 +1,43 @@
[tool.poetry]
name = "arcade_arcade_expert"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the toolkit name starts with arcade and official Arcade toolkits start with arcade, we end up with arcade_arcade_expert. If we were to change it to arcade_expert, then the toolkit name would be Expert instead of ArcadeExpert.

Pip installing:
pip install arcade_arcade_expert

Calling an ArcadeExpert tool:
arcade_client.tools.execute("ArcadeExpert.SearchDocumentation", ...)

@EricGustin EricGustin marked this pull request as ready for review May 20, 2025 21:50
from arcade_arcade_expert.models import Links


@tool(requires_secrets=["OPENAI_API_KEY"])
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we decide to have this in the prod worker, then we will need to add an OPENAI_API_KEY secret for all users

@EricGustin
Copy link
Member Author

@evantahler thoughts on getting this merged now as a 'community' toolkit?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants