Abstract

Reinforcement learning with verifiable rewards, and Group Relative Policy Optimization (GRPO) in particular, is now run routinely on a supervised checkpoint in the hope of producing a stronger agent. We ask whether it adds skill to a small language and vision-language model web agent at the 4B to 8B scale, or whether it mostly reshapes behavior the supervised model already has. Across a control grid of 18 runs that varies learning rate, KL weight, seed, initialization, and clipping, no configuration credibly improves the success rate of a strong supervised baseline on tasks the agent has largely mastered. On the text track, moderate to high learning rates make it credibly worse. The null holds under paired testing, 25 evaluation seeds, 6 training seeds, changes to the recipe, both text and Set-of-Marks screenshot observations, and scaling the backbone to 8B; the credible harm is a text-track finding and is only nominal under Set-of-Marks. To show that the null reflects the setting and not a broken pipeline, we run the identical harness, reward, and recipe on tasks whose reward is reachable by sampling, and there the success rate rises by 22 points with a paired interval that excludes zero. GRPO therefore helps only when there is headroom to climb, meaning the sampled policy already succeeds more often than the greedy one. We then explain the failure. A middle learning rate degrades the agent and a high one collapses it, and the two regimes form a double dissociation: grafting localizes the degrade regime to the attention and MLP blocks, while the collapse regime cannot be traced to any single group, and the embedding change that dominates the weight movement is causally inert. At 4B, effective rank in the late layers tracks capability in both directions; at 8B the two come apart. This coupling is specific to the smaller model, so we report it as scale-dependent.

1 Introduction↩︎

Figure 1: The question and the answer at a glance. GRPO adds no credible gain on tasks the agent has already mastered, but the same recipe gains 22 points where the reward is reachable by sampling.

Post-training with reinforcement learning has become routine for language and multimodal agents. A supervised model is first taught to follow the task format, and GRPO or a close relative [1][3] is then run against a verifiable reward in the hope of pushing capability past what supervision alone reached. For web agents the appeal is direct, since rollouts are cheap to score against task success and the recipe that lifted mathematics and coding models is expected to lift an agent that clicks, types, and navigates [4]. What remains unclear is whether this second stage adds new skill to a small language and vision-language model agent, or whether it mostly sharpens choices the supervised model could already make [5]. This matters in practice. If reinforcement learning adds capability, more of it is the right investment; if it only sharpens what the supervised model already does, the effort belongs in better supervision or distillation.

We study one such agent under tight control: a 4B language and vision-language model [6] driving a web agent on the MiniWoB benchmark [7], [8]. Holding the harness, reward, and task set fixed, we sweep the reinforcement-learning choices a practitioner would tune and score every run with clean greedy decoding and a paired test against the supervised baseline. The result is a null. No configuration in the grid of 18 runs credibly beats supervision on tasks the agent has already largely mastered, and once the learning rate leaves a narrow low band the agent gets worse. The null is also robust. It survives adding evaluation and training seeds, adding the schedule and group-size choices the grid omitted, switching from a text observation to a Set-of-Marks screenshot, and scaling the backbone to 8B. Figure 1 previews the study and its outcome.

One reading of a null is that the pipeline is broken or underpowered and would fail to climb anywhere. A positive control rules this out. Using the identical harness, reward, and recipe, we select tasks whose reward is reachable by sampling, where the model already succeeds under temperature more often than under greedy decoding, and retrain. There the agent climbs by up to 22 points, with a paired interval that excludes zero. GRPO improves the agent when the sampled policy can already beat the greedy one, and it stalls when greedy is the better of the two, which is the regime a competent supervised agent occupies. A practitioner can act on this by measuring the gap between sampled and greedy success first and expecting little from reinforcement learning when that gap is not positive. For a competent small web agent, extra skill comes from supervision or distillation, not from more reinforcement learning.

We then open the model to ask why the harmful regimes fail. A low learning rate leaves an update that is real but too small to change behavior; a middle rate degrades the agent, and a high rate collapses it. The two failures are different lesions. The degrade regime destroys the effective rank [9] of the late layers while leaving earlier layers intact, whereas the collapse regime holds that rank at or above supervision and instead destroys the readout, an inversion we confirm at nearly two thousand fixed states. To test whether this correlation is causal, we graft weights. Restoring the attention or MLP blocks from initialization repairs the degraded agent, while restoring the embedding, whose drift dominates the raw weight change, does nothing, which points to the compute blocks as the site of the failure and clears the embedding despite its large movement [10]. Read in the other direction, the same probe shows late-layer rank rising with capability where the agent climbs and falling where it degrades, so at 4B rank tracks skill both ways. At 8B this coupling breaks down, and we say so.

Our choice of a single benchmark is deliberate and follows from the interpretability goal. A mechanistic account requires holding everything except the intervention fixed, so that a change in effective rank or success rate can be attributed to the learning rate and not to uncontrolled variation in the environment. MiniWoB provides that control. Its tasks are deterministic under a seed, its success check is exact, and the breadth of interface skills it covers, from clicking and typing to selection and navigation, makes it a broad probe of web-agent behavior, not a narrow one. A benchmark such as WebArena [11] is closer to deployment but introduces run-to-run variation that is hard to hold constant, and that variation would confound the attributions this study rests on. We treat MiniWoB as the controlled setting in which the mechanism can be read cleanly, and we are clear about what that costs in generality.

Our contributions are the following.

  1. A controlled null: across a grid of 18 runs and several robustness checks, GRPO does not credibly add skill to a competent small language and vision-language model web agent, and higher learning rates credibly remove it.

  2. A positive control that identifies the cause of the null as a headroom condition, together with a cheap test of sampled against greedy success that can be applied beforehand.

  3. A mechanistic account of the failure as a learning-rate-gated double dissociation, causally localized by weight grafting, with the dominant embedding drift shown to be a correlational red herring.

  4. Evidence that late-layer effective rank tracks capability in both directions at 4B and dissociates at 8B, reported as a property that depends on scale.

  5. A full battery of paired statistics, equivalence tests, and interpretability measurements, released so others can check the null for themselves.

2 Related Work↩︎

