子智能体工厂
通过自然语言描述需求,自动匹配技能与工具,一键创建专属子智能体并注册能力树
Crab Claw 内置子智能体工厂(Agent Factory),支持用户通过自然语言描述需求,系统自动匹配技能、工具并生成专属子智能体,同时将其注册到能力树。
核心理念
传统创建子智能体需要手动编写 YAML 蓝图、配置工具集、定义权限边界。子智能体工厂将这一过程简化为一句自然语言:
"帮我创建一个做竞品分析的智能体,每周一自动执行"
系统自动完成:
- 意图理解:识别"竞品分析"→ 需要
web_search、web_fetch工具 - 技能匹配:自动匹配
researcher蓝图模板 - 触发配置:解析"每周一"→ cron 触发器
- 能力树注册:将新智能体的工具集注册到能力树节点
架构总览
用户自然语言
│
├─ intent_router: 识别蓝图创建意图 → task_write
│
├─ agent_blueprint_suggest (推荐工具)
│ └─ CapabilityMapper: 自然语言 → 工具/触发器映射
│ └─ 返回: 推荐模板 + 可用工具列表 + 定制建议
│
├─ agent_blueprint_generate (生成蓝图)
│ ├─ 基础模板合并 (base + overlay)
│ ├─ 安全默认值 (version/model)
│ ├─ 10 条校验规则
│ └─ 原子写入 + 历史归档
│
└─ agent_blueprint_activate (激活智能体)
├─ 7 步工厂流程
├─ 能力裁剪 (inherit→allow→deny→composed)
└─ 独立 LLM session 启动用户自然语言
│
├─ intent_router: 识别蓝图创建意图 → task_write
│
├─ agent_blueprint_suggest (推荐工具)
│ └─ CapabilityMapper: 自然语言 → 工具/触发器映射
│ └─ 返回: 推荐模板 + 可用工具列表 + 定制建议
│
├─ agent_blueprint_generate (生成蓝图)
│ ├─ 基础模板合并 (base + overlay)
│ ├─ 安全默认值 (version/model)
│ ├─ 10 条校验规则
│ └─ 原子写入 + 历史归档
│
└─ agent_blueprint_activate (激活智能体)
├─ 7 步工厂流程
├─ 能力裁剪 (inherit→allow→deny→composed)
└─ 独立 LLM session 启动四个 LLM 工具
子智能体工厂通过 4 个 LLM 工具驱动,由主智能体的 tool-use 循环自然编排:
1. agent_blueprint_suggest — 智能推荐
根据用户描述,自动分析所需能力,推荐最匹配的蓝图模板:
- CapabilityMapper:15 个工具组 + 6 个触发器组 + 2 个模型组
- 输出:推荐模板 ID、定制建议、可用工具/模型清单
- 不消耗额外 LLM 调用,仅返回结构化上下文
2. agent_blueprint_generate — 蓝图生成
将推荐结果与用户反馈合并,生成完整的 YAML 蓝图:
- 模板合并:基础蓝图 + 用户覆写(ID/名称/触发器/SOP)
- 安全默认:自动设置 version="1"、model="sonnet"
- 质量提示:校验后返回优化建议(qualityHints)
- 原子写入:BlueprintStore 持久化 + FIFO 10 版本历史
3. agent_blueprint_manage — 蓝图管理
对已有蓝图进行 CRUD 操作:列出、查看详情、更新、删除(内置蓝图保护)。
4. agent_blueprint_activate — 激活部署
将蓝图实例化为运行中的子智能体:
- ScopeCloner:从父智能体继承能力,按蓝图 allow/deny 裁剪
- ContractBuilder:生成委托合同(超时、token 预算、可派发目标)
- PromptBuilder:7 段系统提示词(角色/合同/工具/约束/SOP/审查门/派发)
CapabilityMapper — 能力自动映射
自然语言到具体工具的映射核心:
| 关键词组 | 映射工具 |
|---|---|
| 搜索/调研/查找 | web_search, web_fetch |
| 编程/代码/开发 | bash, read_file, write_file |
| 浏览器/网页 | browser, web_fetch |
| 邮件/通知 | send_email, message |
| 定时/周期/每天 | cron trigger |
| 消息/回复/对话 | message_match trigger |
蓝图 YAML 结构
每个子智能体蓝图包含 13 个顶级段落:
id: my-analyst
version: "1"
name: "竞品分析师"
description: "自动收集并分析竞品动态"
role: "你是一个专业的竞品分析师..."
model: "sonnet"
capabilities:
inherit: minimal
allow: [web_search, web_fetch, memory_search, write_file]
deny: [bash]
budget:
max_tokens: 100000
max_concurrent: 1
daily_limit: 5
triggers:
- type: cron
spec: "0 9 * * 1" # 每周一 9 点
sop: |
1. 搜索目标竞品的最新动态
2. 分析关键变化和趋势
3. 生成分析报告并保存
constraints:
no_spawn: true
stall_threshold_ms: 180000id: my-analyst
version: "1"
name: "竞品分析师"
description: "自动收集并分析竞品动态"
role: "你是一个专业的竞品分析师..."
model: "sonnet"
capabilities:
inherit: minimal
allow: [web_search, web_fetch, memory_search, write_file]
deny: [bash]
budget:
max_tokens: 100000
max_concurrent: 1
daily_limit: 5
triggers:
- type: cron
spec: "0 9 * * 1" # 每周一 9 点
sop: |
1. 搜索目标竞品的最新动态
2. 分析关键变化和趋势
3. 生成分析报告并保存
constraints:
no_spawn: true
stall_threshold_ms: 18000010 个内置蓝图
开箱即用,覆盖常见场景:
| 蓝图 ID | 名称 | 关键能力 | 适用场景 |
|---|---|---|---|
coder | 编程专家 | bash, read/write, spawn | 代码编写与重构 |
argus | 灵瞳(视觉) | argus, read_file | 桌面 UI 操作 |
media | 媒体运营 | send_media, browser | 内容创作与发布 |
researcher | 研究员 | web_search, memory | 信息收集与分析 |
customer-support | 客服专员 | memory, message | 客户服务与回复 |
data-analyst | 数据分析 | bash, canvas | 数据处理与可视化 |
content-writer | 内容写手 | write_file, web_search | 文档与内容创作 |
security-auditor | 安全审计 | bash, grep, web | 代码安全审查 |
devops | 运维工程师 | bash, cron, nodes | 运维自动化 |
scheduler | 调度器 | spawn_agent, sessions | 多智能体协调 |
能力树注册
每个蓝图工具在能力树中拥有独立节点:
| 节点 ID | 最低意图层级 | 审批类型 |
|---|---|---|
subagents/spawn_agent | task_write | plan_confirm |
subagents/handoff_to_agent | task_write | plan_confirm |
subagents/blueprint_suggest | task_light | 无 |
subagents/blueprint_generate | task_write | plan_confirm |
subagents/blueprint_manage | task_write | plan_confirm |
subagents/blueprint_activate | task_write | plan_confirm |
安全保障
- 10 条校验规则:ID 格式、版本号、名称长度、角色非空、能力合法性、预算上限、触发器格式、SOP 内容、派发目标、字段长度
- 渐进式迁移:现有 spawn_coder/argus/media 保持原样,spawn_agent 作为独立并行路由
- 接口解耦:runner 包通过 5 个接口访问 blueprint/factory/orchestration,零循环依赖
- 内置保护:内置蓝图不可删除,所有修改自动归档历史版本
代码位置
| 组件 | 位置 |
|---|---|
| 蓝图定义与存储 | backend/internal/agents/blueprint/ |
| 实例化工厂 | backend/internal/agents/factory/ |
| LLM 工具实现 | backend/internal/agents/runner/tools_blueprint.go |
| 能力映射器 | backend/internal/agents/runner/capability_mapper.go |
| 能力树节点 | backend/internal/agents/capabilities/tree_migrate.go |