NousResearch/hermes-agent · error · ValueError
Reserved Harmony tokens in a JSON object key cannot be neutr
Error message
Reserved Harmony tokens in a JSON object key cannot be neutralized without changing its contract.
What it means
Error "Reserved Harmony tokens in a JSON object key cannot be neutralized without changing its contract." thrown in NousResearch/hermes-agent.
Source
Thrown at agent/codex_responses_adapter.py:141
result.append(text[original_cursor:])
return "".join(result)
def _neutralize_harmony_structure(value: Any) -> Any:
"""Neutralize JSON-like values; normalize tuples and reject unsafe keys.
Rewriting an object key could desynchronize a tool schema from the executor
contract, so a reserved token there is rejected explicitly instead.
"""
if isinstance(value, str):
return _neutralize_harmony_tokens(value)
if isinstance(value, (list, tuple)):
return [_neutralize_harmony_structure(item) for item in value]
if isinstance(value, dict):
normalized = {}
for key, item in value.items():
if isinstance(key, str) and _neutralize_harmony_tokens(key) != key:
raise ValueError(
"Reserved Harmony tokens in a JSON object key cannot be "
"neutralized without changing its contract."
)
normalized[key] = _neutralize_harmony_structure(item)
return normalized
return value
# ---------------------------------------------------------------------------
# Multimodal content helpers
# ---------------------------------------------------------------------------
def _chat_content_to_responses_parts(content: Any, *, role: str = "user") -> List[Dict[str, Any]]:
"""Convert chat-style multimodal content to Responses API input parts.
Input: ``[{"type":"text"|"image_url", ...}]`` (native OpenAI Chat format)
Output: ``[{"type":"input_text"|"output_text"|"input_image", ...}]`` (Responses format)
View on GitHub (pinned to c896c09c42)
Solutions
- Rename the JSON object key so it does not collide with reserved Harmony tokens.
- Restructure the payload so reserved tokens never appear as keys.
When it happens
Trigger: Thrown at agent/codex_responses_adapter.py:141 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/bdce578e402c0e00.
Report an issue: GitHub.