Files
GoClaw/README.md
2026-03-20 16:39:29 -04:00

211 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GoClaw Control Center
> **Mission Control для вашего AI-агентского кластера.** Веб-интерфейс для мониторинга Docker Swarm, управления AI-агентами и общения с оркестратором через реальный LLM (Ollama Cloud API).
---
## Запуск одной командой
```bash
curl -fsSL https://git.softuniq.eu/UniqAI/GoClaw/raw/branch/main/install.sh | bash
```
Или вручную через Docker Compose:
```bash
git clone https://git.softuniq.eu/UniqAI/GoClaw.git && cd GoClaw && cp .env.example .env && docker compose up -d
```
После запуска откройте: **http://localhost:3000**
---
## Быстрый старт (без Docker)
```bash
# 1. Клонировать репозиторий
git clone https://git.softuniq.eu/UniqAI/GoClaw.git
cd GoClaw
# 2. Установить зависимости
pnpm install
# 3. Настроить переменные окружения
cp .env.example .env
# Отредактируйте .env — укажите OLLAMA_BASE_URL и OLLAMA_API_KEY
# 4. Запустить базу данных
pnpm db:push
# 5. Запустить dev-сервер
pnpm dev
```
---
## Архитектура
```
GoClaw Control Center
├── client/ # React 19 + Tailwind 4 + shadcn/ui (фронтенд)
│ └── src/
│ ├── pages/ # Dashboard, Agents, Nodes, Chat, Settings
│ └── components/ # DashboardLayout, UI-компоненты
├── server/ # Express 4 + tRPC 11 (бэкенд)
│ ├── ollama.ts # Прокси-клиент для Ollama API
│ ├── routers.ts # tRPC роуты (ollama.health, models, chat)
│ └── _core/ # Auth, DB, LLM, Storage хелперы
├── drizzle/ # Схема БД и миграции (MySQL/TiDB)
├── docker/ # Docker Stack для Swarm-деплоя
│ ├── docker-stack.yml # Полный стек: Gateway + Agents + Control Center
│ ├── Dockerfile.gateway # Образ основного шлюза GoClaw
│ ├── Dockerfile.agent # Образ AI-агента
│ └── Dockerfile.control-center # Образ веб-интерфейса (nginx)
└── docs/ # Документация и спецификации
├── swarm_architecture.md
└── goclaw_swarm_cloud_guide.md
```
---
## Возможности
| Раздел | Что умеет |
| :--- | :--- |
| **Dashboard** | Мониторинг Swarm-нод, статус агентов, лента активности, live-статус Ollama API |
| **Agents** | Просмотр всех AI-агентов с их ролями, моделями и текущими задачами |
| **Nodes** | Мониторинг Docker Swarm нод: CPU, RAM, контейнеры, статус |
| **Chat** | Терминальный чат с оркестратором через реальный LLM (34 модели Ollama) |
| **Settings** | Управление API-провайдерами, сканирование доступных моделей, настройки Telegram |
---
## Переменные окружения
Скопируйте `.env.example` в `.env` и заполните:
```env
# Ollama API (обязательно)
OLLAMA_BASE_URL=https://ollama.com/v1
OLLAMA_API_KEY=your_api_key_here
# База данных (обязательно для production)
DATABASE_URL=mysql://user:password@host:3306/goclaw
# JWT (сгенерируйте случайную строку)
JWT_SECRET=your_random_secret_here
# Telegram Bot (опционально)
TELEGRAM_BOT_TOKEN=your_bot_token
```
---
## Docker Swarm деплой
```bash
# Инициализировать Swarm (если ещё не сделано)
docker swarm init
# Задать секреты
export OLLAMA_API_KEY=your_key
export DATABASE_URL=mysql://...
export JWT_SECRET=your_secret
# Развернуть стек
docker stack deploy -c docker/docker-stack.yml goclaw
# Проверить статус
docker stack services goclaw
```
Добавление новой ноды в кластер:
```bash
# На manager-ноде получить токен
docker swarm join-token worker
# На новой ноде выполнить команду из вывода выше
docker swarm join --token SWMTKN-... manager-ip:2377
```
---
## Технологический стек
| Слой | Технологии |
| :--- | :--- |
| **Фронтенд** | React 19, Tailwind CSS 4, shadcn/ui, Framer Motion, tRPC Client |
| **Бэкенд** | Node.js, Express 4, tRPC 11, Drizzle ORM, Zod |
| **База данных** | MySQL / TiDB (через Drizzle) |
| **LLM** | Ollama Cloud API (OpenAI-совместимый, 34+ модели) |
| **Оркестрация** | Docker Swarm, Overlay Network |
| **Агенты (Go)** | gRPC, Docker SDK, Goroutines, Channels |
| **Тесты** | Vitest |
---
## Структура GoClaw Swarm
```
┌─────────────────────────────────┐
│ goclaw-net (Overlay Network) │
└─────────────────────────────────┘
┌─────────────────────┼─────────────────────┐
│ │ │
┌─────────▼──────┐ ┌──────────▼──────┐ ┌─────────▼──────┐
│ Control Center │ │ Gateway │ │ Agents │
│ (Web UI :3000) │ │ (Orchestrator) │ │ (Docker Svc) │
│ React + tRPC │ │ Go + gRPC │ │ Coder/Browser │
└────────────────┘ └─────────────────┘ │ Mail/Monitor │
│ └─────────────────┘
┌───────────▼──────────┐
│ Ollama Cloud API │
│ (34 LLM Models) │
└──────────────────────┘
```
---
## Разработка
```bash
# Запустить тесты
pnpm test
# Проверить типы
pnpm check
# Форматировать код
pnpm format
# Применить миграции БД
pnpm db:push
```
---
## Дорожная карта
- [x] Dashboard с мониторингом кластера
- [x] Реальная интеграция Ollama API (34 модели)
- [x] Терминальный чат с LLM
- [x] Docker Swarm Stack
- [x] gRPC API для агентов (Go)
- [ ] Стриминг ответов LLM в чате
- [ ] CRUD агентов через UI
- [ ] Подключение реального Docker API для нод
- [ ] Telegram-коннектор
- [ ] Система скиллов (Self-Evolution)
- [ ] Аутентификация и RBAC
---
## Лицензия
MIT — используйте свободно для личных и коммерческих проектов.
---
*Разработано в рамках проекта **GoClaw** — распределённой системы AI-агентов на Go + Docker Swarm.*