Skip to content

Conversation

@byrro
Copy link
Member

@byrro byrro commented Apr 25, 2025

Sorry this first version of the toolkit ended up getting too big. Task is the most relevant object, but it's 'entangled' with everything else in Asana. I realized the toolkit wouldn't be of much value if we didn't have some basic tools related to projects, workspaces, teams, users, and tags as well.

@byrro byrro added the toolkit: new For new toolkits label Apr 25, 2025
@byrro byrro self-assigned this Apr 25, 2025
@codecov
Copy link

codecov bot commented Apr 25, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

@byrro byrro marked this pull request as ready for review May 5, 2025 17:29
@byrro byrro requested a review from a team May 5, 2025 17:29
Copy link
Member

@EricGustin EricGustin left a comment

Choose a reason for hiding this comment

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

This is awesome & great coverage of the API.

One thing to think about: From what the evals are telling me, language models don't seem to fully grasp that they can provide multiple workspace_ids, or multiple tags in a single request. How can the annotations be improved to clear up this confusion?

@byrro
Copy link
Member Author

byrro commented May 6, 2025

This is an area for improvement. I tried to make some tools more ergonomic. Like the tags arg in create_task or search_tasks. Instead of having to look for tag IDs, the tool takes a tag name and does the job of finding the IDs.

Even 4o is a bit flaky when taking advantage of this ergonomy. Sometimes, it'll invoke search_tags_by_name before creating a task instead of passing the tag names directly to create_task.

So far, I haven't found a way to make them consistent through the argument annotation or the function docstring.

Did any ideas pop to your mind that we could try?

byrro added 6 commits May 6, 2025 21:34
Having them as tools was confusign the LLMs when calling create_task,
update_task, or search_tasks. Instead of passing a tag name as arg to
create_task, for instance, the LLM was thinking it was supposed to call
search_tags_by_name first, which is unnecessary.
@byrro
Copy link
Member Author

byrro commented May 7, 2025

The search_tags_by_name and search_projects_by_name were confusing the LLMs. I moved them to simple utility functions. The toolkit already has list_projects and list_tags.

Copy link
Member

@EricGustin EricGustin left a comment

Choose a reason for hiding this comment

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

LGTM

@byrro byrro merged commit b9afa1b into main May 12, 2025
26 checks passed
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.

3 participants