Open
Description
AssistantAgent can take a list of tools.
These tools are typically python functions which themselves can have dependencies and secrets.
For example, a search tool might use a specific search library e.g. googlesearch and need a search api key.
In a no code environment, it is useful to have some mechanism to
- install specified libraries and
- load specified keys to make them available when the tool is called.
How
Create a ToolHelper class that is used with the component_factory in loading tools.
- For each dependency, check if the dependency is installed (attempt to import)
- If not installed, install it (or validate and provide some confirmation workflow where the user can agree to explicitly install)
- load the tool
Challenges / Considerations
- Tool calls get executed in the same environment as the application (AGS in this case).
- UX should communicate this to the user
- One assumption here is that the user designs/understands the tools they create and implicitly are comfortable with outcomes and side effects of their execution. The opposite of this is with a general purpose tool like code execution where arbitrary code with arbitrary side effects can be executed.