Memori Python SDK 3.3 系列演进深度解析:Rust 原生内核、混合检索与 BYODB 供应能力全览
2026/9/14 6:43:17
原文
每个行为树都只有一份单独的数据作为资源被加载。
每个使用行为树的对象(Agent)依据这个共享的资源创建独立的实例数据,例如对于Sequence节点,实例数据中只是存储更新到哪个子树,至于Sequence节点的配置信息等则被共享。
Workspace::Load或Agent::btloadWorkspace::UnLoad或Agent::btunloadWorkspace::CreateBehaviorTreeTask用来根据加载的行为树资源创建实例数据,而它配套的是Workspace::DestroyBehaviorTreeTaskWorkspace::CreateBehaviorTreeTask和Workspace::DestroyBehaviorTreeTaskWorkspace::Load或Agent::btload加载可能会用到的行为树Agent::btsetcurrent指定该Agent当前的行为树,后续Agent::btexec更新的就是当前行为树,除非再次调用Agent::btsetcurrent修改当前行为树Workspace::UnLoad或Agent::btunload,或Workspace::UnLoadAll卸载行为树资源。而行为树实例是在Agent::btsetcurrent的时候被创建的,释放Agent的时候被Agent负责释放Workspace.Load和Agent.btload 我在所有的tutorials中都没有看到过Agent::btunload这个函数被调用过,什么时候需要调用这个btunload?
是否在同一个agent实例多次加载不同的行为树前需要先btunload一下,
而在销毁agent的时候无需做这个btunload的操作,agent::destroy会自动进行btunload?
对的。一般情况,不需要显示的调用btunload。