{"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-04094","title":"DRACO: Fine-Grained Credit Assignment with Dynamic Rubrics for Long-Horizon Agent Training","arxiv_id":"2609.04094","date":"2026-09-03","proceeding":null,"authors":["Shubham Gandhi","Saurabh Goyal","Kiran Kate","Yara Rizk"],"abstract":"Reinforcement Learning from Verifiable Rewards works well when a task has a programmatic checker, but most long-horizon agent domains have none. We work in the outcome-blind setting, where ground-truth success signals are not available. Multi-criteria rubrics are a popular way to supply such a reward; they are scored once per trajectory, but a single scalar is a poor signal across tens of steps. We propose DRACO: Distributing Rubric-based Advantage for Credit Optimization. It generates rubrics dynamically during training to track the policy's evolving capability, scores those rubrics once per completed trajectory, and redistributes that judgment over the steps responsible for annotated rubrics to produce differentiated per-step advantages in GRPO. The redistribution is closed-form and does not introduce any trained attribution module. On AppWorld, DRACO gains 15.9 points over the base model and 5.3 points over GRPO trained with a sparse ground-truth reward, despite not using any verifiers itself. On out-of-domain Tau-Bench, it gains 5.3 points over the base model even without a frontier judge, beating both ground-truth-reward training and other rubric-based training settings. The code for DRACO is available at https://github.com/IBM/draco.","url_abs":"https://arxiv.org/abs/2609.04094","url_pdf":"https://arxiv.org/pdf/2609.04094","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.04094","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2609.04094"}},"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/IBM/draco","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":12},"by_repo_kind":{"found_in_text":{"samples":12,"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":"e24b95859b343cd4","entry":"apply_credit_masking_to_advantages","repo":"IBM/draco","repo_kind":"found_in_text","path":"training/src/verl_appworld/credit_advantage_patch.py","file_url":"https://github.com/IBM/draco/blob/HEAD/training/src/verl_appworld/credit_advantage_patch.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":"e24b95859b343cd4"}},{"code_sha256_prefix":"5ff365a40ae6bff8","entry":"classify_termination","repo":"IBM/draco","repo_kind":"found_in_text","path":"training/src/verl_appworld/agent_loop.py","file_url":"https://github.com/IBM/draco/blob/HEAD/training/src/verl_appworld/agent_loop.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":"5ff365a40ae6bff8"}},{"code_sha256_prefix":"6401106acc05a16e","entry":"compute_credit_assignment","repo":"IBM/draco","repo_kind":"found_in_text","path":"training/src/verl_appworld/credit_assignment.py","file_url":"https://github.com/IBM/draco/blob/HEAD/training/src/verl_appworld/credit_assignment.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":"6401106acc05a16e"}},{"code_sha256_prefix":"e21951dc6dc00d33","entry":"compute_step_quality_scores","repo":"IBM/draco","repo_kind":"found_in_text","path":"training/src/verl_appworld/credit_assignment.py","file_url":"https://github.com/IBM/draco/blob/HEAD/training/src/verl_appworld/credit_assignment.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":"e21951dc6dc00d33"}},{"code_sha256_prefix":"98be736bcc80190a","entry":"cos_cat","repo":"IBM/draco","repo_kind":"found_in_text","path":"evals/tau-bench/scoring/score_runs.py","file_url":"https://github.com/IBM/draco/blob/HEAD/evals/tau-bench/scoring/score_runs.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":"98be736bcc80190a"}},{"code_sha256_prefix":"02adb23008fc79ca","entry":"format_credit_assignment_prompt","repo":"IBM/draco","repo_kind":"found_in_text","path":"training/src/verl_appworld/credit_assignment.py","file_url":"https://github.com/IBM/draco/blob/HEAD/training/src/verl_appworld/credit_assignment.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":"02adb23008fc79ca"}},{"code_sha256_prefix":"c444b2dc0758d1bf","entry":"format_system_prompt","repo":"IBM/draco","repo_kind":"found_in_text","path":"training/src/verl_appworld/prompts.py","file_url":"https://github.com/IBM/draco/blob/HEAD/training/src/verl_appworld/prompts.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":"c444b2dc0758d1bf"}},{"code_sha256_prefix":"f8b09014c8e5645a","entry":"get_json","repo":"IBM/draco","repo_kind":"found_in_text","path":"evals/appworld/scoring/score_runs.py","file_url":"https://github.com/IBM/draco/blob/HEAD/evals/appworld/scoring/score_runs.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":"f8b09014c8e5645a"}},{"code_sha256_prefix":"13dedb566b256f1d","entry":"get_text","repo":"IBM/draco","repo_kind":"found_in_text","path":"evals/appworld/scoring/score_runs.py","file_url":"https://github.com/IBM/draco/blob/HEAD/evals/appworld/scoring/score_runs.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":"13dedb566b256f1d"}},{"code_sha256_prefix":"68561cf7f6531c1a","entry":"load","repo":"IBM/draco","repo_kind":"found_in_text","path":"evals/tau-bench/scoring/score_runs.py","file_url":"https://github.com/IBM/draco/blob/HEAD/evals/tau-bench/scoring/score_runs.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":"68561cf7f6531c1a"}},{"code_sha256_prefix":"f71d2ed346486dd4","entry":"make_client","repo":"IBM/draco","repo_kind":"found_in_text","path":"evals/appworld/scoring/score_runs.py","file_url":"https://github.com/IBM/draco/blob/HEAD/evals/appworld/scoring/score_runs.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":"f71d2ed346486dd4"}},{"code_sha256_prefix":"218417ac6290c6ca","entry":"rep_cost","repo":"IBM/draco","repo_kind":"found_in_text","path":"evals/tau-bench/scoring/score_runs.py","file_url":"https://github.com/IBM/draco/blob/HEAD/evals/tau-bench/scoring/score_runs.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":"218417ac6290c6ca"}}]},"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_daily_20260904.json"},"syntology_extracted_results":null}