Skip to content

Latest commit

Β 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SAGE Tool Use

Tool retrieval and ranking algorithms for LLM agents

PyPI version Python 3.10+ License: MIT

🎯 Overview

sage-agentic-tooluse provides a comprehensive suite of tool selection and ranking algorithms for LLM agents:

  • Keyword Selector: Fast matching based on keyword overlap
  • Embedding Selector: Semantic similarity using embeddings
  • Hybrid Selector: Combines keyword and embedding approaches
  • DFS-DT Selector: Decision tree-based tool selection
  • Gorilla Selector: Gorilla-style tool retrieval

πŸ“¦ Installation

# Basic installation
pip install isage-agentic-tooluse

# Development installation
pip install isage-agentic-tooluse[dev]

πŸš€ Quick Start

Keyword-based Tool Selection

from sage_libs.sage_agentic_tooluse import KeywordSelector, ToolSelectionQuery

# Create selector
selector = KeywordSelector.from_config(config=keyword_config, resources=resources)

# Select tools for a query
selected = selector.select(
    query=ToolSelectionQuery(
        sample_id="q1",
        instruction="Get current weather in New York",
        candidate_tools=["weather_api", "search_api"],
    ),
    top_k=5
)

for tool in selected:
    print(f"Tool: {tool.tool_id}, Score: {tool.score}")

Embedding-based Tool Selection

from sage_libs.sage_agentic_tooluse import EmbeddingSelector, ToolSelectionQuery

# Create selector with embedding model
selector = EmbeddingSelector.from_config(config=embedding_config, resources=resources)

# Select tools based on semantic similarity
selected = selector.select(
    query=ToolSelectionQuery(
        sample_id="q2",
        instruction="What's the weather like?",
        candidate_tools=["weather_api", "search_api"],
    ),
    top_k=5
)

Hybrid Tool Selection

from sage_libs.sage_agentic_tooluse import HybridSelector, ToolSelectionQuery

# Combine keyword and embedding approaches
selector = HybridSelector.from_config(config=hybrid_config, resources=resources)

selected = selector.select(
    query=ToolSelectionQuery(
        sample_id="q3",
        instruction="Find tools for weather updates",
        candidate_tools=["weather_api", "search_api", "calendar_api"],
    ),
    top_k=5,
)

πŸ“š Key Components

Selectors

  • KeywordSelector: Fast keyword-based matching
  • EmbeddingSelector: Semantic similarity using embeddings
  • HybridSelector: Weighted combination of multiple selectors
  • DFSDTSelector: Decision tree-based selection
  • GorillaSelector: Gorilla-style API-centric retrieval

Base Classes

  • BaseToolSelector: Abstract base for all selectors
  • SelectorRegistry: Central registry for selector implementations

Schemas

  • ToolSelectionQuery: Query payload for selector input
  • ToolPrediction: Selection result with score and metadata
  • SelectorConfig: Base selector configuration schema

πŸ—οΈ Architecture

sage_libs.sage_agentic_tooluse/
β”œβ”€β”€ __init__.py              # Public API exports
β”œβ”€β”€ base.py                  # Base selector interface
β”œβ”€β”€ keyword_selector.py      # Keyword-based selection
β”œβ”€β”€ embedding_selector.py    # Embedding-based selection
β”œβ”€β”€ hybrid_selector.py       # Hybrid selection strategy
β”œβ”€β”€ dfsdt_selector.py        # Decision tree selector
β”œβ”€β”€ gorilla_selector.py      # Gorilla-style retrieval
β”œβ”€β”€ registry.py              # Selector registry
β”œβ”€β”€ schemas.py               # Data schemas
└── retriever/               # Retrieval utilities

πŸŽ“ Use Cases

  1. Agent Tool Selection: Help agents choose the right tools
  2. API Discovery: Find relevant APIs for a task
  3. Function Calling: Select appropriate functions for LLMs
  4. Tool Recommendation: Recommend tools to users
  5. Multi-step Planning: Select tool sequences for complex tasks

πŸ”— Integration with SAGE

This package is part of the SAGE ecosystem and can be used with SAGE agents:

# Standalone usage
from sage_libs.sage_agentic_tooluse import HybridSelector

from sage_libs.sage_agentic_tooluse import create_selector

selector = create_selector({"name": "hybrid", "top_k": 5}, resources)

πŸ“– Documentation

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ™ Acknowledgments

Originally part of the sage-agentic package, now maintained as an independent repository for focused development and research.

πŸ“§ Contact


Part of the SAGE ecosystem - Stream Analytics for Generative AI Engines

About

Tool retrieval and ranking algorithms for LLM agents

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages