大模块流程
bootEngineLoader 加载配置/registry/stores/services
->
run startensure session + frozen memory
->
能力装配skills + tools
->
上下文构建ContextBuilder messages
->
循环provider chat -> tool calls -> tool results
->
收尾run_completed + receipts
小模块拆分
loader
EngineLoader 是依赖装配根。它创建 config、session manager、memory service、tool registry/executor/assembler、skills loader/assembler、task services、MCP manager 等。
读取 workspace/config。
初始化 stores 与 registries。
注册内置工具与 MCP 工具。
返回 EngineLoadResult 供 AgentLoop 复用。
AgentLoop
AgentLoop 是所有 root agent 和 delegated agent 共用的执行 kernel。它支持直接 process,也支持 run queue 的 submit_direct 串行消费。
解析 provider/model/max_tokens/temperature/tool iteration。
确保 session,记录 run_started、intent decision、skill/tool selection snapshot。
调用 provider;若返回 tool_calls,则逐个 ToolExecutor 执行并追加 tool message。
到达工具迭代上限时,追加 finalizer system message 再要求模型无工具收尾。
记录 run_completed、usage、skill effect receipts。
Prompt 相关:主链 context、tool failure guidance、tool limit finalizer 都在 Prompt Atlas 展开。
ContextBuilder
唯一负责 provider messages 形状的组件。它把身份、base system prompt、session、execution context、memory、extra sections 拼成 system prompt,再把 skill 正文作为 user-role activation message 插入。
build_system_prompt:固定顺序拼 section,用 --- 分隔。
build_skill_activation_messages:每个 SkillContext 变成一条 user 消息。
build_messages:system -> skill messages -> history(跳过 system) -> current user input。
add_assistant_message/add_tool_result:tool loop 中追加 provider 兼容消息。
session
session store/manager/search 负责把运行过程落成可追溯事件。可见历史和审计事件分离,避免 internal snapshots 进入下一轮 prompt。
append_message 记录 role/event_type/content/tool_calls/context_visible。
get_history 给 ContextBuilder 提供裁剪后的可见上下文。
search/FTS 支持 session_search 工具和 UI 检索。