RLHarness: Co-evolving Procedural Skills with Reinforcement Learning for Long-horizon Multimodal Reasoning
Organizations: National Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, China · School of Intelligence Science and Technology, Nanjing University, Suzhou, China · Didichuxing Co. Ltd
Abstract
Multimodal reasoning requires models to preserve visual evidence through long decision chains while selecting appropriate procedures across diverse scenarios and rules. When learning is guided only by terminal verifiers, reinforcement learning (RL) reveals whether a final answer is correct but not how it should be produced. The policy must therefore discover reusable reasoning procedures while learning to execute them, creating a program cold-start problem. Skills can externalize successful procedures, reduce repeated exploration, and provide inspectable guidance. However, a fixed Skill Bank assumes that this guidance remains compatible with an evolving policy, while updating Skills alone can leave their triggers, execution protocols, and demonstrations stale or mutually inconsistent. We introduce RLHARNESS, which organizes Skills, selection and execution protocols, few-shot demonstrations, and task contracts into a unified, versioned Harness and alternates Harness evolution with policy learning. An Exploration-Distillation Harness builds the initial Harness and version-aligned verified traces for SFT and DAPO I. After the first RL block, a Post-RL Reconstruction Harness rebuilds Skills, protocols, and demonstrations from fresh success-failure rollouts, and DAPO II adapts the policy to the reconstructed program. RLHARNESS improves Accuracy from 16.25%/27.50% to 62.00%/50.00% on MetroMap/TravelMap and raises F1 score from 37.13%/45.50% to 65.81%/65.51% on Fee-VL/Cancel-VL. All four tasks achieve their best results only after reconstruction and DAPO II, showing that an evolving Harness complements RL by continually updating the external program that the policy learns to execute.
Figures & tables
| Stage / ablation | MetroMap-lite (Acc/%) | TravelMap-lite (Acc/%) | Fee-VL (F1-Score/%) | Cancel-VL (F1-Score/%) |
| Base | 16.25 | 27.50 | 37.13 | 45.50 |
| ED Init. | 24.50 +8.25 | 30.50 +3.00 | 38.83 +1.70 | 46.99 +1.49 |
| ED Explore | 31.50 +15.25 | 33.25 +5.75 | 40.43 +3.30 | 49.00 +3.50 |
| Selective Commit | 29.75 +13.50 | 32.25 +4.75 | 39.25 +2.12 | 47.75 +2.25 |
| Distillation | 37.50 +21.25 | 35.50 +8.00 | 47.43 +10.30 | 58.30 +12.80 |
| Skill-guided Trace | 29.75 +13.50 | 31.25 +3.75 | 42.57 +5.44 | 53.12 +7.62 |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Stratum | MetroMap-lite | TravelMap-lite | ||
| Train | Test | Train | Test | |
| E E | 455 | 133 | 471 | 110 |
| E M | 321 | 74 | 325 | 90 |
| E H | 97 | 17 | 50 | 16 |
| M E | 292 | 63 | 301 | 76 |
| M M | 313 | 84 | 380 | 78 |
| Data role | MetroMap-lite | TravelMap-lite | Fee-VL | Cancel-VL |
| Complete training pool | Train1600 | Train1600 | 7,337 training orders | 8,071 training orders |
| Harness-I exploration | Fixed 480 from RL1600 | Fixed 480 from RL1600 | Fixed 480 from RL1600 | Fixed 480 from RL1600 |
| SFT corpus | 1,395 audited traces | 1,233 audited traces | 7,146 audited traces | 8,037 audited orders |
| DAPO I/II | Fixed 1,600 prompts | Fixed 1,600 prompts | Fixed 1,600-prompt subset | Fixed 1,600-prompt subset |
| Held-out test | Test400 | Test400 | 2,905 test orders | 994 test orders |
| Harness validation | Val100 (train source) | Val100 (train source) | 50 frozen slots per fact label | 50 frozen slots per fact label |
| Scenario | Tr. dec. | Te. dec. | Tr. ord. | Te. ord. | Tr. +% | Te. +% |
| Not boarded (5) | 14,040 | 4,155 | 2,808 | 831 | 12.29% | 12.95% |
| Delayed meter (2) | 4,972 | 2,148 | 2,486 | 1,074 | 41.71% | 39.99% |
| Detour (2) | 4,086 | 2,000 | 2,043 | 1,000 | 10.03% | 9.55% |
| Total (9) | 23,098 | 8,303 | 7,337 | 2,905 | 18.22% | 19.13% |
| Scenario | Fact label | Tr.+ | Tr. | Tr.N | Tr.+% | Te.+ | Te. | Te.N | Te.+% |
| Not boarded | Distance after drop-off m | 35 | 2,773 | 2,808 | 1.25% | 13 | 818 | 831 | 1.56% |
| Not boarded | Distance after drop-off m | 384 | 2,424 | 2,808 | 13.68% | 108 | 723 | 831 | 13.00% |
| Not boarded | Accident | 32 | 2,776 | 2,808 | 1.14% | 14 | 817 | 831 | 1.68% |
| Not boarded | Rode throughout | 420 | 2,388 | 2,808 | 14.96% | 134 | 697 | 831 | 16.13% |
| Not boarded | Did not board | 854 | 1,954 | 2,808 | 30.41% | 269 | 562 | 831 | 32.37% |
| Delayed meter | Drop-off to meter end min | 1,228 | 1,258 | 2,486 | 49.40% | 449 | 625 | 1,074 | 41.81% |
| Responsibility | Tr. dec. | Te. dec. | Tr. img. | Te. img. | Tr. +% | Te. +% |
| Malicious responsibility | 8,071 | 994 | 8,071 | 994 | 25.66% | 30.38% |
| Service-error responsibility | 8,071 | 994 | 8,071 | 994 | 32.08% | 31.49% |
| No responsibility | 8,071 | 994 | 8,071 | 994 | 42.26% | 32.60% |
| Indeterminate (unclear) | – | – | – | 55 | – | 5.53% |
| Total (3) | 24,213 | 2,982 | 8,071 | 994 | 33.33% | 31.49% |
| Responsibility | Fact label | Tr.+ | Tr. | Tr.N | Tr.+% | Te.+ | Te. | Te.N | Te.+% |
| Service error | Insufficient driver service ability | 2,607 | 5,430 | 8,037 | 32.44% | 316 | 678 | 994 | 31.79% |
| Malicious | Driver disrupts platform order | 2,037 | 6,000 | 8,037 | 25.35% | 293 | 701 | 994 | 29.48% |
| No responsibility | Policy-compliant cancellation | 1,465 | 6,572 | 8,037 | 18.23% | 152 | 842 | 994 | 15.29% |
| No responsibility | Fourth-party cause | 663 | 7,374 | 8,037 | 8.25% | 85 | 909 | 994 | 8.55% |
| No responsibility | Passenger fails ride requirements | 947 | 7,090 | 8,037 | 11.78% | 55 | 939 | 994 | 5.53% |
| No responsibility | Platform cause | 284 | 7,753 | 8,037 | 3.53% | 26 | 968 | 994 | 2.62% |
| Method | Acc. | Ride | NoBd. | Road | Nav. | Macro | ||||
| Base | 21.24 | 42.94 | 48.00 | 52.73 | 47.94 | 24.60 | 39.82 | 39.32 | 17.54 | 37.13 |
| ED Init. | 22.50 | 41.98 | 50.00 | 54.08 | 47.94 | 26.45 | 39.27 | 41.86 | 25.39 | 38.83 |
| ED Explore | 20.69 | 45.38 | 42.62 | 54.08 | 51.14 | 49.45 | 43.77 | 39.46 | 17.28 | 40.43 |
| Distill. | 26.19 | 48.38 | 60.61 | 62.09 | 57.14 | 48.45 | 43.77 | 48.46 | 31.78 | 47.43 |
| DAPO I | 34.21 | 50.37 | 53.66 | 71.08 | 57.14 | 42.44 | 44.76 | 53.45 | 35.96 | 49.23 |
| PR Rebuild | 34.21 | 51.20 | 52.38 | 71.08 | 58.00 | 40.90 | 45.50 | 51.80 | 29.72 | 48.31 |
| Method | Svc. | PlatOrd. | Policy | 4th | Pass. | Platform | D–P | Macro |
| Base | 70.00 | 55.00 | 54.00 | 66.00 | 36.00 | 18.00 | 19.51 | 45.50 |
| ED Init. | 71.50 | 56.50 | 55.50 | 67.50 | 35.00 | 20.00 | 22.95 | 46.99 |
| ED Explore | 73.00 | 58.00 | 57.00 | 69.00 | 39.00 | 26.99 | 20.00 | 49.00 |
| Distill. | 80.06 | 66.28 | 65.88 | 76.40 | 46.63 | 30.00 | 42.86 | 58.30 |
| DAPO I | 81.50 | 67.50 | 67.20 | 77.50 | 45.50 | 31.50 | 45.71 | 59.49 |
| PR Rebuild | 82.20 | 68.10 | 67.80 | 78.00 | 44.71 | 34.48 | 46.15 | 60.21 |
| Model | MetroMap-lite (Acc/%) | TravelMap-lite (Acc/%) | Fee-VL (F1-Score/%) | Cancel-VL (F1-Score/%) |
| Unadapted Qwen3.5-9B | 24.50 | 30.50 | 38.83 | 46.99 |
| MetroMap-lite (DAPO II) | 62.00 +37.50 | 35.50 +5.00 | 48.10 +9.27 | 51.49 +4.50 |
| Fee-VL (DAPO II) | 31.00 +6.50 | 33.00 +2.50 | 65.81 +26.98 | 56.87 +9.88 |
| Field | Fixed value |
| Student and teacher | Qwen3.5-9B student. Maps use Gemini-3.5-Flash for exploration and GPT-5.6-sol as task teacher; VL uses Kimi-K2.5 for exploration and Kimi-K3 as task teacher. Deterministic code materializes and audits SFT labels. |
| Adaptation surface | Language-only LoRA; rank 16, alpha 32, dropout 0.05, all language modules targeted; vision tower and multimodal projector frozen. |
| Input processing | Qwen3.5 template; native thinking disabled; maximum image budget pixels; cutoff length 24,576 tokens; no packing; prompt tokens excluded from the training loss. |
| Batching | Four GPUs; per-device batch size 2; gradient accumulation 1; effective global batch size 8; gradient checkpointing enabled. |
| Optimization | BF16; learning rate 0.000005; cosine schedule; warmup ratio 0.05; maximum gradient norm 1.0; two epochs. |
| Data order | Training and data seed 42; eight preprocessing workers and four dataloader workers. |
| Field | Fixed value |
| Starting policy | The merged second-epoch SFT checkpoint; fresh language-only LoRA with rank 16 and alpha 32; visual and projector modules excluded and the vision tower frozen. |
| Training data | A fixed set of 1,600 prompts for each task; maximum prompt length 24,576; maximum response length 4,096; overlength inputs raise an error rather than being silently truncated. |
| Batch and rollouts | Train batch size 8; PPO mini-batch size 4 prompts; one PPO epoch; eight sampled trajectories per prompt; dynamic batching enabled. |
| Advantage estimator | Hybrid-DGPO with question-level difficulty weighting; temperature 2.0; no image-based prior; no standard-deviation normalization; retain only groups whose final rewards vary. |
| Policy loss | Token-mean aggregation; clipping lower/upper ratio 0.2 and clip-ratio-c 3.0; KL loss enabled with coefficient 0.001 and low-variance KL; KL is not added to the reward; entropy coefficient 0. |
| Optimizer | Learning rate 0.000005; weight decay 0.01; warmup ratio 0.03; constant schedule; gradient clipping 1.0. |
| Task | Original scalar reward | Weight location and advantage | Ablated component |
| MetroMap-lite | Format + partial-route + exact-route reward | No label weight; | Set only |
| TravelMap-lite | Format + partial-route + exact-route reward | No label weight; | Set only |
| Fee-VL | Format + weighted partial fact accuracy + exact fact vector | is inside ; then | Preserve ; set |
| Cancel-VL | Format + weighted partial fact accuracy + exact fact vector | is inside ; then | Preserve ; set |
| Paper stage | Policy checkpoint | Prompt and operation |
| Base | Unadapted Qwen3.5-9B | No external Skill. |
| ED-Harness Initialization | Unadapted Qwen3.5-9B | Add the task’s initial Skill bank; MetroMap-lite uses the initial 15-Skill bank. |
| ED-Harness Exploration | Unadapted Qwen3.5-9B | Replace the initial Skill with the Skill state produced by the first exploration pass. |
| Minus Selective Context Commit | Unadapted Qwen3.5-9B | Keep the same batches and calls but disable selective rejection of a legal effective edit. |
| Reasoning Distillation | Final SFT checkpoint | Train on frozen labels materialized from task-teacher reasoning–answer outputs ; the resulting checkpoint initializes DAPO. |
| DAPO I | Steps 0–400 | Keep the ED-Harness Prompt fixed and evaluate the policy periodically during training. |
| Comparison | Dataset | 95% CI | |||||
| Selective commit | MetroMap-lite | +1.75 | 1.007 | [1.03, 2.47] | 5.496 | 1.738 | 0.005070 |
| Selective commit | TravelMap-lite | +1.00 | 0.677 | [0.52, 1.48] | 4.671 | 1.477 | 0.008169 |
| Selective commit | Fee-VL | +1.18 | 0.879 | [0.55, 1.81] | 4.245 | 1.342 | 0.010642 |
| Selective commit | Cancel-VL | +1.25 | 0.790 | [0.68, 1.82] | 5.003 | 1.582 | 0.006622 |
| Skill-guided trajectories | MetroMap-lite | +7.75 | 3.078 | [5.55, 9.95] | 7.963 | 2.518 | 0.000528 |
| Skill-guided trajectories | TravelMap-lite | +4.25 | 2.038 | [2.79, 5.71] | 6.595 | 2.086 | 0.001897 |
| Dataset | 95% CI | |||||
| MetroMap-lite | +3.75 | 2.095 | [2.25, 5.25] | 5.660 | 1.790 | 0.000309 |
| TravelMap-lite | +7.75 | 3.410 | [5.31, 10.19] | 7.188 | 2.273 | 0.000103 |
| Fee-VL | +21.95 | 5.702 | [17.87, 26.03] | 12.174 | 3.850 | 0.000002725 |
| Cancel-VL | +11.79 | 4.299 | [8.71, 14.87] | 8.673 | 2.743 | 0.000035 |
| Comparison | Dataset | 95% CI | |||||
| DAPO I Distillation | MetroMap-lite | +20.00 | 4.676 | [16.66, 23.34] | 13.527 | 4.278 | 0.000002207 |
| DAPO I Distillation | TravelMap-lite | +7.50 | 3.096 | [5.29, 9.71] | 7.661 | 2.423 | 0.000187 |
| DAPO I Distillation | Fee-VL | +1.80 | 1.199 | [0.94, 2.66] | 4.746 | 1.501 | 0.002102 |
| DAPO I Distillation | Cancel-VL | +1.19 | 0.880 | [0.56, 1.82] | 4.276 | 1.352 | 0.002102 |
| DAPO II PR immediate | MetroMap-lite | +6.75 | 3.105 | [4.53, 8.97] | 6.875 | 2.174 | 0.000363 |
| DAPO II PR immediate | TravelMap-lite | +7.25 | 3.438 | [4.79, 9.71] | 6.669 | 2.109 | 0.000367 |
| Aspect | Harness I: exploration–distillation | Harness II: post-RL reconstruction |
| Problem | No stable executable program before training | Old program no longer matches the learned policy |
| Evidence | A fixed task-specific sample of 480 exploration examples | Fresh rollouts from |
| Context management | Preassigned batches; task-specific selective commit | Outcome- and difficulty/label-stratified contrasts |
| External update | Establish and refine Skills, protocols, and demonstrations | Prune stale content and synchronously rewrite all three |
| Output | Harness and aligned traces | Reconstructed Harness |
| Consumer | SFT and DAPO I | DAPO II |
| Object or stage | Input | Output and responsibility |
| Exploration–Distillation Harness | Original Prompt, complete image–text/table training pool, frozen validation pool, a seeded 480-example exploration subset, explorer, task teacher, and verifier. | Build the first Harness from the exploration subset and export the audited accepted records from complete-training-pool attempts. |
| SFT label materialization (outside Harness) | and fixed audit rules. | Produce frozen labels without changing the Harness or model. |
| Policy Optimization I (outside Harness) | , , and the base model. | Run SFT followed by DAPO I to obtain current policy . |
| Post-RL Reconstruction Harness | Fresh rollouts from , their original examples, , and the frozen validation pool. | Construct contrastive contexts, reconstruct the external program, and atomically commit . |
| Policy Optimization II (outside Harness) | Frozen and checkpoint 400. | Continue under the same reward and optimizer settings to obtain . |
| Reward / Hybrid-DGPO / scorer | Rollouts, references, and task rules. | Construct policy-learning signals or evaluation results; do not edit the Harness. |
| Check item | Implementation | Required annotation or evidence | Failure handling |
| Candidate schema and operation coverage | Deterministic parser over Skills, operation log, and coverage audit | Source-Skill operations and dispositions | Return exact error; generation retries up to three times |
| Few-shot preservation | Deterministic comparison with the fixed source examples | Identities, facts, values, procedure, and final responses | Reject the rewrite; retry up to three times |
| Selection and marker consistency | Deterministic list, set, and marker checks | Selected Skills, used markers, placements, and coverage status | Reject duplicated or mismatched markers |
| Candidate execution and selection | Qwen3.5-plus execution and task scoring; task-teacher report selection | Frozen validation labels, metrics, and representative traces | Exclude invalid candidates; commit one complete package |
| Cases | Conservative | Stage-based | Mean | Gap | Batches |
| 64 | 49.00 | 47.25 | 48.13 | 1.75 | 4 |
| 128 | 49.75 | 49.50 | 49.63 | 0.25 | 8 |
| 256 | 50.50 | 47.25 | 48.88 | 3.25 | 16 |
LLM Agent Skill Learning
Large language model agent skill learning studies how agents acquire, represent, reuse, and refine procedures for multi-step tasks.
See all 398 papers