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

如何通过InvokeAgent API向AWS Bedrock Agent发送图片?格式验证报错求助

解决AWS Bedrock Agent通过InvokeAgent API传递图片的问题

核心结论

Bedrock Agent的InvokeAgent API暂不支持直接通过sessionState.files字段传递Base64编码图片,该字段仅用于关联已预上传到S3的文件,且需遵循特定格式要求。

正确的图片传递流程

1. 预上传图片到S3并配置权限

  • 确保S3桶已为Bedrock Agent的执行角色授予s3:GetObject权限
  • 将图片上传到Agent所在区域的S3桶中

2. 在InvokeAgent请求中关联S3文件

在sessionState.files字段中传入S3对象的ARN,而非Base64编码内容,示例格式如下:

sessionState={
    "files": [
        {
            "fileArn": "arn:aws:s3:::your-bucket-name/path/to/target-image.jpg"
        }
    ]
}

修正后的Python代码示例

import boto3

# 初始化Bedrock Agent Runtime客户端
bedrock_agent_client = boto3.client(
    'bedrock-agent-runtime',
    region_name='us-east-1'  # 替换为你的Agent所在区域
)

# 调用InvokeAgent API
response = bedrock_agent_client.invoke_agent(
    agentId='YOUR_AGENT_ID',
    agentAliasId='YOUR_AGENT_ALIAS_ID',
    sessionId='unique-session-identifier',
    inputText='请分析这张图片的内容',
    sessionState={
        "files": [
            {
                "fileArn": "arn:aws:s3:::your-bucket/images/sample.png"
            }
        ]
    }
)

# 处理流式响应
for event in response['completion']:
    if 'chunk' in event:
        print(event['chunk']['bytes'].decode('utf-8'))

关键注意事项

  • 需使用支持多模态的基础模型(如Claude 3、Gemini系列)
  • S3文件大小需符合Bedrock的限制(通常不超过10MB)
  • Agent的执行角色必须具备目标S3对象的读取权限

内容的提问来源于stack exchange,提问作者Vinícius Felizatti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 23:30:56