feat(beaver): 完成Task Team功能v1实现,重构后端架构支持统一内核

新增内部Task系统,包括验证、反馈门控机制,实现自动质量验证
(通过率>=0.75)和用户反馈闭环(satisfied/revise/abandon)。

实现Agent Team v1协调器,支持sequence/parallel/dag执行策略,
sub-agent复用主AgentLoop,每个run使用独立memory snapshot。

建立Skill学习pipeline,包含draft/审核/发布/回滚完整生命周期,
通过Task验证通过且用户满意才生成学习候选。

重构目录结构,移除third_party依赖,建立统一engine内核,
所有agent共享运行时基础组件。

更新ContextBuilder清理provider消息字段,增强SkillContext版本管理,
集成TaskExecutionPlanner和TaskSkillResolver实现技能解析机制。
This commit is contained in:
2026-05-08 17:14:14 +08:00
parent 5ba5c7e4c1
commit 8a12c30141
93 changed files with 16724 additions and 1247 deletions

View File

@ -196,14 +196,14 @@
| `nanobot/agent/agent_registry.py` | `AgentDescriptor`, `WorkspaceAgentStore`, `AgentRegistry` | `beaver/coordinator/registry/models.py`, `workspace_store.py`, `agent_registry.py` | `拆分迁移` | descriptor、store、registry 三类职责应拆开。 |
| `nanobot/agent/delegation.py` | `DelegationRun`, `DelegationManager` | `beaver/coordinator/delegation/manager.py`, `beaver/coordinator/execution/delegation_run.py`, `beaver/coordinator/delegation/events.py` | `拆分迁移` | 旧文件职责最重,不能原样搬。 |
| `nanobot/a2a/client.py` | `A2AClient`, `A2AError`, `A2AUnsupportedMethodError`, `A2AStreamEvent` | `beaver/integrations/a2a/client.py` | `小幅重构` | A2A 是协议层,适合独立迁。 |
| `nanobot/agent_team/types.py` | `ExecutionMode`, `ResolvedTeamPlan`, `SwarmsRunSpec`, `SwarmsRunResult`, `ProcedureRecord`, `RunRecord`, `BridgeAttempt`, `BridgeResult` | `beaver/coordinator/team/types.py` | `可直接迁移` | 类型层稳定,但 `ProcedureRecord/RunRecord` 不再作为主 memory 契约。 |
| `nanobot/agent_team/orchestrator.py` | `AgentTeamOrchestrator.run_task` | `beaver/coordinator/team/orchestrator.py` | `小幅重构` | 是 team 主入口。 |
| `nanobot/agent_team/provisioning.py` | `ProvisioningManager`, `SpecialistProvisionResult` | `beaver/coordinator/team/provisioning.py` | `重写迁移` | 旧实现绑定 `LocalSubagentStore + Config + gateway port`,要改成新 registry 接口。 |
| `nanobot/agent_team/target_resolver.py` | `TargetResolver.resolve_team_targets`, `_select_existing_for_role_with_llm` | `beaver/coordinator/team/target_resolver.py` | `小幅重构` | 主要改 provider/registry/provisioning 注入。 |
| `nanobot/agent_team/swarms_policy.py` | `SwarmsPolicy` | `beaver/coordinator/backends/swarms/policy.py` | `可直接迁移` | 纯 guardrail可先迁。 |
| `nanobot/agent_team/swarms_planner.py` | `SwarmsRunPlanner` | `beaver/coordinator/planner/swarms.py` | `小幅重构` | planner 逻辑稳定,但要切掉 `third_party` 假设。 |
| `nanobot/agent_team/swarms_bridge.py` | `SwarmsBridge` | `beaver/coordinator/backends/swarms/bridge.py` | `小幅重构` | 结果归一化和 backend 运行桥接分层很好。 |
| `nanobot/agent_team/swarms_adapter.py` | `ensure_swarms_importable`, `load_swarms_runtime`, `safe_swarms_name`, `NanobotAgentAdapter` | `beaver/coordinator/backends/swarms/runtime.py`, `adapter.py` | `重写迁移` | 不再允许 `third_party/` 路径探测;只保留 adapter 设计。 |
| `nanobot/agent_team/types.py` | `ExecutionMode`, `ResolvedTeamPlan`, `SwarmsRunSpec`, `SwarmsRunResult`, `BridgeResult` | `beaver/coordinator/models.py` | `重写迁移` | v1 已改为 Beaver 自有 `AgentDescriptor / ExecutionGraph / TeamRunResult`,不直接保留 swarms wire shape。 |
| `nanobot/agent_team/orchestrator.py` | `AgentTeamOrchestrator.run_task` | `beaver/services/team_service.py`, `beaver/coordinator/execution/scheduler.py` | `重写迁移` | v1 入口是 `TeamService.run_team(...)`,调度由 `TeamGraphScheduler` 承担。 |
| `nanobot/agent_team/provisioning.py` | `ProvisioningManager`, `SpecialistProvisionResult` | 后续 `beaver/coordinator/team/provisioning.py` | `暂缓迁移` | v1 不做自动 provisioning先由显式 `AgentDescriptor` 描述节点。 |
| `nanobot/agent_team/target_resolver.py` | `TargetResolver.resolve_team_targets`, `_select_existing_for_role_with_llm` | 后续 `beaver/coordinator/team/target_resolver.py` | `暂缓迁移` | v1 不做 registry/target resolver后续高级策略再补。 |
| `nanobot/agent_team/swarms_policy.py` | `SwarmsPolicy` | 后续 `beaver/coordinator/backends/swarms/policy.py` 或 strategy preset policy | `暂缓迁移` | v1 不接 swarms runtime策略约束先落在 Beaver graph validation / scheduler。 |
| `nanobot/agent_team/swarms_planner.py` | `SwarmsRunPlanner` | 后续 strategy preset -> `ExecutionGraph` | `重写迁移` | 只吸收策略形态,不保留 `third_party` 假设。 |
| `nanobot/agent_team/swarms_bridge.py` | `SwarmsBridge` | 后续 `beaver/coordinator/backends/swarms/bridge.py` | `暂缓迁移` | 只有确实接外部 swarms backend 时才需要。 |
| `nanobot/agent_team/swarms_adapter.py` | `ensure_swarms_importable`, `load_swarms_runtime`, `safe_swarms_name`, `NanobotAgentAdapter` | 后续 `beaver/coordinator/backends/swarms/runtime.py`, `adapter.py` | `重写迁移` | 不再允许 `third_party/` 路径探测;v1 不依赖 swarms runtime。 |
### 9.1 `agent/delegation.py` 函数级拆分
@ -328,7 +328,7 @@
10. `nanobot/agent/tools/base.py` / `registry.py` / `filesystem.py` / `shell.py` / `web.py` / `message.py`
11. `nanobot/agent/plugins.py` -> `beaver/plugins/*`
12. `nanobot/agent/skills.py` -> `beaver/skills/catalog/loader.py` + `resolver/runtime.py`
13. `nanobot/agent_team/types.py` -> `beaver/coordinator/team/types.py`
13. `nanobot/agent_team/types.py` -> `beaver/coordinator/models.py`(按 v1 models 重写)
14. `nanobot/agent_team/memory.py` -> `beaver/memory/procedures/*` + `beaver/memory/runs/*`
15. 以 Hermes 基线新增 `beaver/tools/builtins/memory.py`
16. 以 Hermes 基线新增 `beaver/tools/builtins/session_search.py`