

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

# 将内容摄入长期记忆中
<a name="long-term-ingest-data"></a>

用于直接提交内容[IngestData](https://docs.amazonaws.cn/bedrock-agentcore/latest/APIReference/API_IngestData.html)以进行长期记忆提取，而不将其作为短期记忆事件保留。

## 何时使用 IngestData
<a name="ingest-data-when-to-use"></a>

`IngestData`当你需要将内容提炼到长期记忆中，但不需要将原始交互保留为可检索的事件时使用。例如：
+ 你只需要提取的内存记录，不需要逐字交互。
+ 你想避免持续保存一个你永远不会回读的事件所带来的短期存储开销。
+ 您的应用程序已经保留了原始交互，因此您只需要从中提取的长期记录即可。

由于`IngestData`不存储短期事件，因此无法使用、或`ListSessions`检索提交的内容 `GetEvent``ListEvents`，也无法使用分支进行重组。

**注意**  
要将原始交互保留为短期事件，请[CreateEvent](short-term-create-event.md)改用。

## IngestData 工作原理
<a name="ingest-data-how-it-works"></a>

成功的请求确认您的内容已被接受；处理内容后，生成的长期内存记录便可用。

处理完成后，使用`RetrieveMemoryRecords``ListMemoryRecords`、或 `GetMemoryRecord` — 与任何其他长期内存记录相同的操作来检索生成的长期内存记录。

 `IngestData`支持两种有效载荷类型：

 **对话式 **   
带有角色（例如`USER`或`ASSISTANT`）和文本内容的对话消息。

 **JSON**   
JSON-formatted 数据，例如行为事件、活动日志或系统事件。

您可以选择附加元数据来丰富提取的记录。有关更多信息，请参阅长期存储[器的结构化元数据](long-term-memory-metadata.md)。

提取的记录的范围限定为命名空间。有关更多信息，请参见使用命名空间[使用命名空间指定长期内存组织](specify-long-term-memory-organization.md)指定长期内存组织。

标`actorId`识会话中的实体（例如，最终用户或代理）和`sessionId`群组内容。在提取过程中，共享相同的`actorId``sessionId`、和命名空间的内容被视为相关的上下文。

**注意**  
 `IngestData`粉丝们对内存配置的长期内存策略感到满意，自我管理策略除外，这些策略有自己的内存处理工作流程。

## 示例
<a name="ingest-data-example"></a>

以下示例采集对话和非对话内容。

```
import boto3
from datetime import datetime

# Initialize the Boto3 client for data plane operations
data_client = boto3.client('bedrock-agentcore', region_name='us-west-2')

response = data_client.ingest_data(
    memoryId='mem-12345abcdef',
    actorId='customer-123',
    sessionId='session-456',
    contentTimestamp=datetime.now(),
    source={
        'inline': {
            'payload': [
                {
                    'conversational': {
                        'content': {'text': 'I prefer window seats on flights.'},
                        'role': 'USER'
                    }
                },
                {
                    'conversational': {
                        'content': {'text': "Noted — I'll remember your window seat preference."},
                        'role': 'ASSISTANT'
                    }
                },
                {
                    'json': {
                        'content': {
                            'customer_tier': 'gold',
                            'preferences': {'seat': 'window', 'meal': 'vegetarian'},
                            'loyalty_points': 48200
                        }
                    }
                }
            ]
        }
    }
)

# IngestData is asynchronous; the response echoes the session the content was ingested into.
print(f"Ingested content into session: {response['sessionId']}")
```

## 跟踪摄取进度
<a name="ingest-data-monitoring"></a>

要跟踪成功请求后发生的情况并检测问题，请使用以下方法。

### 验证提取结果
<a name="ingest-data-verify-results"></a>

摄取后，内存记录通常会在几秒到几分钟内出现，具体取决于内容大小和策略配置。要确认提取已完成，请执行以下操作：
+ 使用[ListMemoryRecords](long-term-list-memory-records.md)或[RetrieveMemoryRecords](long-term-retrieve-records.md)检查预期的长期内存记录是否已出现。
+ 配置 Kinesis 流，使其在创建内存记录时接收实时通知。有关设置说明[，请参阅](memory-record-streaming.md)内存记录流。

### 处理提取失败
<a name="ingest-data-handle-failures"></a>

如果提取失败，则将失败的任务 AgentCore 移至内存资源的专用队列中。`ListMemoryExtractionJobs`用于查看失败的作业，并在`StartMemoryExtractionJob`解决根本原因后重新驱动这些任务。有关失败原因代码、补救步骤以及如何使用该`FailedExtraction` CloudWatch 指标设置主动监控，请参阅 [ Redrive 失败摄](long-term-redrive.md)取。

要启用应用程序日志和跟踪以更深入地了解处理生命周期，请参阅[启用 AgentCore 运行时、内存、网关、内置工具和身份资源](observability-configure.md#observability-configure-cloudwatch)的可观察性。