Initial commit: Meeting Room v0.1.0

Multi-agent discussion framework:
- Custom/AutoGen/CrewAI backends
- Multi-provider API (role→model binding)
- Tools system (files, web, commands)
- Markdown scenarios with YAML frontmatter
- Workspace init (meeting-room init)
- Session save (--save)
This commit is contained in:
Hermes
2026-05-03 08:07:35 +00:00
commit 99cb5a499b
19 changed files with 1473 additions and 0 deletions

73
KNOWLEDGE.md Normal file
View File

@@ -0,0 +1,73 @@
# Meeting Room — Архитектура и решения
## Концепция
Meeting-room — это CLI-инструмент (как git, terraform). Устанавливается глобально,
работает в рабочей директории `.meeting-room/`.
```
projects/
├── meeting-room/ ← исходники пакета (pip install -e .)
├── .meeting-room/ ← рабочая директория обсуждений (git-репа)
│ ├── config.yaml ← конфиг, переопределяет дефолтный
│ ├── scenarios/ ← сценарии .md
│ ├── sessions/ ← результаты (json, gitignored)
│ └── .gitignore
└── my-project/ ← любой проект, можно указать как workdir
```
## Принятые решения
### Сценарии — Markdown с YAML frontmatter
YAML неудобен для многострочного текста. Markdown естественно поддерживает
заголовки, списки, код, выделение. Frontmatter — для метаданных (участники, раунды).
### Multi-provider архитектура
Каждая роль привязана к конкретному API-провайдеру и модели через `provider` + `model`.
Позволяет смешивать модели: GPT-4o, Claude, Qwen, Gemini в одном обсуждении.
### API-ключи через env-переменные
Формат: `MEETING_ROOM_<PROVIDER>_API_KEY`, `MEETING_ROOM_<PROVIDER>_BASE_URL`.
В config.yaml можно `${ENV_VAR}` плейсхолдеры. Ключи не утекают в гит.
### Система инструментов (tools)
OpenAI function calling: read_file, list_files, search_in_files, write_file,
web_search, web_fetch, run_command. Привязаны к ролям через наборы:
all, files, readonly, web, none.
### Три бэкенда
- custom — свой Python, round-robin с tool support, из коробки
- autogen — Microsoft AutoGen
- crewai — CrewAI
### Workspace (.meeting-room)
`meeting-room init` создаёт структуру в CWD. CLI ищет config.yaml:
1. CLI --config arg
2. .meeting-room/config.yaml (поиск от CWD вверх)
3. Встроенный package config
### Сохранение результатов
`--save` — JSON файл в sessions/ с таймстемпом, именем сценария, полной историей.
## Структура пакета
```
meeting_room/
├── __init__.py
├── cli.py — CLI (init, run, list, save)
├── api_client.py — мультипровайдерный OpenAI-совместимый клиент
├── tools.py — инструменты (файлы, веб, shell)
├── scenario_loader.py — загрузчик .md/.yaml
├── config/
│ └── config.yaml — дефолтный конфиг (без ключей)
├── scenarios/
│ └── example-saas.md — встроенный пример
└── backends/
├── custom/
├── autogen/
└── crewai/
```
## Gitea
Репозиторий: git.kzntsv.site/OpeItcLoc03/meeting-room
Токен: env GITEA_TOKEN, без admin-грантов.