anthropics / anthropics/claude-code

[FEATURE] AskUserQuestion tool result cannot be distinguished from a genuine human response

Abierto
#88,790 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area:agents area:permissions area:security enhancement
Lenguaje dominante
Python
Estrellas
145k
Forks
23.1k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

### Preflight Checklist

- [x] I have searched [existing requests](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20label%3Aenhancement) and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)

### Problem Statement

When a subagent session calls the AskUserQuestion tool, the tool's return value has the same format regardless of whether a human actually saw and clicked an option, or whether the answer was auto-returned without any human interaction (e.g. under a bypass-permissions-style mode).

Return format observed:
"Your questions have been answered: ""="" selected"

In our case, a subagent running inside an isolated worktree called AskUserQuestion twice for real approval decisions (whether to proceed with implementation, whether a UI line could be deleted). Both times the tool returned a result with the "(recommended)" labeled option selected, while no human had actually seen or interacted with the question. The subagent had no way to tell, from the tool result alone, whether this was a real human answer or an automatic one.

This is a trust/safety-relevant gap: any workflow that treats AskUserQuestion results as a human approval gate (e.g. "proceed only after user confirms") cannot currently verify that a human was actually involved.

### Proposed Solution

Have the AskUserQuestion tool result (or an adjacent signal available to the calling agent) indicate whether the answer came from an actual UI interaction versus an automatic/bypassed path. For example, an explicit field like "source": "human" | "auto" alongside the selected answer, so agents can distinguish real approval from auto-approval before treating it as authorization for consequential actions (implementation, commit, push, deletion, etc.).

### Alternative Solutions

Currently the only workaround we found is: after receiving an AskUserQuestion result from a subagent, have the parent/coordinating session (or a human) independently re-confirm with the actual user whether they were really shown and answered the question. This is manual, easy to forget, and only discovered after the fact in our case.

### Priority

High - Significant impact on productivity

### Feature Category

API and model interactions

### Use Case Example

1. A parent Claude Code session delegates a task to a subagent session running in an isolated worktree (e.g. via Orca-style multi-session orchestration), possibly in a permission mode that can auto-approve some actions.
2. The subagent calls AskUserQuestion for a real decision (e.g. "should I proceed with this implementation?").
3. The subagent receives a result in the normal format: "Your questions have been answered: ""="" selected".
4. The subagent has no way to tell whether a human actually saw and clicked that option, or whether the answer was returned automatically without any human involved.
5. The subagent (reasonably) treats this as a real human approval and proceeds with consequential actions (implementation, commit, push).
6. It later turns out no human was ever shown the question.

### Additional Context

_No response_

Guía de contribución

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

Línea de trabajo

The issue does not name files, tests, or implementation entry points. Start by locating the AskUserQuestion tool result and tracing how answers are produced in human-interaction and automatic/bypassed paths. Done means the calling agent can reliably distinguish a real UI response from an automatic answer; check the relevant tool and agent tests for both paths.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, authentication
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Activo
Claridad
Bien especificado
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.