返回列表 发布新帖

[玩法教程] 【养虾活动】绿联NAS下OpenClaw的多Agent部署 + 飞书群聊设置完整攻略

1065 3
发表于 2026-3-23 09:34:23 | 查看全部 阅读模式 IP:–海南–海口

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这篇文章是让小龙虾自己整理的,有需要的话我感觉应该可以直接投喂。
目录

1. [什么是多Agent系统](#1-什么是多agent系统)
2. [整体架构](#2-整体架构)
3. [飞书机器人创建](#3-飞书机器人创建)
4. [Agent团队配置](#4-agent团队配置)
5. [群聊设置](#5-群聊设置)
6. [子Agent任务分发](#6-子agent任务分发)
7. [记忆体系构建](#7-记忆体系构建)
8. [完整配置示例](#8-完整配置示例)
9. [常见问题](#9-常见问题)

---

## 1. 什么是多Agent系统

OpenClaw 的多Agent系统允许你在**一个网关进程**中运行多个**完全隔离的智能体**,每个Agent都有:

-  **独立大脑**(工作区文件:AGENTS.md、SOUL.md、USER.md)
-  **独立状态**(认证配置、会话存储)
-  **独立人格**(可以设定不同角色和专长)
- **独立权限**(可配置不同的工具访问权限)

```
┌─────────────────────────────────────────────────┐
│              OpenClaw Gateway                   │
│                                                 │
│  ┌─────────────┐  ┌─────────────┐  ┌───────────┐ │
│  │  xiaolongxia │  │    mr      │  │  search   │ │
│  │  (主脑)     │  │ (文件整理)  │  │ (搜索)    │ │
│  │  飞书通道   │  │  子Agent   │  │  子Agent  │ │
│  └─────────────┘  └─────────────┘  └───────────┘ │
│                                                 │
└─────────────────────────────────────────────────┘
```

---

## 2. 整体架构

### 2.1 路径映射

| 组件 | 路径 |
|:---|:---|
| 主配置文件 | `~/.openclaw/openclaw.json` |
| 状态目录 | `~/.openclaw` |
| 默认工作区 | `~/.openclaw/workspace` |
| Agent目录 | `~/.openclaw/agents/<agentId>/agent` |
| 会话存储 | `~/.openclaw/agents/<agentId>/sessions` |

### 2.2 核心概念

- **agentId**:一个"大脑"的唯一标识
- **accountId**:渠道账户实例(如飞书机器人账号)
- **binding**:将入站消息路由到对应Agent的规则

---

## 3. 飞书机器人创建

### 3.1 创建飞书应用

1. 打开 [飞书开放平台](https://open.feishu.cn/app)
2. 点击 **创建企业自建应用**
3. 填写应用名称和描述,选择图标
4. 在 **凭证与基础信息** 页面复制:
   - **App ID**(格式:`cli_xxx`)
   - **App Secret**

### 3.2 配置应用权限

**权限管理** 页面,点击 **批量导入**,粘贴以下JSON:

```json
{
  "scopes": {
    "tenant": [
      "im:chat",
      "im:message",
      "im:message:send_as_bot",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:resource",
      "im:chat.members:bot_access",
      "contact:user.employee_id:readonly"
    ],
    "user": ["im:chat.access_event.bot_p2p_chat:read"]
  }
}
```

### 3.3 启用机器人能力

**应用能力** > **机器人** 页面开启机器人能力。

### 3.4 配置事件订阅

**事件订阅** 页面:
1. 选择 **使用长连接接收事件**(WebSocket模式)
2. 添加事件:`im.message.receive_v1`

### 3.5 发布应用

**版本管理与发布** 页面提交审核并发布。

---

## 4. Agent团队配置

### 4.1 添加新Agent

使用向导添加隔离的Agent:

```bash
openclaw agents add <agent-id>
```

例如添加文件整理员:

```bash
openclaw agents add mr
```

### 4.2 Agent工作区结构

每个Agent需要有独立的工作区目录:

```
~/.openclaw/
├── agents/
│   ├── main/agent/           # 主Agent认证
│   │   └── auth-profiles.json
│   ├── mr/agent/             # 文件整理员
│   │   └── auth-profiles.json
│   ├── search/agent/         # 搜索专员
│   ├── thinking/agent/       # 思考员
│   └── security/agent/       # 安全员
└── workspace/                # 主工作区
    ├── workspace-mr/         # mr工作区
    ├── workspace-search/      # search工作区
    └── ...
```

### 4.3 分层记忆体系

每个Agent推荐使用分层记忆体系:

```
workspace/
├── MEMORY.md              # 索引入口(<40行)
└── memory/
    ├── projects.md        # 项目状态
    ├── lessons.md         # 踩坑记录
    ├── infra.md           # 基础设施配置
    └── YYYY-MM-DD.md      # 日志详情
```

**MEMORY.md 模板**:

```markdown
# MEMORY.md - 记忆索引

## 活跃项目
- [项目名称](memory/projects.md#项目名称)

## 基础设施
- VPS: xxx | VNC:xxxx | CDP:xxxxx

## 重要教训
- 教训1 ([详情](memory/lessons.md#教训1))

## 近期日志
- [2026-03-23](memory/2026-03-23.md)
- [2026-03-22](memory/2026-03-22.md)

## Agent团队
- xiaolongxia - 主Agent
- mr - 文件整理
- search - 网络搜索
```

---

## 5. 群聊设置

### 5.1 基础群聊配置

编辑 `~/.openclaw/openclaw.json`:

```json5
{
  channels: {
    feishu: {
      enabled: true,
      dmPolicy: "pairing",          // 私聊策略:需要配对
      groupPolicy: "open",           // 群组策略:开放
      accounts: {
        main: {
          appId: "cli_xxx",
          appSecret: "xxx",
          botName: "小龙虾",
        },
      },
    },
  },
}
```

### 5.2 群组访问控制

**策略选项**:

| 策略 | 说明 |
|:---|:---|
| `"open"` | 允许所有群组,需要@提及 |
| `"allowlist"` | 仅允许白名单群组 |
| `"disabled"` | 禁用所有群组 |

**配置示例**:

```json5
{
  channels: {
    feishu: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["oc_xxx", "oc_yyy"],  // 群组ID列表
      groups: {
        "oc_xxx": {
          requireMention: true,   // 需要@才响应
          allowFrom: ["ou_user1", "ou_user2"],  // 发送者白名单
        },
        "oc_yyy": {
          requireMention: false,  // 无需@也响应
        },
      },
    },
  },
}
```

### 5.3 获取群组ID

1. 在群组中 @机器人发送消息
2. 运行命令查看日志:
   ```bash
   openclaw logs --follow
   ```
3. 日志中会显示 `chat_id`(格式:`oc_xxx`)

### 5.4 多Agent群聊路由

将不同群组路由到不同Agent:

```json5
{
  agents: {
    list: [
      { id: "main" },
      { id: "mr", workspace: "~/.openclaw/workspace-mr" },
      { id: "search", workspace: "~/.openclaw/workspace-search" },
    ],
  },
  bindings: [
    {
      agentId: "main",
      match: {
        channel: "feishu",
        peer: { kind: "group", id: "oc_main_group" },
      },
    },
    {
      agentId: "mr",
      match: {
        channel: "feishu",
        peer: { kind: "group", id: "oc_mr_group" },
      },
    },
  ],
}
```

---

## 6. 子Agent任务分发

### 6.1 什么是子Agent

Agent是从主Agent派生的后台任务,用于:
- 并行处理耗时任务
- 专业化分工
- 避免阻塞主对话

### 6.2 启动子Agent

**方式一:使用斜杠命令**

```
/subagents spawn <agent-id> <task description>
```

**方式二:使用工具**

```javascript
sessions_spawn({
  task: "搜索关于XXX的信息",
  label: "search-task-1",
  agentId: "search",
  model: "sonnet",
  runTimeoutSeconds: 300
})
```

### 6.3 子Agent配置

`openclaw.json` 中配置子Agent默认行为:

```json5
{
  agents: {
    defaults: {
      subagents: {
        model: "haiku",              // 默认使用便宜模型
        maxConcurrent: 4,              // 最大并发数
        archiveAfterMinutes: 60,       // 归档时间
      },
    },
  },
}
```

### 6.4 模型选择策略

| 等级 | 模型 | 适用场景 |
|:---:|:---|:---|
| 高 | opus | 复杂架构设计、深度推理 |
| 中 | sonnet | 写代码、写脚本、信息整理 |
|  低 | haiku | 简单文件操作、格式转换 |

---

## 7. 记忆体系构建

### 7.1 主Agent记忆索引

```markdown
# MEMORY.md - 记忆索引

##  活跃项目


## 基础设施
- VPS: xxxxx | VNC:xxxx | CDP:xxxxx
- 绿联NAS: /volume1/@appstore/com.ugreen.docker.openclaw/config(具体看自己的绿联nas安装目录)

## 重要教训


## 近期日志
- [2026-03-23](memory/2026-03-23.md)
- [2026-03-22](memory/2026-03-22.md)

## Agent团队
- xiaolongxia - 主Agent,飞书通道
- mr - 文件整理员
- search - 网络搜索专员
- thinking - 逻辑思考员
- security - 安全员
```

### 7.2 项目状态模板

```markdown
# 项目状态

## 项目名称
- 状态:进行中/已完成/暂停
- 说明:简要描述
- 待办:下一步行动
```

### 7.3 教训记录模板

```markdown
# 踩坑记录

## 等级说明
-  高重要性:致命问题,必须避免
- 中重要性:重要教训,值得注意
-  低重要性:建议做法

## 问题列表


```

### 7.4 日志格式

```markdown
# YYYY-MM-DD 工作日志

## 完成事项
1. 任务1
2. 任务2

## 待处理
- 任务A

## 新增
- 新工具/新发现
```

---

## 8. 完整配置示例

### 8.1 完整openclaw.json

```json5
{
  // 模型配置
  models: {
    "minimax/MiniMax-M2.7": { alias: "default" },
    "minimax/MiniMax-M2.7": { alias: "opus" },
  },

  // Agent列表
  agents: {
    list: [
      {
        id: "main",
        name: "绿联小龙虾",
        workspace: "~/.openclaw/workspace",
      },
      {
        id: "mr",
        name: "文件整理员",
        workspace: "~/.openclaw/workspace-mr",
      },
      {
        id: "search",
        name: "网络搜索专员",
        workspace: "~/.openclaw/workspace-search",
      },
      {
        id: "thinking",
        name: "逻辑思考员",
        workspace: "~/.openclaw/workspace-thinking",
      },
      {
        id: "security",
        name: "安全员",
        workspace: "~/.openclaw/workspace-security",
      },
    ],
    defaults: {
      subagents: {
        model: "haiku",
        maxConcurrent: 4,
      },
    },
  },

  // 消息路由
  bindings: [
    {
      agentId: "main",
      match: { channel: "feishu", peer: { kind: "dm" } },
    },
  ],

  // 飞书渠道配置
  channels: {
    feishu: {
      enabled: true,
      dmPolicy: "pairing",
      groupPolicy: "open",
      accounts: {
        main: {
          appId: "cli_xxx",
          appSecret: "xxx",
          botName: "小龙虾",
        },
      },
      groups: {
        "*": { requireMention: true },
      },
    },
  },
}
```

### 8.2 子Agent工作区初始化

每个子Agent首次启动时需要初始化记忆体系:

```bash
# 创建工作区目录
mkdir -p ~/.openclaw/workspace-<agent-id>/memory

# 创建基础文件
touch ~/.openclaw/workspace-<agent-id>/memory/YYYY-MM-DD.md
```

---

## 9. 常见问题

### Q1: Agent之间如何通信?

通过 `sessions_send` 工具进行Agent间消息传递:

```javascript
sessions_send({
  sessionKey: "agent:mr:subagent:xxx",
  message: "任务完成,结果如下..."
})
```

### Q2: 子Agent结果如何回传?

Agent完成后会自动通过 **通告机制** 回传结果到主对话。

### Q3: 如何控制子Agent并发?

通过 `agents.defaults.subagents.maxConcurrent` 配置,默认8个。

### Q4: 群组中多个Agent如何避免混乱?

使用 `mentionPatterns` 为每个Agent设置独特的@前缀:

```json5
{
  agents: {
    list: [
      {
        id: "mr",
        groupChat: {
          mentionPatterns: ["@mr", "@文件整理"],
        },
      },
    ],
  },
}
```

### Q5: 如何备份Agent记忆?

```bash
# 备份整个工作区
cp -r ~/.openclaw/workspace ~/.openclaw/workspace-backup

# 备份Agent配置
cp -r ~/.openclaw/agents ~/.openclaw/agents-backup
```

评论3

sUlXxmLv.1 发表于 2026-3-24 00:20:51 | 查看全部 IP:–广东–佛山–高明区
完全看不懂啊
y鱼尾y楼主Lv.1 发表于 2026-3-24 16:33:16 | 查看全部 IP:–海南–海口
目的就是在飞书拉了个群,然后建立5个机器人,都是在绿联nas内的openclaw,这5个机器人可以互相协助解决问题。你可以直接投喂给你的小龙虾
D2gNGULv.1 发表于 2026-4-23 03:44:44 | 查看全部 IP:–浙江–绍兴
为啥我配置子agent 一配置就崩溃。。试了很多次。。。

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表