三省六部军团管理 (Archive)
Archived original-language source from the legacy CrabClaw docs. This page is intentionally not machine-translated.
Crab Claw 的军团管理体系借鉴中国古代"三省六部"制度的治理智慧,构建了一套六层架构来管理子智能体的全生命周期。从蓝图定义到实例运行,从预算控制到熔断保护,每一层各司其职、协同运作。
六层架构总览
┌──────────────────────────────────────────────────────┐
│ L6: 治理层 — 三级指挥框架 │
│ L1 意图识别 → L2 审批决策 → L3 合同约束 │
├──────────────────────────────────────────────────────┤
│ L5: 军团管理 — 实例生命周期 │
│ FleetManager · BudgetTracker · CircuitBreaker │
│ StallDetector · AgentScheduler │
├──────────────────────────────────────────────────────┤
│ L4: 编排层 — 多智能体协作 │
│ InterAgentBus · Supervisor · Pipeline · Swarm │
├──────────────────────────────────────────────────────┤
│ L3: 实例化层 — 工厂流程 │
│ AgentFactory (7步) · ScopeCloner · ContractBuilder │
├──────────────────────────────────────────────────────┤
│ L2: 蓝图层 — 模板定义 │
│ AgentBlueprint YAML · BlueprintStore · Validator │
├──────────────────────────────────────────────────────┤
│ L1: 基座层 — 能力树与注册 │
│ CapabilityTree · Registry · DelegationContract │
└──────────────────────────────────────────────────────┘┌──────────────────────────────────────────────────────┐
│ L6: 治理层 — 三级指挥框架 │
│ L1 意图识别 → L2 审批决策 → L3 合同约束 │
├──────────────────────────────────────────────────────┤
│ L5: 军团管理 — 实例生命周期 │
│ FleetManager · BudgetTracker · CircuitBreaker │
│ StallDetector · AgentScheduler │
├──────────────────────────────────────────────────────┤
│ L4: 编排层 — 多智能体协作 │
│ InterAgentBus · Supervisor · Pipeline · Swarm │
├──────────────────────────────────────────────────────┤
│ L3: 实例化层 — 工厂流程 │
│ AgentFactory (7步) · ScopeCloner · ContractBuilder │
├──────────────────────────────────────────────────────┤
│ L2: 蓝图层 — 模板定义 │
│ AgentBlueprint YAML · BlueprintStore · Validator │
├──────────────────────────────────────────────────────┤
│ L1: 基座层 — 能力树与注册 │
│ CapabilityTree · Registry · DelegationContract │
└──────────────────────────────────────────────────────┘L6: 治理层 — 三省(三级指挥)
治理层升级现有的三级指挥框架,为子智能体添加专属的意图识别、审批通道和合同约束:
L1 意图识别
当用户表达创建子智能体的意图时,intent_router 通过 blueprintCreationKeywords 关键词匹配,将消息分类为 task_write 层级,触发审批流程。
L2 审批决策
新增 ApprovalTypeBlueprintReview 审批类型。蓝图的创建、修改和激活操作通过 plan_confirm 审批通道,确保人类保持决策权。
L3 合同约束
DelegationContract 扩展 5 个新字段:
| 字段 | 说明 |
|---|---|
CanDispatchTo | 允许派发的目标蓝图 ID 列表 |
BlueprintID | 关联的蓝图标识 |
StallThresholdMs | 卡死检测阈值(毫秒) |
MaxTokens | 单次 token 上限 |
MaxConcurrent | 并发实例数限制 |
L5: 军团管理 — 六部(五大组件)
军团管理层是体系的核心中枢,包含五大组件:
FleetManager — 兵部(实例管理)
管理所有子智能体实例的完整生命周期:
创建 → 就绪 → 运行中 → 完成
↓ ↓
卡死 ←→ 失败
↓
终止创建 → 就绪 → 运行中 → 完成
↓ ↓
卡死 ←→ 失败
↓
终止- 6 种实例状态:created、ready、running、completed、failed、stalled
- RWMutex 并发安全:读操作不阻塞,写操作原子化
- API 方法:Register / Complete / Fail / MarkStalled / Terminate
BudgetTracker — 户部(预算管控)
三层预算体系,精确控制资源消耗:
| 层级 | 说明 | 示例 |
|---|---|---|
| 全局预算 | 所有蓝图共享上限 | 总 token ≤ 1,000,000/天 |
| 蓝图级预算 | 单个蓝图类型的配额 | researcher: ≤ 200,000 token/天 |
| 实例级预算 | 单次运行的上限 | 单次 ≤ 100,000 token |
- UTC 日零点自动重置每日额度
- 并发数控制:超限时新请求排队等待
CircuitBreaker — 刑部(熔断保护)
蓝图级别的熔断器,防止故障雪崩:
关闭(正常)──故障率达阈值──→ 打开(熔断)
↑ │
└──── 探测成功 ←── 半开(探测)←── 冷却期到关闭(正常)──故障率达阈值──→ 打开(熔断)
↑ │
└──── 探测成功 ←── 半开(探测)←── 冷却期到- 三种状态:closed(正常运行)→ open(拒绝新请求)→ half_open(允许少量探测)
- 冷却期机制:open 状态持续一段时间后自动转为 half_open
- 自动恢复:half_open 下探测成功 → 回到 closed
StallDetector — 御史台(卡死检测)
定期扫描运行中的实例,检测超时或无响应的智能体:
- ticker 扫描:按配置间隔轮询所有活跃实例
- 三级升级链:
- self — 尝试自行恢复(重试/重启)
- parent — 通知父智能体接管
- human — 升级到人类审批
- 复用 TTL 模式:与能力树 TTL 清理机制一致
AgentScheduler — 工部(调度触发)
三种触发模式驱动子智能体的自动执行:
| 触发类型 | 说明 | 示例 |
|---|---|---|
cron | 定时调度 | 0 9 * * 1(每周一 9 点) |
event | 事件驱动 | 新邮件到达、文件变更 |
message_match | 消息匹配 | 包含关键词"分析报告" |
- 通过
agentTurnKind 让 cron 触发隔离智能体会话 - 会话中自动调用
spawn_agent工具 - 零改动 cron 系统代码
L4: 编排层 — 协作模式
四种编排模式覆盖不同的多智能体协作场景:
InterAgentBus — 消息总线
智能体间通信的核心基础设施:
- 发布/订阅:多对多消息广播
- 直接通信:点对点消息传递
- 4 种过滤器:按来源、目标、类型、自定义条件筛选
- 环形缓冲:1000 条消息历史,溢出自动覆盖最旧条目
SupervisorOrchestrator — 监督者模式
一个监督者管理多个工作者:
- WorkerSpec:定义工作者能力标签和权重
- SelectWorker:按 tag 匹配 + 优先级选择最佳工作者
- Dispatch/Complete:任务分发与完成回调
PipelineOrchestrator — 流水线模式
多个智能体按顺序处理同一任务:
阶段 1 → 阶段 2 → 阶段 3 → 完成
(收集) (分析) (报告)阶段 1 → 阶段 2 → 阶段 3 → 完成
(收集) (分析) (报告)- 每阶段独立超时控制
- 上下文通过
ctx.Done()传递取消信号 - 任一阶段失败则整体终止
SwarmOrchestrator — 蜂群模式
智能体自主决定将任务交接给谁:
- MaxHandoffs:循环保护,防止无限交接
- MaxConcurrent:并发控制
- TOCTOU 防护:原子化的交接检查与执行
RPC 接口
军团管理对外暴露 11 个 RPC 接口:
读操作
| 路由 | 说明 |
|---|---|
agent.blueprint.list | 列出全部蓝图摘要 |
agent.blueprint.get | 获取蓝图详情 |
agent.blueprint.validate | 校验蓝图合法性 |
agent.fleet.status | 军团状态(含活跃实例数) |
写操作
| 路由 | 说明 |
|---|---|
agent.blueprint.save | 保存蓝图(YAML 输入) |
agent.blueprint.delete | 删除蓝图(内置保护) |
agent.blueprint.export | 导出蓝图 JSON |
agent.blueprint.import | 导入蓝图(YAML/JSON) |
agent.fleet.terminate | 终止指定实例 |
agent.fleet.metrics | 军团资源指标 |
agent.fleet.audit | 军团审计日志 |
关键设计决策
升级而非新建
治理逻辑升级现有三级指挥框架(L1 Intent / L2 Approval / L3 Contract),而非新建 governance/ 包。代码量减少约 48%,零治理冲突风险。
接口解耦
runner 包通过 5 个接口访问 blueprint/factory/orchestration,避免循环依赖:
BlueprintLoaderForAgentAgentFactoryForRunnerInterAgentBusForAgentblueprintLister/blueprintSaver/blueprintDeleter
渐进式迁移
现有 spawn_coder/spawn_argus/spawn_media 保持原样,spawn_agent 作为独立并行路由。等价性测试 25 项全部 PASS。
测试覆盖
| 组件 | 测试数 | 覆盖范围 |
|---|---|---|
| blueprint | 22 | CRUD、历史归档、10 条校验 |
| factory | 43 | 7 步流程、scope 裁剪、等价性 |
| orchestration | 20 | bus、filter、supervisor、pipeline、swarm |
| fleet | 26 | manager、budget、circuitBreaker、stall、scheduler |
| runner (blueprint) | 21 | suggest、generate、manage、activate |
| 总计 | 132 |
代码位置
| 组件 | 位置 |
|---|---|
| 蓝图定义与存储 | backend/internal/agents/blueprint/ |
| 实例化工厂 | backend/internal/agents/factory/ |
| 编排引擎 | backend/internal/agents/orchestration/ |
| 军团管理 | backend/internal/agents/fleet/ |
| RPC 接口 | backend/internal/gateway/server_methods_fleet.go |
| 意图路由 | backend/internal/agents/runner/intent_router.go |