Function tool descriptions

Is there a guidance on how to write good function tool descriptions? Let’s say I have an Assistant API which has a tool to get list of to-do items. Should I write description: “Fetches the list of Tasks/To-Dos for the individual you are assisting” or “Fetches the list of Tasks/To-Dos for the individual” or something else?

I only have my own approach from previous use cases, so your mileage may vary for use as a template for your uses. The first step is to determine “is it a dynamic or static source I’m dealing with”. If static, then avoid complexities of an external database and upload into vector storage as text. Sounds like you’ll be modifying your todo list, so maybe go with an external db with tool functions access. The second step is to come up with a list of actions, like filters or modifiers. So in your case one filter might be “get highest priority that is 70% done”. Or a modifier might be “lower priority of ‘5 mile walk’ to 2, and increase the priority of ‘walk the dog’ to 7 so we can socialize with friends”. Once you get this list of actions, you can come up with the parameters to your tool function, and maybe a list of specialized tool functions as well. To the core of your question, the descriptions associated with the tools is a bit of an art form :artist:. I do an simple description at first and then do iterative testing to improve it.

1 Like