Настройка агентов

Обновлено: 2026-04-05

Настройка агентов в OpenClaw

OpenClaw поддерживает мульти-агентную архитектуру, позволяя создавать специализированных агентов для разных задач.

Что такое агенты?

Агенты в OpenClaw — это независимые экземпляры AI-ассистентов, которые могут:
- Иметь разные модели (GPT-4, Claude, DeepSeek)
- Использовать разные системные промпты
- Иметь доступ к разным навыкам и инструментам
- Обрабатывать разные каналы или пользователей

Базовая конфигурация агентов

Минимальная конфигурация

{
  "agents": {
    "default": {
      "model": "deepseek/deepseek-chat",
      "systemPrompt": "Ты полезный AI ассистент."
    }
  }
}

Конфигурация с несколькими агентами

{
  "agents": {
    "personal": {
      "model": "openai/gpt-4",
      "systemPrompt": "Ты мой персональный помощник.",
      "temperature": 0.7,
      "maxTokens": 2000
    },
    "technical": {
      "model": "anthropic/claude-3-opus",
      "systemPrompt": "Ты технический эксперт по программированию и DevOps.",
      "temperature": 0.3,
      "maxTokens": 4000
    },
    "creative": {
      "model": "openai/gpt-4",
      "systemPrompt": "Ты креативный писатель и художник.",
      "temperature": 0.9,
      "maxTokens": 1000
    }
  }
}

Привязка агентов к каналам

Статическая привязка

{
  "bindings": [
    {
      "match": {
        "channel": "telegram",
        "peer": { "id": "tg:336940264" }
      },
      "agentId": "personal"
    },
    {
      "match": {
        "channel": "telegram",
        "group": { "id": "-1001234567890" }
      },
      "agentId": "technical"
    },
    {
      "match": {
        "channel": "discord",
        "peer": { "id": "123456789012345678" }
      },
      "agentId": "creative"
    }
  ]
}

Динамическая привязка по ключевым словам

{
  "bindings": [
    {
      "match": {
        "channel": "telegram",
        "text": { "contains": "код|программирование|баг" }
      },
      "agentId": "technical"
    },
    {
      "match": {
        "channel": "telegram",
        "text": { "contains": "идея|креатив|дизайн" }
      },
      "agentId": "creative"
    },
    {
      "match": {
        "channel": "*",
        "default": true
      },
      "agentId": "personal"
    }
  ]
}

Настройки агентов

Параметры модели

{
  "agents": {
    "expert": {
      "model": "openai/gpt-4",

      // Параметры генерации
      "temperature": 0.7,        // Креативность (0.0-2.0)
      "maxTokens": 4000,         // Максимальная длина ответа
      "topP": 0.9,              // Качество генерации
      "frequencyPenalty": 0.0,   // Штраф за повторения
      "presencePenalty": 0.0,    // Штраф за новые темы

      // Контекст
      "maxContext": 8000,       // Максимальный контекст
      "memoryLimit": 50,        // Сохранение истории

      // Поведение
      "streaming": true,        // Потоковая генерация
      "thinking": false,        // Включить reasoning
      "retry": {
        "attempts": 3,
        "delayMs": 1000
      }
    }
  }
}

Системные промпты

{
  "agents": {
    "assistant": {
      "model": "deepseek/deepseek-chat",
      "systemPrompt": `
Ты OpenClaw Assistant — полезный AI ассистент.

Твоя роль:
1. Помогать пользователям с задачами
2. Отвечать на вопросы
3. Выполнять команды через доступные инструменты

Твой стиль:
- Будь полезным и дружелюбным
- Отвечай кратко, но информативно
- Если не знаешь ответа — скажи об этом
- Всегда соблюдай безопасность

Доступные инструменты: {tools}
Текущее время: {time}
      `
    }
  }
}

Навыки и инструменты агентов

Назначение навыков

{
  "agents": {
    "devops": {
      "model": "openai/gpt-4",
      "systemPrompt": "Ты DevOps инженер.",
      "skills": ["terminal", "docker", "kubernetes", "github"],
      "tools": {
        "bash": true,
        "exec": true,
        "process": true,
        "config": false  // Запретить изменение конфигурации
      }
    },
    "writer": {
      "model": "anthropic/claude-3-sonnet",
      "systemPrompt": "Ты профессиональный писатель.",
      "skills": ["web_search", "markdown", "summarize"],
      "tools": {
        "web_search": true,
        "web_fetch": true,
        "write": true,
        "edit": true
      }
    }
  }
}

