{"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/can-graph-learning-improve-task-planning","title":"Can Graph Learning Improve Planning in LLM-based Agents?","arxiv_id":"2405.19119","date":"2024-05-29","proceeding":null,"authors":["Xixi Wu","Yifei Shen","Caihua Shan","Kaitao Song","Siwei Wang","Bohang Zhang","Jiarui Feng","Hong Cheng","Wei Chen","Yun Xiong","Dongsheng Li"],"abstract":"Task planning in language agents is emerging as an important research topic alongside the development of large language models (LLMs). It aims to break down complex user requests in natural language into solvable sub-tasks, thereby fulfilling the original requests. In this context, the sub-tasks can be naturally viewed as a graph, where the nodes represent the sub-tasks, and the edges denote the dependencies among them. Consequently, task planning is a decision-making problem that involves selecting a connected path or subgraph within the corresponding graph and invoking it. In this paper, we explore graph learning-based methods for task planning, a direction that is orthogonal to the prevalent focus on prompt design. Our interest in graph learning stems from a theoretical discovery: the biases of attention and auto-regressive loss impede LLMs' ability to effectively navigate decision-making on graphs, which is adeptly addressed by graph neural networks (GNNs). This theoretical insight led us to integrate GNNs with LLMs to enhance overall performance. Extensive experiments demonstrate that GNN-based methods surpass existing solutions even without training, and minimal training can further enhance their performance. The performance gain increases with a larger task graph size.","url_abs":"https://arxiv.org/abs/2405.19119v3","url_pdf":"https://arxiv.org/pdf/2405.19119v3.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":"can-graph-learning-improve-task-planning","repo_url":"https://github.com/wxxshirley/gnn4taskplan","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decision-making","task_name":"Decision Making"},{"task_slug":"graph-learning","task_name":"Graph Learning"},{"task_slug":"navigate","task_name":"Navigate"},{"task_slug":"prompt-engineering","task_name":"Prompt Engineering"},{"task_slug":"task-planning","task_name":"Task Planning"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2405.19119","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.19119"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wxxshirley/gnn4taskplan","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":10,"unverified":3},"by_repo_kind":{"official":{"samples":13,"ran":10,"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":"1ceb9aa1003a4591","entry":"batch_f1_score","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"evaluate.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1ceb9aa1003a4591"}},{"code_sha256_prefix":"1c4ed1924a7cfefe","entry":"batch_task_accuracy","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"evaluate.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c4ed1924a7cfefe"}},{"code_sha256_prefix":"dd424c203b1493ae","entry":"build_conv","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"GraphToken/gnn.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/GraphToken/gnn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dd424c203b1493ae"}},{"code_sha256_prefix":"8908fcb355c0a7cb","entry":"f1_score","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"evaluate.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8908fcb355c0a7cb"}},{"code_sha256_prefix":"fad6e5fad73b7b31","entry":"get_response","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"trainfree/direct.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/trainfree/direct.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fad6e5fad73b7b31"}},{"code_sha256_prefix":"d85fa758ae62b493","entry":"get_response","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"trainfree/direct_diffprompt.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/trainfree/direct_diffprompt.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d85fa758ae62b493"}},{"code_sha256_prefix":"9175392c007589aa","entry":"reformat_task_links","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"GraphToken/evaluate.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/GraphToken/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9175392c007589aa"}},{"code_sha256_prefix":"4572b440193929ed","entry":"reformat_task_nodes","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"GraphToken/evaluate.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/GraphToken/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4572b440193929ed"}},{"code_sha256_prefix":"9e57449c81b431e3","entry":"reload_best_model","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"GraphToken/ckpt.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/GraphToken/ckpt.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9e57449c81b431e3"}},{"code_sha256_prefix":"088b24f39a001de5","entry":"reload_model","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"GraphToken/ckpt.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/GraphToken/ckpt.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"088b24f39a001de5"}},{"code_sha256_prefix":"636c719f3c82b366","entry":"get_llm_response","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"trainfree/graphsearch.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/trainfree/graphsearch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"636c719f3c82b366"}},{"code_sha256_prefix":"16f90924fc5c87be","entry":"prompt_llm_candidate_tool_scores","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"trainfree/graphsearch.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/trainfree/graphsearch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"16f90924fc5c87be"}},{"code_sha256_prefix":"c4799a004d7c8690","entry":"prompt_llm_final_solutions","repo":"wxxshirley/gnn4taskplan","repo_kind":"official","path":"trainfree/graphsearch.py","file_url":"https://github.com/wxxshirley/gnn4taskplan/blob/HEAD/trainfree/graphsearch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c4799a004d7c8690"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}