线程

此页提供了具体的 Oracle 线程句柄以及面向开发者的消息帮助程序类型。

Oracle 线程

class oracleagentmemory.core.OracleThread

基础:IThread

由 Oracle 存储支持的线程。

此实现嵌入并存储线程消息和手动添加的内存,然后支持对所有存储的记录进行相似性搜索。

创建新的线程句柄。

示例

from oracleagentmemory.core import OracleAgentMemory
db_pool = ...
client = OracleAgentMemory(connection=db_pool, embedder=embedder)
thread = client.create_thread(
    thread_id="c1",
    llm=llm,
    enable_context_summary=True,
)
len(thread.add_messages([{"role": "user", "content": "I love pizza."}]))
1

method add_memory

添加手动内存条目并为其编制索引。

示例

thread.add_memory("Remember this preference", memory_id="mem-thread-docs")
'mem-thread-docs'

method add_messages

将消息添加到主题并为其编制索引。

示例

len(thread.add_messages([{"role": "user", "content": "Thread message from docs"}]))
1

method add_messages_async(异步)

异步向线程添加消息并为其编制索引。

method delete_memory

按标识符从该精确线程中删除类似内存的记录(例如,内存、事实、首选项或准则)。

示例

thread.delete_memory("456")
0

method delete_message

按标识符从此确切线程中删除一条消息记录。

删除消息只会删除原始消息记录。派生记忆不会被删除,因为提取的记忆不会持久保留每消息来源,因此它们可能仍然是可搜索的,或者仍然影响上下文卡的输出。使用 OracleAgentMemory.delete_thread() 可删除线程及其关联的消息和记忆。

示例

thread.delete_message("123")
0

method get_context_card

返回线程的上下文卡对象。

当 LLM 支持的实现可以执行远程网络 I/O 时,首选 get_context_card_async

这会将线程的缺省搜索范围与 exact_thread_match=False 一起使用,因此可能会包含来自同一用户/代理的其他线程的相关内存。

示例

thread.add_memory("User likes pizza", memory_id="mem-context-docs")
'mem-context-docs'
len(thread.add_messages([{"role": "user", "content": "Tell me about pizza"}]))
1
"User likes pizza" in thread.get_context_card().content
True

method get_context_card_async(异步)

异步返回线程的上下文卡对象。

method get_messages

返回此主题已存储的消息。

示例

len(thread.add_messages([{"role": "user", "content": "Stored message example"}]))
1
messages = thread.get_messages()
messages[-1].content
'Stored message example'

method get_summary

返回线程的最佳工作摘要。

当 LLM 支持的实现可以执行远程网络 I/O 时,首选 get_summary_async

示例

len(thread.add_messages([{"role": "assistant", "content": "Summary source message"}]))
1
summary = thread.get_summary()
bool(summary.content)
True

method get_summary_async(异步)

异步返回线程的最佳工作摘要。

注:delete_message() 仅删除原始消息行。派生的记忆可能仍然可以搜索或显示在上下文卡中。使用 OracleAgentMemory.delete_thread() 可删除线程及其关联的消息和记忆。

消息

class oracleagentmemory.apis.thread.Message

基准:object

上下文卡

class oracleagentmemory.apis.contextcard.ContextCard

基础:ABC

抽象线程 API 返回的上下文卡对象。

property content(抽象)

class oracleagentmemory.core.contextcard.OracleContextCard

基础:ContextCard

Oracle 线程返回的上下文卡。

property(属性)content

示例

card = OracleContextCard(summary="ctx")
"<summary>" in card.content and "ctx" in card.content
True

property(属性)formatted_content

示例

OracleContextCard(summary="").formatted_content
''
card = OracleContextCard(summary="ctx", topics=["travel"])
"<topics>" in card.formatted_content
True

概要

class oracleagentmemory.apis.summary.Summary

基础:ABC

抽象线程 API 返回的线程概要对象。

property content(抽象)

class oracleagentmemory.core.summary.OracleSummary

基础:Summary

Oracle 线程返回的概要。

示例

summary = OracleSummary(content="Plan the Rome itinerary.")
summary.content
'Plan the Rome itinerary.'
str(summary)
'Plan the Rome itinerary.'

property(属性)content

示例

OracleSummary(content="Keep the tea preference in mind.").content
'Keep the tea preference in mind.'

property(属性)formatted_content

示例

OracleSummary(content="Thread recap").formatted_content
'Thread recap'