Table 1: The three experiments of this study, the principle behind each, and what each is for. Section [sec:sec:setup] specifies the methods and statistics; the results follow in later sections.
Experiment Principle Purpose
A Controlled null (§[sec:sec:setup:grpo], §[sec:sec:setup:eval]) An 18-run grid over learning rate, KL weight, seed, initialization, and clip bound on one fixed harness, each arm paired against the supervised baseline (Eq. [eq:advantage][eq:mcnemar]). Decide whether any GRPO configuration credibly improves the agent’s success rate.
B Positive control (§[sec:sec:setup:interp]) The identical harness, reward, and recipe on tasks where sampled success already exceeds greedy (Eq. [eq:head]). Separate a genuine null from a broken pipeline and identify the headroom condition.
C Mechanism (§[sec:sec:setup:interp]) Fixed-state rank and output-behavior probes, plus causal weight grafting on the trained checkpoints (Eq. [eq:erank][eq:graft]). Explain the failure at the level of individual weight groups.

6pt

Reinforcement learning with verifiable rewards has driven recent gains in reasoning models, and GRPO [1], with refinements such as decoupled clipping [2] and less biased advantage estimation [3] on top of the proximal policy optimization objective [12], is now a standard recipe. Whether these gains reflect genuinely new capability or a sharpening of behavior the base model can already produce is contested, with evidence that reinforcement learning often fails to extend a model beyond what sampling already reaches [5]. That question has been argued mostly on reasoning benchmarks through pass@k. We bring it to an interactive agent and ask it as a practitioner would, against the agent’s own supervised baseline.

For web agents, both supervised and reinforcement learning pipelines have raised success rates across interactive benchmarks, from the MiniWoB environment [7], [8] to the larger WebArena [11], and online curriculum methods report further gains [4]. This line of work shows that reinforcement learning can help a web agent. It does not settle whether it helps a small language and vision-language model agent on tasks the agent has already learned to solve, which is the regime a competent deployed system usually occupies and the one we isolate here.

Our mechanistic analysis builds on tools for reading a model’s internal state. Effective rank [9] measures how many directions a representation actually uses, and editing in weight space shows that behavior can be moved by recombining parameter groups [10]. We turn these into a causal test rather than a correlational one: we restore a single component group from its initialization, keep the rest, and re-measure success, which separates the parameters that carry a failure from those that merely move the most.

Two gaps motivate this paper. The sharpening question has not been settled for an agent by a controlled comparison against its own supervised start with a matched positive control, and where a reinforcement learning null is reported it is seldom explained at the level of the weights. We address both. We establish a controlled null for a small language and vision-language model web agent, use a positive control to show the null is a property of the task rather than the training pipeline, and give a causal account of the failure at the level of individual weight groups. To our knowledge this is the first study to pair a controlled reinforcement learning null for a web agent with a mechanism for why it occurs.

3 Experimental Setup↩︎

Our aim is to decide whether GRPO adds skill to a competent small language and vision-language web agent and, when it does not, to explain why. The design follows directly. We fix a single agent, environment, reward, and task set, so that any change in success rate traces to the reinforcement-learning choices and not to the setup, and on that fixed harness we run the three experiments summarized in Table 1. The rest of this section specifies the agent and reward (§3.1), the GRPO recipe and grid (§3.2), the evaluation and statistics that make the null credible (§3.3), and the interpretability probes (§3.4).

3.1 Agent, Environment, and Reward↩︎

The agent is Qwen3-VL at 4B and 8B [6], run on MiniWoB [7], [8]. At each step the policy \(\pi_\theta\) reads an observation and emits one action from a compact vocabulary of clicks, typing, selection, navigation, and an explicit finish, up to a fixed step budget. Two observation tracks share all other logic: a text track that serializes the page, and a Set-of-Marks track [13] that presents the screenshot with numbered marks. The control grid and the mechanism use the text track; the Set-of-Marks track is a modality check. The reward is a sparse binary terminal signal, broadcast to every step of the episode, \[r(\tau)=\mathbf{1}\!\left[\operatorname{success}(\tau)\right]\in\{0,1\}.\]

3.2 GRPO Recipe and Control Grid↩︎

For each training prompt the policy samples a group of \(G\) rollouts. Following [3], the advantage is the group mean-centered reward, with no division by the group standard deviation, \[\label{eq:advantage} A_i = r_i-\frac{1}{G}\sum_{j=1}^{G}r_j.\tag{1}\] The per-token importance ratio between the current policy and the policy that produced the rollout is \[\label{eq:ratio} \rho_c(\theta)=\frac{\pi_\theta(y_c\mid x,y_{<c})}{\pi_{\theta_{\mathrm{old}}}(y_c\mid x,y_{<c})},\tag{2}\] and the clipped surrogate minimized over a segment of \(C\) completion tokens is \[\label{eq:grpo} \mathcal{L}_{\mathrm{GRPO}}=-\frac{1}{C}\sum_{c=1}^{C}\min\!\Big(\rho_c A,\;\operatorname{clip}(\rho_c,1-\epsilon_{\mathrm{lo}},1+\epsilon_{\mathrm{hi}})\,A\Big),\tag{3}\] with an asymmetric clip-higher bound [2], \(\epsilon_{\mathrm{lo}}=0.20<\epsilon_{\mathrm{hi}}=0.28\). An optional KL anchor adds \(\beta\widehat{D}_{\mathrm{KL}}\) to the loss, using the non-negative \(k_3\) estimator against the frozen initialization \(\pi_{\mathrm{ref}}\) with \(u_c=\log(\pi_{\mathrm{ref}}/\pi_\theta)\), \[\label{eq:kl} \widehat{D}_{\mathrm{KL}}=\frac{1}{C}\sum_{c}\big(e^{u_c}-u_c-1\big).\tag{4}\] The learning rate follows a linear warmup over a fraction \(f\) of the \(R\) rounds, then a cosine decay, \[\label{eq:lr} \eta_t=\eta_0\cdot\begin{cases}(t+1)/w,& t<w,\\[3pt]\tfrac12\big(1+\cos\pi\tfrac{t-w}{R-w}\big),& t\ge w,\end{cases}\qquad w=\lceil fR\rceil.\tag{5}\] The controlled null (experiment A) is a grid of 18 runs varying learning rate, KL weight \(\beta\), seed, initialization, and the clip bound, with a recipe-ablation battery that adds the warmup and cosine schedule and the group size \(G\in\{8,16,32\}\).

3.3 Evaluation Protocol and Statistics↩︎

