{"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/arxiv-2605-29796","title":"SAAS: Self-Aware Reinforcement Learning for Over-Search Mitigation in Agentic Search","arxiv_id":"2605.29796","date":"2026-05-28","proceeding":null,"authors":["Yunbo Tang","Chengyi Yang","Shiyu Liu","Zhishang Xiang","Zerui Chen","Qinggang Zhang","Jinsong Su"],"abstract":"Agentic search enables LLMs to solve complex multi-hop questions through iterative reasoning and external search. Despite the effectiveness, these systems often suffer from a critical limitation in practice: agents fail to recognize their own knowledge boundaries, blindly triggering searches when internal knowledge suffices and failing to terminate search even when adequate evidence has been collected. The lack of self-awareness leads to severe \\textbf{over-search}, incurring substantial inference latency and prohibitive computational cost. To this end, we propose SAAS, a novel RL framework designed to cultivate dynamic self-awareness that precisely regulates search behavior without compromising accuracy. SAAS introduces three key components: (i) a search boundary modeling mechanism, which identifies the search boundary under the evolving policy by contrasting search-disabled and search-enabled rollouts; (ii) a boundary-aware reward module, which translates this boundary awareness into trajectory-level penalties, suppressing unnecessary and redundant searches; and (iii) a stage-wise optimization strategy, which leverages a sequential curriculum to prioritize reasoning over search regularization, thereby avoiding reward hacking. Extensive experiments demonstrate that SAAS substantially reduces over-search, while maintaining accuracy. Our code and implementation details are released at https://github.com/XMUDeepLIT/SAAS.","url_abs":"https://arxiv.org/abs/2605.29796","url_pdf":"https://arxiv.org/pdf/2605.29796","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2605.29796","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2605.29796"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/XMUDeepLIT/SAAS","reach":null}],"summary":{"ran_draft_wrong":7,"ran_fixture":2,"unverified":14},"by_repo_kind":{"found_in_text":{"samples":23,"ran":9,"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":"492eff273709322a","entry":"_passages2string","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"492eff273709322a"}},{"code_sha256_prefix":"a110cfd0b1824023","entry":"_post","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a110cfd0b1824023"}},{"code_sha256_prefix":"18bb8eabb68c7581","entry":"execute_predictions","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"DEP_MISSING","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18bb8eabb68c7581"}},{"code_sha256_prefix":"4269342bd0c429b8","entry":"get","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4269342bd0c429b8"}},{"code_sha256_prefix":"5d7f01a5fcdb798b","entry":"load_function","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5d7f01a5fcdb798b"}},{"code_sha256_prefix":"c3a6e395cde1e5bd","entry":"post","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c3a6e395cde1e5bd"}},{"code_sha256_prefix":"275c53a8510f1e73","entry":"postprocess_predictions","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"275c53a8510f1e73"}},{"code_sha256_prefix":"e35523b4278c80c0","entry":"postprocess_responses","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e35523b4278c80c0"}},{"code_sha256_prefix":"e28d00233351c9b2","entry":"search","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"DEP_MISSING","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e28d00233351c9b2"}},{"code_sha256_prefix":"b1e2f987e08a3e61","entry":"GenerateState","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"b1e2f987e08a3e61"}},{"code_sha256_prefix":"53fae9c234b0bc79","entry":"Sample","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"53fae9c234b0bc79"}},{"code_sha256_prefix":"c171efa27a3ab914","entry":"SingletonMeta","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"c171efa27a3ab914"}},{"code_sha256_prefix":"896ec3c354b24dc3","entry":"_get_shared_session","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"896ec3c354b24dc3"}},{"code_sha256_prefix":"d54439672fe10666","entry":"_next_actor","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"d54439672fe10666"}},{"code_sha256_prefix":"f0b5b37e8f31ad90","entry":"async_rm","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"f0b5b37e8f31ad90"}},{"code_sha256_prefix":"e8218e5bf6119025","entry":"batched_async_rm","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"e8218e5bf6119025"}},{"code_sha256_prefix":"12cd7a99f12351a7","entry":"generate","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"12cd7a99f12351a7"}},{"code_sha256_prefix":"7139798a68eba73f","entry":"generate_and_rm","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"7139798a68eba73f"}},{"code_sha256_prefix":"65092fc0a8248c92","entry":"generate_and_rm_group","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"65092fc0a8248c92"}},{"code_sha256_prefix":"9f067ccfb9cf692d","entry":"get_deepscaler_rule_based_reward","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"9f067ccfb9cf692d"}},{"code_sha256_prefix":"25c82c087e1fc990","entry":"load_processor","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"25c82c087e1fc990"}},{"code_sha256_prefix":"39d6a0aa1eaffc16","entry":"load_tokenizer","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"39d6a0aa1eaffc16"}},{"code_sha256_prefix":"59b8e09278597982","entry":"remote_rm","repo":"XMUDeepLIT/SAAS","repo_kind":"found_in_text","path":"search/generate_with_search.py","file_url":"https://github.com/XMUDeepLIT/SAAS/blob/HEAD/search/generate_with_search.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":"59b8e09278597982"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}