委托合约
DelegationContract — 子智能体行为边界、单调衰减能力、资源预算与质量审核门控
委托合约(DelegationContract)是 Crab Claw 管理子智能体行为边界的核心机制。每个子智能体在被创建时都会携带一份合约,明确定义它能做什么、不能做什么、有多少资源、何时交付。
为什么需要委托合约
能力单调衰减
子智能体的能力只能小于等于父智能体——不能凭空获得新权限。每次委托都是收窄,不是扩展。
资源预算控制
Token 预算、并发数、每日限额均有硬上限。防止子智能体无限消耗资源。
协商与门控
子智能体可通过协商循环(最多 3 轮)请求调整合约,但需主系统批准。交付成果经质量审核门控。
VFS 持久化
合约数据通过 UHMS VFS 持久化,Gateway 重启后自动恢复。支持 TTL 自动清理过期合约。
合约结构
每份 DelegationContract 包含以下维度:
| 维度 | 字段 | 说明 |
|---|---|---|
| 身份 | AgentType, SessionID | 子智能体类型和会话标识 |
| 能力 | AllowedTools, DeniedTools | 允许和禁止的工具列表 |
| 约束 | NoSpawn, NoNetwork, ReadOnly | 行为约束开关 |
| 预算 | MaxTokens, MaxConcurrent, DailyLimit | Token / 并发 / 每日限额 |
| 超时 | TimeoutMs, StallThresholdMs | 执行超时和停滞检测阈值 |
| SOP | SOP string | 标准操作流程(自然语言指令) |
| 派发 | DispatchTargets | 允许的下游派发目标 |
单调能力衰减
合约遵循单调衰减原则——子智能体只能获得父智能体能力的子集:
主智能体能力集 ⊇ 一级子智能体能力集 ⊇ 二级子智能体能力集主智能体能力集 ⊇ 一级子智能体能力集 ⊇ 二级子智能体能力集ScopeCloner 执行能力裁剪:
inherit— 从父智能体继承基础能力集allow— 在继承集内进一步筛选(白名单)deny— 从结果中排除指定工具(黑名单)composed— 添加编译后的组合工具
任何步骤都不能添加父智能体没有的能力。
协商循环
子智能体发现当前合约不够用时,可通过 request_help 发起协商:
子智能体: "我需要 bash 工具来运行测试"
│
▼
协商循环 (最多 3 轮)
│
├─ 主系统规则引擎评估
│ ├─ scope 内 → 自动批准
│ └─ scope 外 → 升级到 LLM / 人类
│
├─ 批准 → 合约临时修订(不扩大能力边界)
│
└─ 拒绝 → 子智能体调整方案或放弃子智能体: "我需要 bash 工具来运行测试"
│
▼
协商循环 (最多 3 轮)
│
├─ 主系统规则引擎评估
│ ├─ scope 内 → 自动批准
│ └─ scope 外 → 升级到 LLM / 人类
│
├─ 批准 → 合约临时修订(不扩大能力边界)
│
└─ 拒绝 → 子智能体调整方案或放弃上限 3 轮:防止子智能体无限请求,降低协商成本。
质量审核与交付门控
子智能体完成任务后,成果不是直接返回给用户,而是经过审核门控:
| 阶段 | 说明 |
|---|---|
| Phase 2: 质量审核 | 主系统 LLM 评估子智能体输出质量 |
| Phase 3: 交付门控 | 检查是否满足 SOP 要求、输出格式是否合规 |
| Phase 4: 结构化返回 | ThoughtResult 结构化输出(不直接输出原始文本) |
合约生命周期
创建合约 (spawn_*_agent / spawn_agent)
│
▼
合约生效 → 子智能体在合约约束内运行
│
├─ 正常完成 → ThoughtResult 返回 → 质量审核 → 交付
│
├─ 超时 → TimeoutMs 触发强制终止
│
├─ 停滞 → StallThresholdMs 触发告警
│
└─ 异常 → 错误汇报 → 主系统决策
│
▼
合约结束 → TTL 清理 → VFS 归档创建合约 (spawn_*_agent / spawn_agent)
│
▼
合约生效 → 子智能体在合约约束内运行
│
├─ 正常完成 → ThoughtResult 返回 → 质量审核 → 交付
│
├─ 超时 → TimeoutMs 触发强制终止
│
├─ 停滞 → StallThresholdMs 触发告警
│
└─ 异常 → 错误汇报 → 主系统决策
│
▼
合约结束 → TTL 清理 → VFS 归档内置子智能体合约
| 子智能体 | 关键约束 | 特殊机制 |
|---|---|---|
| Open Coder | SOP=自主编程、NoNetwork 可选 | 三层决策 + propose_plan 阻塞 |
| 灵瞳(Argus) | NoSpawn 可选、NoNetwork 可选 | 独立 LLM + TCC 权限 |
| 媒体子智能体 | SOP=内容运营、预算限制 | 巡逻 Supervisor 独立生命周期 |
| 蓝图子智能体 | 按蓝图 YAML 定义 | ScopeCloner 能力裁剪 |
配置示例
通过蓝图 YAML 定义合约参数:
id: my-researcher
capabilities:
inherit: minimal
allow: [web_search, web_fetch, memory_search, write_file]
deny: [bash]
budget:
max_tokens: 100000
max_concurrent: 1
daily_limit: 5
constraints:
no_spawn: true
stall_threshold_ms: 180000
sop: |
1. 搜索目标信息
2. 分析关键数据
3. 生成结构化报告id: my-researcher
capabilities:
inherit: minimal
allow: [web_search, web_fetch, memory_search, write_file]
deny: [bash]
budget:
max_tokens: 100000
max_concurrent: 1
daily_limit: 5
constraints:
no_spawn: true
stall_threshold_ms: 180000
sop: |
1. 搜索目标信息
2. 分析关键数据
3. 生成结构化报告