Codex rollout reader drops raw reasoning from open-model servers
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 45/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Python
- Stelle
- 2.4k
- Fork
- 234
- Merge medio
- 22h 5m
- PR unite (30g)
- 70
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di NVIDIA-NeMo/DataDesigner
-
`ValidationColumnConfig` misaligns rows and discards the whole batch after an upstream row is droppedForse già presa @suryapilla l’ha presa 1 giorno fa. Apertatriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
NVIDIA-NeMo/DataDesigner#1073 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
docs: required_columns description is incomplete for LLM and multimodal columnsForse già presa @rksharma-owg l’ha presa 7 giorni fa. Apertabug triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
NVIDIA-NeMo/DataDesigner#1002 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
enforce \from future import annotations` via ruff FA102 rule`Forse già presa @chethanuk l’ha presa 43 giorni fa. Apertatask
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NVIDIA-NeMo/DataDesigner#760 ·
I maintainer di solito rispondono entro 1 giorno
-
Support external model providers in Slurm runsForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
NVIDIA-NeMo/DataDesigner#1079 ·
I maintainer di solito rispondono entro 1 giorno
-
Children forked after a run generate identical sampler dataForse già presa @binaryaaron l’ha presa 1 giorno fa. Apertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
NVIDIA-NeMo/DataDesigner#1076 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di NVIDIA-NeMo/DataDesigner
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 85/100
WLAN-Pi/wlanpi-profiler#341 ·
I maintainer di solito rispondono entro 1 giorno
-
Memory leak: the shared `validation_aborted_error` keeps every traceback it is raised throughForse già presa @Fire162 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
graphql-python/graphql-core#287 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
roman-corgi/ctc-dip#160 ·
I maintainer di solito rispondono entro 1 giorno
-
type-bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
render_findings.py reads and writes in the host's default encoding, so findings.html breaks on a cp1252 Windows hostForse già presa @Aaqibhafeezkhan l’ha presa oggi. Apertabug good first issue mentored python size: XS up-for-grabs
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
dheerajjha/mcp-migrate#366 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno