本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
建议
建议使用 AI 根据实际会话跟踪生成优化的代理配置。您可以将服务指向代理的踪迹,指定目标评估器作为奖励信号,然后获得优化的配置,而不是手动重写提示或工具描述。
注意
建议由 LLM 生成。在应用它们之前进行审查和测试。
亚马逊 Bedrock AgentCore 支持两种推荐类型:
-
系统提示建议:分析代理跟踪并生成优化的系统提示,以提高目标评估器的性能。该服务识别故障模式并添加特定的行为指令。
-
工具描述推荐:分析代理痕迹并生成更清晰的工具描述,以减少工具选择的混乱。当代理为模糊的请求选择了错误的工具时,这很有用。
每项建议都需要两个输入:要优化的当前代理配置和要分析的代理跟踪。
配置输入模式
您可以通过以下两种方式之一提供当前配置:
-
行内文本:在 API 请求中直接以字符串形式提供配置。要获得系统提示建议,请在
systemPrompt.text字段中传递提示文本。要获得工具描述建议,请在toolDescription.toolDescriptionText.tools列表中传递每个工具的名称和描述。当你想测试正在迭代的提示时,或者当你的配置未存储在包中时,这种模式对于快速实验很有用。获取建议 CLI 标志 API 字段 系统提示
--inline "prompt text"或--prompt-file ./path.txtsystemPrompt.text工具描述
--tools "name:description, name:description"toolDescription.toolDescriptionText.tools: 带有toolName和的对象列表toolDescription -
配置包:引用现有的配置包版本。该服务使用您指定的 JSON 路径从包中读取当前配置,生成优化版本,并将结果写回新的包版本。这样可以将您的优化历史记录与套装一起进行版本控制。当您使用配置包集中管理配置并希望将优化的输出自动写回捆绑包时,此模式非常有用。
获取建议 CLI 标志 API 字段 系统提示
--bundle-name <bundle-name>+--bundle-version <bundle-version>+--system-prompt-json-path <path>systemPrompt.configurationBundle用bundleArn,versionId,systemPromptJsonPath工具描述
--bundle-name <bundle-name>+--bundle-version <bundle-version>+--tool-desc-json-path "name:jsonpath"(对每个工具重复此操作)toolDescription.configurationBundle包含bundleArnversionId、和包含toolName和的tools列表toolDescriptionJsonPath使用配置包时,建议结果包括一个带有的
configurationBundle字段bundleArn和一个versionId指向包含优化配置的包版本的新字段。
代理追踪来源
该agentTraces参数接受以下四个来源之一:
-
CloudWatch 日志:在代理运行时将遥测数据写入时使用。 CloudWatch该服务在要求的时间范围内直接从指定的日志组读取跟踪。您必须提供
logGroupArns、serviceNamesstartTime、和endTime。可选rule字段允许您筛选跟踪(例如,仅选择低于阈值的会话)。goal_success_rate注意
建议 API 使用日志组 ARN (
logGroupArns),而不是日志组名称。这与批量评估不同,批量评估使用logGroupNames。字段 类型 必需 说明 cloudwatchLogs.logGroupArns字符串列表
是
CloudWatch 记录存储代理遥测数据的 ARN 日志组。格式:
arn:aws:logs:{region}:{account}:log-group:{log-group-name}。cloudwatchLogs.serviceNames字符串列表
是
用于识别您的代理在中的痕迹的服务名称 CloudWatch。公约:
{RuntimeName}.DEFAULT。cloudwatchLogs.startTimeISO 8601 日期时间
是
跟踪收集窗口的启动。仅包括此时间之后的痕迹。
cloudwatchLogs.endTimeISO 8601 日期时间
是
跟踪收集窗口结束。仅包括此时间之前的痕迹。
cloudwatchLogs.rule对象
否
用于缩小追踪选择范围的可选筛选规则。包含一个
filters列表,其中每个过滤器指定key、operator(例如LESS_THAN)和value(例如{"doubleValue": 0.5})。例
-
内联会话跨度:在本地有可用的跟踪记录(例如,来自本地测试运行、 CI/CD 管道或要优化的特定会话)时使用。您可以直接在 API 请求正文中以 OpenTelemetry-compatible 跨度对象列表的形式提供跨度。
字段 类型 必需 说明 sessionSpans对象列表
是
代理跟踪跨度 OpenTelemetry-compatible 采用格式。每个跨度都包括跟踪 ID、跨度 ID、名称、时间戳和属性。
例
注意
批量评估和在线评估跟踪源仅适用于系统即时推荐。
-
批量评估:当您完成了批量评估作业,要重复使用其会话进行优化时使用。您可以直接通过其 ARN 引用批次评估,而不是从中重新收集跟踪 CloudWatch 或提供行内跨度。此来源仅适用于系统提示推荐。
-
如果批量评估作业中使用的评估器与推荐请求中指定的评估者相匹配,则该服务会重复使用现有分数。
-
如果评估者不匹配,则该服务会根据批量评估会话为请求的评估者运行新的评估。
字段 类型 必需 描述 batchEvaluation.batchEvaluationArn字符串
是
已完成的批量评估作业的 ARN。该服务重复使用此任务中的会话作为跟踪输入。格式:
arn:aws:bedrock-agentcore:{region}:{account}:batch-evaluation/{id}。例
-
-
在线评估:当您的在线评估配置可以持续评估实时代理会话时使用。由于在线评估是一个连续的过程,因此您必须指定一个时间窗口(
startTime和endTime)限制该建议来自哪个评估会话。该服务在指定窗口内重复使用在线评估会话中的评估分数。此来源仅适用于系统提示推荐。字段 类型 必需 描述 onlineEvaluation.onlineEvaluationConfigArn字符串
是
在线评估配置的 ARN。该服务使用来自此配置的评估会话作为跟踪输入。格式:
arn:aws:bedrock-agentcore:{region}:{account}:online-evaluation-config/{id}。onlineEvaluation.startTimeISO 8601 日期时间
是
评估窗口的开始。仅包括在此时间之后评估的会话。
onlineEvaluation.endTimeISO 8601 日期时间
是
评估窗口结束。仅包括在此时间之前评估的会话。
例
注意
agentcore run recommendation是异步的。如果没有--wait,该命令将提交推荐任务并立即返回;该任务以非终端状态(例如PENDING或IN_PROGRESS)启动,您稍后再检索结果。传递--wait到区块,直到推荐达到终端状态。要轮询或检索已提交作业的结果,请运行agentcore view recommendation <id>,其中id是推荐任务 ID。
AgentCore CLI 提供了映射到底层 API 跟踪源类型的便捷标志:
| CLI 标志 | API 映射 | 说明 |
|---|---|---|
|
|
|
通过 CloudWatch 日志收集过去 N 天的跟踪。CLI 从运行时配置中解析日志组 ARN 和服务名称。 |
|
|
|
收集客户端指定会话的跨度并将其作为内联会话跨度传递。推荐 API 本身不支持对 CloudWatch 源进行会话 ID 过滤。 |
|
|
|
从本地 JSON 文件读取跨度并将其作为内联会话跨度传递。 |
|
|
n/a (客户端投票) |
屏蔽直到推荐达到终端状态。 |