{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/taps-tool-augmented-personalisation-via","title":"TAPS: Tool-Augmented Personalisation via Structured Tagging","arxiv_id":"2506.20409","date":"2025-06-25","proceeding":null,"authors":["Ekaterina Taktasheva","Jeff Dalton"],"abstract":"Recent advancements in tool-augmented large language models have enabled them to interact with external tools, enhancing their ability to perform complex user tasks. However, existing approaches overlook the role of personalisation in guiding tool use. This work investigates how user preferences can be effectively integrated into goal-oriented dialogue agents. Through extensive analysis, we identify key weaknesses in the ability of LLMs to personalise tool use. To this end, we introduce \\name, a novel solution that enhances personalised tool use by leveraging a structured tagging tool and an uncertainty-based tool detector. TAPS significantly improves the ability of LLMs to incorporate user preferences, achieving the new state-of-the-art for open source models on the NLSI task.","url_abs":"https://arxiv.org/abs/2506.20409v1","url_pdf":"https://arxiv.org/pdf/2506.20409v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"taps-tool-augmented-personalisation-via","repo_url":"https://github.com/grill-lab/taps","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2506.20409","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2506.20409"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/grill-lab/taps","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"05cd17b1f7b02c97","entry":"build_slot_value_pool","repo":"grill-lab/taps","repo_kind":"official","path":"src/experiments/tag_corruption.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/experiments/tag_corruption.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"05cd17b1f7b02c97"}},{"code_sha256_prefix":"77c8b8285a04fb29","entry":"choose_slot_name","repo":"grill-lab/taps","repo_kind":"official","path":"src/experiments/tag_corruption.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/experiments/tag_corruption.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"77c8b8285a04fb29"}},{"code_sha256_prefix":"51c7e6460c5e7bdb","entry":"convert_domain_kv_to_array","repo":"grill-lab/taps","repo_kind":"official","path":"src/evaluation/utils.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/evaluation/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"51c7e6460c5e7bdb"}},{"code_sha256_prefix":"bfbc9a4355190d6c","entry":"find_tags","repo":"grill-lab/taps","repo_kind":"official","path":"src/experiments/tag_corruption.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/experiments/tag_corruption.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bfbc9a4355190d6c"}},{"code_sha256_prefix":"8d9305c81f31fd67","entry":"get_selection_data","repo":"grill-lab/taps","repo_kind":"official","path":"src/evaluation/utils.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/evaluation/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8d9305c81f31fd67"}},{"code_sha256_prefix":"ab4aae7c7ead57d7","entry":"get_targets","repo":"grill-lab/taps","repo_kind":"official","path":"src/evaluation/utils.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/evaluation/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ab4aae7c7ead57d7"}},{"code_sha256_prefix":"3b1be99660cf75c6","entry":"match_args","repo":"grill-lab/taps","repo_kind":"official","path":"src/evaluation/tagger_utils.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/evaluation/tagger_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3b1be99660cf75c6"}},{"code_sha256_prefix":"9fa32a53680fc241","entry":"parse2python","repo":"grill-lab/taps","repo_kind":"official","path":"src/evaluation/tagger_utils.py","file_url":"https://github.com/grill-lab/taps/blob/HEAD/src/evaluation/tagger_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9fa32a53680fc241"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}