Ограничения доступа

{
  "agents": {
    "restricted": {
      "model": "deepseek/deepseek-chat",
      "tools": {
        "bash": {
          "enabled": false  // Полный запрет
        },
        "exec": {
          "enabled": true,
          "requireApproval": true,  // Требовать подтверждение
          "allowedCommands": ["ls", "pwd", "date"]  // Только разрешенные
        },
        "config": {
          "enabled": false
        }
      }
    }
  }
}

Примеры использования

Пример 1: Личный и рабочий ассистенты

{
  "agents": {
    "personal": {
      "model": "openai/gpt-4",
      "systemPrompt": "Ты мой личный помощник для повседневных задач.",
      "skills": ["calendar", "weather", "reminders"],
      "temperature": 0.8
    },
    "work": {
      "model": "anthropic/claude-3-opus",
      "systemPrompt": "Ты профессиональный ассистент для работы.",
      "skills": ["github", "jira", "slack", "terminal"],
      "temperature": 0.3
    }
  },
  "bindings": [
    {
      "match": {
        "channel": "telegram",
        "peer": { "id": "tg:336940264" },
        "time": { "hour": { "between": [9, 18] } }  // Рабочее время
      },
      "agentId": "work"
    },
    {
      "match": {
        "channel": "telegram",
        "peer": { "id": "tg:336940264" },
        "default": true
      },
      "agentId": "personal"
    }
  ]
}

Пример 2: Специализированные агенты для команды

{
  "agents": {
    "frontend": {
      "model": "openai/gpt-4",
      "systemPrompt": "Ты эксперт по фронтенд разработке (React, TypeScript, CSS).",
      "skills": ["github", "terminal", "web_search"],
      "tools": {
        "exec": { "allowedCommands": ["npm", "yarn", "git"] }
      }
    },
    "backend": {
      "model": "anthropic/claude-3-sonnet",
      "systemPrompt": "Ты эксперт по бэкенд разработке (Node.js, Python, Databases).",
      "skills": ["docker", "terminal", "github"],
      "tools": {
        "exec": { "allowedCommands": ["docker", "python", "node"] }
      }
    },
    "devops": {
      "model": "deepseek/deepseek-chat",
      "systemPrompt": "Ты DevOps инженер (Kubernetes, AWS, CI/CD).",
      "skills": ["kubernetes", "aws", "terminal"],
      "tools": {
        "exec": { "allowedCommands": ["kubectl", "aws", "terraform"] }
      }
    }
  },
  "bindings": [
    {
      "match": {
        "channel": "telegram",
        "group": { "id": "-1001234567890" },
        "text": { "contains": "react|frontend|css" }
      },
      "agentId": "frontend"
    },
    {
      "match": {
        "channel": "telegram",
        "group": { "id": "-1001234567890" },
        "text": { "contains": "api|database|python" }
      },
      "agentId": "backend"
    },
    {
      "match": {
        "channel": "telegram",
        "group": { "id": "-1001234567890" },
        "text": { "contains": "deploy|kubernetes|aws" }
      },
      "agentId": "devops"
    }
  ]
}

Пример 3: Production конфигурация с безопасностью

{
  "agents": {
    "default": {
      "model": "deepseek/deepseek-chat",
      "systemPrompt": "Ты полезный AI ассистент.",
      "tools": {
        "bash": false,
        "config": false,
        "exec": {
          "enabled": true,
          "requireApproval": true,
          "allowedCommands": ["ls", "pwd", "date", "whoami"]
        }
      }
    },
    "admin": {
      "model": "openai/gpt-4",
      "systemPrompt": "Ты администратор системы.",
      "tools": {
        "bash": true,
        "config": true,
        "exec": true
      }
    }
  },
  "bindings": [
    {
      "match": {
        "channel": "telegram",
        "peer": { "id": "tg:336940264" }
      },
      "agentId": "admin"
    },
    {
      "match": {
        "channel": "*",
        "default": true
      },
      "agentId": "default"
    }
  ]
}

Управление контекстом и памятью

Настройки памяти

