如何让AWS Bedrock Agent输出指定格式的JSON数组?
AWS Bedrock Agent 输出指定JSON数组格式解决方案
一、修正Agent系统指令(关键)
之前的指令可能不够强制,需要明确要求模型只输出JSON数组,且严格包含指定字段:
你需将知识库检索到的所有结果整理为严格的JSON数组,每个元素必须包含"uri"和"content"字段: - "uri":对应检索结果的源文件URI - "content":对应检索到的内容片段 禁止添加任何额外文字、解释或说明,仅输出符合格式的JSON数组。
二、配置编排策略的输出模板
Bedrock Agent的编排策略中,可通过自定义模板强制输出结构:
- 进入Agent控制台,找到对应Agent的编排策略设置
- 选择
RetrieveAndGenerate模式,展开「输出配置」 - 选择「自定义输出模板」,使用Handlebars语法编写模板:
[ {{#each retrievedResults}} {"uri": "{{sourceUri}}", "content": "{{content}}"} {{#unless @last}},{{/unless}} {{/each}} ]
- 保存配置,确保模板能正确遍历所有检索结果并生成数组结构
三、调整生成参数稳定输出
在编排策略的「生成配置」中,将temperature设为0,避免模型因随机性输出不符合要求的内容。
四、验证知识库元数据
确认知识库在索引时已正确捕获源文件的URI:
- 检查知识库的「数据来源」配置,确保源文件的元数据(如S3对象路径)已被索引
- 测试检索时,确认返回的结果中包含
sourceUri字段(可通过Bedrock控制台的测试工具查看原始检索结果)
内容的提问来源于stack exchange,提问作者Shaareable Apps
相关产品推荐
相关产品推荐

