AWS Bedrock Agent格式输出不稳定,如何强制返回指定JSON?
AWS Bedrock Agent 严格返回指定JSON格式的解决方案
强化系统提示的格式约束
直接在系统提示开头明确强制要求:你必须直接返回符合以下JSON Schema的纯JSON内容,不得添加任何前置说明、解释性文字或后缀内容,随后用代码块包裹完整Schema定义,同时加入错误/正确输出示例强化认知:错误示例:"Here's the results in strict JSON format: {"key": "value"}"
正确示例:"{"key": "value"}"锁定版本化提示模板
通过Bedrock Agent的Prompt Management功能创建并绑定固定版本的系统提示模板,确保Agent始终使用经过验证的指令,避免动态调整导致的输出偏差。启用内置JSON输出解析器
在Agent配置的「Output Configuration」中选择内置JSON输出解析器,上传或粘贴你的目标Schema。该解析器会强制模型输出匹配Schema格式的内容,不符合时会触发解析校验错误,迫使模型调整输出逻辑。优化模型生成参数
- 将
temperature参数设置为0.1-0.3的低数值,降低模型输出的随机性,提升指令遵循稳定性; - 根据预期JSON内容长度合理设置
max_tokens,避免模型因输出空间冗余额外添加说明性文字。
- 将
Lambda代理中添加轻量级格式修正
无需额外调用LLM,在现有Lambda处理逻辑中加入简单字符串处理:用正则表达式匹配并剔除常见前置文本(如Here's the results in strict JSON format:),提取纯JSON部分后再做格式校验。示例代码片段:import re import json def clean_agent_output(raw_output): # 匹配并移除前置说明文本 cleaned = re.sub(r'^\s*Here\'s the results in strict JSON format:\s*', '', raw_output.strip()) # 验证JSON有效性(可选) try: json.loads(cleaned) return cleaned except json.JSONDecodeError: # 处理无效情况,可返回默认结构或抛出错误 return json.dumps({"error": "Invalid output format"})
内容的提问来源于stack exchange,提问作者Shivam Sahil
相关产品推荐
相关产品推荐

