{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T01:40:06Z","timestamp":1750297206302,"version":"3.41.0"},"reference-count":7,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2025,2,28]],"date-time":"2025-02-28T00:00:00Z","timestamp":1740700800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2025,2,28]]},"abstract":"<jats:p>The principle of indirection can be applied to introduce a paradigm shift: replacing direct value manipulation with symbolic reasoning using named variables. This simple yet powerful trick directly resolves inconsistencies in tool usage and enables parameterization and abstraction of interactions. The transformation of function calls into reusable and interpretable frameworks elevates tool calling into a neuro-symbolic reasoning framework. This approach unlocks new possibilities for structured interaction and dynamic AI systems.<\/jats:p>","DOI":"10.1145\/3722544","type":"journal-article","created":{"date-parts":[[2025,4,5]],"date-time":"2025-04-05T22:18:27Z","timestamp":1743891507000},"page":"19-38","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["From Function Frustrations to Framework Flexibility"],"prefix":"10.1145","volume":"23","author":[{"given":"Erik","family":"Meijer","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,4,5]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Function calling. Hugging Face; https:\/\/huggingface.co\/docs\/hugs\/en\/guides\/function-calling."},{"key":"e_1_2_1_2_1","volume-title":"Gorilla: Large language model connected with massive APIs. arXiv:2305.15334v1","author":"Patil S. G.","year":"2023","unstructured":"Patil, S. G., Zhang, T., Wang, X., Gonzalez, J. E. 2023. Gorilla: Large language model connected with massive APIs. arXiv:2305.15334v1; https:\/\/arxiv.org\/abs\/2305.15334."},{"key":"e_1_2_1_3_1","unstructured":"Prompts. Model Context Protocol; https:\/\/modelcontextprotocol.io\/docs\/concepts\/prompts."},{"key":"e_1_2_1_4_1","unstructured":"Sreenivasan K. Chen J. Koppol P. Turok E. Foley-Cox B. Qureshi A. Havens S. 2024. Beyond the leaderboard: unpacking function calling evaluation. Databricks; https:\/\/www.databricks.com\/blog\/unpacking-function-calling-eval."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.18653\/v1\/2024.emnlp-industry.91"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289243"},{"key":"e_1_2_1_7_1","unstructured":"Zhong L. Du Z. Zhang X. Hu H. Tang J. 2025. ComplexFuncBench: exploring multi-step and constrained function calling under long-context scenario. https:\/\/arxiv.org\/abs\/2501.10132v1."}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3722544","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3722544","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T01:18:40Z","timestamp":1750295920000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3722544"}},"subtitle":["Fixing tool calls with indirection"],"short-title":[],"issued":{"date-parts":[[2025,2,28]]},"references-count":7,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2025,2,28]]}},"alternative-id":["10.1145\/3722544"],"URL":"https:\/\/doi.org\/10.1145\/3722544","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2025,2,28]]},"assertion":[{"value":"2025-04-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}