前のページ

19. OpenClaw 実践:チームコラボレーション Agent の構築

本稿では OpenClaw でチームコラボレーション Agent を構築する方法を解説します。マルチチャネル接続、チームナレッジベース、タスク割り当て、会議調整などの機能により、チームのコラボレーション効率を向上させます。

OpenClaw v2026.2 対応 | チームの Slack または Discord ワークスペースが必要です。管理者権限が必要です。

TL;DR: マルチチャネル設定:"channels": {"slack": {...}, "discord": {...}}。チームメンバー管理:"team": {"members": [...]}。ナレッジベース同期:notion-sync スキル。タスク割り当て:Agent がスキルに基づいてタスクを割り当て。会議議事録:自動記録して構造化サマリーを生成。Cron で毎朝のブリーフィング:"schedule": "0 8 * * 1-5"

実践目標

以下を実現するチームコラボレーション Agent を構築します:

  1. マルチチャネルでのチームコミュニケーション
  2. チームナレッジベースの管理
  3. タスクの割り当てと追跡
  4. 会議の調整
  5. 自動化ワークフロー

アーキテクチャ設計

[Slack] [Discord] [Teams] [Email]
         ↓           ↓          ↓
         [Gateway + Agent Router]
                    ↓
    ┌───────────────┼───────────────┐
    ↓               ↓               ↓
[チームAgent]  [プロジェクトAgent]  [アシスタントAgent]
    ↓               ↓               ↓
[ナレッジベース] [タスクシステム]   [カレンダー]

マルチチャネル設定

Slack 設定

{
  "channels": {
    "slack": {
      "botToken": "${SLACK_BOT_TOKEN}",
      "appToken": "${SLACK_APP_TOKEN}",
      "dmPolicy": "open",
      "groups": {
        "C12345678": {
          "name": "engineering",
          "requireMention": false
        },
        "C87654321": {
          "name": "general",
          "requireMention": true
        }
      }
    }
  }
}

Discord 設定

{
  "channels": {
    "discord": {
      "token": "${DISCORD_TOKEN}",
      "guilds": {
        "123456789": {
          "name": "team-workspace",
          "channels": {
            "general": { "requireMention": true },
            "dev-team": { "requireMention": false }
          }
        }
      }
    }
  }
}

チームメンバー管理

{
  "team": {
    "members": [
      {
        "id": "U001",
        "name": "田中",
        "role": "フロントエンド開発",
        "slack": "U123456",
        "discord": "123456789",
        "skills": ["react", "typescript", "css"]
      },
      {
        "id": "U002",
        "name": "佐藤",
        "role": "バックエンド開発",
        "slack": "U234567",
        "discord": "234567890",
        "skills": ["python", "django", "postgresql"]
      }
    ]
  }
}

チームナレッジベース

ナレッジベース構造

チームナレッジベース/
├── プロジェクト/
│   ├── プロジェクトA/
│   │   ├── 要件ドキュメント.md
│   │   ├── 技術方案.md
│   │   └── 会議議事録/
│   └── プロジェクトB/
├── プロセス/
│   ├── コードレビュー規約.md
│   ├── リリースフロー.md
│   └── 新入社員オンボーディング.md
├── 技術スタック/
│   ├── フロントエンド.md
│   ├── バックエンド.md
│   └── DevOps.md
└── よくある質問/
    ├── デプロイ問題.md
    └── パフォーマンス最適化.md

ナレッジベース検索

ユーザー(Slack):@team-bot うちのバックエンド技術スタックは何?

Agent:チームナレッジベースによると、バックエンド技術スタックは以下の通りです:

## バックエンド技術スタック

### コアフレームワーク
- **フレームワーク**: Django 4.2
- **言語**: Python 3.11
- **データベース**: PostgreSQL 15

### インフラ
- **キャッシュ**: Redis
- **キュー**: Celery
- **検索**: Elasticsearch

### デプロイ
- **コンテナ**: Docker
- **オーケストレーション**: Kubernetes
- **CI/CD**: GitHub Actions

詳細ドキュメント:[バックエンド技術スタック](ナレッジベースリンク)

詳細を確認しますか?

ナレッジの更新

ユーザー(Discord):ナレッジベースを更新:Elasticsearch を追加した

Agent:承知しました。バックエンド技術スタックドキュメントを更新します...

[ナレッジベースを更新]

