Skip to content

Conversation

@torresmateo
Copy link
Collaborator

This adds the Mastodon toolkit to Arcade. It is intended to match the functionality of Arcade's existing X toolkit, offering similar tools

@torresmateo torresmateo requested a review from a team July 9, 2025 18:57
@codecov
Copy link

codecov bot commented Jul 9, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

Copy link
Contributor

@evantahler evantahler left a comment

Choose a reason for hiding this comment

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

pre-approve

Copy link
Member

Choose a reason for hiding this comment

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

you can remove this file (also the PR you recently merged will make sure this won't be added to future toolkits, so thanks!)

version = "0.1.0"
description = "Allow the agent to interact with a Mastodon server"
requires-python = ">=3.10"
dependencies = [
Copy link
Member

Choose a reason for hiding this comment

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

don't forget to add httpx as a dependency!

)
async def post_status(
context: ToolContext,
status: Annotated[str, "The status to post"],
Copy link
Member

Choose a reason for hiding this comment

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

suggestion: might be worth mentioning that a 'status' is the text content of a user's post. Idk, worth a shot! Personally I thought status was 'online', 'offline', etc., so adding that context could be helpful.

] = 20,
) -> Annotated[dict, "The statuses from Mastodon"]:
"""
Search for recent statuses by keywords and phrases.
Copy link
Member

@EricGustin EricGustin Jul 9, 2025

Choose a reason for hiding this comment

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

this would be a good place to explain the relationship between keywords & phrases. Are they AND'd, OR'd? Does it match if only one keyword matches, or does it need all?

Also, you mentioned that this toolkit used X as inspiration. X is one of our oldest toolkits, but I recall having the keywords/phrases was something I regretted because language models were really bad at understanding the difference between the two (I think the X toolkit might even be older than the eval framework!). It'd be super exciting to see if you're able to come up with a new & improved way to search for statuses

@EricGustin EricGustin added the toolkit: new For new toolkits label Jul 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

toolkit: new For new toolkits

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants