🤝 OpenClaw SubAgent:让你的Agent拥有"分身术"

记得《大话西游》里周星驰脚踏七色云彩的经典镜头吗?SubAgent就是让AI Agent也能"脚踏七色云彩"——同时处理七个任务。

想象你是一个主编,有10篇文章要同时处理。传统方式是一个个来,用SubAgent就可以同时召唤10个"小弟"帮你干活,效率直接起飞🚀

🧩 SubAgent核心概念

🎯 什么是SubAgent?

SubAgent是主Agent派生出来的独立Agent实例,具有以下特点:

📝 创建SubAgent

// 方式一:直接创建 const subAgent = await openclaw.subagent.spawn({ name: "translator-en", prompt: "你是一个专业的英文翻译,擅长技术文档翻译", skills: ["web-search", "language-tools"], timeout: 60000 }); // 方式二:从模板创建 const subAgent = await openclaw.subagent.fromTemplate("code-reviewer", { language: "python", strictMode: true });

🎬 实战案例一:多语言翻译

需要把一篇技术文章翻译成5种语言?直接上SubAgent:

async function translateToMultipleLanguages(article, languages) { // 为每个语言创建一个SubAgent const tasks = languages.map(lang => openclaw.subagent.spawn({ name: `translator-${lang}`, prompt: `你是专业${lang}翻译,将文章翻译成地道的${lang}`, task: `翻译以下文章到${lang}:\n\n${article}`, timeout: 30000 }) ); // 等待所有翻译完成 const results = await Promise.all(tasks); return results.reduce((acc, r) => { acc[r.name.replace('translator-', '')] = r.output; return acc; }, {}); } // 使用 const translations = await translateToMultipleLanguages(articleText, ['en', 'ja', 'ko', 'fr', 'de'] );

🎬 实战案例二:并行数据抓取

// 同时从多个来源抓取数据 const sources = [ { name: "github", url: "https://api.github.com/search/repositories" }, { name: "hackernews", url: "https://hacker-news.firebaseio.com/v0/topstories.json" }, { name: "reddit", url: "https://www.reddit.com/r/AI/rising.json" } ]; const scrapers = sources.map(src => openclaw.subagent.spawn({ name: `scraper-${src.name}`, skills: ["web-scraper-pro"], task: `抓取 ${src.url} 的数据,提取最近10条热门内容`, context: { source: src.name, url: src.url } }) ); const results = await Promise.all(scrapers); console.log(`抓取完成,共获取 ${results.length} 个数据源`);

📊 SubAgent状态监控

# 列出所有活跃的SubAgent openclaw subagent list # 查看特定SubAgent的日志 openclaw subagent logs translator-en --follow # 终止失控的SubAgent openclaw subagent kill runaway-agent # 查看资源使用情况 openclaw subagent stats --all
💡 实战建议:

⚠️ 常见错误处理

🔗 相关资源