fix(后端): 经工作流删除的计划仍然持续执行,因为执行时没有任何程序检查专家工作流的成员资格
删除工作流程从专家中暂停了它留下的触发器(`suspend_workflow_triggers`,`autogpt_platform/backend/backend/api/features/experts/scheduling.py:314`)。当单个`pause_schedule`调用发生时,失败将被记录,删除仍将完成 - `ExpertWorkflow`行将被删除,调用者将被告知停止了什么,其中不包括幸存者。该调度继续在专家的归属下触发删除的工作流程,将用户认为已取消的频率花费所有者的资金。代码表示运行时门槛捕获了此情况,对于*存档*情况,确实如此:`detach_expert_triggers`将专家存档,而`resolve_private_expert_tenancy`过滤`isArchived: False`,因此`add_graph_execution`在下一次触发时将引发`ExpertNotFoundError`。工作流程删除与之不同 - 专家仍然活跃,执行路径上没有检查`ExpertWorkflow`成员。`_enforce_expert_credential_scope`和租约检查都在其中运行,因此幸存者无法获得未授权的凭证,也无法超越专家;它所能做的就是运行不再在允许列表中的工作流程。保留的`AgentPreset`在删除后通过`POST /library/presets/{id}/execute`执行,原因是相同的函数将预设置禁用(`isActive: False`),并且该路由不在`isActive`上过滤。该路径是由所有者认证的,并且运行仍然受专家的授权,因此这不是升级 - 但这是同样的缺失检查。两种候选修复,选择是一个真正的权衡:
内容来源: Significant-Gravitas/AutoGPT