Skip to content

Enhancement: Enable AI Agents to Trigger Tools by Default #210

@dannleft

Description

@dannleft

Is your feature request related to a problem? Please describe.

Currently, KaibanJS requires explicit configuration for agents to trigger tools, meaning that unless a tool is manually assigned and invoked, agents do not use them by default. This limits automation and requires additional setup for each agent, even when a tool is commonly used.

Without default tool invocation, users face challenges such as:

  • Increased manual setup, as every tool must be explicitly assigned and invoked in the agent's configuration.
  • Reduced agent autonomy, since agents cannot decide when to use a tool unless explicitly coded to do so.
  • Missed opportunities for optimization, as certain tools (e.g., Tavily for research) could be automatically leveraged when relevant.

User feedback: "Ability to trigger tools by default."


Describe the solution you'd like

To enhance agent autonomy and workflow automation, KaibanJS could introduce default tool invocation capabilities, allowing agents to automatically recognize and use relevant tools without requiring explicit calls.

Proposed Improvements:
  1. Automatic Tool Assignment Based on Agent Role:

    • If an agent is created with a specific role, KaibanJS could suggest or automatically assign relevant tools.
    • Example: A Research Agent automatically gets access to Tavily without needing manual configuration.
  2. Rule-Based Tool Invocation:

    • Allow users to define triggers where tools are automatically used when conditions are met.
    • Example: If an agent receives a task requiring external data retrieval, it automatically calls Tavily.
  3. Configurable Default Tools per Agent Type:

    • Introduce a global configuration where users can set default tools for specific agent types.
    • Example: Agents categorized as "Analysts" automatically get a predefined set of tools.
  4. Expose API Methods for Automatic Tool Usage:

    • Provide functions like enableAutoTools(), disableAutoTools(), and setDefaultTools().
    • Allow users to override defaults when necessary.

Describe alternatives you've considered

  • Manually Assigning Tools (Current Approach):
    • While functional, this requires explicit tool assignment for each agent, increasing setup time.
  • Using External Logic to Determine Tool Usage:
    • This adds unnecessary complexity, as users have to manually script when tools should be used.

Additional context

  • Relevant KaibanJS Features:
    • Agent class and Tool integration framework.
    • Task execution and agent processing logic.
  • Expected Benefits:
    • Reduce manual setup by making tool usage more intuitive.
    • Improve agent autonomy, allowing them to determine when a tool is needed.
    • Increase workflow efficiency, as agents can execute tasks with fewer dependencies on user input.

Metadata

Metadata

Assignees

No one assigned

    Labels

    customizationIssues that will help the library to be more customizableenhancementSuggestions that improve existing features.featureNew feature or requestfeedback discord

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions