El trabajo parte de un problema real de los benchmarks de agentes: los usuarios simulados por LLM suelen ser demasiado cooperativos, homogéneos y dispuestos a proporcionar toda la información, por lo que pueden convertir una interacción difícil en una prueba artificialmente fácil. Propone Persona Policies (PPol), una capa que no cambia los hechos, herramientas ni recompensa de la tarea, sino que añade al prompt del simulador una política de actuación sobre cómo comunicarse. En lugar de escribir perfiles a mano, PPol evoluciona un programa Python que recibe el contexto de una tarea, una lista de ejes conductuales y un número N, y genera una población de instrucciones de role-play. Una primera llamada crea arquetipos y asigna ejes; llamadas posteriores los expanden en instrucciones de 150-250 palabras con reglas operativas como revelar datos gradualmente, escribir mensajes fragmentados, mostrarse escéptico, negarse a repetir identificadores o reaccionar a errores del agente.
La búsqueda se implementa con OpenEvolve y MAP-Elites. Gemini 3 Flash propone personas, reflexión y cambios de código; los simuladores evaluados son DeepSeek-V3.1, GPT-5.4-Mini y Qwen3-Next-80B-A3B-Instruct; Gemma 4 31B actúa como asistente y participa en la interfaz y comprobaciones del entorno. Cada conversación se reduce a 19 rasgos regex o estadísticos agrupados en estilo comunicativo, revelación de información, aclaración y reacción ante errores. Un Random Forest entrenado con conversaciones humanas y el simulador base produce P(humano). El segundo objetivo es una cobertura Chamfer bidireccional entre la nube de personas generadas y conversaciones humanas. En validación y test, la fitness pondera ambos componentes al 50%. Durante entrenamiento, un currículo aumenta N de 5 a 8 y 10 y eleva progresivamente el peso de cobertura.
Los experimentos usan retail y airline de tau2-bench, con 74/40 tareas train/test en retail y 30/20 en airline. La referencia humana es el corpus TAU-USI: 495 conversaciones de 451 participantes sobre 165 tareas, con tres conversaciones independientes por tarea. La búsqueda usa cinco tareas por evaluación, reserva un 20% del train para validación y permite hasta 70 iteraciones. En test, cada condición con personas genera diez por tarea, hasta 400 rollouts en retail y 200 en airline. Frente al simulador base, direct prompting y el generador inicial sin evolucionar, PPol evolucionado obtiene la mayor fitness en todos los bloques publicados. En retail-Qwen, el score pasa de 0,077 a 0,693 y el USI diagnóstico de 35,1% a 76,5%; en airline-GPT-5.4-Mini, de 0,243 a 0,574 y de 54,3% a 72,5%; en el bloque conjunto con DeepSeek, de 0,135 a 0,614 y de 57,1% a 74,5%. Las mejoras headline de 33-62 puntos son, por tanto, aumentos de la métrica compuesta definida por los autores, no de éxito de tarea ni de una medida independiente de realismo.
La validación humana aporta evidencia externa útil, pero más estrecha que el titular. Veinte personas fueron reclutadas en Prolific a 20 dólares por hora bajo una exención del IRB; cuatro se excluyeron por no completar el estudio o fallar una conversación de control deliberadamente obvia. Quedaron 16 evaluadores, 87 conversaciones únicas y 159 votos. La figura permite reconstruir 52/65 trazas humanas, 41/51 PPol y 20/43 del simulador base etiquetadas como humanas: 80,0%, 80,4% y 46,5%. El Welch publicado para PPol frente al base se reproduce exactamente con esos conteos, t=3,556 y p=0,000637. También se informa de correlación point-biserial r=0,49 entre P(humano) y el juicio binario. Sin embargo, el test trata cada voto como independiente aunque hay múltiples votos por evaluador y conversaciones repetidas; no usa un modelo mixto ni errores agrupados. Tampoco se hace una prueba de equivalencia entre PPol y humanos: porcentajes cercanos no demuestran equivalencia, y sus intervalos binomiales son amplios. Los datos de asignación, scores por transcripción y análisis del estudio no están publicados.
El caso de entrenamiento ajusta Gemma 4 31B con LoRA sobre trayectorias exitosas. En retail, añadir PPol eleva el promedio OOD de 0,213 a 0,250: +0,037 absoluto y +17% relativo. La mayor mejora es Confusion, 0,275 a 0,400; Incoherent e Impatient no cambian. En airline el promedio pasa solo de 0,400 a 0,413 y en el modelo conjunto de 0,317 a 0,341. El +17% del abstract es específico de retail. Con 40 y 20 tareas, sin semillas repetidas, intervalos ni tests, no se conoce la estabilidad de diferencias pequeñas. Además, el texto se contradice: un apéndice dice 32 pasos de optimización y otro 48; los YAML publicados usan 48. El apéndice afirma seleccionar el checkpoint con menor pérdida de validación, pero el código evalúa cada ocho pasos, guarda solo en el 48 y no configura selección automática. La afirmación de igual volumen tampoco está garantizada: el colector base produce un rollout por tarea, PPol hasta diez, y el constructor mezcla todas las trayectorias exitosas sin balancearlas.
La principal objeción métrica es verificable en el código. La distancia Chamfer se calcula sobre los 19 rasgos crudos, sin estandarización, aunque mezcla conteos y tasas. En el corpus humano publicado, opening_length y words_per_turn concentran el 99,847% de la varianza geométrica en retail y el 99,827% en airline; opening_length por sí solo supone 86,301% y 72,864%. La supuesta cobertura amplia de 19 comportamientos está, de hecho, dominada por dos medidas de longitud. El Random Forest y Chamfer comparten el mismo vocabulario de 19 rasgos y la evolución recibe feedback de esas métricas, de modo que el sistema puede optimizar el proxy sin capturar dimensiones semánticas o psicológicas no medidas. El estudio humano mitiga parcialmente esta objeción solo para DeepSeek en retail.
El repositorio es valioso como implementación: publica el generador, extractor, clasificador, fitness, integración con OpenEvolve, benchmark, inyección y pipeline SFT; todo el Python compila y sus cinco tests pasan. No es un paquete de reproducción de resultados. Están ignorados y ausentes los fingerprints base, clasificadores, checkpoints evolucionados, respuestas crudas, logs, curvas, resultados de benchmark, datos del estudio, conjuntos SFT, adaptadores y scripts de tablas. Las dependencias usan mínimos abiertos, tau2 y tau-trait aparecen como URLs placeholder, LLaMA-Factory no está fijado y los modelos son aliases mutables. Tampoco hay licencia raíz. El repo incluye directamente un JSON de 14 MB con las 495 conversaciones humanas que coincide en estructura y conteos con TAU-USI, pero no adjunta sus condiciones: el origen oficial es gated, CC BY-NC 4.0, solo investigación, prohíbe entrenamiento de LLM, exige atribución y requiere conservar los términos al redistribuir. Esto es un problema material de procedencia y cumplimiento, no una declaración jurídica.
La lectura equilibrada es que PPol ofrece una idea interesante y código inspeccionable para convertir perfiles estáticos en políticas conversacionales operativas. Los resultados muestran mejoras grandes en el proxy diseñado, una señal humana convincente pero estadísticamente submodelada en una condición, y una mejora de robustez prometedora pero pequeña y desigual fuera de retail. No demuestra realismo humano general, equivalencia con personas reales ni robustez estable entre dominios. Para sostener esos claims harían falta métricas normalizadas y externas, análisis agrupado del estudio, múltiples seeds de SFT, artefactos completos, versiones fijadas y una publicación de datos compatible con sus términos de origen.