botserver/docs/src/chapter-05/keyword-use-tool.md

2 KiB

USE TOOL

Syntax

USE TOOL tool-name

Parameters

Parameter Type Description
tool-name String Name of the tool to load (without .bas extension)

Description

Loads a tool definition and makes it available to the LLM for the current session. Tools extend the bot's capabilities with specific functions like calculations, API calls, or data processing.

Examples

Basic Usage

' Load weather tool
USE TOOL "weather"

' Now LLM can use weather functions
answer = LLM "What's the weather in Tokyo?"
TALK answer

Multiple Tools

' Load several tools
USE TOOL "calculator"
USE TOOL "translator"
USE TOOL "date-time"

' LLM has access to all loaded tools
response = LLM "Calculate 15% tip on $45.80 and translate to Spanish"
TALK response

Conditional Loading

user_type = GET "user_type"

IF user_type = "admin" THEN
    USE TOOL "admin-functions"
    USE TOOL "database-query"
ELSE
    USE TOOL "basic-search"
END IF

With Error Handling

tool_needed = "advanced-analytics"

IF FILE EXISTS tool_needed + ".bas" THEN
    USE TOOL tool_needed
    TALK "Analytics tool loaded"
ELSE
    TALK "Advanced features not available"
END IF

Tool Definition Format

Tools are defined as BASIC scripts with PARAM declarations:

' weather.bas
PARAM location AS string LIKE "Tokyo" DESCRIPTION "City name"
DESCRIPTION "Get current weather for a location"

' Tool logic here
temp = GET_TEMPERATURE(location)
conditions = GET_CONDITIONS(location)
result = location + ": " + temp + "°, " + conditions
RETURN result

Notes

  • Tools remain active for the entire session
  • Use CLEAR TOOLS to remove all loaded tools
  • Tool names should be descriptive
  • Tools are loaded from the .gbdialog/tools/ directory
  • Maximum 10 tools can be active simultaneously