ドキュメントを更新しました:
- ファイル:技術スタック/バックエンド.md
- 変更:インフラ部分に Elasticsearch を追加

変更をチームナレッジベースにプッシュしました。関係者に通知が送信されます。

タスク管理

タスク割り当て

ユーザー:@team-bot タスクを作成:トップページの読み込み速度を最適化、@田中 に割り当て

Agent:タスクを作成しました!

## タスク #123

**タイトル**: トップページの読み込み速度を最適化
**担当者**: 田中
**優先度**: 中
**ステータス**: 未着手
**作成日時**: 2026-02-26 10:30

**説明**:
トップページの読み込み速度を最適化し、ユーザー体験を向上させます。

**推奨ステップ**:
1. 現在の読み込み時間を分析
2. パフォーマンスボトルネックを特定
3. クリティカルレンダリングパスを最適化
4. 最適化案を実施
5. 効果を検証

**推奨期限**: 3 営業日

@田中 タスクの通知を受け取りました。詳細を追加しますか?

タスク追跡

{
  "taskManagement": {
    "integration": "jira",
    "sync": true,
    "notifications": {
      "created": true,
      "updated": true,
      "completed": true,
      "overdue": true
    }
  }
}

毎日のタスクリマインダー

{
  "cron": [
    {
      "id": "daily-task-reminder",
      "schedule": "0 9 * * 1-5",
      "message": "おはようございます!本日のタスク:\n1. 未着手タスク\n2. 期限間近タスク\n3. 本日の会議"
    }
  ]
}
Agent:おはようございます!@田中 @佐藤 @鈴木

## 本日タスクサマリー

### 未着手タスク
- @田中: トップページ読み込み速度の最適化 (優先度: 中)
- @佐藤: API ドキュメント更新 (優先度: 低)
- @鈴木: ユニットテストカバレッジ (優先度: 高)

### 期限間近
- @田中: ユーザー検索機能 - 明日期限
- @佐藤: パフォーマンス最適化レポート - 明後日期限

### 本日の会議
- 10:00 製品レビュー会議
- 14:00 技術共有
- 16:00 田中との 1on1

今日も頑張りましょう!

会議調整

会議の作成

ユーザー:@team-bot コードレビュー会議を設定して、明日の午後 2 時、フロントエンドチームを招待

Agent:会議を設定しています...

## 会議を作成しました

**件名**: コードレビュー会議
**日時**: 2026-02-27 14:00-15:00
**参加者**: 田中, 佐藤, 鈴木
**場所**: 会議室 A / Zoom

**アジェンダ案**:
1. トップページ最適化のコードレビュー
2. 新機能のコードレビュー
3. コード規約の議論

**招待を送信**:
- ✅ 田中
- ✅ 佐藤
- ✅ 鈴木

カレンダー招待を参加者のメールに送信しました。会議リンクを追加しますか?

会議議事録

ユーザー:@team-bot 会議の記録を開始して

Agent:会議の記録を開始します...

[会議進行中...]

ユーザー:@team-bot 会議を終了して、議事録を生成して

Agent:会議議事録を生成しました:

## コードレビュー会議議事録

**日付**: 2026-02-26 14:00-15:00
**参加者**: 田中, 佐藤, 鈴木

### レビュー内容

**トップページ最適化 PR #123**
- ✅ コード構造が明確
- ⚠️ ユニットテストの追加を推奨
- ⚠️ パフォーマンスの最適化が必要
- 決定: 承認、最適化完了後にマージ

**ユーザー検索 PR #124**
- ✅ アルゴリズム実装が正しい
- ✅ テストカバレッジが良好
- 決定: 承認、マージ可能

### アクションアイテム

| 担当者 | タスク | 期限 |
|-------|------|------|
| 田中 | ユニットテストを追加 | 02-27 |
| 佐藤 | パフォーマンス最適化 | 02-28 |

**次回会議**: 2026-03-05 14:00

議事録を #engineering チャンネルに送信しました。

自動化ワークフロー

PR レビューフロー

{
  "webhooks": [
    {
      "id": "pr-review",
      "path": "/webhook/github",
      "message": "新規 PR を検出: {{data.title}}\nブランチ: {{data.branch}}\n作成者: {{data.author}}\n\nレビューが必要:@田中 @佐藤"
    }
  ]
}

デプロイ通知

Agent:🚀 デプロイ通知

