- Full workflow: Discovery → Planning → Execution → Review → Deploy - UI layout mockup - Agent roles and types - CLI integration problem analysis - Task/subtask hierarchy for context preservation
321 lines
12 KiB
Markdown
321 lines
12 KiB
Markdown
# Team Board — Идеи и концепция
|
||
|
||
## Суть проекта
|
||
|
||
**Team Board** — платформа для управления командой AI-агентов, работающих над проектами.
|
||
|
||
**Ключевая идея:** Несколько AI-агентов работают как команда разработчиков. Человек видит всё: задачи, код, переписку. Полная прозрачность.
|
||
|
||
---
|
||
|
||
## Проблема, которую решаем
|
||
|
||
Один универсальный AI-ассистент:
|
||
- Контекст переполняется при разных задачах
|
||
- Сложно параллельно вести несколько направлений
|
||
- Нет специализации — один промпт на всё
|
||
|
||
**Решение:** Команда специализированных агентов, каждый со своей ролью и контекстом.
|
||
|
||
---
|
||
|
||
## Архитектура
|
||
|
||
### Микросервисы (Python + FastAPI)
|
||
|
||
| Сервис | Описание |
|
||
|--------|----------|
|
||
| Gateway | API Gateway, аутентификация |
|
||
| Projects | Проекты, Git интеграция |
|
||
| Tasks | Задачи, канбан, подзадачи |
|
||
| Agents | Управление AI агентами |
|
||
| Chat | Чаты проектов |
|
||
|
||
### Frontend (Next.js)
|
||
|
||
Web UI для управления всем.
|
||
|
||
### Database
|
||
|
||
PostgreSQL (существующий на сервере).
|
||
|
||
---
|
||
|
||
## UI Layout
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────────┐
|
||
│ [Logo] Team Board [User Avatar] ▼ │
|
||
├──────────────┬─────────────────────────────────────────────────────┤
|
||
│ │ Project Alpha [Settings] │
|
||
│ PROJECTS │─────────────────────────────────────────────────────│
|
||
│ │ 💬 Chat ▼ (сворачиваемый) │
|
||
│ ○ Alpha │ ┌──────────────────────────────────────────────┐ │
|
||
│ ● Beta │ │ Agent-1: Закоммитил фикс для issue #42 │ │
|
||
│ ○ Gamma │ │ Agent-2: Проверил, всё ок │ │
|
||
│ │ │ You: Мержите │ │
|
||
│ [+ New] │ └──────────────────────────────────────────────┘ │
|
||
│ │─────────────────────────────────────────────────────│
|
||
│──────────────│ KANBAN │
|
||
│ │ │
|
||
│ AGENTS │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||
│ │ │ Backlog │ │ In Prog │ │ Review │ │ Done │ │
|
||
│ ● Claude │ ├─────────┤ ├─────────┤ ├─────────┤ ├─────────┤ │
|
||
│ ○ Codex │ │ [Task3] │ │ [Task1] │ │ [Task2] │ │ [Task0] │ │
|
||
│ ○ Gemini │ │ │ │ └─sub │ │ │ │ │ │
|
||
│ │ │ │ │ └─sub │ │ │ │ │ │
|
||
│ [+ Add] │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
||
│ │ │
|
||
└──────────────┴─────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Workflow: от идеи до деплоя
|
||
|
||
### Фаза 1: Инициация проекта
|
||
|
||
**Точки входа:**
|
||
- Через главного агента (Марков) в Telegram
|
||
- Через Web UI — кнопка "New Project"
|
||
- Через любого агента
|
||
|
||
**Результат:** Создаётся черновик проекта, открывается Discovery Chat.
|
||
|
||
---
|
||
|
||
### Фаза 2: Discovery (Обсуждение)
|
||
|
||
**Участники:** Человек + Lead Agent
|
||
|
||
**Цель:** Превратить размытую идею в чёткое ТЗ
|
||
|
||
**Что делает Lead Agent:**
|
||
1. Задаёт уточняющие вопросы
|
||
2. Предлагает варианты реализации
|
||
3. Указывает на риски
|
||
4. Формирует структуру
|
||
|
||
**Артефакты:**
|
||
- `BRIEF.md` — краткое описание проекта
|
||
- `REQUIREMENTS.md` — функциональные требования
|
||
- `ARCHITECTURE.md` — техническое решение
|
||
|
||
**Выход из фазы:** Человек подтверждает "Да, делаем так"
|
||
|
||
---
|
||
|
||
### Фаза 3: Planning (Декомпозиция)
|
||
|
||
**Кто делает:** Lead Agent (или человек вручную)
|
||
|
||
**Процесс:**
|
||
```
|
||
REQUIREMENTS.md → Декомпозиция → Epic → Tasks → Subtasks
|
||
```
|
||
|
||
**Пример:**
|
||
```
|
||
Epic: "Модуль авторизации"
|
||
├── Task: "Модель пользователя"
|
||
│ ├── Subtask: "Схема БД"
|
||
│ ├── Subtask: "SQLAlchemy модель"
|
||
│ └── Subtask: "Миграция"
|
||
├── Task: "API эндпоинты"
|
||
│ ├── Subtask: "POST /auth/register"
|
||
│ ├── Subtask: "POST /auth/login"
|
||
│ └── Subtask: "Tests"
|
||
└── Task: "Интеграция с frontend"
|
||
```
|
||
|
||
---
|
||
|
||
### Фаза 4: Execution (Разработка)
|
||
|
||
**Как агенты берут задачи:**
|
||
|
||
| Модель | Описание |
|
||
|--------|----------|
|
||
| **Pull** | Агент сам выбирает задачу по специализации |
|
||
| **Push** | Lead Agent назначает задачи |
|
||
| **Гибрид** | Критичные — назначаются, остальные — свободный выбор |
|
||
|
||
**Процесс работы агента:**
|
||
1. Взял задачу → "In Progress"
|
||
2. Читает контекст (Brief, Requirements, связанные задачи)
|
||
3. Работает (код, тесты, документация)
|
||
4. Коммитит в feature branch
|
||
5. Создаёт подзадачу "Review" → другому агенту
|
||
6. Ревью и итерации
|
||
7. Merge в main
|
||
|
||
---
|
||
|
||
### Фаза 5: Review & QA
|
||
|
||
**Принцип:** Никакой код не идёт в main без ревью.
|
||
|
||
**Кто ревьюит:**
|
||
- Другой агент (не автор)
|
||
- Специальный "Reviewer" агент
|
||
- Человек (для критичного)
|
||
|
||
**Автоматизация:**
|
||
- CI/CD запускает тесты
|
||
- Линтеры
|
||
- Security checks
|
||
|
||
**Escalation:** 3 итерации ревью без согласия → эскалация к Lead/Human.
|
||
|
||
---
|
||
|
||
### Фаза 6: Deploy
|
||
|
||
1. Integration тесты
|
||
2. Staging deploy
|
||
3. Human approval (опционально)
|
||
4. Production deploy
|
||
|
||
---
|
||
|
||
## Задачи и подзадачи
|
||
|
||
**Ключевой принцип:** Подзадачи внутри задачи — контекст НЕ теряется.
|
||
|
||
```
|
||
Task: "Реализовать API авторизации"
|
||
├── Subtask: "Написать модели" → Agent-1 ✓
|
||
├── Subtask: "Code review" → Agent-2 ✓
|
||
├── Subtask: "Написать тесты" → Agent-1 (in progress)
|
||
└── Subtask: "Final review" → Agent-2 (waiting)
|
||
```
|
||
|
||
Когда агент работает над подзадачей — видит всё дерево + историю.
|
||
|
||
---
|
||
|
||
## Роли агентов
|
||
|
||
| Роль | Обязанности |
|
||
|------|-------------|
|
||
| **Lead/Analyst** | Discovery, Planning, Coordination |
|
||
| **Developer** | Код, тесты |
|
||
| **Reviewer** | Code review, QA |
|
||
| **DevOps** | CI/CD, Deploy |
|
||
| **Documenter** | Документация |
|
||
|
||
---
|
||
|
||
## Типы агентов
|
||
|
||
| Тип | Описание |
|
||
|-----|----------|
|
||
| **OpenClaw** | Полноценный агент с инструментами |
|
||
| **Claude API** | Прямой вызов API |
|
||
| **Claude Code CLI** | Через CLI (без траты API токенов) |
|
||
| **Codex** | OpenAI |
|
||
| **Gemini** | Google |
|
||
| **Custom** | Любой через API |
|
||
|
||
---
|
||
|
||
## Проблема: CLI Integration
|
||
|
||
**Задача:** Использовать Claude Code CLI (авторизован через Max подписку) без траты API токенов.
|
||
|
||
**Варианты решения:**
|
||
|
||
### 1. Headless Mode (если поддерживается)
|
||
```bash
|
||
claude --message "prompt" --output result.txt
|
||
```
|
||
|
||
### 2. PTY Automation
|
||
```python
|
||
import pexpect
|
||
child = pexpect.spawn('claude')
|
||
child.sendline('Write a function...')
|
||
response = child.before
|
||
```
|
||
|
||
### 3. Session Bridge
|
||
```
|
||
Team Board → Agent Service → PTY Bridge → Claude CLI в tmux
|
||
```
|
||
|
||
### 4. MCP Integration
|
||
Если CLI поддерживает Model Context Protocol.
|
||
|
||
### 5. Гибридный подход
|
||
- Простые задачи → API (дёшево)
|
||
- Кодинг → CLI
|
||
- Роутинг по типу задачи
|
||
|
||
**Требуется исследование:** Проверить возможности `claude` CLI.
|
||
|
||
---
|
||
|
||
## Прозрачность
|
||
|
||
**Всё видно в Web UI:**
|
||
- Статус задач
|
||
- Кто над чем работает
|
||
- Коммиты
|
||
- Переписка в задачах
|
||
- Метрики
|
||
|
||
**Уведомления:**
|
||
- Задача застряла
|
||
- Нужно решение человека
|
||
- Deploy готов
|
||
|
||
---
|
||
|
||
## Настройки проекта
|
||
|
||
```yaml
|
||
Project:
|
||
name: "My Project"
|
||
git_enabled: true # default: true
|
||
git_url: "https://..."
|
||
lead_agent_id: "markov" # можно переназначить
|
||
agents: ["claude", "codex"]
|
||
```
|
||
|
||
---
|
||
|
||
## Инфраструктура (уже есть)
|
||
|
||
- **PostgreSQL** — БД
|
||
- **Thoth** — STT/TTS сервис
|
||
- **Authentik** — SSO
|
||
- **Nginx + certbot** — домены
|
||
- **Gitea** — Git хостинг
|
||
- **OpenClaw (Марков)** — главный агент
|
||
|
||
---
|
||
|
||
## Открытые вопросы
|
||
|
||
1. Как интегрировать CLI-агентов (Claude Code, Cline)?
|
||
2. Workspace для агентов — общий или изолированный?
|
||
3. Реалтайм прогресс работы агента?
|
||
4. Лимиты: макс агентов, макс задач?
|
||
5. Биллинг/учёт использования API?
|
||
|
||
---
|
||
|
||
## Приоритеты реализации
|
||
|
||
1. [ ] Базовый UI: проекты, доска
|
||
2. [ ] Tasks Service: CRUD, подзадачи
|
||
3. [ ] Agents Service: регистрация
|
||
4. [ ] Chat Service
|
||
5. [ ] Git интеграция
|
||
6. [ ] CLI Bridge для Claude Code
|
||
7. [ ] Подключение реальных агентов
|
||
|
||
---
|
||
|
||
*Документ для обсуждения. Финальная архитектура — отдельно.*
|