安全注意事项

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

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

有关 LLM 支持的内存处理的注意事项

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

重要提示:仅将适合已配置模型端点和部署策略的内容发送到 Oracle AI 代理内存。如果为显示包含密钥、凭证或不必要的敏感数据的数据启用了活动内存,则在消息进入内存管道之前,应尽量减少或编写该内容。将提取的记忆、摘要、上下文卡和其他模型推导的文本视为不可信的输出,必须通过集成应用程序安全地进行审查和处理。

警告:模型派生的文本可以变为持久内存状态。启用自动提取、汇总或上下文卡功能后,SDK 可以将汇总、提取的内存或检索的记录插入到以后的提示中,例如内存提取、汇总、上下文卡或代理提示,然后应用程序才能查看该特定中间值。将此视为正常的不可信 LLM 数据流:检查并验证应用程序使用的输出,不要让内存派生的内容授权特权操作或绕过策略。

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

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

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

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

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

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

缺省情况下,线程范围检索对 user_idagent_id 使用完全匹配,对 thread_id 使用更广泛的匹配,因此相关结果可以跨越相同用户 - 代理对的过去线程。顶级 OracleAgentMemory.search()search_async() 调用也需要显式的用户范围和精确的用户匹配。它们拒绝省略了用户范围和 exact_user_match=False,因此公共客户端 API 不会意外搜索多个用户。仅允许在完全匹配的用户和目标中传递 user_id=None,并且仅允许未定义的记录。

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

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

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

重要提示:集成应用负责在调用 Oracle AI Agent Memory API 之前对最终用户进行身份验证、授权访问以及推导正确的 user_id 和范围。调用方提供的 user_id 是作用域值,而不是身份证明。

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

有关日志记录和诊断的注意事项

Oracle AI Agent Memory 使用标准 Python 日志记录,不为集成应用程序配置应用程序日志处理程序或日志级别。应用程序可以启用 oracleagentmemory 日志记录程序并通过其现有的日志记录配置路由 SDK 日志。

使用 SDK 日志时,请使用以下做法:

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

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

重要提示:生产代码应将启用 TLS 的 Oracle Database 连接或池传递到 Oracle AI Agent Memory。SDK 按原样使用调用方提供的连接或池,并且不升级纯文本 DSN。不要跨不可信、共享或外部网络使用纯文本数据库连接。使用 python-oracledb 时,请按照 Securely Encrypting Network Traffic to Oracle Database 官方部分进行操作,并在连接或池创建过程中配置 TLS 或其他批准的加密传输。

重要提示:切勿将 API 密钥、密码或其他密钥直接嵌入到应用程序代码、签入配置或导出的对象中。始终使用安全注入机制,并遵循最少权限原则进行身份证明访问。

建议采用以下部署实践:

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

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

我们建议您:

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

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

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