init
This commit is contained in:
@@ -0,0 +1,552 @@
|
||||
# Multi-Model DnD Agent System - Complete Setup
|
||||
|
||||
This document describes the **complete multi-model agent orchestration system** for your DnD campaign vault, optimized for cost-effectiveness and specialized capabilities.
|
||||
|
||||
## 🎯 System Architecture
|
||||
|
||||
The system implements a **three-tier architecture** with clear role separation:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────┐
|
||||
│ TIER 1: ORCHESTRATOR │
|
||||
│ (Mistral Medium - 2604) │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐│
|
||||
│ │ • Analyzes user requests in campaign context ││
|
||||
│ │ • Delegates concrete steps to Tier 2 workers ││
|
||||
│ │ • Requests creative ideas from Tier 3 (single API call) ││
|
||||
│ │ • Synthesizes results and presents to user ││
|
||||
│ │ • Coordinates all multi-agent workflows ││
|
||||
│ └─────────────────────────────────────────────────────────────────┘│
|
||||
└─────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
┌───────────────────┼───────────────────┐
|
||||
▼ ▼ ▼
|
||||
┌─────────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
|
||||
│ TIER 2: WORKERS │ │ TIER 2: WORKERS │ │ TIER 2: WORKERS │
|
||||
│ (Mistral Small - 2604) │ │ (Mistral Small - 2604) │ │ (Mistral Small - 2604) │
|
||||
│ • Session Prep Worker │ │ • Implementer Worker │ │ • Generator Worker │
|
||||
│ • Analyzes sessions │ │ • Extracts entities │ │ • Creates content │
|
||||
│ • Reviews story arcs │ │ • Creates files │ │ • Applies templates │
|
||||
│ • Generates prep docs │ │ • Links content │ │ • Links to existing │
|
||||
└─────────────────────────┘ └─────────────────────┘ └─────────────────────┘
|
||||
│
|
||||
┌───────────────────┘
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────┐
|
||||
│ TIER 3: CREATIVE │
|
||||
│ (Claude Opus - 4.5) │
|
||||
│ ┌─────────────────────────────────────────────────────────────────┐│
|
||||
│ │ • Generates creative ideas ONLY ││
|
||||
│ │ • Single API call per request (cost optimization) ││
|
||||
│ │ • Minimal context provided (token optimization) ││
|
||||
│ │ • Returns concise concepts only (no explanation) ││
|
||||
│ │ • ZERO tool access (security isolation) ││
|
||||
│ └─────────────────────────────────────────────────────────────────┘│
|
||||
└─────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 📊 Cost Optimization Strategy
|
||||
|
||||
| Model | Usage | Cost Level | Purpose |
|
||||
|-------|-------|------------|---------|
|
||||
| Mistral Medium | Orchestrator (1 instance) | Medium | Coordination, reasoning, synthesis |
|
||||
| Mistral Small | Workers (4 instances) | Low | All concrete execution |
|
||||
| Claude Opus | Creative (1 instance) | High | Creative ideas only |
|
||||
|
||||
**Estimated Savings**: ~70-80% compared to using Claude Opus for everything
|
||||
|
||||
**Token Usage Pattern**:
|
||||
- 60%: Mistral Small (workers doing the heavy lifting)
|
||||
- 25%: Mistral Medium (orchestrator coordinating)
|
||||
- 15%: Claude Opus (creative ideas only when needed)
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Agent Specifications
|
||||
|
||||
### Tier 1: Orchestrator
|
||||
|
||||
**Agent**: `dnd-orchestrator`
|
||||
- **Model**: `mistral/mistral-medium-2604`
|
||||
- **Mode**: `primary`
|
||||
- **Temperature**: 0.3 (balanced reasoning)
|
||||
- **Color**: Brown (#8B4513)
|
||||
- **File**: `.opencode/agents/dnd-orchestrator.md`
|
||||
|
||||
**Capabilities**:
|
||||
- ✅ Full tool access (read, write, glob, grep, edit, bash)
|
||||
- ✅ Full skill access (all dnd-*)
|
||||
- ✅ Can delegate to all worker agents (`dnd-worker-*`)
|
||||
- ✅ Can request from creative agent (`dnd-creative`) with confirmation
|
||||
- ✅ Can use question tool for user input
|
||||
- ❌ Cannot access external resources (webfetch denied)
|
||||
|
||||
**Responsibilities**:
|
||||
1. Understand user requests in full campaign context
|
||||
2. Break down complex tasks into delegatable steps
|
||||
3. Request creative ideas from creative agent when needed
|
||||
4. Implement creative ideas using worker agents
|
||||
5. Synthesize all results and present to user
|
||||
6. Ensure campaign consistency across all work
|
||||
|
||||
---
|
||||
|
||||
### Tier 2: Worker Agents
|
||||
|
||||
All workers use `mistral/mistral-small-2604` for cost-effective execution.
|
||||
|
||||
#### 1. dnd-worker-session-prep
|
||||
- **Temperature**: 0.2 (very focused)
|
||||
- **Color**: Green (#228B22)
|
||||
- **File**: `.opencode/agents/dnd-worker-session-prep.md`
|
||||
|
||||
**Handles**:
|
||||
- Analyzing session notes and extracting key information
|
||||
- Reviewing active story arcs and identifying threads
|
||||
- Checking NPC and location statuses
|
||||
- Generating session prep document sections
|
||||
- Creating preparation checklists
|
||||
|
||||
**Permissions**:
|
||||
- ✅ Full tool access (read, write, glob, grep, edit, bash)
|
||||
- ✅ Full skill access (all dnd-*)
|
||||
- ❌ CANNOT delegate to other agents (task: deny)
|
||||
- ❌ CANNOT access external resources
|
||||
|
||||
---
|
||||
|
||||
#### 2. dnd-worker-implementer
|
||||
- **Temperature**: 0.2 (very focused)
|
||||
- **Color**: Green (#228B22)
|
||||
- **File**: `.opencode/agents/dnd-worker-implementer.md`
|
||||
|
||||
**Handles**:
|
||||
- Parsing session notes for entities and events
|
||||
- Extracting NPCs, locations, items, organizations
|
||||
- Creating new content files from extracted information
|
||||
- Linking content with wiki links
|
||||
- Moving files between directories
|
||||
- Validating content structure
|
||||
|
||||
**Permissions**: Same as session-prep worker
|
||||
|
||||
---
|
||||
|
||||
#### 3. dnd-worker-generator
|
||||
- **Temperature**: 0.3 (slightly creative)
|
||||
- **Color**: Green (#228B22)
|
||||
- **File**: `.opencode/agents/dnd-worker-generator.md`
|
||||
|
||||
**Handles**:
|
||||
- Creating new locations with detailed descriptions
|
||||
- Creating new NPCs with full profiles
|
||||
- Creating new quests and story arcs
|
||||
- Creating new items and equipment
|
||||
- Applying templates and metadata
|
||||
- Linking new content to existing vault elements
|
||||
|
||||
**Permissions**: Same as other workers
|
||||
|
||||
---
|
||||
|
||||
#### 4. dnd-worker-organizer
|
||||
- **Temperature**: 0.1 (very focused)
|
||||
- **Color**: Green (#228B22)
|
||||
- **File**: `.opencode/agents/dnd-worker-organizer.md`
|
||||
|
||||
**Handles**:
|
||||
- Validating vault structure against standards
|
||||
- Checking and repairing wiki links
|
||||
- Identifying duplicate content
|
||||
- Finding orphaned files
|
||||
- Cleaning up Inbox directory
|
||||
- Generating vault health reports
|
||||
|
||||
**Permissions**: Same as other workers
|
||||
|
||||
---
|
||||
|
||||
### Tier 3: Creative Agent
|
||||
|
||||
**Agent**: `dnd-creative`
|
||||
- **Model**: `anthropic/claude-opus-4.5`
|
||||
- **Mode**: `subagent`
|
||||
- **Temperature**: 1.0 (maximum creativity)
|
||||
- **Color**: Purple (#9370DB)
|
||||
- **File**: `.opencode/agents/dnd-creative.md`
|
||||
|
||||
**Capabilities**:
|
||||
- ✅ Generate creative DnD concepts
|
||||
- ✅ Return concise ideas (single sentences)
|
||||
- ✅ Single API call per request
|
||||
- ❌ CANNOT access ANY tools (all permissions: deny)
|
||||
- ❌ CANNOT use any skills (skill: deny)
|
||||
- ❌ CANNOT delegate to other agents (task: deny)
|
||||
- ❌ CANNOT ask questions (question: deny)
|
||||
- ❌ CANNOT fetch external resources (webfetch: deny)
|
||||
|
||||
**Responsibilities**:
|
||||
1. Generate creative ideas when requested by orchestrator
|
||||
2. Provide ONLY the ideas (no explanation, no implementation)
|
||||
3. Use minimal context (orchestrator provides brief context)
|
||||
4. Respond in ONE message (single API call)
|
||||
5. Return ideas in German language
|
||||
|
||||
**Response Format**:
|
||||
```
|
||||
Idea 1 as a single concise sentence.
|
||||
Idea 2 as a single concise sentence.
|
||||
Idea 3 as a single concise sentence.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Workflow Examples
|
||||
|
||||
### Example 1: Session Preparation
|
||||
|
||||
**User Request**: "Prepare materials for next session"
|
||||
|
||||
**Workflow**:
|
||||
```
|
||||
1. User → dnd-orchestrator (Medium)
|
||||
"Prepare materials for next session"
|
||||
|
||||
2. dnd-orchestrator analyzes campaign state
|
||||
- Reads last session notes
|
||||
- Reviews active story arcs
|
||||
- Checks current campaign status
|
||||
|
||||
3. dnd-orchestrator delegates to workers (Small):
|
||||
@dnd-worker-session-prep "Analyze Session 15 and identify unresolved plot hooks"
|
||||
@dnd-worker-session-prep "Review active quests and their status"
|
||||
|
||||
4. dnd-orchestrator requests creative input (Opus):
|
||||
@dnd-creative "Generate 3 creative session hook ideas for campaign with stolen amulet"
|
||||
→ Returns: 3 single-sentence ideas
|
||||
|
||||
5. dnd-orchestrator implements best idea using workers (Small):
|
||||
@dnd-worker-generator "Create session prep document with selected hook"
|
||||
|
||||
6. dnd-orchestrator synthesizes all results
|
||||
→ Presents comprehensive session prep to user
|
||||
```
|
||||
|
||||
**Token Usage**:
|
||||
- Medium: ~500 tokens (orchestration)
|
||||
- Small: ~2000 tokens (worker execution)
|
||||
- Opus: ~50 tokens (creative ideas)
|
||||
- **Total**: ~2550 tokens (optimized)
|
||||
|
||||
---
|
||||
|
||||
### Example 2: Story Implementation
|
||||
|
||||
**User Request**: "Process session notes from Session 15"
|
||||
|
||||
**Workflow**:
|
||||
```
|
||||
1. User → dnd-orchestrator (Medium)
|
||||
"Process session notes from 01-Sessions/Session 15 - Title.md"
|
||||
|
||||
2. dnd-orchestrator reads session notes
|
||||
|
||||
3. dnd-orchestrator delegates to workers (Small):
|
||||
@dnd-worker-implementer "Extract all NPCs and create/update files"
|
||||
@dnd-worker-implementer "Extract all locations and create/update files"
|
||||
@dnd-worker-implementer "Extract quest progress and update arc files"
|
||||
@dnd-worker-implementer "Link all new content with wiki links"
|
||||
|
||||
4. dnd-orchestrator verifies all work
|
||||
|
||||
5. dnd-orchestrator presents results to user
|
||||
```
|
||||
|
||||
**Token Usage**:
|
||||
- Medium: ~300 tokens (orchestration)
|
||||
- Small: ~3000 tokens (worker execution)
|
||||
- Opus: 0 tokens (no creative needed)
|
||||
- **Total**: ~3300 tokens
|
||||
|
||||
---
|
||||
|
||||
### Example 3: Content Creation
|
||||
|
||||
**User Request**: "Create a new city for the Sword Coast"
|
||||
|
||||
**Workflow**:
|
||||
```
|
||||
1. User → dnd-orchestrator (Medium)
|
||||
"Create a new city for the Sword Coast region"
|
||||
|
||||
2. dnd-orchestrator analyzes existing Sword Coast content
|
||||
|
||||
3. dnd-orchestrator requests creative input (Opus):
|
||||
@dnd-creative "Generate 3 unique city concepts for Sword Coast region"
|
||||
→ Returns: 3 single-sentence concepts
|
||||
|
||||
4. User selects: "Eldrin, a port city with hidden Underdark entrance"
|
||||
|
||||
5. dnd-orchestrator delegates to workers (Small):
|
||||
@dnd-worker-generator "Create detailed city file for Eldrin"
|
||||
@dnd-worker-generator "Generate 3 relevant NPCs for Eldrin"
|
||||
@dnd-worker-generator "Create 2 quest hooks connected to Eldrin"
|
||||
@dnd-worker-implementer "Link all new content together"
|
||||
|
||||
6. dnd-orchestrator verifies consistency
|
||||
|
||||
7. dnd-orchestrator presents results to user
|
||||
```
|
||||
|
||||
**Token Usage**:
|
||||
- Medium: ~400 tokens (orchestration)
|
||||
- Small: ~2500 tokens (worker execution)
|
||||
- Opus: ~30 tokens (creative ideas)
|
||||
- **Total**: ~2930 tokens
|
||||
|
||||
---
|
||||
|
||||
## 📋 Configuration Files
|
||||
|
||||
### 1. opencode.json
|
||||
Main configuration file with all agent definitions:
|
||||
|
||||
```json
|
||||
{
|
||||
"agent": {
|
||||
"dnd-orchestrator": {
|
||||
"model": "mistral/mistral-medium-2604",
|
||||
"mode": "primary",
|
||||
"temperature": 0.3,
|
||||
"task": {
|
||||
"dnd-worker-*": "allow",
|
||||
"dnd-creative": "ask"
|
||||
}
|
||||
},
|
||||
"dnd-worker-*": {
|
||||
"model": "mistral/mistral-small-2604",
|
||||
"mode": "subagent",
|
||||
"task": "deny"
|
||||
},
|
||||
"dnd-creative": {
|
||||
"model": "anthropic/claude-opus-4.5",
|
||||
"mode": "subagent",
|
||||
"permission": {
|
||||
"read": "deny",
|
||||
"write": "deny",
|
||||
"task": "deny",
|
||||
"skill": "deny"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Agent Definition Files
|
||||
Each agent has a markdown file in `.opencode/agents/`:
|
||||
|
||||
- `dnd-orchestrator.md` - Primary coordinator
|
||||
- `dnd-worker-session-prep.md` - Session preparation worker
|
||||
- `dnd-worker-implementer.md` - Story implementation worker
|
||||
- `dnd-worker-generator.md` - Content generation worker
|
||||
- `dnd-worker-organizer.md` - Vault organization worker
|
||||
- `dnd-creative.md` - Creative ideas agent
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Usage Instructions
|
||||
|
||||
### Starting a Session
|
||||
|
||||
1. **Load the orchestrator**:
|
||||
```
|
||||
@dnd-orchestrator [your request]
|
||||
```
|
||||
|
||||
2. **Let it coordinate**: The orchestrator will:
|
||||
- Analyze your request
|
||||
- Delegate to appropriate workers
|
||||
- Request creative ideas if needed
|
||||
- Synthesize and present results
|
||||
|
||||
### Direct Agent Invocation
|
||||
|
||||
You can also invoke agents directly:
|
||||
|
||||
```
|
||||
# For session preparation
|
||||
@dnd-worker-session-prep Analyze Session 15 and identify plot hooks
|
||||
|
||||
# For story implementation
|
||||
@dnd-worker-implementer Extract NPCs from Session 15 notes
|
||||
|
||||
# For content generation
|
||||
@dnd-worker-generator Create a new NPC file for Veylin
|
||||
|
||||
# For vault organization
|
||||
@dnd-worker-organizer Validate all wiki links in 01-Sessions/
|
||||
|
||||
# For creative ideas (orchestrator will usually handle this)
|
||||
@dnd-creative Generate 3 quest ideas for the Cult of the Eclipse
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Security & Safety Features
|
||||
|
||||
### Creative Agent Isolation
|
||||
- **Zero tool access**: Cannot read, write, or modify any files
|
||||
- **Zero skill access**: Cannot use any skills or templates
|
||||
- **Zero delegation**: Cannot invoke other agents
|
||||
- **Pure generation**: Only provides creative ideas, never implements
|
||||
|
||||
### Worker Agent Restrictions
|
||||
- **No delegation**: Workers cannot invoke other agents
|
||||
- **Controlled access**: Only have permissions they need
|
||||
- **Focused scope**: Each worker has specific, limited responsibilities
|
||||
|
||||
### Orchestrator Control
|
||||
- **Single point of coordination**: Only orchestrator can manage multi-agent workflows
|
||||
- **Permission boundaries**: Orchestrator has full access but follows delegation rules
|
||||
- **User confirmation**: Creative agent requests require confirmation
|
||||
|
||||
---
|
||||
|
||||
## 📊 Performance Metrics
|
||||
|
||||
### Response Times
|
||||
| Agent | Typical Response Time | Complexity |
|
||||
|-------|----------------------|------------|
|
||||
| Orchestrator | 5-10 seconds | High |
|
||||
| Workers | 2-5 seconds | Medium |
|
||||
| Creative | 3-8 seconds | Low (simple generation) |
|
||||
|
||||
### Cost Comparison
|
||||
| Approach | Estimated Cost | Quality |
|
||||
|----------|---------------|---------|
|
||||
| All Opus | $$$$$ | ⭐⭐⭐⭐⭐ |
|
||||
| All Medium | $$$ | ⭐⭐⭐⭐ |
|
||||
| **This System** | **$$** | **⭐⭐⭐⭐⭐** |
|
||||
| All Small | $ | ⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Best Practices
|
||||
|
||||
### For Users
|
||||
1. **Start with orchestrator** for complex tasks
|
||||
2. **Provide clear context** for better results
|
||||
3. **Review creative options** before selection
|
||||
4. **Trust the delegation** - workers are optimized for their tasks
|
||||
5. **Use direct invocation** for simple, focused tasks
|
||||
|
||||
### For Orchestrator
|
||||
1. **Analyze first** - Understand the full context
|
||||
2. **Delegate appropriately** - Use the right worker for each task
|
||||
3. **Minimize creative context** - Give creative agent only what it needs
|
||||
4. **Verify all work** - Check worker results before presenting
|
||||
5. **Synthesize clearly** - Present organized, ready-to-use results
|
||||
|
||||
### For Workers
|
||||
1. **Follow instructions exactly** - Do only what you're asked
|
||||
2. **Use templates** - Apply appropriate skill templates
|
||||
3. **Link everything** - Always use wiki links for references
|
||||
4. **Validate work** - Check your results before returning
|
||||
5. **Be concise** - Return only what was requested
|
||||
|
||||
### For Creative Agent
|
||||
1. **Ideas only** - Never explain or implement
|
||||
2. **Single sentences** - Each idea as one concise sentence
|
||||
3. **One message** - Respond in a single API call
|
||||
4. **German language** - All ideas in German
|
||||
5. **No questions** - Never ask for clarification
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Setup Requirements
|
||||
|
||||
### Model Access
|
||||
You need access to these models:
|
||||
- **Mistral Medium 2604** (for orchestrator)
|
||||
- **Mistral Small 2604** (for all workers)
|
||||
- **Claude Opus 4.5** (for creative ideas)
|
||||
|
||||
### Configuration
|
||||
1. Set up provider credentials in OpenCode
|
||||
2. Verify models are available: `/models`
|
||||
3. Test each agent individually
|
||||
4. Start with simple tasks to verify workflow
|
||||
|
||||
### MCP Servers (Optional but Recommended)
|
||||
Configure these verified MCP servers for enhanced capabilities:
|
||||
- `dnd-5e-mcp` - DnD 5e content via Open5e API
|
||||
- `obsidian-mcp` - Direct vault access
|
||||
- `gamemaster-mcp` - Campaign management
|
||||
|
||||
---
|
||||
|
||||
## 📁 File Structure
|
||||
|
||||
```
|
||||
.opencode/
|
||||
├── agents/ # Agent definitions
|
||||
│ ├── dnd-orchestrator.md # Primary coordinator (Medium)
|
||||
│ ├── dnd-worker-session-prep.md # Session prep worker (Small)
|
||||
│ ├── dnd-worker-implementer.md # Implementation worker (Small)
|
||||
│ ├── dnd-worker-generator.md # Content generation worker (Small)
|
||||
│ ├── dnd-worker-organizer.md # Vault organization worker (Small)
|
||||
│ ├── dnd-creative.md # Creative ideas agent (Opus)
|
||||
│ └── README.md # Agent documentation
|
||||
│
|
||||
├── skills/ # Skill definitions (unchanged)
|
||||
│ ├── dnd-session-manager/
|
||||
│ ├── dnd-npc-creator/
|
||||
│ ├── dnd-location-builder/
|
||||
│ ├── ...
|
||||
│ └── README.md
|
||||
│
|
||||
├── opencode.json # Main configuration
|
||||
└── MULTI_MODEL_SETUP.md # This file
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Troubleshooting
|
||||
|
||||
### Orchestrator Issues
|
||||
- **Not delegating**: Check task permissions in opencode.json
|
||||
- **Not synthesizing**: Verify worker responses are being received
|
||||
- **Creative not responding**: Check that creative agent is not disabled
|
||||
|
||||
### Worker Issues
|
||||
- **Permission denied**: Check agent permissions in opencode.json
|
||||
- **Not executing**: Verify worker has required tool access
|
||||
- **Delegating**: Workers should NOT delegate - check configuration
|
||||
|
||||
### Creative Agent Issues
|
||||
- **Explaining ideas**: Remind agent to return ONLY ideas
|
||||
- **Multiple messages**: Check temperature and instructions
|
||||
- **Not creative**: Verify model is Claude Opus 4.5
|
||||
|
||||
---
|
||||
|
||||
## 📚 Additional Documentation
|
||||
|
||||
- **Agent Details**: `.opencode/agents/README.md` - Comprehensive agent documentation
|
||||
- **Skills**: `.opencode/skills/README.md` - Skill definitions and usage
|
||||
- **OpenCode Docs**: [opencode.ai/docs/agents/](https://opencode.ai/docs/agents/) - Official agent documentation
|
||||
|
||||
---
|
||||
|
||||
## 🎉 Summary
|
||||
|
||||
This **multi-model agent system** provides:
|
||||
|
||||
✅ **Optimal cost-effectiveness** - Uses cheaper models for most work
|
||||
✅ **Specialized capabilities** - Each agent optimized for its role
|
||||
✅ **Clear separation of concerns** - Orchestrator coordinates, workers execute, creative inspires
|
||||
✅ **Security isolation** - Creative agent has zero access to tools/files
|
||||
✅ **Scalable architecture** - Easy to add more workers or agents
|
||||
✅ **Campaign-optimized** - Designed specifically for DnD vault management
|
||||
|
||||
**Result**: High-quality DnD campaign management at a fraction of the cost of using premium models for everything.
|
||||
Reference in New Issue
Block a user