{"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-2609-15096","title":"OpenAI4S: Code as Action, Science as Sessions","arxiv_id":"2609.15096","date":"2026-09-14","proceeding":null,"authors":["Gongbo Zhang","Hao Li","Yu Wang","Mujie Lin","Liuzhenghao Lv","Yicheng Mao","Yimi Wang","Jun Zhu","Minhan Tang","Zhengxiang Jiang","Yusong Wang","Jiayu Yao","Kunpeng Ning","Dawei Pang","Yonghong Tian","OpenAI4S Community","Yuyang Liu","Li Yuan"],"abstract":"AI co-scientists could accelerate computational research, but over a long-running study the workflow also has to stay inspectable, resumable and reproducible, which requires persistent computational state and provenance. Here we present OpenAI4S, an open-source scientific research agent built around the principle of \\emph{Code as Action, Science as Sessions}. OpenAI4S combines a persistent computing runtime with research-session management: orchestration is handled through structured tool calls, while scientific actions are represented as complete code cells executed in persistent Python and R kernels. An append-only Action Ledger, per-cell execution records, versioned artifacts, environment records, and workspace checkpoints preserve how results were produced and support session recovery, branching, and extension. Configurable sandboxing, permission controls, and code and trajectory screening provide complementary safeguards. We evaluate OpenAI4S on 36 research scenarios spanning retrosynthesis, molecular dynamics, protein binder design, protein mutation, catalyst screening, and mineral spectroscopy, measuring scientific task accuracy, workflow completeness, and reproducibility of the resulting repositories. OpenAI4S achieves an overall score of 7.83, compared with 5.7--6.4 for a general-purpose coding harness evaluated with three frontier models, with the largest gains on long-horizon and computation-intensive workflows. These results suggest that integrating persistent execution with session-level provenance can improve the reliability of AI-assisted scientific workflows. Environment specification and full rerunnability remain weak for every evaluated system, ours included, so reproducibility is still an open problem for scientific agents. The system is available under the MIT license at \\href{https://github.com/PKU-YuanGroup/OpenAI4S}{github.com/PKU-YuanGroup/OpenAI4S}.","url_abs":"https://arxiv.org/abs/2609.15096","url_pdf":"https://arxiv.org/pdf/2609.15096","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=2609.15096","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2609.15096"}},"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/PKU-YuanGroup/OpenAI4S","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":22},"by_repo_kind":{"found_in_text":{"samples":22,"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":"e146b1a35c3d3716","entry":"archive_safe","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/diagnostics.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/diagnostics.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":"e146b1a35c3d3716"}},{"code_sha256_prefix":"f00f0744ac7bacb5","entry":"ark_key_for_datapro","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/datapro.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/datapro.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":"f00f0744ac7bacb5"}},{"code_sha256_prefix":"40effed9db720d41","entry":"command_digest","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/bash_capability.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/bash_capability.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":"40effed9db720d41"}},{"code_sha256_prefix":"b19796d5e443973f","entry":"command_preserves_failure_status","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/bash_capability.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/bash_capability.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":"b19796d5e443973f"}},{"code_sha256_prefix":"4db05fcee1cdd801","entry":"domain_in_allowlist","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/egress.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/egress.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":"4db05fcee1cdd801"}},{"code_sha256_prefix":"7c573daf0485f14c","entry":"domain_of","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/egress.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/egress.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":"7c573daf0485f14c"}},{"code_sha256_prefix":"a34f53a27032acd4","entry":"endpoint_credentials","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/endpoint_identity.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/endpoint_identity.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":"a34f53a27032acd4"}},{"code_sha256_prefix":"e0a4fa6a29c527b3","entry":"endpoint_sha256","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/endpoint_identity.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/endpoint_identity.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":"e0a4fa6a29c527b3"}},{"code_sha256_prefix":"0b3c67c7f721ab5e","entry":"explicit_agent_plan_key","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/datapro.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/datapro.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":"0b3c67c7f721ab5e"}},{"code_sha256_prefix":"33993b8a5e9cd97a","entry":"grant_domain","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/egress.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/egress.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":"33993b8a5e9cd97a"}},{"code_sha256_prefix":"03fbccf99b299a1c","entry":"is_placeholder_api_key","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/config.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/config.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":"03fbccf99b299a1c"}},{"code_sha256_prefix":"5c3abec8b10a095a","entry":"is_volcengine_endpoint","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/datapro.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/datapro.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":"5c3abec8b10a095a"}},{"code_sha256_prefix":"795385e37efad60b","entry":"load_workflow","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/benchmark/model.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/benchmark/model.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":"795385e37efad60b"}},{"code_sha256_prefix":"9dcd299f45aec15b","entry":"load_workflows","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/benchmark/model.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/benchmark/model.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":"9dcd299f45aec15b"}},{"code_sha256_prefix":"18ac9304b241a007","entry":"normalize_endpoint","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/endpoint_identity.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/endpoint_identity.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":"18ac9304b241a007"}},{"code_sha256_prefix":"2c05ecfa1e0da862","entry":"passive_security_posture","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/diagnostics.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/diagnostics.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":"2c05ecfa1e0da862"}},{"code_sha256_prefix":"73feb4f78216110b","entry":"provider_env_api_key","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/config.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/config.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":"73feb4f78216110b"}},{"code_sha256_prefix":"2babc7fbd3055d79","entry":"report","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/doctor.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/doctor.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":"2babc7fbd3055d79"}},{"code_sha256_prefix":"45fb22598ab27e2d","entry":"run_checks","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/doctor.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/doctor.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":"45fb22598ab27e2d"}},{"code_sha256_prefix":"512548d1d646c794","entry":"security_posture","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/diagnostics.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/diagnostics.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":"512548d1d646c794"}},{"code_sha256_prefix":"9c9d1ab67bc8b503","entry":"trusted_snapshot_roots","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/artifact_restore.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/artifact_restore.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":"9c9d1ab67bc8b503"}},{"code_sha256_prefix":"f6f92026436a5e2e","entry":"unopened_database","repo":"PKU-YuanGroup/OpenAI4S","repo_kind":"found_in_text","path":"openai4s/doctor.py","file_url":"https://github.com/PKU-YuanGroup/OpenAI4S/blob/HEAD/openai4s/doctor.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":"f6f92026436a5e2e"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.AI","source":"arxiv_backlog_21d_20260915.json"},"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,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"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}}}