Every run is scored with clean greedy decoding on the set \(\mathcal{E}\) of 11 tasks at 5 seeds, giving 55 matched episodes. The success rate over \(\mathcal{E}\) is \[\label{eq:sr} \mathrm{SR}=\frac{1}{|\mathcal{E}|}\sum_{e\in\mathcal{E}}\mathbf{1}[\operatorname{success}(e)],\tag{6}\] reported at level \(z\) with the Wilson score interval [14] \[\label{eq:wilson} \frac{\widehat p+\tfrac{z^2}{2n}\pm z\sqrt{\tfrac{\widehat p(1-\widehat p)}{n}+\tfrac{z^2}{4n^2}}}{1+z^2/n}.\tag{7}\] Because a MiniWoB reward is deterministic given the task seed, each \((\text{task},\text{seed})\) pair is matched across arms and every arm is compared to the supervised baseline with a paired test. On the discordant pairs \((b,c)\) the exact two-sided McNemar \(p\)-value is [15] \[\label{eq:mcnemar} p=2\!\!\sum_{i=0}^{\min(b,c)}\!\binom{b+c}{i}2^{-(b+c)},\tag{8}\] and a task-clustered bootstrap resamples the 11 task clusters to give a \(95\%\) interval on the success-rate difference \(\Delta=\mathrm{SR}_{\mathrm{arm}}-\mathrm{SR}_{\mathrm{SFT}}\). We call an arm credibly better or credibly worse only when this interval excludes zero; a positive point estimate whose interval touches zero is no credible difference. Equivalence within a margin \(\delta\) is a two one-sided test [16]: the \(90\%\) interval of \(\Delta\) lies inside \([-\delta,+\delta]\).

3.4 Interpretability Measurements↩︎

