CRPO adapts Group Relative Policy Optimization to train character-role-playing agents. Its operational goal is to improve behavioral and stylistic fidelity without losing task response quality; it does not measure internal personality, cognition, or human-like reasoning. The method combines three components: separate within-prompt task advantages and a style signal described as historical and global per character; entropy-based instance gating plus a role-entropy-dependent KL controller; and a generic response generated after removing the character prompt as a negative anchor. Task rewards cover focus, focus attributes, and format, while style rewards are BLEU-1 through BLEU-4 and ROUGE-1, ROUGE-2, and ROUGE-L overlap with references. The optimized construct is therefore tag compliance and reference similarity, not directly validated identity, psychological coherence, or cognitive depth. Qwen3-8B and Llama-3.2-3B-Instruct are trained on 650 randomly selected CharacterBench samples with seven responses and one anchor per prompt. CharacterBench uses the learned automatic CharacterJudge; SocialBench evaluates social-knowledge dimensions. Qwen's CharacterBench average rises from 3.701 to 4.043, above OAR at 3.882, and Llama's rises from 3.681 to 3.832. These are the best reported averages for each backbone, but not universal gains. Qwen Human-Likeness falls from 3.445 to 3.300 and Engagement from 3.270 to 3.130. Llama falls from 2.890 to 2.750 and from 3.320 to 2.785 on those dimensions, while Follow-up Ability is 2.113 versus PPO's 2.750. SocialBench averages rise from .769 to .802 for Qwen and .633 to .699 for Llama. The Qwen table contradicts the prose claim that CRPO surpasses the second-best method on HSD: its .790 trails Dr.GRPO at .870, PPO at .860, and several others. Qwen ablations report 4.043 for full CRPO, 3.811 without dual-stream advantage, 3.962 without adaptation, and 3.942 without the anchor. No repeated runs, error bars, intervals, or tests support statistical use of the word significant. Four HCI graduate students compare four-turn conversations for 20 characters between CRPO and five baselines. The paper reports blinded order, wins only when both knowledge and style are better, 100 comparisons per model pair, $10/hour compensation, and Fleiss kappa .64 on an unspecified subset. The chart favors CRPO, but raw labels, exact machine-readable counts, uncertainty, assignments, and analysis are absent. This supports a narrow preference against selected baselines, not general utility. The public code materially conflicts with the paper. The launch script changes into EasyR1 and then requests a configuration path that exists only at repository root; training and validation JSON, role mapping, template, and reward implementation are also missing, so the released experiment cannot start. The paper states 30 epochs, rollout batch 512, and actor batch 128; the shell overrides these to 6, 256, and 32, while the YAML states one epoch and defaults to Qwen2.5-7B. No Llama configuration exists. Code normalizes style reward again within each prompt, contrary to the described global absolute signal. The 1−.02H gate can only range from about .986 to 1, not the strong suppression assumed by the proof. The KL target uses (global entropy/role entropy)^1.5, assigning higher-entropy roles a smaller target, opposite to the paper; when observed KL exceeds target, the update lowers the penalty coefficient, also opposite to the claimed stabilizing behavior. Logged coefficients are one step stale and a computed scale factor is passed into policy loss but never used. The anchor truncates at the last literal Character token, which is brittle to tokenization, absence, and content occurrences and is not structured prompt removal. The theoretical claims do not follow: one assumes a weight bound the algorithm does not ensure, and the other treats changing a KL target as guaranteeing inclusion of an optimal policy in the feasible set. Benchmark leakage is a serious unresolved risk because 650 random CharacterBench samples are used for training and CharacterBench is then evaluated without released IDs or a demonstrated row-, reference-, or character-disjoint split. The exact CharacterJudge checkpoint, prompt, decoding, and parser are not reported. SocialBench provides useful external evidence but cannot repair the contaminated construct or validate persona fidelity. Data-efficiency comparisons mix backbones, datasets, methods, and training scales. Safety evaluation is absent: a reward tag named Safety is not a safety benchmark, and the study does not test abuse, emotional dependency, minors, stereotypes, jailbreaks, alignment retention, or deployment effects. The repository has five commits and 91 files, mostly vendored EasyR1, but lacks a root license, release, tests, CI, locked environment, data, rewards, prompts, checkpoints, logs, outputs, evaluation scripts, and human labels. The defensible contribution is an interesting RL objective with promising benchmark averages and limited human-preference evidence. It does not establish cognition, real psychological fidelity, safety, dimension-wise superiority, data efficiency, or independent reproducibility; paper, configuration, and implementation contradictions prevent the results from being treated as a verified executable artifact.
Research question
Can a variant of GRPO that separates task and style rewards, adapts constraints according to character entropy, and contrasts with a generic response improve the fidelity of role-play agents without degrading their task performance?