Codex rollout reader drops raw reasoning from open-model servers
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 45/100
Línea de trabajo
Read engine/resources/agent_rollout/codex.py, especially extract_codex_reasoning_summaries, and the rollout tests under tests/engine/resources/agent_rollout/. Use the provided JSONL reproduction to check how reasoning items with content and summary are parsed. Done means the assistant message has reasoning_content from content, with summary as fallback, and the existing rollout tests still pass.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Priority Level
Medium (Annoying but has workaround)
Describe the bug
AgentRolloutSeedSource with format=codex drops the reasoning of Codex sessions that ran against an open model served by vLLM.
extract_codex_reasoning_summaries in engine/resources/agent_rollout/codex.py reads only the summary field of a reasoning response item.
vLLM's Responses API returns reasoning as content: [{"type": "reasoning_text", ...}] with an empty summary, and Codex writes that item to the rollout file unchanged.
The resulting assistant messages have no reasoning_content, so the reasoning is missing from the seed data.
Steps/Code to reproduce bug
Reproduced on main (c05a87e) with Python 3.14.3 and dependencies installed with uv sync --all-packages --frozen.
No model calls are needed.
The code calls CodexAgentRolloutFormatHandler, the handler that AgentRolloutSeedSource(format="codex") uses (registered in agent_rollout/registry.py).
import json
import tempfile
from pathlib import Path
from data_designer.engine.resources.agent_rollout.codex import CodexAgentRolloutFormatHandler
root = Path(tempfile.mkdtemp())
rows = [
{"type": "session_meta", "payload": {"id": "sess-1"}},
{"type": "response_item", "payload": {"type": "message", "role": "user", "content": [{"type": "input_text", "text": "What is 2+2?"}]}},
{"type": "response_item", "payload": {"type": "reasoning", "summary": [], "content": [{"type": "reasoning_text", "text": "2+2 is 4."}], "encrypted_content": None}},
{"type": "response_item", "payload": {"type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "4"}]}},
]
(root / "rollout-repro.jsonl").write_text("\n".join(json.dumps(r) for r in rows) + "\n")
record = CodexAgentRolloutFormatHandler().parse_file(root_path=root, relative_path="rollout-repro.jsonl")[0]
print(next(m for m in record.messages if m["role"] == "assistant").get("reasoning_content"))
Output: None
Expected behavior
The assistant message has reasoning_content == "2+2 is 4.".
When a reasoning item has text in both content and summary, the reader should prefer content (the full reasoning) and fall back to summary, OpenAI-hosted models do not return raw reasoning content, so their rollouts keep the current behavior.
Agent Diagnostic / Prior Investigation
- Searched open and closed issues, PRs, and discussions for "codex reasoning", "codex rollout", "reasoning_content", "reasoning_text", "agent_rollout", and "AgentRolloutSeedSource": no existing report.
#374 also concerns vLLM reasoning fields, but in model client response parsing, not in rollout ingestion. - Searched the docs: the agent rollout ingestion page (
agent-rollout-ingestion.mdx) does not mention reasoning, so it does not say which Codex reasoning fields are read. - End to end: Codex CLI 0.159.2 against vLLM 0.30.0 serving
nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8, two turns with tool calls, ingested with Data Designer 0.9.2.
The rollout file had 4 reasoning items withreasoning_textcontent and an emptysummary.
The reader setreasoning_contenton 0 of 4 corresponding assistant messages. - Workaround: rewrite the rollout files to copy
contentintosummarybefore ingestion.
Additional context
I have a fix ready: a small change in codex.py (+11/−6 lines) that reads content first and falls back to summary, plus one unit test.
On main, tests/engine/resources/agent_rollout/ passes (49 tests) with the fix applied, and the new test fails without it.
I will open the PR once this issue is triaged.
Checklist
- I reproduced this issue or provided a minimal example
- I searched the docs/issues myself, or had my agent do so
- If I used an agent, I included its diagnostics above
- Lenguaje dominante
- Python
- Estrellas
- 2.3k
- Forks
- 227
- Merge medio
- 1 d 7 h
- PR fusionados (30 d)
- 57
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA-NeMo/DataDesigner
-
docs: required_columns description is incomplete for LLM and multimodal columnsQuizá libre de nuevo @nightcityblade la tomó hace 7 días y no hay ningún pull request abierto. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NVIDIA-NeMo/DataDesigner#1002 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
enforce \from future import annotations` via ruff FA102 rule`Posiblemente ocupada @chethanuk la tomó hace 35 días. Abiertotask
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NVIDIA-NeMo/DataDesigner#760 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
NVIDIA-NeMo/DataDesigner#1033 ·
Los mantenedores suelen responder en 1 día
-
Agent skills hide information in unspecified fieldQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 38/100
NVIDIA-NeMo/DataDesigner#1010 ·
Los mantenedores suelen responder en 1 día
-
Numeric sampler rounding can violate constraints and invalidate conditional samplingPosiblemente ocupada @Avaivartika la tomó hace 1 día. Abiertobug triaged
Dificultad 4/5 3-5 días Aptitud para principiantes 63/100
NVIDIA-NeMo/DataDesigner#1001 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA-NeMo/DataDesigner
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
huggingface/sentence-transformers#4186 ·
Los mantenedores suelen responder en 5 días
-
documentation good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
sujithputta02/Esapay#13 ·
-
bot-triaged module: correctness (silent) module: mps module: NaNs and Infs triage review
Dificultad 2/5 Medio día Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
README: CI link/badge checkAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
SCIInstitute/SCIRun#2842 ·
Los mantenedores suelen responder en 3 días