You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决macOS Docker环境下OpenHands对接AWS Bedrock的'output'密钥错误

Docker部署OpenHands对接AWS Bedrock:主应用调用litellm出现KeyError: 'output'

环境与场景

在macOS上通过Docker部署OpenHands并对接AWS Bedrock,容器内单独用litellm调用anthropic.claude-v2模型可正常返回结果,但主应用运行时持续触发litellm.APIConnectionError,具体错误为KeyError: 'output'。

Docker启动命令

docker run -it --pull=always \
        -e SANDBOX_RUNTIME_CONTAINER_IMAGE="docker.all-hands.dev/all-hands-ai/runtime:0.12-nikolaik" \
        -e AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID" \
        -e AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY" \
        -e AWS_REGION="us-east-1" \
        -e LLM_PROVIDER="bedrock" \
        -e MODEL_ID="anthropic.claude-v2" \
        -e BASE_URL="https://bedrock.us-east-1.amazonaws.com" \
        -p 3000:3000 \
        --add-host=host.docker.internal:host-gateway \
        --name openhands-app-bedrock \
        docker.all-hands.dev/all-hands-ai/openhands:latest

容器内测试成功步骤

执行以下命令进入容器并测试:

docker exec -it openhands-app-bedrock /bin/bash

进入ipython后执行:

from litellm import completion
response = completion(model="anthropic.claude-v2", messages=[{"role": "user", "content": "Hello, how are you?"}])
print(response.choices[0].message.content)
# 输出:I'm doing well, thanks for asking!

主应用核心错误详情

18:19:44 - openhands:ERROR: retry_mixin.py:47 - litellm.APIConnectionError: 'output'
Traceback (most recent call last):
  File "/app/.venv/lib/python3.12/site-packages/litellm/main.py", line 2564, in completion
    response = bedrock_converse_chat_completion.completion(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_handler.py", line 421, in completion
    return litellm.AmazonConverseConfig()._transform_response(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_transformation.py", line 390, in _transform_response
    message: Optional[MessageBlock] = completion_response["output"]["message"]
                                      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'output'

解决方案建议

  • 修正BASE_URL配置:Bedrock的Converse接口正确端点应为https://bedrock-runtime.us-east-1.amazonaws.com,而非基础bedrock端点。修改启动命令中的BASE_URL参数为该值。
  • 核对主应用调用参数:容器内手动调用使用completion接口正常,主应用可能误用converse接口或传递的请求格式(如messages结构、额外参数)不符合Claude模型要求,对比两者的调用参数差异。
  • 统一litellm版本:检查主应用依赖的litellm版本(查看requirements.txt或pyproject.toml),与容器内手动测试的版本(执行pip show litellm)保持一致,优先使用稳定版本。
  • 排查API响应内容:提高主应用日志级别,打印Bedrock返回的完整响应,确认是否因权限不足、调用限制等问题返回错误结构而非正常output字段。

内容的提问来源于stack exchange,提问作者0x90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:45:20