EMNLP2025
AskToAct: Enhancing LLMs Tool Use via Self-Correcting Clarification
Xuan Zhang, Yongliang Shen, Zhe Zheng, Linjuan Wu, Wenqi Zhang, Yuchen Yan, Qiuying Peng, Jun Wang, Weiming Lu
摘要
Large language models (LLMs) have demonstrated remarkable capabilities in tool learning. In real-world scenarios, user queries are often ambiguous and incomplete, requiring effective clarification. However, existing interactive clarification approaches face two critical limitations: reliance on manually constructed datasets, which inherently constrains training data scale and diversity, and lack of error correction mechanisms during multiturn clarification, leading to error accumulation that compromises both accuracy and efficiency. We present ASKTOACT, which addresses these challenges by exploiting the structural mapping between queries and their tool invocation solutions. Our key insight is that tool parameters naturally represent explicit user intents. By systematically removing key parameters from queries while retaining them as ground truth, we enable automated construction of high-quality training data. We further enhance model robustness through error-correction pairs and selective masking, enabling dynamic error detection during clarification interactions. Comprehensive experiments demonstrate that ASK-TOACT significantly outperforms existing approaches, achieving above 57% accuracy in recovering critical unspecified intents and enhancing clarification efficiency by an average of 10.46% while maintaining high accuracy in tool invocation. Our framework exhibits robust performance across different model architectures and successfully generalizes to entirely unseen APIs without additional training, achieving performance comparable to GPT-4o with substantially fewer computational resources. User: I want to order some food on Uber Eats to 123 Main St., and also need to book a ride to the same address. Assistant: The task can be decomposed into 2 steps for solving. Step 1: Order some food on Uber Eats to 123 Main St. using "order_food_delivery" API. Step 2: Book a ride to the same address using "order_taxi" API. The information I currently have is: In step 1, the parameter "food" for API "order_food_delivery" lacks a clear value, the parameter "platform" for API "order_food_delivery" has a value of "Uber Eats", the parameter "location" for API "order_food_delivery" has a value of "123 Main St.". In step 2, the parameter "platform" for API "order_taxi" lacks a clear value, the parameter "location" for API "order_taxi" has a value of "123 Main St.". Could you please specify what food you would like to order on Uber Eats? User: Sure! The answer is "fried chicken". Let me know if you have more questions! Assistant: Now I know that the parameter "food" for API "order_food_delivery" has a value of "fried chicken". Which ridesharing platform would you prefer to use for your ride? User: The answer is: Lyft. Assistant: Now I know that the parameter "platform" for API "order_taxi" has a value of "Lyft". I have all the information needed and can now call the relevant APIs to solve the task. The solution path is as follows: