深入执行引擎:Run Executor的设计
执行引擎是整个系统的心脏。bella-assistants项目在兼容OpenAI Assistants API的基础上,设计了一套高度优化的执行引擎架构。本文将深入剖析Run Executor的全链路设计,揭示其如何通过精巧的分层架构、并发控制和性能优化,实现了高效、可靠的AI对话执行能力。
全链路生命周期
一次 Run 的端到端链路自上而下如下所示:
关键代码入口:
- 创建接口:
RunController.createRun()
、ThreadController.createThreadAndRun()
、ResponseController.createResponses()
。 - 执行入口:
RunExecutor.startRun()
/startResponseRun()
→executeRun()
→executeLoop()
(文件:api/src/main/java/com/ke/assistant/core/run/RunExecutor.java
)。 - 计划器:
Planner.nextStep()
(core/plan/Planner.java
)。 - 模型流式:
ChatService.chat()
(core/ai/ChatService.java
)。 - 工具执行:
ToolExecutor.run()/loop()
(core/tools/ToolExecutor.java
)。 - 消息流式:
MessageExecutor
与ResponseMessageExecutor
(core/run/*.java
)。 - 状态持久化:
RunStateManager
(core/run/RunStateManager.java
)。