**プロジェクト**: フロントエンドアプリ
**環境**: Production
**バージョン**: v1.2.3
**ブランチ**: main
**コミット**: abc1234 - ユーザー検索問題を修正

**変更ログ**:
- ユーザー検索結果のページネーションを修正
- トップページ読み込み速度を最適化
- ユーザーインターフェーススタイルを更新

**デプロイ時刻**: 2026-02-26 16:30:45
**ステータス**: ✅ 成功

モニタリング: https://monitor.example.com/frontend

@チーム リリース後の状況にご注意ください。

オンコールリマインダー

{
  "cron": [
    {
      "id": "oncall-reminder",
      "schedule": "0 9 * * 1-5",
      "message": "本日のオンコール:{{oncall}}、緊急対応のためオンラインで待機してください。"
    }
  ]
}

チーム分析

業務統計

ユーザー:@team-bot 今週の業務統計

Agent:今週の業務統計を生成しています...

## 今週の業務統計 (02/19 - 02/25)

### タスク完了
- 総タスク: 23
- 完了: 18 (78%)
- 進行中: 3 (13%)
- 未着手: 2 (9%)

### コード貢献
| メンバー | Commits | PRs | Reviews |
|-----|---------|-----|---------|
| 田中 | 12 | 3 | 5 |
| 佐藤 | 8 | 2 | 8 |
| 鈴木 | 15 | 4 | 3 |

### 会議時間
- 総会議: 6 回
- 総時間: 8.5 時間
- 1人あたり: 2.8 時間

### レスポンス時間
- 平均初回レスポンス: 15 分
- Slack メッセージ応答率: 95%
- タスク期限遵守率: 85%

### 提案
- 💡 会議時間の削減、集中時間の確保を推奨
- 💡 水曜午後は生産性が高い、ディープワークに適している
- 💡 タスク遅延率がやや上昇、見積もりの改善を推奨

詳細レポートが必要ですか?

チームムード分析

ユーザー:@team-bot チームの最近のムードを分析して

Agent:チームのムードを分析しています...

[最近のコミュニケーション記録を分析]
[ムードキーワードを識別]
[ムードレポートを生成]

## チームムード分析

### 全体ムード
- 今週のムード指数: 7.2/10
- 先週: 7.5/10
- 変化: -0.3 (わずかに低下)

### ムード分布
- ポジティブ語彙: 65% (完了, できた, いいね, 頑張ろう)
- ニュートラル語彙: 30% (進行中, 未着手, 議論)
- ネガティブ語彙: 5% (遅延, 問題, プレッシャー)

### 要注目
- 田中: 最近残業が多い、休息の調整を推奨
- 佐藤: タスク量が重い、分担を検討

### 提案
- 🌟 今週金曜午後にチームアクティビティを企画
- 🌟 不要な会議を削減
- 🌟 コードレビューでポジティブフィードバックを増やす

チームへのケアメッセージを送信しますか?

ベストプラクティス

1. チャネル分担

チャネル 用途 メンションルール
#general 全体通知 @ が必要
#engineering 技術議論 @ 不要
#alerts システムアラート 自動通知
#random 雑談 @ 不要

2. レスポンス規範

{
  "responseRules": {
    "urgent": {
      "keywords": ["緊急", "urgent", "本番問題"],
      "response": "即座に対応",
      "escalation": "5分以内に応答がない場合はエスカレーション"
    },
    "normal": {
      "keywords": [],
      "response": "2時間以内に対応"
    }
  }
}

3. 通知戦略

{
  "notifications": {
    "quietHours": {
      "start": "22:00",
      "end": "08:00"
    },
    "channels": {
      "slack": {
        "urgent": "always",
        "normal": "workingHours"
      },
      "discord": {
        "urgent": "always",
        "normal": "quiet"
      }
    }
  }
}

まとめ

OpenClaw でチームコラボレーション Agent を構築するポイント:

  • マルチチャネル統合:Slack、Discord、Teams を一元接続
  • ナレッジベース管理:チームナレッジの共有と検索
  • タスク追跡:自動割り当て、リマインダー、統計
  • 会議調整:作成、記録、議事録生成
  • ワークフロー自動化:PR 通知、デプロイアラート、オンコールリマインダー
  • チーム分析:業務統計、ムード分析

更新履歴

  • 2026-02-26:初版公開

シリーズナビゲーション