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

AWS Bedrock Agent SessionAttributes参数使用异常求助

排查AWS Bedrock Agent会话属性无法被Claude 3.5 Sonnet读取的问题

以下是可能的原因及对应的排查解决步骤:

1. 提示词模板未显式引用会话属性

Bedrock Agent不会自动将sessionAttributes传递给LLM,必须在代理的提示词模板中显式引用这些属性。如果模板里没有包含对会话属性的占位符,LLM完全不知道这些信息存在。

示例正确模板:

你是一个个性化聊天机器人,当前用户信息:
姓名:{{sessionAttributes.username}}
年龄:{{sessionAttributes.age}}
历史对话摘要:{{sessionAttributes.conversation_summary}}

用户问题:{{input}}

检查你的代理模板,确保所有需要的会话属性都被正确引用。

2. InvokeAgent请求的sessionState结构错误

确认请求中sessionState的层级和拼写完全正确,必须是嵌套结构:

response = bedrock_agent_runtime.invoke_agent(
    agentId="YOUR_AGENT_ID",
    agentAliasId="YOUR_ALIAS_ID",
    sessionId="UNIQUE_SESSION_ID",
    inputText="我的名字是什么?",
    sessionState={
        "sessionAttributes": {
            "username": "张三",
            "age": 25,
            "conversation_summary": "用户首次询问姓名"
        }
    }
)

注意避免拼写错误(比如把sessionAttributes写成sessionAttribute),或属性名大小写不匹配(模板用Username但请求传username)。

3. 代理会话状态配置未启用

在Bedrock控制台的代理设置中,检查会话状态是否设置为「启用」,并且允许在调用间传递会话属性。如果未开启,即使请求中传入了属性,代理也不会将其传递给LLM。

4. 完整提示词未包含会话属性

通过CloudWatch日志查看Bedrock Agent传给Claude 3.5 Sonnet的完整提示词:

  • 找到对应代理的日志组,搜索包含「完整提示词」或「prompt」的日志条目
  • 确认会话属性的内容是否被正确注入到提示词中
    如果日志里没有这些属性,说明是模板或请求结构问题;如果有,可能是提示词表述不够清晰,需要调整模板让LLM明确识别这些信息。

5. 首次调用会话属性未正确初始化

部分场景下,首次调用InvokeAgent时需要确保sessionAttributes被完整初始化。如果请求中sessionState.sessionAttributes为空或结构错误,会导致属性无法被代理存储和传递。

内容的提问来源于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:42:06