Oxy Schemas

May 19, 2026 · View on GitHub


类所在位置:

oxygent/schemas/oxy.py

简介

本模块定义了 OxyGent 框架中用于请求/响应处理和状态管理的核心数据类。包括 OxyState(生命周期枚举)、OxyRequest(携带 trace、caller/callee 及参数的请求对象)、OxyResponse(响应封装)以及 OxyOutput(带附件的结构化输出)。

OxyState

参数类型 / 允许值默认值描述
无数据类字段;枚举成员:允许值:CREATEDRUNNINGCOMPLETEDFAILEDPAUSEDSKIPPEDCANCELED用于标记节点状态的生命周期状态。

OxyRequest (Pydantic BaseModel)

参数

参数类型 / 允许值默认值描述
request_idstr自动生成 (ShortUUID, 22)客户端 ID,用于追踪/恢复。
group_idstr自动生成 (ShortUUID, 16)用于关联相关 trace 的静态标识符。
from_trace_idOptional[str]""父节点的 trace ID。
current_trace_idOptional[str]自动生成 (ShortUUID, 16)当前节点的唯一 ID。
reference_trace_idOptional[str]""用于特殊流程的引用指针。
restart_node_idOptional[str]""需要重新启动的节点 ID。
restart_node_outputOptional[str]""重启时缓存的输出。
restart_node_orderOptional[str]""重启时的顺序索引。
input_md5Optional[str]""输入内容的哈希值。
root_trace_idslist[]会话树的所有根节点 ID。
masOptional[Any]NoneMAS 运行时句柄(不会被序列化)。
callerOptional[str]"user"调用方 Oxy 的名称。
calleeOptional[str]""被调用方 Oxy 的名称。
call_stacklist[str]["user"]调用方名称栈。
node_id_stacklist[str][""]节点 ID 栈。
father_node_idOptional[str]""父节点 ID。
pre_node_idsOptional[list[str] | str][]前驱节点 ID。
latest_node_idsOptional[list[str] | str][]最新的并行节点 ID。
caller_categoryOptional[str]"user"调用方类别(user/agent/tool)。
callee_categoryOptional[str]""被调用方类别。
node_idOptional[str]""当前节点 ID。
argumentsdict{}调用参数(用户输入、工具参数)。
is_save_historyboolTrue是否持久化对话历史。
shared_datadict{}在 trace 内共享的临时数据区。
parallel_idOptional[str]""并行组标识符。
parallel_dictOptional[dict]{}用于并行调度的内部映射。

方法

方法协程 (async)返回值用途(简述)
session_name (property)str便捷的会话键:"caller__callee"
set_mas(self, mas)None绑定 MAS 运行时句柄。
get_oxy(self, oxy_name)Any在 MAS 注册表中按名称查找 Oxy。
has_oxy(self, oxy_name)bool检查 MAS 注册表中是否存在指定 Oxy。
__deepcopy__(self, memo)OxyRequest自定义深拷贝,保留 MAS/shared_data 并重置并行信息。
clone_with(self, **kwargs)OxyRequest深拷贝后原子性地覆盖指定字段。
call(self, **kwargs)OxyResponse带覆盖参数的克隆、权限检查、超时保护、retrieve_tools 特殊处理,然后执行。
start(self)OxyResponse入口:使用当前请求执行目标 callee 的 execute
send_message(self, message)None通过 MAS/Redis 向前端推送结构化事件。
set_query(self, query, master_level=False)None在主节点(shared_data)或当前节点(arguments)层级存储查询。
get_query(self, master_level=False)str从主节点或当前节点范围获取查询。
get_full_parts(self, master_level=False)list以 A2A 风格的有序部分返回查询({part: {...}} 列表)。
has_short_memory(self, master_level=False)bool在指定范围内是否存在短期记忆。
set_short_memory(self, short_memory, master_level=False)None在指定范围内设置短期记忆。
get_short_memory(self, master_level=False)list获取指定范围内的短期记忆。
get_request_id(self)str返回当前 request_id
set_request_id(self, request_id)None手动覆盖 request_id
get_group_id(self)str返回 group_id
set_group_id(self, request_id)None手动覆盖 group_id

OxyResponse (Pydantic BaseModel)

参数

参数类型 / 允许值默认值描述
stateOxyState必须赋值任务的最终状态。
outputAny必须赋值面向用户的输出内容或错误信息。
extradict{}可选的元数据(如 token 数、延迟等)。
oxy_requestOptional[OxyRequest]None原始请求的回传。

方法

方法协程 (async)返回值用途(简述)
未声明方法数据容器模型;依赖 Pydantic 自动生成的方法。

OxyOutput (Pydantic BaseModel)

参数

参数类型 / 允许值默认值描述
resultAny必须赋值主要结果内容。
attachmentslist[]附件描述列表。