Files
beaver_project/app-instance/backend

Beaver Backend

这是 Beaver 后端。

当前已经落地的主线:

  1. 以统一 engine 为核心,让主 agent 和 sub-agent 共享同一套运行内核。
  2. 聊天入口支持 Main Agent 自动 Task 化、验证、反馈门控。
  3. skills 已有版本化、receipt/effect 记录、学习候选门控,以及后台 assisted learning pipeline。
  4. Agent Team v1 已支持内部 sequence / parallel / dag coordinator。
  5. Task mode 已能通过 TaskExecutionPlanner 按需调用 sub-agent/teamteam node 由 TaskSkillResolver 绑定 published skill缺失时生成 ephemeral guidance最终仍由主 Agent synthesis 生成用户回答。
  6. Skill Learning 已支持后台 run-once/worker 自动生成 draft、safety report、eval report、人工审核发布和前端审核工作台worker 不会自动 approve/publish。

当前结构

  • beaver/foundation:底层公共设施
  • beaver/engine:统一 agent 内核
  • beaver/coordinator:多 agent 协调层
  • beaver/tools:工具系统
  • beaver/skills:技能系统
  • beaver/memory:记忆与经验沉淀
  • beaver/permissions:权限与治理
  • beaver/services:应用服务层
  • beaver/interfacesCLI / Web / Gateway / Channels 薄入口
  • beaver/integrations:外部系统与协议集成

说明

后端已切到 Beaver 主线不再保留旧实现、vendored 第三方 runtime 或迁移期旧命名兼容入口。所有 agent 运行都复用 beaver.engine,多 agent 协调通过 Beaver 自有 coordinator 和 ExecutionGraph 表达。

Memory Gateway

Curated memory 始终启用:每轮仍会冻结并注入 MEMORY.md / USER.md,原有 memory 工具也保持可用。hybrid 模式会额外启用独立的 Memory Gateway 层, 每轮先调用 /memories/search,正常完成后调用一次 /memories/add,成功后再调用 一次 /memories/flush。两套存储不会互相同步、覆盖或去重。

共享 Gateway 配置放在:

app-instance/backend/memory/config.json

当前默认内容:

{
  "memory": {
    "mode": "hybrid",
    "gateway": {
      "baseUrl": "http://172.19.207.37:8010",
      "appId": "default",
      "projectId": "default",
      "scope": ["current_chat", "resources", "all_user_memory"],
      "topK": 8,
      "timeoutSeconds": 10
    }
  }
}

每个实例自己的 Gateway 用户凭证放在:

/root/.beaver/memory_gateway_users.json

格式示例:

{
  "users": {
    "tom": {
      "userId": "tom",
      "userKey": "uk_xxx"
    }
  }
}
  • 前端 POST /api/auth/register 会用 Beaver 登录用户名调用 Gateway POST /users,并把返回的 userId/userKey 写入实例凭证文件。
  • REST /api/chat 和 WebSocket /ws/... 只使用登录 token 解析出的 Beaver 用户名来选择 Gateway 凭证,请求体里的 user_id 不参与 Gateway 身份选择。
  • 某个登录用户还没有 Gateway 凭证时,这一轮只走 curated memory不会报 chat 级错误。
  • BEAVER_MEMORY_CONFIG_PATH 可覆盖共享 memory 配置路径,BEAVER_MEMORY_GATEWAY_USERS_PATH 可覆盖实例凭证路径。
  • userKey 是密钥,不应写入日志、状态响应或提交到版本库。
  • 修改共享 memory 配置后需要重启 runtime因为 Gateway 相关对象在 EngineLoader 启动时装配。