On a fixed cache of \(N\) hidden states we read a small set of quantities. The effective rank of a layer is the exponential of the entropy of its normalized covariance eigenvalues \(\{\lambda_k\}\) [9], and we also report the participation ratio and the stable rank of the same state matrix \(X\), \[\label{eq:erank} \operatorname{erank}=\exp\!\Big(\!-\!\sum_k p_k\log p_k\Big),\quad p_k=\frac{\lambda_k}{\sum_j\lambda_j},\tag{9}\] \[\label{eq:pr} \mathrm{PR}=\frac{\big(\sum_k\lambda_k\big)^2}{\sum_k\lambda_k^2},\qquad \mathrm{sr}=\frac{\lVert X\rVert_F^2}{\lVert X\rVert_2^2}.\tag{10}\] Three probes read the output distribution \(p_n=\operatorname{softmax}(\ell_n)\). Argmax agreement with the initialization counts how often the top next-token prediction is unchanged, \[\label{eq:agr} \operatorname{agr}=\frac{1}{N}\sum_{n}\mathbf{1}\!\left[\arg\max\ell^{\theta}_n=\arg\max\ell^{\mathrm{ref}}_n\right],\tag{11}\] while the mean entropy and the degeneracy, the fraction of states whose mass collapses onto one token above a threshold \(\tau\), are \[\label{eq:beh} \begin{align} H&=\frac{1}{N}\sum_{n}\Big(\!-\!\sum_v p_{n,v}\log p_{n,v}\Big),\\ \operatorname{deg}&=\frac{1}{N}\sum_{n}\mathbf{1}\!\big[\textstyle\max_v p_{n,v}>\tau\big]. \end{align}\tag{12}\] A causal graft restores one component group \(\mathcal{G}\), attention, MLP, or embedding, from initialization and re-evaluates, \[\label{eq:graft} \theta'=\theta,\quad \theta'_{\mathcal{G}}\leftarrow\theta^{\mathrm{init}}_{\mathcal{G}},\qquad \text{recovery}=\mathrm{SR}(\theta').\tag{13}\] Finally, the headroom of a task is the gap between the sampled and greedy success of the supervised policy, \[\label{eq:head} \Delta_{\mathrm{head}}=\mathrm{SR}_{\mathrm{sample}}-\mathrm{SR}_{\mathrm{greedy}}.\tag{14}\] GRPO can climb only when \(\Delta_{\mathrm{head}}>0\); the positive control (experiment B) selects tasks on this criterion, and the grafts drive the mechanism analysis (experiment C).

4 When GRPO Fails↩︎

We begin with the regime a deployed agent occupies, the tasks it has already learned to solve. The supervised policy clears the 11-task grid at a success rate of 49.1% (27 of 55 matched episodes), an aggregate that mixes tasks it solves almost every time with a harder frontier. The question is whether any reinforcement learning configuration moves that number upward, and none does. The two strongest arms are nominally above supervision by 3.6 points, yet their paired intervals stretch from zero to about ten points and the exact McNemar test returns \(p\) between 0.50 and 0.69, so the nudge is indistinguishable from noise (Table ¿tbl:tab:regimes?). Nor does the result hinge on the learning rate alone. Varying the KL weight, the initialization, and the clip bound each moves the point estimate by at most two points and none of them credibly, so no axis of the 18-run grid turns into a gain. Even taking the best arm as the headline, an upward-biased choice, leaves an estimate that only matches supervision plus a statistically empty 3.6 points.

A flat result invites the reading that the tasks leave no room to improve, but they do. Restricting the score to the frontier subset, defined as the tasks whose supervised success sits between 0.2 and 0.8, the baseline is 37.1% and the best configuration reaches 42.9%, a gain whose paired interval still includes zero, so the headroom that exists is not credibly converted into gain. Stated the other way, two one-sided tests place four of the five strongest configurations within five points of supervision, one of them episode for episode identical, which reads the outcome as an equivalence: on the mastered tasks GRPO matches the supervised policy but does not improve on it.

The one variable that moves success is the learning rate, and it moves it only downward. Holding initialization and the KL weight fixed on the text track, clean success falls as the step size grows, from 52.7% at \(3\times10^{-6}\), through the supervised baseline near \(5\times10^{-6}\), down to 33.3% at \(1\times10^{-5}\) and zero at \(2\times10^{-5}\) (Figure 2). Three regimes fall out. At the low end the update is a functional no-op that leaves behavior at supervision. A middle rate degrades the agent by a credible 15 points, and the highest rate collapses it to zero, both with intervals that exclude the baseline and McNemar \(p\) below 0.04 and 0.001 (Table ¿tbl:tab:regimes?). The only rates that leave the agent unharmed are the ones too small to change behavior, and no rate above that band clears the baseline. This monotone shape is specific to the 4B text track; on the Set-of-Marks track and at 8B the nominal peak sits elsewhere, so we keep the shape scoped to 4B text.

The null does not rest on any single choice in the grid, and the full battery is collected in Appendices 11 and 12. Adding 25 evaluation seeds lowers the baseline to 44.7% and still surfaces no credible winner; the one arm that reaches \(p=0.001\) under an unclustered test loses that status once episodes are clustered by task, and a replication over 6 training seeds averages 49.7%, back on the baseline, so its apparent edge was a lucky training seed. The warmup and cosine schedule the grid omitted remove the collapse pathology, since moderate rates now dip and recover instead of dying, but a recovery is not a gain and the schedule still produces no credible improvement. A larger sampling group of 16 or 32 does not help, and at a high rate it breaks the agent sooner, since a larger group is a larger effective step. The Set-of-Marks screenshot raises the baseline to 63.6% and again yields no credible gain, and the 8B backbone repeats the pattern, a nominal low-rate nudge that never clears the interval and credibly worse success at the higher rates. The null holds across every axis a practitioner would turn.

A null could also be an artifact of reward-hacking or of scoring a checkpoint after it broke, and neither is at work here. If the agent were gaming the sparse reward by finishing early, the flat runs would fill with premature terminations, but the per-episode taxonomy puts reward-hacking near zero in every regime, and the degrade and collapse runs fail because they emit invalid output, not because they stop short. If the null came from scoring the final checkpoint after it had already broken, then selecting the best checkpoint by held-out success would surface a hidden win. It does not. Scoring every saved round and running a paired test on the best one, the strongest flat run still gains only 3.6 points with an interval that touches zero, and the brief early rise of the degrade run falls apart before it is credible. The null comes from the setting itself: it is not an artifact of when we stopped, and it is not the agent gaming the reward. That still leaves the worry that the pipeline cannot climb anywhere, which the next section settles.

a

b

c

Figure 2: The null across the grid (4B, text). Left: clean greedy success against learning rate, flat at the low rates where the update is a functional no-op, then degrading and collapsing as the step grows, with no setting clearing the supervised baseline (dashed). Middle: a forest plot of all 18 arms with Wilson intervals, none of which clears the baseline. Right: the per-task success matrix, where the moderate and high rates drive whole tasks to zero while the low-rate arm tracks supervision..

4.5pt

5 When GRPO Succeeds↩︎

The previous section ended on the obvious worry that the pipeline simply cannot climb anywhere. We test it by keeping the harness, reward, and recipe exactly as before, still on the 4B text track, and changing only the tasks. We profiled the supervised policy on all 119 MiniWoB tasks, recording both its greedy success and the success it reaches under temperature sampling, and selected ten tasks with reachable headroom, where sampling already succeeds more often than greedy and there is therefore a policy for GRPO to move toward that greedy does not already reach. Two examples fix the idea: drawing a line, where greedy never succeeds but sampling does more than half the time, and filling an autocomplete field, where sampling roughly doubles the greedy rate.

On this set the same recipe climbs. Scored on the ten tasks at 5 seeds, 50 matched episodes, the supervised baseline solves 20.0%, and the strongest configuration reaches 42.0%, a gain of 22 points whose task-clustered interval runs from 8 to 40 and excludes zero, with McNemar \(p=0.007\) (Figure 3). The climb is not one lucky run. Five of the six configurations rise between 12 and 22 points, four of them credibly, and only a single run at a middle rate degrades. The low learning rate that was a pure no-op on the mastered grid gains 12 to 18 points here, so the variable that decides the outcome is the task and not the step size.

Figure 3: Positive control on the headroom set. The supervised baseline (dashed) solves the ten tasks at 20%; five of six configurations climb, and the best reaches 42% with a paired interval that excludes zero. The low rate that does nothing on the mastered grid climbs here.

Table ¿tbl:tab:contrast? puts the two settings side by side. The recipe that cannot separate from supervision on the mastered grid produces a credible 22-point gain on the headroom set, so the null is not a broken or underpowered pipeline; it is GRPO failing where a working GRPO would also fail, on tasks whose reward the greedy policy already reaches. This explains the null in terms of the objective itself. GRPO optimizes sampled rollouts, so it can only climb toward a policy that sampling reaches. On the mastered grid the gap runs the wrong way: greedy is at 0.49 against a sampled 0.32 to 0.38, so there is nothing above greedy to move toward. On the headroom set the gap is positive by construction, and the agent climbs. The gap of Eq. 14 is therefore a cheap screen a practitioner can run before committing compute, since it predicts both the null and the climb from the supervised policy alone.

5pt

6 Why GRPO Fails↩︎

The headroom condition says when GRPO fails to help, but not how the harmful learning rates damage the model, so we open it up. Reading a small set of quantities on a fixed cache of hidden states shows that the two harmful regimes damage the model in different ways. The middle rate that degrades the agent destroys the effective rank of the late layers, read at layer 35, which falls from about nine at supervision to near one while the earlier layers keep their rank. The high rate that collapses the agent leaves that late-layer rank at or above supervision yet drives the argmax agreement with initialization to zero (Figure 4, left). Both regimes push the readout down, collapse completely and degrade in part, but only degrade also destroys the representation. This rank inversion is stable across the full cache of 1999 states, so it is not an artifact of thin sampling.

a

b

c

Figure 4: The rank account (layer 35). Left: effective rank by regime at 4B, where degrade collapses the rank and collapse preserves or raises it. Middle: on the positive-control family, rank stays healthy where the agent climbs and collapses where it degrades. Right: at 8B, rank and argmax agreement never fall together across the learning-rate sweep, so the coupling does not transfer. Full probes, including argmax agreement and degeneracy by regime, are in Appendix 13..

Rank and agreement are correlations, and to make them causal we graft. Restoring one component group from initialization into the trained model, keeping the rest, and re-scoring isolates the weights that carry the failure. For the degraded agent, restoring the attention or the MLP alone lifts frontier success from 11% to 37% and 40%, at or just above the supervised level, while restoring the embedding leaves it near 14% (Figure 5; the full recovery table for both regimes is in Appendix 13). Either compute pathway is sufficient, so the failure is localizable, and the direction holds across three degrade checkpoints. This is where a correlational reading would have gone wrong. The embedding drifts more than any other group in the raw weight difference, so an argument from movement alone would blame it, yet the graft shows the embedding is causally inert while the attention and MLP carry the damage. To rule out a generic undoing of drift, we restore a random group of matched parameter count as a null; across two dozen draws it recovers to a mean of 19% and a 95th percentile of 23%, and the real attention and MLP grafts sit well above that band, so the localization is specific and not a side effect of moving weights back toward their start.

Figure 5: Causal grafting on the degraded agent. Restoring the attention or MLP from initialization recovers frontier success past the random-null band (its mean to 95th percentile), while restoring the embedding does not, so the damage is localized to the compute pathways and not to the group that moved most.

The collapsed agent behaves differently under the same test. No single group restores it, attention and MLP alone recover almost nothing, and only restoring every group together returns it to the supervised level, so collapse is a distributed corruption of the readout rather than a lesion in one place. This completes a double dissociation: degrade destroys the late-layer rank and is localizable to a single compute pathway, while collapse spares the rank and cannot be localized at all.

For rank to be a meaningful measure, it should rise when the agent improves, not only fall when it breaks. On the family used for the positive control it does. Reading the same late-layer rank on three checkpoints from that family, the supervised start sits at rank 6.9 with 20% success, the configuration that climbs to 42% keeps its rank healthy at 7.1, and the configuration that degrades to 12% has its rank cut to 3.2 (Figure 4, middle). The loss shows up as a sharp rank collapse and the gain as a rank that stays healthy rather than falling, so within this family rank health and capability move together, with the caveat that these are single checkpoints and the upward move is small.

This coupling is a property of the 4B model and does not survive a change of scale. Reading the same probe across the learning-rate sweep on the 8B backbone, on the text track, we find no setting where rank and argmax agreement fall together (Figure 4, right). At the rates that degrade the 4B model the 8B late-layer rank collapses to about two while the argmax agreement stays between 0.78 and 0.95, so the readout is untouched even though the representation is not, and only at the highest rate does the agreement collapse, with the rank left high. The larger model absorbs a late-layer rank collapse without changing what it predicts. We therefore scope the account: the link between rank and capability holds at 4B, shown in both directions by grafting and by the positive control, and it breaks at 8B. We treat that as a limit of the 4B account.

The mechanism, then, is a pair of learning-rate-gated lesions. A middle rate erases the late-layer rank that the attention and MLP carry, and a high rate erases the readout in a way spread across the whole model. Neither adds anything the supervised agent lacked.

7 Discussion↩︎

The result carries a direct lesson for practice. On a small web agent that already performs its tasks, the next increment of skill does not come from a second stage of reinforcement learning, because the agent’s greedy policy already sits above what its own sampling reaches and GRPO can pursue only the sampled policy. The headroom gap of Eq. 14 is the screen to run first: a value at or below zero on a held-out set is the signal to spend the budget on supervision instead. In a distillation pilot, expert supervision lifted the base model by 30 points on a task set where reinforcement learning on top of any initialization added nothing (Appendix 11).

Two boundaries on the claim should be read alongside it. The study is one benchmark and one model family, chosen so the mechanism can be read without the confounds a noisier environment adds, and the robustness battery covers the recipe choices a reviewer would raise (schedule, group size, seeds, observation track, and model scale), none of which changes the verdict. The credible harm from a large step is established on the 4B text track and is only nominal on the Set-of-Marks track, so we state it as a text-track result and not a universal one. The mechanism has its own scope. The link between late-layer rank and capability that grafting and the positive control establish at 4B does not hold at 8B, where a rank collapse and a change in behavior never coincide, so the rank account is a property of the smaller model and not a law across scale.

The finding brings the sharpening debate, so far settled largely on reasoning tasks by pass@k [5], to an interactive agent with a controlled answer. Where that debate asks whether reinforcement learning extends a model beyond its base, we ask the same of an agent against its own supervised start and find that it does not, then show with the positive control that the boundary is not the method but the headroom of the task. The contested general claim becomes a specific one we can test: reinforcement learning extends the agent only when its sampled policy already beats its greedy policy.

8 Conclusion↩︎

We asked whether GRPO adds skill to a small language and vision-language web agent on tasks it has already learned. Across the grid and the robustness checks it does not, and past a narrow band of learning rates it subtracts skill instead. The same pipeline climbs 22 points once the task has headroom, so the null is about the task, not the method. The failure has a clear mechanism: a middle rate erases the late-layer rank that grafting traces to attention and MLP, a high rate erases the readout that no single group repairs, and the dominant embedding drift is inert. For a competent small agent, more skill comes from better supervision, and GRPO earns its compute only where sampling beats greedy.

Limitations↩︎

This study is deliberately narrow, and several boundaries should be kept in mind. It uses a single benchmark, MiniWoB, and a single model family, Qwen3-VL at 4B and 8B; the null and the mechanism may look different on a more varied environment such as WebArena or on a different backbone. The credible harm from a large learning rate is established on the 4B text track, and on the Set-of-Marks track it is only nominal, so the harm side of the result is text-track evidence and not a universal claim. The mechanism has a scale boundary of its own: the link between late-layer rank and capability holds at 4B but breaks at 8B, so the rank account is specific to the smaller model. The causal grafting and rank-health readings rest on a small number of checkpoints per regime and their point estimates are noisy, so we report them qualitatively. Finally, the null concerns the regime where the agent has already mastered its tasks, and the positive control shows that the same recipe does climb once the task has headroom; we therefore make no claim that reinforcement learning is useless for web agents in general, only that it adds no skill in the competent-agent regime we isolate.

The appendices below collect the full result tables, a gallery of the supporting figures, and the algorithms referenced in the main text. All numbers are transcribed from the same frozen result tables used in the body.

9 The Control Grid in Full↩︎

The controlled null is an 18-run grid on the 4B text track that varies the learning rate, the KL weight, the seed, the initialization (supervised or base), and the clip bound. Every arm is scored by clean greedy decoding on the 11 tasks at 5 seeds, giving 55 matched episodes, and compared to the supervised baseline with the paired test of the main text. Table 2 lists the representative arms. Classified by their training dynamics the 18 runs split into 9 functional no-ops, 6 degrade runs, and 3 collapse runs, and no arm’s paired interval clears the baseline. Reporting the best of eighteen is itself an upward-biased statistic, and even that best matches supervision plus a statistically empty \(3.6\) points. The “no headroom” reading is refuted on the frontier subset, the tasks whose supervised success lies in \([0.2,0.8]\): the supervised frontier baseline is \(37.1\%\) \([23.2,53.7]\) (13 of 35) and the best configuration reaches only \(42.9\%\) \([28.0,59.1]\) (15 of 35), whose interval lower bound of \(28.0\) sits below the baseline point estimate.

Table 2: Representative arms of the 18-run control grid (4B, text). Clean SR is greedy success over 55 matched episodes with a Wilson interval; \(\Delta\)SR is the task-clustered paired difference against the supervised baseline. The middle- and high-rate rows pool 3 and 2 seeds. The KL rescue arm is episode-identical to supervision (discordant pairs \(b/c=0/0\)). No arm is credibly better than supervision.
Arm Init LR KL \(\beta\) Clean SR [95%] \(\Delta\)SR [95% CI] McNemar \(p\) Verdict
Supervised baseline SFT 0 49.1 [36.4, 61.9] baseline
Base initialization base 0 50.9 [38.1, 63.6] \(+1.8\) no-diff
Best, SFT init SFT \(3\times10^{-6}\) 0 52.7 [39.8, 65.3] \(+3.6\;[+0.0,+10.9]\) 0.50 no-diff
Best, base init base \(3\times10^{-6}\) 0 52.7 [39.8, 65.3] \(+3.6\;[+0.0,+9.1]\) 0.69 no-diff
Low rate SFT \(5\times10^{-6}\) 0 49.1 [36.4, 61.9] \(+0.0\) no-diff
Middle rate, pooled SFT \(1\times10^{-5}\) 0 33.3 [26.6, 40.8] \(-15.0\;[-20.9,-9.5]\) \({\le}0.04\) worse
High rate, pooled SFT \(2\times10^{-5}\) 0 0.0 [0.0, 3.4] \(-49.1\;[-62.7,-36.4]\) \({<}0.001\) worse
KL rescue SFT \(2\times10^{-5}\) 0.05 49.1 [36.4, 61.9] \(+0.0\) no-diff
Best KL SFT \(1\times10^{-5}\) 0.10 50.9 [38.1, 63.6] \(+1.8\) no-diff

6pt

10 Paired Statistics, Equivalence, and Checkpoint Selection↩︎

The verdict uses the exact McNemar test on the discordant pairs and a task-clustered bootstrap on the 11 task clusters, both over episode-matched arms. Beyond the failure to reject, a two one-sided test states a positive equivalence: four of the five strongest configurations lie within \(\pm 5\) points of supervision (Table ¿tbl:tab:tost?), one of them episode-identical. Because the reported success is the final checkpoint, we also retrained the three regime exemplars saving every round and paired-tested the single best-by-eval checkpoint of each; none is credibly superior (Table ¿tbl:tab:bestckpt?), so the null is not an artifact of scoring an already broken checkpoint.

5pt

4pt

11 Robustness Battery↩︎

The null is unchanged by every recipe and evaluation choice a reviewer would raise. Table ¿tbl:tab:robust? collects the axes. Widening evaluation to 25 seeds lowers the baseline to \(44.7\%\) and leaves no credible winner. The one borderline arm (McNemar \(p=0.001\) under an unclustered test) loses credibility once episodes are clustered by task, and a six-seed replication of it averages \(49.7\%\) (Table ¿tbl:tab:trainseed?), so the edge was a lucky training seed. Adding the warmup and cosine schedule removes the collapse pathology without producing a gain, and a larger group breaks the agent sooner at high rates (Table ¿tbl:tab:recipe?). A per-episode taxonomy shows the failures are output degeneration, not reward-hacking: premature finishing is near zero in every regime (Table ¿tbl:tab:taxonomy?). On a separate distillation pilot (5 tasks, 6 seeds, \(n=30\)), expert supervision lifts the base model from \(50\%\) to \(80\%\) while GRPO on top of any initialization adds nothing, which is the evidence that the constructive lever is supervision rather than reinforcement learning.

4pt

4pt

5pt

5pt

12 Observation Track and Model Scale↩︎

The no-gain null generalizes across observation track and model scale, while the credible harm from a large rate is established on the 4B text track and is only nominal elsewhere. On the Set-of-Marks track the supervised baseline is higher, at \(63.6\%\), and no configuration credibly beats it; the high-rate degradation is directional but not credible (Table ¿tbl:tab:som?). At 8B on Set-of-Marks the baseline is also \(63.6\%\), the low-rate nudge is again nominal, and the higher rates are credibly worse (Table ¿tbl:tab:som8b?). The 8B mechanism cache (372 states, text) reproduces the late-layer rank inversion: supervised \(13.6\), flat \(15.1\), degrade \(1.9\), collapse \(19.6\).

5pt

5pt

13 Mechanism in Detail↩︎

The interpretability probes read a fixed cache of hidden states. Movement magnitude does not predict the failure mode: collapse moves less in \(L_2\) than degrade yet is more destructive, and the single largest total movement in the grid is the KL rescue arm, which is behaviorally at the baseline (Table ¿tbl:tab:wmove?). The rank and output-behavior probes give the double dissociation in full, including next-token entropy (Table ¿tbl:tab:rankfull?). Causal grafting localizes degrade to the attention or MLP and refutes the embedding, whose drift is largest; a magnitude-matched random-component null over 24 draws recovers only to a mean of \(19.3\%\) and a 95th percentile of \(22.9\%\), below the real grafts, while for collapse no single group recovers (Table ¿tbl:tab:graft?). The rank-to-capability coupling that holds at 4B does not transfer to 8B, where rank and argmax agreement never fall together across the sweep (Table ¿tbl:tab:decouple?). The KL anchor is a mode-preserving stabilizer, not a teacher: every KL arm holds argmax agreement at \(1.0\) while next-token entropy inflates to \(4.9\)\(7.7\), and KL suppresses embedding drift (\({\sim}0.006\) with KL against \({\sim}0.011\) without, at \(1\times10^{-5}\)) rather than freezing the weights.

4pt

4pt

7pt

7pt

14 The Positive Control in Detail↩︎

The positive control keeps the harness, reward, and recipe of the 4B text grid and changes only the tasks. We profiled the supervised policy on all 119 MiniWoB tasks and selected ten with a positive sampled-minus-greedy gap (Table ¿tbl:tab:headroom?). The same GRPO recipe, run over a small learning-rate sweep at two seeds, climbs on this set: five of six configurations rise and the strongest gains a credible 22 points (Table ¿tbl:tab:pcconfig?). Reading the late-layer rank on three checkpoints from this family shows rank health accompanying the gain and rank collapse accompanying the loss (Table ¿tbl:tab:rankhealth?), the constructive complement to the degrade lesion of the mastered grid.

6pt

5pt

6pt

15 Figure Gallery↩︎

This section collects the supporting figures that do not appear in the main text, grouped by the role they play in the argument. All success rates are clean greedy decoding on the 11-task text track (11 tasks by 5 seeds, 55 episodes per run) unless a caption states otherwise, and all intervals are Wilson \(95\%\) or task-clustered paired bootstrap intervals as noted.

15.1 Controlled null↩︎

Figure 6: Paired re-analysis of every grid arm against SFT on the 55 matched (task, seed) episodes, using a task-clustered bootstrap 95\% interval and an exact McNemar test on the discordant pairs. No arm is credibly better than SFT. The nominal winners at lr 3\times10^{-6} (+3.6pp) have intervals [+0.0,+10.9] and [+0.0,+9.1] with McNemar p=0.688 and 0.500. The moving regimes are credibly worse: pooled lr 1\times10^{-5}=-15.0pp [-20.9,-9.5] and pooled lr 2\times10^{-5}=-49.1pp [-62.7,-36.4]. The KL-rescued arms have discordant counts b/c=0/0, i.e. per-episode outcomes identical to SFT on all 55 episodes.

15.2 Robustness↩︎

Figure 7: The null under a five-fold increase in evaluation seeds (25 seeds, 275 episodes per config). The 25-seed SFT baseline is 44.7\% [39.0,50.6] (123/275), slightly below the 5-seed 49.1\%. Under the task-clustered paired bootstrap no config is credibly better: the largest nominal gap is +5.1pp with McNemar p=0.001 but a bootstrap interval whose lower bound touches 0, so it is not credible and is a single training seed.
Figure 8: Training-seed replication of the one borderline arm (+5.1pp at 25 eval seeds). The exact configuration (SFT-init, constant lr 3\times10^{-6}, G=8, 15 rounds) was retrained across six training seeds and clean-evaluated at the final checkpoint: 49.1, 52.7, 45.5, 49.1, 50.9, 50.9\%. The mean is 49.7\%\pm2.5 (sd), 95\% CI [47.7,51.7], sitting on the SFT baseline of 49.1\%, so the +5.1pp was training-seed noise.
Figure 9: Recipe ablation adding a warmup (15\%) plus cosine schedule and sweeping group size G\in\{8,16,32\}, paired against SFT (49.1\%). No run credibly beats SFT. The schedule removes the collapse pathology at moderate learning rate (constant-lr 1\times10^{-5} degraded and 2\times10^{-5} collapsed in the grid; with the schedule, 8\times10^{-6} and 1.5\times10^{-5} at G=8 become no-diff), but recovery is not learning. Larger G does not help and makes high-lr collapse worse.
Figure 10: Two one-sided equivalence at the 25-seed grain: a config is declared equivalent to SFT within \pm\delta when its task-clustered paired 90\% interval of (config minus SFT) lies inside [-\delta,+\delta]. Four of five top configs are equivalent within \pm5pp: base-init flat [+0.0,+4.1]; KL0.10 [+0.0,+0.0] (episode-identical); recipe G16 [-2.7,+4.1]; base-init sanity [-2.3,+0.9]. The lone exception is the lucky-seed arm, [+0.0,+15.0], the same seed noise resolved by the six-seed replication (Fig. 8). This is a positive equivalence claim, not merely a failure to reject.
Figure 11: Best-by-eval checkpoint trajectory for the three regime exemplars, clean-evaluated at every saved round. Best-by-eval selection surfaces nominal nudges (the flat run drifts to a max of 52.7\% by rounds 7 to 11; the degrade run reads 50.9\% at round 1 before falling to 35–40\%), but none survives the episode-matched paired test: flat max +3.6pp [+0.0,+9.1] (p=0.500), degrade r1 +1.8pp [-9.1,+12.7] (p=1.000), collapse -49.1pp. The null is not an artifact of scoring an already-broken final checkpoint.

15.3 Mechanism↩︎

Figure 12: Fixed-state effective rank by network depth (layers 6, 12, 18, 24, 30, 35) on identical inputs, localizing the degrade lesion to the late layers. Baselines and flat runs hold a late-layer (L35) effective rank of about 6.4 to 6.7, whereas the no-KL degrade runs collapse L35 to about 1.0 to 1.2 while earlier layers (L6 to L18) stay healthy. Collapse runs preserve L35 rank, the opposite lesion. The dissociation survives at N=1999 states, so it is not a small-N artifact.
Figure 13: Fixed-state output behavior on identical decision states: baseline argmax agreement, degeneracy (unparseable or no-op fraction), and next-token entropy. Baselines and flat runs preserve the policy (agreement about 0.95 to 1.0, degeneracy near 0) even when entropy is inflated, so entropy inflation alone is harmless under greedy decoding. Degrade corrupts the argmax (agreement 0.07 to 0.5, degeneracy 0.5 to 0.93); collapse destroys it entirely (agreement 0, degeneracy 0.8 to 1.0) in two flavors, high-entropy garble and low-entropy mode collapse.
Figure 14: Weight-movement magnitude relative to initialization (mean relative L_2 and sparse fraction) versus learning rate and regime, showing that magnitude does not predict the failure mode. Low-lr flat runs move least. Collapse moves less in L_2 than degrade yet is far more destructive. The single largest total movement in the grid belongs to the KL-rescued run, which is behaviorally at the SFT baseline (49.1\%). The outcome is not monotone in how far the weights move; direction and structure decide it.
Figure 15: Per-episode failure-mode taxonomy by regime (correct, valid-but-wrong target, premature-finish, invalid or unparseable, truncated). Reward-hacking by premature finishing stays at roughly 0 to 2\% across every regime, so the null is not explained by reward-gaming. The moving regimes fail through output degeneration: degrade is 63\% invalid and collapse is 98\% invalid. Flat and KL runs preserve the SFT structure (about 50\% correct and 40\% valid-but-wrong), the base capability ceiling rather than a new failure.

15.4 Generalization↩︎

Figure 16: Set-of-Marks (vision) learning-rate sweep for the 4B model, paired against the SoM SFT baseline of 63.6\% [50.4,75.1] (35/55), higher than the text baseline and itself a text-versus-SoM asymmetry. No SoM config credibly beats the baseline: lr 3\times10^{-6} is +3.6pp (p=0.500), lr 1\times10^{-5} is a nominal +7.3pp (p=0.219), and lr 2\times10^{-5} is -10.9pp (p=0.070, interval touching 0), a nominal-but-not-credible degrade. The no-gain null generalizes to SoM; the credible lr-collapse established on text is only nominal here.
Figure 17: Text-track learning-rate sweep for the 8B model, paired against the 8B-SFT baseline of 47.3\% [34.7,60.2] (26/55). No 8B config credibly beats the baseline. The low-lr arms give the familiar nominal nudge (lr 3\times10^{-6} up to 52.7\%, not credible), while the moving regimes break: lr 1\times10^{-5} seed 2 is credibly worse (36.4\%, p=0.031) and both lr 2\times10^{-5} runs collapse to 0.0\% (p<0.001). The null and the high-lr breakage carry over from 4B to 8B.
Figure 18: 8B mechanism interpretability on N=372 fixed states. The late-layer (L35) effective rank matches the 4B pattern: SFT 13.6, flat 15.1, degrade collapsed to 1.9, collapse preserved at 19.6. The honest scale nuance is that the 8B degrade keeps argmax agreement high (0.954) with intact success despite the rank collapse, whereas the 4B degrade drops agreement to 0.07 to 0.5. So the rank leg of the dissociation reproduces at 8B while the rank-to-behavior coupling does not.
Figure 19: 8B Set-of-Marks learning-rate sweep, paired against the 8B-SoM-SFT baseline of 63.6\% [50.4,75.1] (35/55). No 8B-SoM config credibly beats the baseline: lr 3\times10^{-6} is the same low-lr nominal nudge (+9.1pp, p=0.062, single seed), while lr 1\times10^{-5} (-18.2pp, p=0.002) and lr 2\times10^{-5} (-25.5pp, p=0.001) are both credibly worse. The lowest learning rate gives a nominal positive nudge that never clears the paired interval, here as at 4B.

16 Algorithms and Additional Definitions↩︎

This section states the three procedures the main text refers to by name, and recaps two estimators used in the evaluation. Algorithm 20 is the update we sweep; the only knobs the grid varies are the learning rate \(\eta_t\), the KL weight \(\beta\), the clip pair \((\epsilon_{\mathrm{lo}},\epsilon_{\mathrm{hi}})\), the seed, and the initialization of \(\theta\). Algorithm 21 is the interval behind every “credible” verdict, and Algorithm 22 is the causal test behind the localization claim.

Figure 20: GRPO update for the web agent
Figure 21: Task-clustered paired bootstrap for \Delta\mathrm{SR}
Figure 22: Causal component grafting

Two estimators complete the evaluation. The headroom criterion that selects the positive-control tasks compares the greedy success to the mean success under temperature sampling of the supervised policy, \[\Delta_{\mathrm{head}} = \tfrac{1}{K}\textstyle\sum_{k} \mathbf{1}[\operatorname{success}(\tau_k)] - \mathbf{1}[\operatorname{success}(\tau_{\mathrm{greedy}})],\] averaged over evaluation seeds, and a task is climbable when \(\Delta_{\mathrm{head}}>0\). The random-component null for grafting draws a set \(\mathcal{R}\) of non-attention parameters with \(|\mathcal{R}|\) equal to the attention parameter count, restores \(\mathcal{R}\) from initialization, and repeats the draw \(24\) times to form the null distribution whose mean and 95th percentile Table ¿tbl:tab:graft? reports; a real graft is a specific cause only when its recovery exceeds that percentile.

References↩︎

[1]
Z. Shao et al., “Deepseekmath: Pushing the limits of mathematical reasoning in open language models,” arXiv preprint arXiv:2402.03300, 2024.
[2]
Q. Yu et al., “Dapo: An open-source llm reinforcement learning system at scale,” Advances in Neural Information Processing Systems, vol. 38, pp. 113222–113244, 2026.
[3]
Z. Liu et al., “Understanding r1-zero-like training: A critical perspective,” arXiv preprint arXiv:2503.20783, 2025.
[4]
Z. Qi et al., “Webrl: Training llm web agents via self-evolving online curriculum reinforcement learning,” in International conference on learning representations, 2025, vol. 2025, pp. 79791–79821.
[5]
Z. Chen et al., “Does reinforcement learning really incentivize reasoning capacity in llms beyond the base model?” Advances in Neural Information Processing Systems, vol. 38, pp. 57654–57689, 2026.
[6]
S. Bai et al., “Qwen3-vl technical report,” arXiv preprint arXiv:2511.21631, 2025.
[7]
T. Shi, A. Karpathy, L. Fan, J. Hernandez, and P. Liang, “World of bits: An open-domain platform for web-based agents,” in International conference on machine learning, 2017, pp. 3135–3144.
[8]
E. Z. Liu, K. Guu, P. Pasupat, T. Shi, and P. Liang, “Reinforcement learning on web interfaces using workflow-guided exploration,” arXiv preprint arXiv:1802.08802, 2018.
[9]
O. Roy and M. Vetterli, “The effective rank: A measure of effective dimensionality,” in 2007 15th european signal processing conference, 2007, pp. 606–610.
[10]
G. Ilharco et al., “Editing models with task arithmetic,” arXiv preprint arXiv:2212.04089, 2022.
[11]
S. Zhou et al., “Webarena: A realistic web environment for building autonomous agents,” in International conference on learning representations, 2024, vol. 2024, pp. 15585–15606.
[12]
J. Schulman, F. Wolski, P. Dhariwal, A. Radford, and O. Klimov, “Proximal policy optimization algorithms,” arXiv preprint arXiv:1707.06347, 2017.
[13]
J. Yang, H. Zhang, F. Li, X. Zou, C. Li, and J. Gao, “Set-of-mark prompting unleashes extraordinary visual grounding in gpt-4v,” arXiv preprint arXiv:2310.11441, 2023.
[14]
E. B. Wilson, “Probable inference, the law of succession, and statistical inference,” Journal of the American Statistical Association, vol. 22, no. 158, pp. 209–212, 1927.
[15]
Q. McNemar, “Note on the sampling error of the difference between correlated proportions or percentages,” Psychometrika, vol. 12, no. 2, pp. 153–157, 1947.
[16]
D. J. Schuirmann, “A comparison of the two one-sided tests procedure and the power approach for assessing the equivalence of average bioavailability,” Journal of pharmacokinetics and biopharmaceutics, vol. 15, no. 6, pp. 657–680, 1987.