Agent·

CORD paper — Conflict-aware gradient projection — What does it mean?

The news. On October 21, 2026, researchers from CUHK, Tencent and other groups posted CORD: Conflict-Aware Optimization for Joint RL and Distillation in Agents. Added to three existing joint-training recipes, it raised ALFWorld success by 1.5 to 15.9 percentage points, and on WebShop it improved two of the three recipes. Read the paper →

Picture two people steering one shopping cart. The head pusher shoves toward the checkout, and that is the reward signal from the task. A helper pushes too, and that is the teacher's guidance. Most of the time they push in similar directions and the cart speeds up. Sometimes the helper shoves partly backward, and the two pushes cancel each other. Telling the helper to push softer does not fix it, because a softer backward shove is still backward.

That is the situation CORD addresses. Training an agent with GRPO (rewards from the task outcome) and OPD (token-level guidance from a teacher) produces two gradients per mini-batch, which the paper calls the RL gradient and the distillation gradient. Their sum is the usual update. The authors measured how often those two disagree on WebShop: 48.2% of mini-batch gradient records had a negative cosine, and a conflicting distillation gradient measurably cut the first-order progress made on the RL loss. The usual knob, the mixing coefficient, multiplies a gradient by a positive number, so it changes the size of the clash but cannot turn a backward shove into a forward one.

CORD's rule has two parts. First, pick a protected gradient a and a candidate gradient b. Second, test their inner product. If it is zero or positive, add them as usual. If it is negative, replace b with b - (a·b / a·a) a, the closest vector to b that no longer pushes against a. In cart terms, on a conflict the helper keeps only the sideways part of the push and drops the backward part. The paper proves this replacement is the nearest feasible point, and that the protected loss then makes first-order progress equal to the squared length of a, exactly what it would make alone. Only b is changed: the older PCGrad method modifies both gradients on a conflict, while CORD keeps the protected one intact. CORD also combines the gradients once per optimizer mini-batch, after accumulating over micro-batches, because projecting each micro-batch separately gives a different update.

A worked example with small numbers

Hold two things fixed: an RL gradient a = (3, 0) that is protected, and a distillation gradient b = (-2, 4) after weighting (illustrative numbers, not from the paper). Their inner product is 3 × -2 + 0 × 4 = -6, which is negative, so they conflict. The plain sum is (1, 4), and its inner product with a is 3 × 1 = 3, so the RL loss gets only 3 units of first-order progress out of the 9 it would make alone. CORD subtracts (-6 / 9) times a from b, which gives (0, 4): the backward component vanishes and the sideways component survives. The final update is (3, 4), and its inner product with a is 3 × 3 = 9, so RL progress rises from 3 to the full 9. The trade-off is on the other side: the distillation gradient's alignment with the update falls from 14 to 10, out of 20 for its own gradient alone. CORD does not remove the trade-off, it decides who wins it.

Joint-training recipeALFWorld average, before → with CORDWebShop success, before → with CORDSource
Skill-SD76.4 → 77.955.8 → 59.4Table 1, Qwen2.5-3B-Instruct, one training seed
GRPO + OPSD65.0 → 80.964.8 → 64.5 (slightly lower)Table 1, Qwen2.5-3B-Instruct, one training seed
SDAR73.8 → 77.760.7 → 64.6Table 1, Qwen2.5-3B-Instruct, one training seed

The table shows what the evidence does and does not say. CORD helped every recipe on ALFWorld and two of three on WebShop. But the headline table uses one training seed with four evaluation passes, one 3B model, and two benchmarks, so treat them as a promising signal rather than a general law. The paper also reports that the protected direction and the conflict trigger must be chosen together, and that the distillation loss and its weight still matter after projection. The first-order guarantee also holds for the ideal gradient only: gradient clipping and an optimizer such as AdamW change the final update direction.

This is the same habit that good agent evaluation teaches: measure the failure before you fix it. The authors first logged how often the gradients disagree and what it cost, and only then built the projection. The Error Analysis First step makes that argument for agent behavior, and Compounding Errors shows why small per-step losses, like a cancelled update, add up over a long training run.

Goes deeper in: AI Agents → Evals & Diagnostics → Error Analysis First

Related explainers

Frequently Asked Questions

Check what you knowMap your AI & GPU knowledge across every track — free, role-based