Skip to main content

chatbot_tool_registry

Macro chatbot_tool_registry 

Source
macro_rules! chatbot_tool_registry {
    (
        server_tools: [$($server_tool:ty),* $(,)?],
        client_tools: [$($client_tool:ty),* $(,)?],
        action_tools: [$($action_tool:ty),* $(,)?] $(,)?
    ) => { ... };
}
Expand description

Defines the chatbot tools the LLM can call, split by who produces the output of a call.

Both registries are generated from this one list: the definitions offered to the LLM, the dispatcher that runs a server tool, the check that decides a call suspends the turn instead, what a tool requires of its caller and the rendering of a client’s answer. A tool therefore cannot be advertised without being callable, and a tool’s kind is stated in one place rather than implied by which list it was pasted into.