feat: Add recoverable field to AgentErrorEvent #1501
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a
recoverableboolean field toAgentErrorEventto distinguish between errors that need user attention and errors that the LLM can self-correct.Motivation
Currently, all
AgentErrorEvents are treated identically by the frontend, resulting in a big red error banner even for recoverable errors. This creates a poor UX when:security_riskfieldagent.pyraises aValueErrorAgentErrorEventwith the error messageconversation-websocket-context.tsxreceives itsetErrorMessage(event.error)stores it in error-message-storechat-interface.tsxrendersErrorMessageBanner(big red banner!)The problem is that ALL
AgentErrorEvents are treated as critical errors. But validation errors (like missingsecurity_risk) are:Changes
AgentErrorEventnow has arecoverable: boolfield (default:False)recoverable=TrueRelated PR
A companion PR for the OpenHands frontend will use this field to avoid showing the big red error banner for recoverable errors.
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:f31273d-pythonRun
All tags pushed for this build
About Multi-Architecture Support
f31273d-python) is a multi-arch manifest supporting both amd64 and arm64f31273d-python-amd64) are also available if needed