# ToolCalling: A Retrieval-Based Plug-In for LLMs ## Motivation Use retrieval and inherent topology to enhance the tool calling ability of LLM. ## Scenario The agent provides a set of APIs for users to offer various services. Each API has $<A_i, Des_i>$, where $Des_i$ is the description of the API naming $A_i$. A user will query to the agent for services with $T_u$, where $T_u$ is the query text. Each session will have multiple rounds of dialogue, one round of dialogue consists of a user query and an API call. The multiple rounds within each session may be self-related or independent. ## Problems 1. Tool Call Awareness 2. **One-Step Query** - Similar tool selection. - Distinguishment finetune - Similar tool groups detection. - Improve distinguishment among similar tools by contrastive learning, training with reweighting, etc. 3. **Multi-Step Queries** (Explicit) - Non-Markovian. - Decoupled memory bank for history remembering. - Inherent topology. - Pre-planing: let LLMs first give an overall plan. - Path/Graph construction. 4. Hybrid Query. (Implicit) - Task Decomposition ## Methodology 1. Textual Embedding. - BGE https://huggingface.co/BAAI/bge-large-zh-v1.5 2. Q-A pair knowledge base. 3. Distinguishment pretrain. 4. Decoupled memory bank for multi-step queries. ![Uploading file..._x30uu1tg5]() ## Dataset & Related Work 1. https://github.com/HowieHwong/MetaTool 2. https://github.com/JohnnyPeng18/APIBench 3. https://arxiv.org/abs/2304.08244