{"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-2604-13592","title":"Foresight Optimization for Strategic Reasoning in Large Language Models","arxiv_id":"2604.13592","date":"2026-04-15","proceeding":null,"authors":["Jiashuo Wang","Jiawen Duan","Jian Wang","Kaitao Song","Chunpu Xu","Johnny K. W. Ho","Fenggang Yu","Wenjie Li","Johan F. Hoorn"],"abstract":"Reasoning capabilities in large language models (LLMs) have generally advanced significantly. However, it is still challenging for existing reasoning-based LLMs to perform effective decision-making abilities in multi-agent environments, due to the absence of explicit foresight modeling. To this end, strategic reasoning, the most fundamental capability to anticipate the counterpart's behaviors and foresee its possible future actions, has been introduced to alleviate the above issues. Strategic reasoning is fundamental to effective decision-making in multi-agent environments, yet existing reasoning enhancement methods for LLMs do not explicitly capture its foresight nature. In this work, we introduce Foresight Policy Optimization (FoPO) to enhance strategic reasoning in LLMs, which integrates opponent modeling principles into policy optimization, thereby enabling explicit consideration of both self-interest and counterpart influence. Specifically, we construct two curated datasets, namely Cooperative RSA and Competitive Taboo, equipped with well-designed rules and moderate difficulty to facilitate a systematic investigation of FoPO in a self-play framework. Our experiments demonstrate that FoPO significantly enhances strategic reasoning across LLMs of varying sizes and origins. Moreover, models trained with FoPO exhibit strong generalization to out-of-domain strategic scenarios, substantially outperforming standard LLM reasoning optimization baselines.","url_abs":"https://arxiv.org/abs/2604.13592","url_pdf":"https://arxiv.org/pdf/2604.13592","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":{"syntology_url":"https://syntology.ai/paper/2604.13592","atlas_url":"https://app.syntology.ai/?focus=2604.13592","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2604.13592"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/wangjs9/ForesightOptim","reach":null}],"summary":{"ran":9,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":11,"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":11,"samples":[{"code_sha256_prefix":"f2cc0ef29f0975e0","entry":"add_mc_return","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"environment/env_utils.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/environment/env_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f2cc0ef29f0975e0"}},{"code_sha256_prefix":"48cfc63582411f6f","entry":"add_trajectory_reward","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"environment/env_utils.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/environment/env_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"48cfc63582411f6f"}},{"code_sha256_prefix":"9dbcd02c74f79e6b","entry":"broadcast_list","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"utils.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9dbcd02c74f79e6b"}},{"code_sha256_prefix":"0066c6e100759218","entry":"convert_to_numpy","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"environment/env_utils.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/environment/env_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0066c6e100759218"}},{"code_sha256_prefix":"e154ffa50c4434d1","entry":"dict_mean","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"agent_trainers/trainers.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/agent_trainers/trainers.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e154ffa50c4434d1"}},{"code_sha256_prefix":"a28f0703801c60e0","entry":"get_response","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"competitive_taboo/dialogue_refinement.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/competitive_taboo/dialogue_refinement.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a28f0703801c60e0"}},{"code_sha256_prefix":"6c4b26646d7414d5","entry":"read_from_dir","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"cooperative_rsa/imitation_preparation.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/cooperative_rsa/imitation_preparation.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6c4b26646d7414d5"}},{"code_sha256_prefix":"88d37ef54976663d","entry":"read_json_or_jsonl_data","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"utils.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"88d37ef54976663d"}},{"code_sha256_prefix":"ee0476417c1be237","entry":"refine_prediction","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"competitive_taboo/dialogue_refinement.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/competitive_taboo/dialogue_refinement.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ee0476417c1be237"}},{"code_sha256_prefix":"2ccdc3e026353dfb","entry":"set_special_tokens","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"utils.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2ccdc3e026353dfb"}},{"code_sha256_prefix":"fb65d5b43729b7ec","entry":"get_batch_responses","repo":"wangjs9/ForesightOptim","repo_kind":"found_in_text","path":"competitive_taboo/dialogue_refinement.py","file_url":"https://github.com/wangjs9/ForesightOptim/blob/HEAD/competitive_taboo/dialogue_refinement.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fb65d5b43729b7ec"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,885 of the 9,623 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9623,"papers_checked":6885},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}