anthropics / anthropics/claude-agent-sdk-python

[BUG] StructuredOutput tool wraps data in 'output' field causing schema validation to fail

Abierto
#502 16 comentarios 10 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
8.1k
Forks
1.3k
Merge medio
2 d 31 min
PR fusionados (30 d)
1

Descripción

## Bug Description

When using structured outputs with `output_format`, the `StructuredOutput` tool **intermittently** wraps user data in an `{"output": {...}}` field. Validation fails when the wrapper is present.

**This is non-deterministic** - same prompt can produce either format:

```json
// Sometimes (works):
{"actions": [...]}

// Sometimes (fails validation):
{"output": {"actions": [...]}}
```

## Impact

1. `ResultMessage.structured_output` is `None` when wrapper is present
2. **Agent confusion** - Claude sees conflicting validation errors and may simplify output (e.g., 47 items → 1 item)
3. **Flaky results** - identical prompts succeed or fail randomly

## Tool Response Error

```
Output does not match required schema: root: must have required property 'actions', root: must NOT have additional properties
```

This error confuses Claude because:
- `actions` is "required" but exists inside `output`
- Schema has `additionalProperties: false`, so `output` is invalid

Claude tried to "debug" by reducing output from 47 items to 1 item.

## Environment

- claude-agent-sdk==0.1.19
- Python 3.11+

## Related

- #374 - Structured outputs flaky (similar wrapper issues with `properties`/`parameters`)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.