🎧 收听播客版本
⏱️ 时长约 1 分 28 秒 | 📥 也可以在通勤、运动时收听
📋 问题来源
背景
在 OpenClaw 多 Agent 系统中,不同 Agent 承担着不同的职责:
- Work Agent 💼 - 专注于工作相关任务,如行业动态整理、周报生成
- Main Agent 🎯 - 处理个人博客、技术文章写作
- Life Agent 🌱 - 负责生活记录、日程管理(暂未启用博客功能)
最初,blog-generator 技能设计为单一模式,所有 Agent 调用时都使用相同的配置和行为。这导致了一系列问题。
遇到的问题
1. 内容类型混淆
Work Agent 需要发布行业动态到 industry-news 集合,而 Main Agent 需要发布个人博客到 blog 集合。单一配置无法区分这两种需求。
2. 作者身份混乱
- Work Agent 发布的行业周报作者应该是工作身份(如
<工作身份>) - Main Agent 发布的个人博客作者应该是个人身份(如
<个人身份>)
单一配置导致作者身份无法正确区分。
3. 分类体系冲突
个人博客使用 4 个标准分类:
- OpenClaw
- AI Agent
- 技术实践
- 技术思考
行业动态使用行业分类:
- 光伏
- 锂电
- 储能
4. 功能需求差异
| 功能 | Work Agent | Main Agent |
|---|---|---|
| 数据引用链接 | ✅ 必需 | ⚠️ 可选 |
| 播客音频 | ✅ 必需 | ✅ 必需 |
| 行业周报格式 | ✅ 必需 | ❌ 不需要 |
| 4 个标准分类 | ❌ 不需要 | ✅ 必需 |
5. 代码维护困难
如果为每个 Agent 创建独立的技能副本,会导致:
- 代码重复
- 维护成本增加
- 通用功能更新需要同步多处
💡 解决方案
方案 C:核心 Skill + Agent 配置覆盖
经过对比分析,选择了方案 C:保持 blog-generator 在全局 skills 目录共享,通过各 Agent 的 TOOLS.md 进行定制配置。
文件结构
<OpenClaw 安装目录>/skills/
└── blog-generator/
├── SKILL.md # 全局共享技能
└── scripts/
└── get-agent-config.sh # Agent 配置读取脚本
<用户配置目录>/agents/
├── work/
│ └── workspace/
│ └── TOOLS.md # Work Agent 配置
└── main/
└── workspace/
└── TOOLS.md # Main Agent 配置
配置实现
1. Work Agent 配置
文件位置:<用户配置目录>/agents/work/workspace/TOOLS.md
核心配置:
### 内容发布规范
- **内容集合**:`industry-news`
- **默认作者**:`<工作身份>`
- **内容类型**:行业动态周报(光伏、锂电、储能)
- **禁用类型**:`blog`(不发布个人博客)
### 必需功能
- ✅ 数据引用:所有数据必须标注来源,链接到具体页面
- ✅ 播客音频:每篇周报生成音频版本
- ✅ 行业周报格式:7 个标准章节
2. Main Agent 配置
文件位置:<用户配置目录>/agents/main/workspace/TOOLS.md
核心配置:
### 内容发布规范
- **内容集合**:`blog`
- **默认作者**:`<个人身份>`
- **内容类型**:技术博客(4 个标准分类)
- **禁用类型**:`industry-news`(不发布行业动态)
### 博客分类规范
只使用以下 4 个标准分类:
1. OpenClaw - OpenClaw 平台相关实践
2. AI Agent - 大模型、智能体技术探索
3. 技术实践 - 开发工具、自动化
4. 技术思考 - AI 文明、技术趋势
3. SKILL.md 配置读取机制
在 blog-generator/SKILL.md 中添加 Agent 配置读取章节:
## Agent 配置读取
### 配置读取顺序
1. 读取当前 agent 的 `TOOLS.md` 中的 `Blog Generator 定制配置`
2. 如果没有配置,使用默认值
### 配置优先级
1. **Agent TOOLS.md 配置**(最高优先级)
2. **用户明确指定的参数**
3. **默认配置**(最低优先级)
✨ 方案优势
1. 代码复用
通用功能(播客生成、音频处理、Git 操作)只维护一份,所有 Agent 自动继承。
对比方案 B(拆分多个 Skill):
- ❌ 方案 B:每个 Agent 一个 Skill 副本,代码重复 3 倍
- ✅ 方案 C:只有 1 份 SKILL.md,维护成本降低 66%
2. 职责清晰
不同 Agent 处理不同类型内容,互不干扰:
| Agent | 职责 | 内容集合 | 作者 |
|---|---|---|---|
| Work | 行业动态周报 | industry-news | <工作身份> |
| Main | 个人博客/技术文章 | blog | <个人身份> |
| Life | 暂不处理 Blog | - | - |
3. 易于扩展
添加新 Agent 只需创建配置文件,无需修改核心技能:
# 为新 Agent 添加配置
mkdir -p <用户配置目录>/agents/new-agent/workspace
cat > <用户配置目录>/agents/new-agent/workspace/TOOLS.md << 'EOF'
# New Agent 配置
内容集合:blog
默认作者:<作者名>
EOF
4. 灵活定制
每个 Agent 可以有自己的行为规范:
- Work Agent:强制数据引用、行业周报格式
- Main Agent:4 个标准分类、SVG 封面图
- Life Agent:未来可配置生活记录格式
5. 集中维护
修改通用功能(如播客音频生成逻辑)只需更新 SKILL.md,所有 Agent 自动生效。
🛠️ 实践总结
实施步骤
1. 创建 Agent 配置文件
为每个需要定制行为的 Agent 创建 TOOLS.md:
# Work Agent
cat > <用户配置目录>/agents/work/workspace/TOOLS.md
# Main Agent
cat > <用户配置目录>/agents/main/workspace/TOOLS.md
2. 更新 SKILL.md
添加 Agent 配置读取机制和数据引用规范:
## Agent 配置读取
## 行业动态文章数据引用规范
3. 创建配置读取脚本
cat > <OpenClaw 安装目录>/skills/blog-generator/scripts/get-agent-config.sh
4. 测试验证
- Work Agent 创建行业周报 → 发布到
industry-news/ - Main Agent 创建个人博客 → 发布到
blog/
使用示例
Work Agent 调用
# 用户请求
"创建一篇光伏行业周报"
# 自动行为
- 发布到:src/content/industry-news/光伏/pv-weekly-20260301.md
- 作者:<工作身份>
- 包含:数据引用、播客音频、行业周报格式
Main Agent 调用
# 用户请求
"写一篇 OpenClaw 多 Agent 配置方案的博客"
# 自动行为
- 发布到:src/content/blog/openclaw/multi-agent-config.md
- 作者:<个人身份>
- 分类:OpenClaw
- 包含:SVG 配图、播客音频
注意事项
1. 配置优先级
确保配置读取顺序正确:
Agent TOOLS.md > 用户指定参数 > 默认配置
2. 数据引用规范
Work Agent 发布行业动态时:
- ✅ 链接到具体页面(新闻文章、报告页面)
- ❌ 不链接网站首页
3. 敏感信息脱敏
所有 Agent 创建内容时都需要脱敏:
- API Token、密钥 →
cli_xxxxxxxxxxxxxxxx - 用户 ID →
ou_xxx - 公司名称 →
某中型锂电企业 - 具体金额 →
数百万元
📊 效果对比
实施前
| 问题 | 影响 |
|---|---|
| 内容类型混淆 | Work/Main Agent 发布内容混在一起 |
| 作者身份混乱 | 无法区分工作/个人身份 |
| 分类体系冲突 | 行业分类 vs 标准分类 |
| 代码维护困难 | 需要多处同步更新 |
实施后
| 改进 | 效果 |
|---|---|
| 内容隔离 | Work 发布 industry-news,Main 发布 blog |
| 身份清晰 | Work=<工作身份>,Main=<个人身份> |
| 分类独立 | 各自使用合适的分类体系 |
| 集中维护 | 通用功能只维护一份 |
🎯 总结
多 Agent 配置方案成功解决了 OpenClaw 系统中不同 Agent 的内容发布需求差异问题。通过核心 Skill 共享 + Agent 配置定制的方式,实现了:
- ✅ 代码复用 - 通用功能集中维护
- ✅ 职责分离 - 不同 Agent 处理不同类型内容
- ✅ 易于扩展 - 新 Agent 只需添加配置文件
- ✅ 灵活定制 - 每个 Agent 有自己的行为规范
这个方案为 OpenClaw 多 Agent 系统的技能共享和定制提供了一个可参考的模式。