安全注意事项

范围:本文介绍了与代理内存 Python SDK 相关的安全注意事项。它适用于使用 SDK 的活动内存功能或仅使用存储层的应用程序。

重要性:代理内存可以在 Oracle AI Database 中保留线程内容和内存记录,并且在启用 LLM 支持的功能时,将内容发送到配置的模型端点以进行汇总、内存提取或嵌入。因此,安全部署取决于对应用数据、检索范围、数据库访问、外部模型端点和保留策略的仔细处理。

关于 LLM 备份内存处理的注意事项

代理内存支持主动内存功能,例如线程汇总和自动内存提取。启用这些功能后,SDK 可能会向配置的 LLM 或嵌入端点发送最近的消息、线程摘要、检索的内存或搜索文本。

注:仅将适合已配置模型端点和部署策略的内容发送到代理内存。在内容进入内存管道之前验证和最小化内容,并避免在消息或内存中包括密钥、凭证或不必要的敏感数据。将提取的记忆、摘要、上下文卡和其他模型推导的文本视为不可信的输出,必须通过集成应用程序安全地进行审查和处理。

使用活动内存功能时,请遵循以下建议:

关于持久性和数据最小化的注意事项

代理内存用于在使用数据库支持的存储时在 Oracle AI Database 中持久保存消息、内存、元数据和嵌入。这允许持久的检索和跨会话内存,但也意味着应用程序应该计划哪些数据适合保留。

以下指南可帮助部署与安全的数据处理实践保持一致:

关于检索范围和访问控制的注意事项

代理内存使用调用方提供的 user_idagent_idthread_id 值来进行范围检索。这是一个强大的过滤模型,但它不应该是应用程序在决定如何使用或显示检索内容时所依赖的唯一控制。

缺省情况下,线程范围检索对 user_idagent_id 使用完全匹配,对 thread_id 使用更广泛的匹配,因此相关结果可以跨越相同用户 - 代理对的过去线程。顶层 OracleAgentMemory.search()search_async() 调用也需要具体的 user_id 和精确的用户匹配。它们拒绝省略用户范围 user_id=Noneexact_user_match=False,因此公共客户端 API 不会意外搜索多个用户。

设计检索时,请使用以下练习:

关于应用程序集成和调用方信任的注意事项

代理内存由集成应用程序或其他可信后端代码调用,而不是由最终用户直接调用。它不是面向最终用户的安全边界,它不会自行执行最终用户验证或授权。软件包信任调用方为每个操作提供正确的 user_idagent_idthread_id 和检索范围。

注:集成应用程序负责在调用代理内存 API 之前对最终用户进行验证、授权访问以及派生正确的 user_id 和范围。调用方提供的 user_id 是作用域值,而不是身份证明。

将 SDK 集成到代理应用时,请使用以下做法:

关于数据库访问、方案管理和密钥的注意事项

代理内存使用调用方提供的 Oracle AI Database 连接或池。该程序包不会自行创建或管理数据库身份证明。它也不会代表调用方创建、协商或升级数据库网络加密。

注:

建议采用以下部署实践:

关于网络通信和外部端点的注意事项

部署配置远程 LLM 或嵌入提供程序时,代理内存可以与外部服务通信。SDK 通过配置的客户端路径转发提示和请求参数,但周围的应用程序和部署仍负责保护这些连接。

我们建议您:

关于资源耗尽向量的注意事项

内存工作流可以随着时间的推移增加数据库使用量、嵌入流量和 LLM 标记消耗。这既适用于恶意过度使用,也适用于无辜的实施错误,例如超大消息或过于广泛的检索模式。

使用这些控件作为生产淬火的一部分: