EASYTOOL : Enhancing LLM -based Agents with Concise Tool Instruction (2025)

Abstract: There has been a rising interest in utilizing tools in applications of autonomous agents based on large language models (LLMs) to address intricate real-world tasks. To develop LLMbased agents, it usually requires LLMs to understand many tool functions from different tool documentations. However, these documentations could be diverse, redundant, or incomplete, which immensely affects the capability of LLMs in using tools. Current LLMs exhibit satisfactory instruction-following capabilities based on instruction-following fine-tuning process. Motivated by this, in this paper, we introduce EASYTOOL, a framework transforming diverse and lengthy tool documentation into a unified and concise tool instruction to fully leverage instruction-following capabilities of LLMs for easier tool usage. EASYTOOL purifies essential information from extensive tool documentation of different sources, and elaborates a unified interface (i.e., tool instruction) to offer standardized tool descriptions and functionalities for LLM-based agents. Extensive experiments on multiple different tasks demonstrate that EASYTOOL can significantly reduce token consumption and improve the performance of LLM-based agents on tool utilization in real-world scenarios. Our code is available in supplemental materials. Our code is available at https://github.com/microsoft/JARVIS/tree/main/easytool.

## introduction large language models (llms) @xcite @xcite have recently ignited the spark of llm-based autonomous agents @xcite , which aim to interact with the real-world scenarios and address complex user requests. a { "name": "with rt ratings", "description": "returns the list with the rotten tomatoes rating included", "required_parameters": [ { "name": "with_rt_ratings", "type": "boolean", "description": "", "default": "false" } ], "optional_parameters": [], "example": { "scenario": "if you want to get the list of movies with rotten tomatoes ratings included", "parameters": { "with_rt_ratings": true } } } scenario: if you want to get the list of movies with rotten tomatoes ratings included. parameters: with_rt_ratings: true w "paths": { "/movie/{movie_id}/ keywords": { "parameters": [ {"name": "movie_id", "in": "path", "required": true, ## related work therefore, there has arisen another branch @xcite @xcite that directly used llms as the controller and feed tool descriptions into prompts to instruct llms to understand and call tools. these methods do not need extra training and can use external tools in a plug-and-play paradigm, but they are limited to context sizes and the quality of tool documentation. as a result, these methods will lead to some failed or incorrect tool invocation @xcite . some work @xcite attempts to revise tool documentation to support a zero-shot tool utilization, but some inherent issues of tool documentation in real-world scenarios still hinder the effective and efficient usage of many tools. besides, different from naive prompt compression @xcite , which is only suitable to compress plain prompt, the streamlined information from tool documentation should satisfy specific format and need to confirm the accuracy of tool invocation when processing user requests. ## method as aforementioned, polishing, streamlining, and enhancing the tool documentation is important to improve tool utilization in llm-based agents. currently, most of llms @xcite @xcite ) exhibit satisfactory instrution-following capability due to instruction-following fine-tuning process @xcite . motivated by this, we introduce easytool, a simple method to condense tool documentation into more concise and effective tool instructions to improve llm-based agents in tool utilization. the overall workflow is illustrated in figure 1 . easytool comprises two stages: the first stage is to re-organize the original tool documentation by eliminating the irrelevant information and only summarizing the multiple builtin function description of each tool ( § 4.1). for each tool, we further design a functional guideline instruction for llms and enable llms to further refine the tool documentation by providing parameters of each tool and simultaneously the examples to instruct llms for usage ( § 4.2). ## experiment in this section, we adopt easytool to three distinct tool-use applications to show that easytool can help llm-based agents better answer realworld user requests through tool usage ( § 5.1), find correct tool solution paths ( § 5.2), and improve their tool utilization capabilities on complex math problems ( § 5.3). ## conclusion in this paper, we introduce easytool, an easy but effective method to enhance the tool utilization capabilities of llm-based agents through the simplification and refinement of tool documentation into a clear, structured and practical tool instruction. our comprehensive experiments demonstrate that easytool can effectively enhance performance in different real-world applications. we also expect easytool can facilitate the community to better develop efficient tool utilization.