

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 可观察性和成本控制
<a name="harness-operations"></a>

本页介绍监控您的线束、控制执行成本和管理资源标签。

## 可观测性
<a name="harness-observability"></a>

每次线束调用都会通过中的 Observ [AgentCore ability 自动生成跟踪、日志和指标。](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/observability.html) CloudWatch模型调用、工具调用、内存操作、shell 命令：每个步骤都显示时序和有效载荷详细信息。没有额外的配置。追踪从第一次调用起就可用。

跟踪、日志和指标 CloudWatch 通过线束执行角色流向。在[AgentCore 可观察性控制面板](https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#/gen-ai-observability/agent-core/agents)中查看它们，或者通过 CloudWatch 日志和 X-Ray API 以编程方式进行查询。

在查看跟踪之前，请在[中启用 “交易搜索](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/Enable-Lambda-TransactionSearch.html)” CloudWatch（每个账户一次）。有关设置的详细信息，请参阅[AgentCore 可观察性入门](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/observability-get-started.html)。

[了解更多：[可观测性概述](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/observability.html)·[指标·遥](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/observability-runtime-metrics.html)测](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/observability-telemetry.html) 

## CloudTrail
<a name="harness-cloudtrail"></a>

Harness 操作被记录 Amazon CloudTrail 为管理事件（控制平面）和数据事件（数据平面）。在中 CloudTrail，线束资源显示在`AWS::BedrockAgentCore::Runtime`资源类型下，而不是特定于安全带的类型下。Harness 是 AgentCore 运行时的托管抽象，为了保持一致性， CloudTrail 事件反映了底层的运行时资源。

所有安全带 CloudTrail 事件都使用 `resources.type` = `AWS::BedrockAgentCore::Runtime`。事件名称是：
+  `CreateHarness`、`UpdateHarness`、`DeleteHarness`、`GetHarness`、`ListHarnesses`（管理事件）
+  `InvokeAgentRuntime`,`InvokeAgentRuntimeCommand`,`InvokeAgentRuntimeCommandShell`（数据事件）

**注意**  
数据平面操作显示为`InvokeAgentRuntime`、和`InvokeAgentRuntimeCommand`，与`InvokeAgentRuntimeCommandShell`底层运行时 API 相匹配。 CloudTrail该`resources.ARN`字段包含控制平面事件的线束 ARN 和数据平面事件的运行时 ARN。

## 了解安全带成本
<a name="harness-costs"></a>

安全带本身不收取额外费用。您需要为该工具使用的底层功能支付标准费率。有关当前费率，请参阅 [Amazon Bedrock AgentCore 定](https://www.amazonaws.cn/bedrock/agentcore/pricing/)价和您的模型提供商的定价页面。

下表描述了使用安全带时可能产生费用的功能。


| 能力 | 何时收费 | 决定用法的因素 | 
| --- | --- | --- | 
| AgentCore 运行时间 | AgentCore 运行时会为每个线束会话启动一个 microVM。 | AgentCore 从 microVM 启动到终止每秒消耗的实际 CPU 和峰值内存消耗的运行时账单，包括系统开销。如果没有后台进程使用 CPU，则在模型或工具 I/O 等待期间不收取 CPU 费用。会话运行期间，内存仍可计费。 | 
| 模型推理 | 每次代理调用配置的模型时，模型提供者都会开具账单。一个线束调用可以进行多个模型调用。 | 提供商根据输入和输出令牌计算费用。输入包括系统提示符、对话历史记录、检索到的内存、技能说明和允许的工具的定义。有关工具定义开销，请参见。[工具](harness-tools.md) | 
| AgentCore 记忆 | AgentCore 当线束写入事件或检索记录时，内存会计费。默认情况下，托管内存处于启用状态；连接的内存也会收取费用。 | AgentCore 记忆计量新的短期事件、存储的长期记忆记录和长期记忆检索请求。 | 
| AgentCore 浏览器和代码解释器 | 当代理使用这些配置的工具时，浏览器和代码解释器会收费。 | 每项服务都会计量其会话的主动 CPU 和内存消耗。即使代理不调用它们，他们的工具定义仍然可以在允许的情况下添加模型输入标记。 | 
| AgentCore 网关和网络搜索 | 当线束发现或调用工具、执行搜索或使用索引工具时，Gateway 会开具账单。Web Search 会在安全工具提交查询时开具账单。 | 网关计量器 API 操作、搜索查询和索引工具（如果适用）。Web Search 分别计量其查询次数。 | 
| 可观测性 | CloudWatch 每次调用发出的跟踪、日志和指标的账单。 | CloudWatch 计量摄取、存储和查询使用情况。 | 
| 存储和网络 | 当您使用自定义容器、永久文件系统或数据传输时，存储和网络服务会产生账单。 | Amazon ECR 对图像存储进行了计量。亚马逊 S3 和 EFS 计量器资源使用情况。标准数据传输速率适用于网络流量。 | 

### 估算运行时成本
<a name="_estimate_runtime_cost"></a>

运行时计费使用每秒的活跃消耗量而不是预配置的实例时间：

```
CPU cost = consumed vCPU-seconds / 3,600 * vCPU-hour rate
Memory cost = sum of peak GB consumed in each second / 3,600 * GB-hour rate
```

不要仅根据挂钟调用或会话持续时间来估计 CPU 成本。当没有其他进程使用 CPU 时，模型和工具 I/O 等待不会产生 CPU 费用。但是，内存消耗仍可计费。缩短`idleRuntimeSessionTimeout`可以缩短上次调用后内存的计费时间，但代价是冷启动频率更高。

### 衡量和归因使用情况
<a name="_measure_and_attribute_usage"></a>
+ 读取调用流中的`metadata`事件以了解模型令牌的使用情况。
+ 使用[AgentCore 可观察性](observability.md)跟踪、 CloudWatch 日志和 X-Ray API 来识别模型调用、工具调用、内存操作及其持续时间。可观察性解释了活动，但不是账单报告。
+ 使用 C Amazon ost Explorer 或 Amazon 成本和使用量报告查看计费用量。激活您的安全带标签作为成本分配标签，以筛选支持的费用。

Harness 标签会传播到为该线束创建的托管运行时、运行时端点和托管内存。独立标记单独创建的资源，例如网关、EFS、S3 或自带内存资源。

## 通过限制控制成本
<a name="harness-limits"></a>

设置硬上限，这样失控的特工就不会消耗资源：
+  **`maxIterations`**-每次调用 reasoning/action 周期。默认值 75。
+  **`timeoutSeconds`**-单次调用的挂钟超时。默认 3600。
+  **`maxTokens`**-每次调用的代币预算。默认 N/A。
+  **`idleRuntimeSessionTimeout`**-闲置的 microVM 会保温多长时间。默认 900。
+  **`maxLifetime`**-microVM 会话的最长生命周期。默认 28800。

所有限制都是可选的；省略这些限制以使用服务默认值。由于线束由 AgentCore Runtime 支持，因此线束调用也受运行时服务配额的约束。有关更多信息，请参阅[AgentCore 利用服务配额](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/bedrock-agentcore-limits.html#harness-service-limits)和[AgentCore 运行时服务配额](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/bedrock-agentcore-limits.html#runtime-service-limits)。

**Example**  

```
aws bedrock-agentcore-control update-harness \
  --harness-id "MyHarness-UuFdkQoXSL" \
  --max-iterations 50 \
  --timeout-seconds 1800 \
  --max-tokens 8192
```
或者通过传递`maxIterations`、或 in 来覆盖单`timeoutSeconds`次调用`maxTokens`。`invoke_harness`
设置默认值：  

```
agentcore add harness --name bounded-agent \
  --max-iterations 50 --timeout 1800 --max-tokens 8192 \
  --truncation-strategy sliding_window \
  --idle-timeout 600 --max-lifetime 14400
agentcore deploy
```
该`--truncation-strategy`标志接受`sliding_window`或`summarization`。`--idle-timeout`和`--max-lifetime`标志以秒为单位设置生命周期限制。  
在单个呼叫时覆盖：  

```
agentcore invoke --harness bounded-agent --max-iterations 20 --harness-timeout 600 \
  "Quick lookup: what's the weather in Seattle?"
```

## 标签
<a name="harness-tags"></a>

将标签应用于您的安全带以进行成本分配和访问控制。

**Example**  

```
aws bedrock-agentcore-control create-harness \
  --harness-name "MyHarness" \
  --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \
  --tags '{"team": "platform", "environment": "staging"}'
```
在`harness.json`以下位置设置标签：  

```
{
  "tags": {
    "team": "platform",
    "environment": "staging"
  }
}
```
跑`agentcore deploy`去申请。

Harness 标签会传播到为该线束创建的托管运行时、运行时端点和托管内存。单独创建的资源会保留自己的标签。

### 相关主题
<a name="_related_topics"></a>
+  [内存](harness-memory.md)-记忆可跨会话保留对话上下文
+  [环境和文件系统](harness-environment.md)-环境变量和自定义容器
+  [交互式外壳（终端）](harness-command-shell.md)-交互式终端访问线束会话
+  [安全性和访问控制](harness-security.md)-执行角色策略和 IAM 权限
+  [API 文档](harness-get-started.md#api-documentation) 