{"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/inducing-programmatic-skills-for-agentic","title":"Inducing Programmatic Skills for Agentic Tasks","arxiv_id":"2504.06821","date":"2025-04-09","proceeding":null,"authors":["Zora Zhiruo Wang","Apurva Gandhi","Graham Neubig","Daniel Fried"],"abstract":"To succeed in common digital tasks such as web navigation, agents must carry out a variety of specialized tasks such as searching for products or planning a travel route. To tackle these tasks, agents can bootstrap themselves by learning task-specific skills online through interaction with the web environment. In this work, we demonstrate that programs are an effective representation for skills. We propose agent skill induction (ASI), which allows agents to adapt themselves by inducing, verifying, and utilizing program-based skills on the fly. We start with an evaluation on the WebArena agent benchmark and show that ASI outperforms the static baseline agent and its text-skill counterpart by 23.5% and 11.3% in success rate, mainly thanks to the programmatic verification guarantee during the induction phase. ASI also improves efficiency by reducing 10.7-15.3% of the steps over baselines, by composing primitive actions (e.g., click) into higher-level skills (e.g., search product). We then highlight the efficacy of ASI in remaining efficient and accurate under scaled-up web activities. Finally, we examine the generalizability of induced skills when transferring between websites, and find that ASI can effectively reuse common skills, while also updating incompatible skills to versatile website changes.","url_abs":"https://arxiv.org/abs/2504.06821v1","url_pdf":"https://arxiv.org/pdf/2504.06821v1.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":"inducing-programmatic-skills-for-agentic","repo_url":"https://github.com/zorazrw/agent-skill-induction","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[{"method_slug":null,"method_name":"Travel"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2504.06821","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2504.06821"}},"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/zorazrw/agent-skill-induction","reach":null}],"summary":{"ran_honours":2,"ran_draft_wrong":1,"ran_violates":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":4,"samples":[{"code_sha256_prefix":"040e3ce1520a6796","entry":"extract_code_pieces","repo":"zorazrw/agent-skill-induction","repo_kind":"official","path":"asi/autoeval/evaluate_trajectory.py","file_url":"https://github.com/zorazrw/agent-skill-induction/blob/HEAD/asi/autoeval/evaluate_trajectory.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"040e3ce1520a6796"}},{"code_sha256_prefix":"3436fa0437b7a6a9","entry":"load_blocks","repo":"zorazrw/agent-skill-induction","repo_kind":"official","path":"asi/autoeval/evaluate_trajectory.py","file_url":"https://github.com/zorazrw/agent-skill-induction/blob/HEAD/asi/autoeval/evaluate_trajectory.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3436fa0437b7a6a9"}},{"code_sha256_prefix":"6ca48439099a9178","entry":"parse_task_ids","repo":"zorazrw/agent-skill-induction","repo_kind":"official","path":"asi/run_online.py","file_url":"https://github.com/zorazrw/agent-skill-induction/blob/HEAD/asi/run_online.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":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6ca48439099a9178"}},{"code_sha256_prefix":"602db8b58e025649","entry":"remove_invalid_steps","repo":"zorazrw/agent-skill-induction","repo_kind":"official","path":"asi/autoeval/evaluate_trajectory.py","file_url":"https://github.com/zorazrw/agent-skill-induction/blob/HEAD/asi/autoeval/evaluate_trajectory.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"CC-BY-SA-4.0","inline_ok":false,"mcp_get_code":{"code_sha256":"602db8b58e025649"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}