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

3.4 KiB
Raw Blame History

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-грантов.