{"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/kbqa-o1-agentic-knowledge-base-question","title":"KBQA-o1: Agentic Knowledge Base Question Answering with Monte Carlo Tree Search","arxiv_id":"2501.18922","date":"2025-01-31","proceeding":null,"authors":["Haoran Luo","Haihong E","Yikai Guo","Qika Lin","Xiaobao Wu","Xinyu Mu","Wenhao Liu","Meina Song","Yifan Zhu","Luu Anh Tuan"],"abstract":"Knowledge Base Question Answering (KBQA) aims to answer natural language questions with a large-scale structured knowledge base (KB). Despite advancements with large language models (LLMs), KBQA still faces challenges in weak KB awareness, imbalance between effectiveness and efficiency, and high reliance on annotated data. To address these challenges, we propose KBQA-o1, a novel agentic KBQA method with Monte Carlo Tree Search (MCTS). It introduces a ReAct-based agent process for stepwise logical form generation with KB environment exploration. Moreover, it employs MCTS, a heuristic search method driven by policy and reward models, to balance agentic exploration's performance and search space. With heuristic exploration, KBQA-o1 generates high-quality annotations for further improvement by incremental fine-tuning. Experimental results show that KBQA-o1 outperforms previous low-resource KBQA methods with limited annotated data, boosting Llama-3.1-8B model's GrailQA F1 performance to 78.5% compared to 48.5% of the previous sota method with GPT-3.5-turbo. Our code is publicly available.","url_abs":"https://arxiv.org/abs/2501.18922v4","url_pdf":"https://arxiv.org/pdf/2501.18922v4.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":"kbqa-o1-agentic-knowledge-base-question","repo_url":"https://github.com/lhrlab/kbqa-o1","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"heuristic-search","task_name":"Heuristic Search"},{"task_slug":"knowledge-base-question-answering","task_name":"Knowledge Base Question Answering"},{"task_slug":"question-answering","task_name":"Question Answering"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"base","method_name":"BASE"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-3","method_name":"GPT-3"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2501.18922","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.18922"}},"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/lhrlab/kbqa-o1","reach":null}],"summary":{"ran":2,"unverified":6},"by_repo_kind":{"official":{"samples":8,"ran":2,"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":"e9dbab5ed596fade","entry":"MCTSAggregation","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"e9dbab5ed596fade"}},{"code_sha256_prefix":"c1fa3356de702795","entry":"MCTSResult","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"c1fa3356de702795"}},{"code_sha256_prefix":"22d79f2a24676d64","entry":"AlgorithmOutput","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"22d79f2a24676d64"}},{"code_sha256_prefix":"ef265cb7e70e7f95","entry":"MCTS","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"ef265cb7e70e7f95"}},{"code_sha256_prefix":"ad93a0a3f26917e5","entry":"MCTSNode","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"ad93a0a3f26917e5"}},{"code_sha256_prefix":"0929e8f968cb8553","entry":"SearchAlgorithm","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"0929e8f968cb8553"}},{"code_sha256_prefix":"8090ffd5c2edd546","entry":"SearchConfig","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"8090ffd5c2edd546"}},{"code_sha256_prefix":"a3c3ee14a429c8f2","entry":"WorldModel","repo":"lhrlab/kbqa-o1","repo_kind":"official","path":"reasoners/algorithm/mcts.py","file_url":"https://github.com/lhrlab/kbqa-o1/blob/HEAD/reasoners/algorithm/mcts.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":"a3c3ee14a429c8f2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}