缺陷 / 严重 / Agent 引擎
electron/harness/orchestration/orchestrator.ts
TaskOrchestrator 委派子任务时,SubEngine 通过 mainEngine.getAdapter() 复用主 Engine 的 adapter 实例。 但 adapter 内部维护 currentAbortSignal,SubEngine 与主 Engine 都会调用 adapter.setAbortSignal():
mainEngine.getAdapter()
currentAbortSignal
adapter.setAbortSignal()
两种方案:
方案 A(推荐):为 SubEngine 创建独立的 adapter 实例(深拷贝配置)
const subAdapter = cloneAdapter(mainEngine.getAdapter()); const subEngine = new AgentLoopEngine(config, subAdapter, ...);
方案 B:adapter 改为 signal map(按 runId 索引),允许多个 signal 共存
方案 A 更简单且符合 isolation 原则。
No dependencies set.
The note is not visible to the blocked user.
问题类型
缺陷 / 严重 / Agent 引擎
文件位置
electron/harness/orchestration/orchestrator.ts问题描述
TaskOrchestrator 委派子任务时,SubEngine 通过
mainEngine.getAdapter()复用主 Engine 的 adapter 实例。但 adapter 内部维护
currentAbortSignal,SubEngine 与主 Engine 都会调用adapter.setAbortSignal():影响
建议修复
两种方案:
方案 A(推荐):为 SubEngine 创建独立的 adapter 实例(深拷贝配置)
方案 B:adapter 改为 signal map(按 runId 索引),允许多个 signal 共存
方案 A 更简单且符合 isolation 原则。