Skip to main content

openclaw-mission-control

AI Agent Orchestration Dashboard for managing AI agents, tasks, and multi-agent collaboration via OpenClaw Gateway

Quellinformationen

Repository
reason-machines/hermes-skills
Letzte Quellaktivität
17. Mai 2026 um 01:36
Erkannte Sprache von SKILL.md
Englisch
Sterne
5
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
openclaw-mission-control
description
AI Agent Orchestration Dashboard for managing AI agents, tasks, and multi-agent collaboration via OpenClaw Gateway
triggers
["set up openclaw mission control","deploy ai agent orchestration dashboard","configure openclaw gateway management","create agent workflow with approval controls","manage multi-agent collaboration tasks","set up openclaw authentication","troubleshoot openclaw mission control","integrate openclaw api automation"]
# OpenClaw Mission Control > Skill by [ara.so](https://ara.so) — Hermes Skills collection. OpenClaw Mission Control is a centralized operations and governance platform for AI agent orchestration. It provides a unified dashboard for managing AI agents, assigning tasks, coordinating multi-agent collaboration, and implementing approval-driven governance. Built with TypeScript, it offers both web UI and API-first access for automation. ## What It Does Mission Control serves as a control plane for OpenClaw operations: - **Work Orchestration**: Manage organizations, board groups, boards, tasks, and tags in hierarchical structures - **Agent Operations**: Create, inspect, and manage agent lifecycle from a unified interface - **Governance & Approvals**: Route sensitive actions through explicit approval workflows with audit trails - **Gateway Management**: Connect and operate distributed execution environments and gateway integrations - **Activity Visibility**: Review complete timeline of system actions for debugging and accountability - **API-First Design**: Support both web workflows and automation clients from the same platform ## Installation ### Quick Start with Installer ```bash # One-line installation (clones repo if needed) curl -fsSL https://raw.githubusercontent.com/abhi1693/openclaw-mission-control/master/install.sh | bash # Or if you already cloned the repo ./install.sh ``` The installer is interactive and handles: - Deployment mode selection (Docker or local) - System dependency installation - Environment file generation - Bootstrap and startup ### Manual Docker Setup ```bash # Clone repository git clone https://github.com/abhi1693/openclaw-mission-control.git cd openclaw-mission-control # Configure environment cp .env.example .env # Edit .env and set required values: # - LOCAL_AUTH_TOKEN (minimum 50 characters) # - BASE_URL (backend origin) # - NEXT_PUBLIC_API_URL (frontend API endpoint) # Start services docker compose -f compose.yml --env-file .env up -d --build ``` ### Manual Local Setup Prerequisites: Node.js 22+, PostgreSQL, Redis ```bash # Backend setup cd backend cp .env.example .env # Edit .env with database credentials and auth config npm install npm run db:migrate npm run dev # Frontend setup (in new terminal) cd frontend cp .env.example .env # Edit .env with API URL npm install npm run dev ``` Access: - UI: http://localhost:3000 - API: http://localhost:8000 - Health check: http://localhost:8000/healthz ## Authentication Configuration Mission Control supports two authentication modes: ### Local Token Mode (Default for Self-Hosted) ```bash # .env AUTH_MODE=local LOCAL_AUTH_TOKEN=your-secure-token-minimum-50-characters-required ``` Use in API requests: ```bash curl -H "Authorization: Bearer ${LOCAL_AUTH_TOKEN}" \ http://localhost:8000/api/organizations ``` ### Clerk JWT Mode ```bash # .env AUTH_MODE=clerk CLERK_PUBLISHABLE_KEY=${CLERK_PUBLISHABLE_KEY} CLERK_SECRET_KEY=${CLERK_SECRET_KEY} # frontend/.env NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=${CLERK_PUBLISHABLE_KEY} ``` ## Core Concepts ### Hierarchy Structure ``` Organization └── Board Group └── Board └── Task └── Tag (optional) ``` ### Agent Lifecycle 1. **Creation**: Define agent with name, description, capabilities 2. **Assignment**: Link agent to boards and tasks 3. **Execution**: Agent processes tasks according to workflow 4. **Approval**: Sensitive actions require explicit approval 5. **Audit**: All actions logged in activity timeline ## API Usage ### Organizations ```typescript // Create organization const createOrganization = async (token: string) => { const response = await fetch('http://localhost:8000/api/organizations', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'Engineering Team', description: 'Primary engineering organization', }), }); return response.json(); }; // List organizations const listOrganizations = async (token: string) => { const response = await fetch('http://localhost:8000/api/organizations', { headers: { 'Authorization': `Bearer ${token}`, }, }); return response.json(); }; ``` ### Board Groups ```typescript // Create board group const createBoardGroup = async (token: string, orgId: string) => { const response = await fetch('http://localhost:8000/api/board-groups', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ organization_id: orgId, name: 'Q1 2026 Projects', description: 'First quarter project boards', }), }); return response.json(); }; ``` ### Boards ```typescript // Create board const createBoard = async (token: string, groupId: string) => { const response = await fetch('http://localhost:8000/api/boards', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ board_group_id: groupId, name: 'API Development', description: 'Backend API development tasks', }), }); return response.json(); }; // Get board with tasks const getBoard = async (token: string, boardId: string) => { const response = await fetch(`http://localhost:8000/api/boards/${boardId}`, { headers: { 'Authorization': `Bearer ${token}`, }, }); return response.json(); }; ``` ### Tasks ```typescript // Create task const createTask = async (token: string, boardId: string) => { const response = await fetch('http://localhost:8000/api/tasks', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ board_id: boardId, title: 'Implement user authentication', description: 'Add JWT-based authentication to API endpoints', status: 'todo', priority: 'high', assigned_agent_id: null, // Optional agent assignment }), }); return response.json(); }; // Update task status const updateTaskStatus = async (token: string, taskId: string, status: string) => { const response = await fetch(`http://localhost:8000/api/tasks/${taskId}`, { method: 'PATCH', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ status, // 'todo' | 'in_progress' | 'review' | 'done' }), }); return response.json(); }; ``` ### Agents ```typescript // Create agent const createAgent = async (token: string) => { const response = await fetch('http://localhost:8000/api/agents', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'Code Review Agent', description: 'Automated code review and quality checks', capabilities: ['code-analysis', 'security-scan', 'style-check'], config: { model: 'gpt-4', temperature: 0.3, max_tokens: 2000, }, }), }); return response.json(); }; // Assign agent to task const assignAgent = async (token: string, taskId: string, agentId: string) => { const response = await fetch(`http://localhost:8000/api/tasks/${taskId}`, { method: 'PATCH', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ assigned_agent_id: agentId, }), }); return response.json(); }; ``` ### Approvals ```typescript // Request approval for sensitive action const requestApproval = async (token: string, taskId: string) => { const response = await fetch('http://localhost:8000/api/approvals', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ task_id: taskId, action: 'deploy_to_production', reason: 'Deploy feature to production environment', metadata: { environment: 'production', service: 'api-gateway', }, }), }); return response.json(); }; // Approve or reject const processApproval = async (token: string, approvalId: string, approved: boolean) => { const response = await fetch(`http://localhost:8000/api/approvals/${approvalId}`, { method: 'PATCH', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ status: approved ? 'approved' : 'rejected', comment: approved ? 'LGTM' : 'Needs additional testing', }), }); return response.json(); }; ``` ### Gateway Management ```typescript // Register gateway const registerGateway = async (token: string) => { const response = await fetch('http://localhost:8000/api/gateways', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'Production Gateway', endpoint: 'https://gateway.example.com', auth_token: process.env.GATEWAY_AUTH_TOKEN, capabilities: ['task-execution', 'log-streaming'], }), }); return response.json(); }; // Execute task via gateway const executeViaGateway = async (token: string, gatewayId: string, taskId: string) => { const response = await fetch(`http://localhost:8000/api/gateways/${gatewayId}/execute`, { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ task_id: taskId, parameters: { environment: 'production', }, }), }); return response.json(); }; ``` ### Activity Timeline ```typescript // Get activity log const getActivity = async (token: string, filters?: object) => { const params = new URLSearchParams(filters as Record<string, string>); const response = await fetch(`http://localhost:8000/api/activity?${params}`, { headers: { 'Authorization': `Bearer ${token}`, }, }); return response.json(); }; // Get activity for specific resource const getResourceActivity = async (token: string, resourceType: string, resourceId: string) => { const response = await fetch( `http://localhost:8000/api/activity?resource_type=${resourceType}&resource_id=${resourceId}`, { headers: { 'Authorization': `Bearer ${token}`, }, } ); return response.json(); }; ``` ## Common Patterns ### Multi-Agent Workflow ```typescript // Create workflow with multiple agents const createMultiAgentWorkflow = async (token: string) => { // 1. Create organization and board const org = await createOrganization(token);
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen