Tools
Mkclaw Team
MkClaw Team transforms a single OpenClaw agent into a multi-agent project team
Install
npm install
#
Configuration Example
{
"plugins": {
"mkclaw-team": {
"enabled": true
}
}
}
README
# MkClaw Team Plugin
> Multi-agent team orchestration plugin for [OpenClaw](https://openclaw.io) gateway. Build, manage, and execute collaborative AI team projects with lifecycle management, task orchestration, and enterprise observability.
[](https://github.com/mkclaw-team/releases)
[](https://openclaw.io)
[](LICENSE)
---
## What It Does
MkClaw Team transforms a single OpenClaw agent into a **multi-agent project team**. Instead of one AI working alone, you get:
- A **Manager Agent** that plans, coordinates, and validates work
- Multiple **Worker Agents** that execute specialized tasks in parallel
- Built-in **task orchestration** with dependencies, status tracking, and handoffs
- **Team memory** that accumulates experience across projects
- **Enterprise observability** via OpenTelemetry traces and metrics
```mermaid
flowchart TD
U["User Request"] --> M["Main Agent"]
M --> PB["Project Builder"]
M --> TM["Team Management"]
M --> EL["Engagement Lifecycle"]
PB --> G["OpenClaw Gateway"]
TM --> G
EL --> G
G --> P["MkClaw Team Plugin"]
P --> T["Tools 26+"]
P --> R["RPC Methods"]
P --> S["Services"]
T --> A["Manager Agent"]
R --> A
S --> A
A --> W1["Worker 1"]
A --> WN["Worker N"]
```
---
## Core Concepts
| Concept | Description |
|---------|-------------|
| **Team (工作室)** | A long-lived group of agents with shared memory, skills, and identity. Reusable across multiple projects. |
| **Engagement (任务)** | A single project task assigned to a Team. Has a lifecycle: `pending` → `planning` → `in_progress` → `archived`. |
| **Manager Agent** | The team coordinator. Plans tasks, assigns work, monitors progress, resolves blockers. |
| **Worker Agent** | Executes assigned tasks, reports progress, delivers outputs. |
| **Team Memory** | Accumulated experience from past engagements. Injected into new projects for context. |
---
## Features
### 🏗️ Project Lifecycle Management
- Create teams with 3-6 specialized agents
- Assign roles with structured "soul" descriptions
- Manage team members (add, remove, replace with handoff)
- Team memory persists across projects
### 📋 Task Orchestration
- Batch task creation with dependencies
- Status tracking: `Pending` → `Dispatched` → `InProgress` → `Success/Block/Failed`
- Inter-agent messaging for coordination
- Timeout detection and escalation
### 🔧 Agent Tools (26+)
- Task management: create, update, list, feedback
- Project operations: status, output, member management
- Memory: search and update team memories
- Messaging: inter-agent communication
### 📡 Gateway RPC API
- Full project lifecycle control
- Member and engagement management
- Expert template system
- Cross-team collaboration
### 🔍 Enterprise Observability
- OpenTelemetry traces and metrics
- Structured logging with multiple streams
- Configurable log exporters (OTLP HTTP)
- Feature gates for progressive rollout
### 🧠 Smart Memory
- Automatic memory injection from past projects
- RAG-based semantic memory search (optional)
- Team experience accumulation
- Context-aware project recommendations
### 💬 Platform Integration
- Feishu/Lark bot integration
- Discord and Telegram channels (via feature gates)
- Real-time notifications
- Multi-language support
---
## Installation
### Prerequisites
- [OpenClaw Gateway](https://openclaw.io) >= 2026.3.28
- Node.js >= 18
- pnpm or npm
### From Source
```bash
# Clone the repository
git clone https://github.com/mkclaw-team/mkclaw-team.git
cd mkclaw-team
# Install dependencies
npm install
# Build the plugin
npm run build
# The bundled plugin is at dist/index.js
```
### Install in OpenClaw
```bash
# Copy the plugin to OpenClaw extensions directory
cp -r . ~/.openclaw/extensions/mkclaw-team/
# Or link for development
ln -s $(pwd) ~/.openclaw/extensions/mkclaw-team
```
### Configuration
Add to your `~/.openclaw/openclaw.json`:
```json
{
"plugins": {
"mkclaw-team": {
"enabled": true
}
}
}
```
#### Plugin Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `LeadCtrlTickInterval` | number | 10000 | Lead controller check interval (ms) |
| `LeadCtrlBaseInterval` | number | 60000 | Base interval for backoff (ms) |
| `LeadCtrlBackOffRatio` | number | 1.2 | Backoff multiplier |
| `EnableAgentMessaging` | boolean | false | Enable inter-agent messaging |
| `TaskTimeoutMs` | number | 600000 | Task timeout threshold (ms) |
| `MemoryInjection.maxBytes` | number | 8192 | Max bytes for history index |
| `MemoryRag.enabled` | boolean | false | Enable RAG memory search |
---
## Usage
### Creating a Team
```bash
cat > /tmp/team.json << 'EOF'
{
"name": "AI Novel Writing Studio",
"description": "A team specialized in science fiction novel creation",
"locale": "zh-CN",
"members": [
{
"name": "Project Manager",
"role": "Manager",
"soul": "You are the project manager, responsible for planning and coordination.\n\n## Core Responsibilities\n- Break down user requirements into tasks\n- Assign tasks to team members\n- Monitor progress and resolve blockers\n\n## Input Sources\n- User requirements\n- Team member updates\n\n## Output Requirements\n- Task assignments\n- Progress reports\n\n## Collaboration Boundaries\n- Coordinate but don't execute tasks",
"skills": ["mkclaw-team-teamwork"],
"isLead": true
},
{
"name": "Lead Writer",
"role": "Senior Writer",
"soul": "You are the lead writer, responsible for main narrative and character development.\n\n## Core Responsibilities\n- Write chapter outlines and main narrative\n- Develop character arcs\n- Maintain story consistency\n\n## Input Sources\n- Story outline from Manager\n- Research materials\n\n## Output Requirements\n- Chapter drafts (Markdown)\n- Character profiles\n\n## Collaboration Boundaries\n- Focus on narrative, not technical implementation",
"skills": ["writing", "creative-writing"]
}
]
}
EOF
openclaw gateway call mkclaw.team.team.create \
--params "$(cat /tmp/team.json)" \
--timeout 120000 --json 2>/dev/null | jq '{teamId:.id,name:.name}'
```
### Creating an Engagement (Project Task)
```bash
cat > /tmp/engagement.json << 'EOF'
{
"teamId": "t-xxx",
"name": "Write Chapter 1-3 of 'Stellar Odyssey'",
"description": "Create the opening chapters of a hard science fiction novel...",
"locale": "zh-CN"
}
EOF
openclaw gateway call mkclaw.team.engagement.create \
--params "$(cat /tmp/engagement.json)" \
--timeout 120000 --json 2>/dev/null | jq '{engagementId:.id,name:.name}'
```
### Starting Execution
```bash
openclaw gateway call mkclaw.team.engagement.start \
--params '{"teamId":"t-xxx","engagementId":"e-xxx"}' \
--timeout 120000 --json 2>/dev/null | jq '{id:.id,status:.status}'
```
### Task Management (Agent Tools)
Once a team is running, agents use these tools:
```json
// Create tasks
{
"tool": "mkclaw_team_task_batch_create",
"params": {
"teamId": "t-xxx",
"engagementId": "e-xxx",
"tasks": [
{
"title": "Write Chapter 1",
"description": "Write the opening chapter...",
"stageName": "Development",
"assignee": "agent-worker1"
}
]
}
}
// Update task status
{
"tool": "mkclaw_team_task_update_status",
"params": {
"teamId": "t-xxx",
"engagementId": "e-xxx",
"taskId": "task-xxx",
"status": "InProgress"
}
}
// Send message to teammate
{
"tool": "mkclaw_team_message_send",
"params": {
"teamId": "t-xxx",
"engagementId": "e-xxx",
"fromAgentId": "manager-agent",
"toAgentId": "worker-agent",
"subject": "Task Assignment",
"content": "Please review the outline and start Chapter 1."
}
}
```
---
## Agent Tools Reference
| Tool | Description |
|------|-------------|
| `mkclaw_team_task_batch_create` | Create multiple tasks with dependencies |
| `mkclaw_team_task_list` | List tasks (filter by status/assignee) |
| `mkclaw_team_task_update_status` | Update task status or edit task |
| `mkclaw_team_task_feedback` | Add comments/feedback to tasks |
| `mkclaw_team_task_reject` | Reject a task assignment |
| `mkclaw_team_task_reactivate` | Reactivate a completed task |
| `mkclaw_team_message_send` | Send message between agents |
| `mkclaw_team_project_list_members` | List team members |
| `mkclaw_team_project_status` | Get project status |
| `mkclaw_team_project_output` | Get output directory path |
| `mkclaw_team_project_output_pack` | Pack outputs for download |
| `mkclaw_team_project_status_update` | Update project status |
| `mkclaw_team_member_add` | Add team member |
| `mkclaw_team_member_handover_write` | Write handover document |
| `mkclaw_team_engagement_start` | Start an engagement |
| `mkclaw_team_engagement_abort` | Abort an engagement |
| `mkclaw_team_engagement_get` | Get engagement details |
| `mkclaw_team_engagement_list` | List engagements |
| `mkclaw_team_engagement_status_update` | Update engagement status |
| `mkclaw_team_engagement_summary_write` | Write engagement summary |
| `mkclaw_team_engagement_archive_complete` | Archive completed engagement |
| `mkclaw_team_memories_search` | Search team memories |
| `mkclaw_team_team_memories_update` | Update team memories |
| `mkclaw_team_cron_status` | Get cron job status |
---
## Gateway RPC API
All RPC calls use `openclaw gateway call`:
```bash
openclaw gateway call <method> --params '<json>' --timeout 120000 --json
```
### Project Lifecycle
| Method | Description |
|--------|-------------|
| `mkclaw.team.project.list` | List all projects |
| `mkclaw.team.project.get` | Get project details |
| `mkclaw.team.project.create` | Create a project |
| `mkclaw.team.project.update` | Update project info |
| `m
... (truncated)
tools
Comments
Sign in to leave a comment