Files
beaver_project/app-instance/backend/README.md

65 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/interfaces`CLI / 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`。两套存储不会互相同步、覆盖或去重。
完整配置示例:
```json
{
"memory": {
"mode": "hybrid",
"gateway": {
"baseUrl": "http://127.0.0.1:8010",
"userId": "gateway_test_user",
"userKey": "uk_xxx",
"appId": "default",
"projectId": "default",
"scope": ["current_chat", "resources"],
"topK": 8,
"timeoutSeconds": 10
}
}
}
```
- `memory` 整段缺失时,默认采用隐式 `hybrid`Gateway 凭证不完整会告警并只运行 curated memory。
- 显式配置 `"mode": "hybrid"` 时,`baseUrl``userId``userKey` 缺失会导致启动失败。
- 配置 `"mode": "curated"` 可关闭 Gatewaycurated memory 行为不变。
- `userKey` 是密钥,不应写入日志、状态响应或提交到版本库。
- 容器访问宿主机 Gateway 时不能使用容器内的 `127.0.0.1`。应让 Gateway 监听
`0.0.0.0`,并把 `baseUrl` 配成该 Docker 网络的宿主机网关地址。
- 修改 memory 配置后需要重启 runtime因为 Gateway 服务在 `EngineLoader` 启动时创建。