65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
# 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/team;team 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"` 可关闭 Gateway,curated memory 行为不变。
|
||
- `userKey` 是密钥,不应写入日志、状态响应或提交到版本库。
|
||
- 容器访问宿主机 Gateway 时不能使用容器内的 `127.0.0.1`。应让 Gateway 监听
|
||
`0.0.0.0`,并把 `baseUrl` 配成该 Docker 网络的宿主机网关地址。
|
||
- 修改 memory 配置后需要重启 runtime,因为 Gateway 服务在 `EngineLoader` 启动时创建。
|