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)
151 lines
3.3 KiB
Markdown
151 lines
3.3 KiB
Markdown
# Meeting Room
|
|
|
|
Multi-agent discussion framework — role-based AI agents debate problems and produce solutions.
|
|
|
|
## Install
|
|
|
|
```bash
|
|
git clone <repo-url> meeting-room
|
|
cd meeting-room
|
|
pip install -e .
|
|
|
|
# Optional backends
|
|
pip install -e ".[autogen]"
|
|
pip install -e ".[crewai]"
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Initialize workspace (creates .meeting-room/ in current directory)
|
|
meeting-room init
|
|
|
|
# Create a scenario
|
|
cat > .meeting-room/scenarios/my-problem.md << 'EOF'
|
|
---
|
|
name: "My Problem"
|
|
participants:
|
|
- moderator
|
|
- skeptic
|
|
- idea_generator
|
|
- analyst
|
|
max_rounds: 6
|
|
---
|
|
|
|
# Problem Title
|
|
|
|
Describe the problem in Markdown...
|
|
EOF
|
|
|
|
# Run discussion
|
|
cd .meeting-room
|
|
meeting-room -s scenarios/my-problem.md
|
|
|
|
# Run and save result
|
|
meeting-room -s scenarios/my-problem.md --save
|
|
|
|
# Point agents at a project for file tools
|
|
meeting-room -w /path/to/project -s scenarios/code-review.md
|
|
```
|
|
|
|
## Workspace Structure
|
|
|
|
```
|
|
.meeting-room/
|
|
├── config.yaml — override default config (roles, providers, tools)
|
|
├── scenarios/ — your .md scenario files
|
|
│ └── example.md
|
|
├── sessions/ — saved discussion results (gitignored)
|
|
└── .gitignore
|
|
```
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
meeting-room init [path] # Create .meeting-room workspace
|
|
meeting-room -s scenarios/my.md # Run discussion
|
|
meeting-room -s scenarios/my.md --save # Run and save result
|
|
meeting-room -b autogen -s scenarios/my.md # Use AutoGen backend
|
|
meeting-room -b crewai -s scenarios/my.md # Use CrewAI backend
|
|
meeting-room --list-scenarios # Show available scenarios
|
|
meeting-room --list-roles # Show roles and model bindings
|
|
meeting-room -c /path/to/config.yaml -s ... # Custom config file
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Config Search Order
|
|
1. `--config` CLI argument
|
|
2. `.meeting-room/config.yaml` (searched from CWD upward)
|
|
3. Built-in package defaults
|
|
|
|
### API Keys
|
|
|
|
Set via environment variables:
|
|
|
|
```bash
|
|
export MEETING_ROOM_ROUTERAI_API_KEY="sk-..."
|
|
export MEETING_ROOM_ROUTERAI_BASE_URL="https://routerai.ru/api/v1"
|
|
export MEETING_ROOM_OPENAI_API_KEY="sk-..."
|
|
export MEETING_ROOM_ANTHROPIC_API_KEY="sk-ant-..."
|
|
```
|
|
|
|
Or use `${ENV_VAR}` placeholders in config.yaml.
|
|
|
|
### Roles
|
|
|
|
Each role binds to a provider + model + tool set:
|
|
|
|
```yaml
|
|
roles:
|
|
analyst:
|
|
name: "Analyst"
|
|
provider: anthropic
|
|
model: "claude-sonnet-4"
|
|
temperature: 0.5
|
|
tools: "all"
|
|
```
|
|
|
|
### Tool Sets
|
|
|
|
| Set | Tools |
|
|
|-----------|--------------------------------------------------------|
|
|
| all/full | Everything (files + web + commands) |
|
|
| files | read_file, list_files, search_in_files, write_file |
|
|
| readonly | read_file, list_files, search_in_files |
|
|
| web | web_search, web_fetch |
|
|
| none | No tools, text only |
|
|
| (list) | `["read_file", "web_search"]` — custom mix |
|
|
|
|
### Scenarios
|
|
|
|
Markdown with YAML frontmatter:
|
|
|
|
```markdown
|
|
---
|
|
name: "My Problem"
|
|
participants:
|
|
- moderator
|
|
- skeptic
|
|
- idea_generator
|
|
- analyst
|
|
max_rounds: 6
|
|
---
|
|
|
|
# The Problem
|
|
|
|
Full Markdown description...
|
|
|
|
## Context
|
|
- Budget: $50K
|
|
- Team: 3 people
|
|
|
|
## Questions
|
|
1. What tech stack?
|
|
2. How to scale?
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|