degree of ﬂexibility for the input and output of these program-based tools. Program-based tools are software
tools primarily designed for use through programming interfaces rather than visual interfaces. They can take
various forms, including programming libraries, software development kits (SDKs), and even neural network-
based tools. These tools are typically used by developers or technical users who possess a deeper understanding
of the underlying system or technology, with which the users could complete complex software applications.
Tool Learning with Foundation Models