{
  "agents": {
    "assistant": {
      "model": "openai/gpt-4",

      // Контекст
      "maxContext": 8000,        // Максимальный размер контекста
      "memoryLimit": 100,        // Сохранять последние 100 сообщений

      // Сжатие контекста
      "compressContext": true,   // Автоматически сжимать старый контекст
      "summaryInterval": 20,     // Делать summary каждые 20 сообщений

      // Персистентность
      "persistMemory": true,     // Сохранять память между сессиями
      "memoryPath": "~/.openclaw/memory/{agentId}.json"
    }
  }
}

Шардирование контекста

{
  "agents": {
    "longContext": {
      "model": "anthropic/claude-3-100k",
      "contextStrategy": "shard",
      "shardSize": 4000,         // Размер каждого шарда
      "overlap": 200,            // Перекрытие между шардами
      "maxShards": 10            // Максимальное количество шардов
    }
  }
}

Мониторинг и метрики

Статистика использования

# Показать использование агентов
openclaw agents stats

# Мониторинг в реальном времени
openclaw agents monitor

# Логи по конкретному агенту
grep -i "agent:personal" ~/.openclaw/logs/gateway.log

Health checks

{
  "agents": {
    "monitored": {
      "model": "openai/gpt-4",
      "healthCheck": {
        "enabled": true,
        "interval": 300000,      // Каждые 5 минут
        "timeout": 10000,        // Таймаут 10 секунд
        "prompt": "Ответь 'OK' если ты работаешь."
      }
    }
  }
}

Оптимизация стоимости

Использование разных моделей

{
  "agents": {
    "cheap": {
      "model": "deepseek/deepseek-chat",  // Дешевая модель
      "usage": "for simple questions"
    },
    "expensive": {
      "model": "openai/gpt-4",           // Дорогая модель
      "usage": "for complex tasks only"
    }
  },
  "bindings": [
    {
      "match": {
        "text": { "length": { "lt": 100 } }  // Короткие вопросы
      },
      "agentId": "cheap"
    },
    {
      "match": {
        "text": { "contains": "сложный|анализ|код" }  // Сложные задачи
      },
      "agentId": "expensive"
    }
  ]
}

Лимиты использования

{
  "agents": {
    "limited": {
      "model": "openai/gpt-4",
      "limits": {
        "dailyCost": 10.0,       // Максимум $10 в день
        "monthlyCost": 100.0,    // Максимум $100 в месяц
        "requestsPerHour": 100,  // Максимум 100 запросов в час
        "tokensPerDay": 100000   // Максимум 100к токенов в день
      }
    }
  }
}

Устранение неполадок

Общие проблемы

❌ Агент не отвечает

  1. Проверьте модель: openclaw agents list
  2. Проверьте логи: grep -i "agent" ~/.openclaw/logs/gateway.log
  3. Проверьте привязки: openclaw bindings show

❌ Ошибка "Model not available"

  1. Проверьте API ключи
  2. Проверьте доступность модели
  3. Проверьте лимиты использования

❌ Агент использует не ту модель

  1. Проверьте привязки (bindings)
  2. Проверьте конфигурацию агента
  3. Проверьте логи выбора агента

Отладка привязок

# Показать все привязки
openclaw bindings list

# Тестирование привязки
openclaw bindings test --channel telegram --peer tg:336940264 --text "помоги с кодом"

# Логи привязок
grep -i "binding\|match\|agentId" ~/.openclaw/logs/gateway.log

Лучшие практики

Проектирование агентов

  1. Специализируйте агентов по задачам, а не по пользователям
  2. Используйте дешевые модели для простых задач
  3. Ограничивайте доступ к опасным инструментам
  4. Тестируйте привязки перед production

Безопасность

  1. Разделяйте привилегии между агентами
  2. Используйте allowlists для доступа к инструментам
  3. Мониторьте использование дорогих моделей
  4. Ведите аудит действий агентов

Производительность

  1. Кэшируйте ответы для частых вопросов
  2. Используйте streaming для лучшего UX
  3. Оптимизируйте контекст для экономии токенов
  4. Балансируйте нагрузку между агентами

Дополнительные ресурсы


Совет: Начинайте с одного агента, отлаживайте его, затем добавляйте специализированных агентов по мере необходимости.

Помогла ли вам эта статья?

Оставьте отзыв или предложите улучшения

🐛 Сообщить об ошибке

Комментарии и обсуждение

Пока нет комментариев. Будьте первым!

Добавить комментарий

Комментарии проходят модерацию