multiagent-task-manager
Version:
A comprehensive multi-agent task management system for coordinating tasks between AI agents and human team members with intelligent recommendations and workload balancing
628 lines (491 loc) โข 16.8 kB
Markdown
# TaskManager - Multi-Agent Task Management System
A comprehensive JavaScript package for managing tasks across multiple AI agents and human team members. Features intelligent task recommendations, dependency tracking, workload balancing, and seamless collaboration between different types of agents.
## ๐ Features
- **Multi-Agent Support**: Manage both AI agents and human team members
- **Intelligent Recommendations**: Smart task suggestions based on capabilities and workload
- **Dependency Management**: Handle complex task dependencies and blocking relationships
- **Workload Balancing**: Track and optimize task distribution across agents
- **Priority & Risk Scoring**: Advanced scoring algorithms for task prioritization
- **CLI Interface**: Command-line tools for quick task management
- **MCP Integration**: Model Context Protocol support for AI assistants like Claude
- **Progress Tracking**: Real-time project progress and completion metrics
- **Export/Import**: Data portability and backup capabilities
## ๐ฆ Installation
### Global Installation
```bash
npm install -g multiagent-task-manager
```
### Using npx (No Installation Required)
```bash
npx multiagent-task-manager init
npx multiagent-task-manager status
npx task-manager create --title "My task"
```
### Local Project Installation
```bash
npm install multiagent-task-manager
```
## ๐ฏ Quick Start
### Programmatic Usage
```javascript
const TaskManager = require('./task-manager.js');
// Initialize
const tm = new TaskManager({ dataDir: './my-project-data' });
// Add agents
tm.addAgent({
id: 'ai-dev-1',
name: 'AI Developer',
type: 'ai',
capabilities: ['coding', 'testing', 'documentation']
});
tm.addAgent({
id: 'john.doe',
name: 'John Doe',
type: 'human',
capabilities: ['all']
});
// Create tasks
const task = tm.createTask({
title: 'Implement user authentication',
category: 'coding',
priority: 'high',
assignees: ['ai-dev-1'],
completion_criteria: [
'JWT token generation',
'Login endpoint',
'Authentication middleware'
]
});
// Get recommendations
const recommendations = tm.getRecommendationsForAgent('ai-dev-1');
console.log('Recommended tasks:', recommendations);
```
### CLI Usage
#### With npx (recommended - no installation needed)
```bash
# Initialize a new project
npx task-manager init
# List all agents
npx task-manager agents
# Create a new task
npx task-manager create --title "Fix bug" --priority high --assign ai-dev-1
# Get recommendations for an agent
npx task-manager recommend --agent ai-dev-1
# List tasks with filters
npx task-manager list --agent ai-dev-1 --status todo
# Update task status
npx task-manager update TASK-001 --status completed
# Show project status
npx task-manager status
```
#### With global installation
```bash
# After: npm install -g multiagent-task-manager
task-manager init
task-manager agents
task-manager status
```
#### Local development (when working on the package source)
```bash
# When developing the package itself
node task-manager.js init
node task-manager.js agents
node task-manager.js status
```
## ๐ MCP Integration (Model Context Protocol)
Connect this task manager to AI assistants like Claude Desktop using MCP.
### Quick Setup
```bash
# Test access (if installed globally)
multiagent-task-manager-mcp --help
# Add to Claude Desktop config:
{
"mcpServers": {
"multiagent-task-manager": {
"command": "npx",
"args": ["-y", "--package=multiagent-task-manager", "multiagent-task-manager-mcp"],
"env": {
"TASK_MANAGER_DATA_DIR": "~/Documents/TaskManager",
"TASK_MANAGER_AGENT_ID": "claude-assistant"
}
}
}
}
```
### Available MCP Tools
- `init_task_manager` - Initialize projects
- `create_task` - Create and assign tasks
- `list_tasks` - View and filter tasks
- `add_agent` - Add team members
- `get_recommendations` - Get AI suggestions
- `get_project_status` - View progress
- `agent_check_in` - Agent workflows
- And 6 more tools...
### Example Usage
Ask Claude: *"Initialize a new web project with 3 developers and create 5 tasks for a login system"*
๐ **Full MCP Documentation:** See `MCP-SETUP.md` and `QUICK-MCP-SETUP.md`
## ๐ค Agent Management
### Agent Types
- **AI Agents**: Automated agents with specific capabilities
- **Human Agents**: Human team members with full or specialized capabilities
### Agent Structure
```javascript
{
id: 'agent-1',
name: 'Code Assistant',
type: 'ai', // 'ai' or 'human'
capabilities: ['coding', 'testing', 'documentation'],
status: 'active',
workload: {
active_tasks: 2,
completed_tasks: 5,
total_score: 47
}
}
```
### Capabilities
- `coding`: Software development tasks
- `testing`: Quality assurance and testing
- `documentation`: Writing and maintaining docs
- `design`: UI/UX and system design
- `analysis`: Data analysis and research
- `all`: Can handle any type of task (typically for humans)
## ๐ Task Management
### Task Structure
```javascript
{
id: 'TASK-001',
title: 'Implement user authentication',
category: 'coding',
phase: 'phase-1',
status: 'todo',
priority: 'high',
assignees: [
{
id: 'agent-1',
name: 'Code Assistant',
type: 'ai',
role: 'primary',
assigned_date: '2024-01-15T10:00:00.000Z'
}
],
dependencies: ['TASK-000'],
blocks: ['TASK-002'],
completion_criteria: [
'JWT token generation',
'Login endpoint',
'Authentication middleware'
],
recommendation_score: 23,
risk_level: 'medium'
}
```
### Task Statuses
- `todo`: Ready to start
- `in-progress`: Currently being worked on
- `blocked`: Waiting for dependencies
- `review`: Ready for review
- `completed`: Finished
- `cancelled`: Cancelled
### Priority Levels
- `critical`: Must be done immediately (๐ด)
- `high`: Important and urgent (๐ )
- `medium`: Normal priority (๐ก)
- `low`: Can be deferred (๐ข)
## ๐ฏ Intelligent Recommendations
The system uses advanced scoring algorithms to recommend the best tasks for each agent:
### Scoring Factors
1. **Priority Score**: Based on task priority level
2. **Dependency Score**: Higher for tasks that block others
3. **Risk Score**: Prioritizes high-risk tasks
4. **Phase Score**: Active phase tasks get higher scores
5. **Capability Match**: Tasks matching agent capabilities
### Getting Recommendations
```javascript
// Get top 3 recommendations for an agent
const recommendations = tm.getRecommendationsForAgent('agent-1', 3);
recommendations.forEach(task => {
console.log(`${task.id}: ${task.title}`);
console.log(`Score: ${task.recommendation_score}`);
console.log(`Reason: ${task.recommendation_reason}`);
});
```
## ๐ง API Reference
### TaskManager Class
#### Constructor
```javascript
new TaskManager(options)
```
Options:
- `dataDir`: Directory for storing data files (default: './tasks-data' with enhanced subdirectory structure)
- `maxRecommendations`: Maximum recommendations to return (default: 3)
- `autoSave`: Auto-save changes (default: true)
#### Agent Methods
```javascript
// Add a new agent
addAgent(agentInfo)
// Get agent by ID
getAgent(agentId)
// List all agents
listAgents()
// Update agent
updateAgent(agentId, updates)
// Remove agent
removeAgent(agentId)
```
#### Task Methods
```javascript
// Create a new task
createTask(taskData)
// Update task
updateTask(taskId, updates)
// Delete task
deleteTask(taskId)
// Get task by ID
getTask(taskId)
// List tasks with filters
listTasks(filters)
```
#### Assignment Methods
```javascript
// Assign agent to task
assignAgentToTask(taskId, agentInfo)
// Unassign agent from task
unassignAgentFromTask(taskId, agentId)
// Transfer task between agents
transferTask(taskId, fromAgentId, toAgentInfo)
```
#### Recommendation Methods
```javascript
// Get recommendations for agent
getRecommendationsForAgent(agentId, limit)
// Get eligible tasks for agent
getEligibleTasksForAgent(agentId)
```
#### Reporting Methods
```javascript
// Get project status
getProjectStatus()
// Get agent workload
getAgentWorkload(agentId)
```
## ๐ฅ๏ธ CLI Commands
### Project Management
```bash
# Initialization (smart, won't override existing files)
npx task-manager init # Initialize with enhanced directory structure
npx task-manager init --current # Initialize in current directory
npx task-manager init --dir PATH # Initialize in specific directory
```
# Status and reporting
npx task-manager status # Show project status
npx task-manager export # Export project data
```
### Agent Management
```bash
# Agent management
npx task-manager agents # List all agents
npx task-manager agents add # Add new agent (interactive)
npx task-manager workload <AGENT_ID> # Show agent workload
```
### Task Management
```bash
# Create tasks
npx task-manager create --interactive # Interactive task creation
npx task-manager create --title "Task" --priority high --assign agent-1
# List tasks
npx task-manager list # List all tasks
npx task-manager list --agent agent-1 # Tasks for specific agent
npx task-manager list --status todo # Filter by status
npx task-manager list --priority high # Filter by priority
# Update tasks
npx task-manager update TASK-001 --status completed
npx task-manager update TASK-001 --priority critical
npx task-manager assign TASK-001 agent-2 # Assign agent to task
```
### Recommendations
```bash
npx task-manager recommend --agent agent-1 # Get recommendations
```
## ๐ Project Structure
```
tasks/
โโโ task-manager.js # Main package file
โโโ package.json # Package configuration
โโโ README.md # This documentation
โโโ examples.js # Usage examples
โโโ test-demo.js # Demo script
โโโ .env.example # Environment template
โโโ src/ # Enhanced directory utilities
โ โโโ constants/ # Path constants and configuration
โ โโโ utils/ # Directory resolution and safety
โโโ tasks-data/ # Default data directory (or current dir if --current)
โโโ task-tracker.json # Task and project data
โโโ agents.json # Agent registry
โโโ README.md # Usage guide
โโโ agents/ # Agent-specific files and logs
โโโ reports/ # Generated reports and analytics
โโโ templates/ # Task and agent templates
โโโ backups/ # Automated backups
```
## ๐ Workflow Examples
### Basic Workflow
1. **Initialize**: Set up the project structure (smart init won't override existing files)
2. **Configure**: Set your agent ID in .env file
3. **Add Agents**: Register AI agents and human team members
4. **Create Tasks**: Define work items with dependencies
5. **Get Recommendations**: Let the system suggest optimal task assignments
6. **Track Progress**: Monitor completion and adjust as needed
### Advanced Workflow
```javascript
// 1. Setup project with multiple agent types
const tm = new TaskManager({ dataDir: './my-project' });
// 2. Add specialized agents
tm.addAgent({
id: 'backend-ai',
name: 'Backend AI',
type: 'ai',
capabilities: ['coding', 'testing']
});
tm.addAgent({
id: 'frontend-ai',
name: 'Frontend AI',
type: 'ai',
capabilities: ['coding', 'design']
});
tm.addAgent({
id: 'tech-lead',
name: 'Tech Lead',
type: 'human',
capabilities: ['all']
});
// 3. Create task hierarchy with dependencies
const designTask = tm.createTask({
title: 'System Architecture Design',
priority: 'critical',
assignees: ['tech-lead']
});
const backendTask = tm.createTask({
title: 'API Implementation',
dependencies: [designTask.id],
assignees: ['backend-ai']
});
const frontendTask = tm.createTask({
title: 'UI Implementation',
dependencies: [backendTask.id],
assignees: ['frontend-ai']
});
// 4. Monitor and adjust
setInterval(() => {
const status = tm.getProjectStatus();
console.log(`Progress: ${status.progress.completion_percentage}%`);
// Get recommendations for available agents
tm.listAgents().forEach(agent => {
const recommendations = tm.getRecommendationsForAgent(agent.id);
if (recommendations.length > 0) {
console.log(`${agent.name} should work on: ${recommendations[0].title}`);
}
});
}, 30000); // Check every 30 seconds
```
## ๐งช Testing & Examples
Run the included examples to see the system in action:
```bash
# Run all examples (for package development)
node examples.js
# Run demo with sample data (for package development)
node test-demo.js
# Test CLI with demo data (for package development)
TASK_MANAGER_DATA_DIR=./demo-data node task-manager.js status
# For end users, use npx instead:
npx task-manager status
TASK_MANAGER_DATA_DIR=./demo-data npx task-manager status
```
## ๐ Enhanced Directory Structure
TaskManager now uses an intelligent directory structure that provides better organization and supports advanced features:
### Automatic Directory Detection
The system automatically detects your project context:
- **Project Root Detection**: Searches for markers like `package.json`, `.git`, `pyproject.toml`
- **Current Directory Integration**: Uses your current working directory when safe
- **Smart Fallback**: Multiple fallback strategies for maximum reliability
### Directory Layout
```
your-project/
โโโ tasks-data/ # Main TaskManager directory
โโโ task-tracker.json # Core task and project data
โโโ agents.json # Agent registry and capabilities
โโโ README.md # Auto-generated usage guide
โโโ agents/ # Agent-specific files and configurations
โ โโโ logs/ # Agent activity logs
โ โโโ configs/ # Individual agent settings
โโโ reports/ # Generated analytics and reports
โ โโโ workload-report.json
โ โโโ project-status.json
โ โโโ recommendations.json
โโโ templates/ # Reusable templates
โ โโโ example-task.json
โ โโโ agent-template.json
โโโ backups/ # Automated data backups
โโโ backup_YYYY-MM-DD_HH-mm-ss/
```
### Directory Safety Features
- **System Protection**: Prevents writing to unsafe directories (`/`, `/usr/`, `/opt/`, etc.)
- **Permission Validation**: Checks write permissions before creating directories
- **Cross-Platform Support**: Works consistently on Windows, macOS, and Linux
- **Emergency Fallback**: Always provides a safe working directory
### Legacy Data Migration
The system automatically migrates data from older formats:
- Detects legacy `task-tracker.json` and `agents.json` in project root
- Migrates to new structured format seamlessly
- Preserves all existing task and agent data
- Maintains backward compatibility
## Environment Variables
- `TASK_MANAGER_AGENT_ID`: Your agent identifier for personalized commands
- `TASK_MANAGER_DATA_DIR`: Override automatic directory detection
- `TASK_MANAGER_USE_CURRENT_DIR`: Set to 'true' to force current directory usage
## ๐ Extending the System
### Custom Scoring Algorithms
```javascript
class CustomTaskManager extends TaskManager {
calculateTaskScore(task) {
let score = super.calculateTaskScore(task);
// Add custom scoring logic
if (task.tags && task.tags.includes('urgent')) {
score += 10;
}
return score;
}
}
```
### Custom Agent Capabilities
```javascript
// Add custom capability checking
tm.getRequiredCapabilities = function(task) {
const capabilities = [];
if (task.title.includes('ML') || task.title.includes('AI')) {
capabilities.push('machine-learning');
}
return capabilities;
};
```
## ๐ค Contributing
1. Fork the repository
2. Create a feature branch
3. Add tests for new functionality
4. Submit a pull request
## ๐ License
MIT License - see LICENSE file for details
## ๐ Support
For questions and support:
- Check the examples in `examples.js`
- Review the test scenarios in `test-demo.js`
- Use the CLI help: `npx task-manager`
## ๐ฎ Future Enhancements
- [ ] Web dashboard interface
- [ ] Integration with external project management tools
- [ ] Advanced analytics and reporting
- [ ] Team collaboration features
- [ ] Custom notification systems
- [ ] API server mode
- [ ] Plugin architecture
- [ ] Machine learning for better recommendations