Files
meeting-room/KNOWLEDGE.md
Hermes 99cb5a499b 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)
2026-05-03 08:07:35 +00:00

74 lines
3.4 KiB
Markdown
Raw 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.
# 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-грантов.