Skip to content

Add mechanism for tool dependencies in AGS (installation, secrets) #4263

@victordibia

Description

@victordibia

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.

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions