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:
73
KNOWLEDGE.md
Normal file
73
KNOWLEDGE.md
Normal 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-грантов.
|
||||
Reference in New Issue
Block a user