Skip to main content

openclaw-mission-control

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

インストールへ移動

ソース情報

リポジトリ
reason-machines/hermes-skills
ソースの最終更新活動
2026年5月17日 01:36
検出された SKILL.md の言語
英語
スター
5
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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);
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る