anthropics / anthropics/anthropic-sdk-python

Managed Agents event stream doesn't surface model refusal stop_reason / stop_details

Abierto
#1,664 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
3.9k
Forks
853
Merge medio
1 d 18 h
PR fusionados (30 d)
11

Descripción

## Summary

On the Messages API, a safety refusal is reported via `stop_reason="refusal"` plus
`stop_details` (`RefusalStopDetails`, with `category` = `bio` | `cyber`). The Managed
Agents session event stream appears to have no equivalent, so a consumer can't tell
that a turn ended due to a model refusal (or which category).

## Details

Verified against `main` and the latest release (`v0.107.1`):

- `BetaManagedAgentsSessionStatusIdleEvent.stop_reason` is a union of only
`BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction |
BetaManagedAgentsSessionRetriesExhausted` — no `refusal` variant.
(`src/anthropic/types/beta/sessions/beta_managed_agents_session_status_idle_event.py`)

- `BetaManagedAgentsSpanModelRequestEndEvent` exposes `is_error` and `model_usage`
but no `stop_reason` / `stop_details`.
(`src/anthropic/types/beta/sessions/beta_managed_agents_span_model_request_end_event.py`)

For comparison, the Messages API `Message` carries `stop_reason` (includes `"refusal"`)
and `stop_details` (`RefusalStopDetails`). The `BetaStopReason` enum also lists
`"refusal"`, but the session-idle event's `stop_reason` union does not include it.

## Initial analysis — needs confirmation

A prompt that triggers a refusal on the Messages API appears, in a Managed Agents
session, to produce a turn with little/no text after which the session goes idle,
with no event field indicating a refusal occurred.

Possible resolution: include a `refusal` variant in the `session.status_idle`
`stop_reason` union, and/or surface the underlying model `stop_reason` / `stop_details`
on `span.model_request_end`.

Guía de contribución

Abrir la guía de contribución

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.