# Beaver Backend Overview 这是新 `Beaver` 后端的架构入口文档。 可视化入口: - [Beaver Backend 可视化](backend-visualization.html) ## 给零基础读者的版本 可以先把这个后端理解成一个“帮用户完成任务的后台工厂”: 1. 用户在前端发一句话。 2. 后端入口把这句话接住。 3. 服务层判断它是闲聊,还是一个需要执行和跟踪的任务。 4. 如果是任务,系统会创建或继续一个 `Task`。 5. 运行内核 `AgentLoop` 准备上下文、选择技能、选择工具、调用模型。 6. 如果模型需要查文件、写文件、搜索或调用外部系统,就通过 `tools` 执行。 7. 执行结果会写回会话、任务记录和运行记录,后续可以继续追踪、验证和学习。 这套结构里最重要的原则是:**所有 agent 共用同一个运行内核 `engine`**。也就是说,主 agent 和被拆出去的小 agent 不是两套系统,它们最终都会回到 `AgentLoop`,使用同一套上下文、工具、技能和记录方式。 ## 先认识几个词 - `interfaces`:入口层。负责接收 Web、CLI、Gateway、MCP 等不同来源的请求。 - `services`:应用服务层。负责把入口请求转成系统内部要做的事情。 - `engine`:运行内核。真正组织 prompt、调用模型、执行 tool loop 的地方。 - `coordinator`:多 agent 编排层。负责把复杂任务拆成 sequence、parallel 或 DAG。 - `skills`:技能层。可以理解成给 agent 的专项说明书。 - `tools`:工具层。可以理解成 agent 能按需调用的动作,例如读文件、写文件、搜索、执行命令。 - `memory`:记忆层。保存会话、任务结果、运行记录、反馈和技能学习数据。 - `permissions`:权限与治理层。负责约束哪些能力能用、怎么用。 ## 一句话请求的流转 典型路径是: `interfaces` -> `AgentService` -> `MainAgentRouter` -> `TaskService` / `TaskExecutionPlanner` -> `AgentLoop` -> `skills` / `tools` / `memory` -> 返回用户。 如果任务很简单,可能只走单 agent。如果任务更复杂,`TaskExecutionPlanner` 可能先生成一个 team plan,让 `coordinator` 安排多个 sub-agent 分别处理,最后再由主 agent 综合输出。 当前约束: 1. 所有 agent 共用 `engine`。 2. 多 agent 编排进入 `coordinator`。 3. skills、memory、permissions 独立成能力层。 4. `interfaces` 只做薄入口。