Prerequisites
Installation
Install Python dependencies
Core Dependencies
Core Dependencies
UI & CLI
UI & CLI
Web Scraping (for agents)
Web Scraping (for agents)
Integrations
Integrations
Testing & Utils
Testing & Utils
Environment Configuration
Dream Foundry supports multiple execution modes depending on which API keys you configure.Basic Setup (No API Keys)
For local testing, no API keys are required. The forge runs in local mode:- ✅ All 5 agents execute
- ✅ Scoring and winner selection
- ✅ Artifact generation
- ❌ No Daytona sandboxes (runs locally)
- ❌ No Sentry error tracking
- ❌ No Discord publishing
- ❌ No ElevenLabs narration
Full Setup (All Integrations)
Get Daytona API Key
Purpose: Run each agent in isolated sandboxes for true parallel execution and security.You should see:
- Sign up at daytona.io
- Navigate to Settings → API Keys
- Generate a new API key
- Copy the key to your
.envfile
Get Sentry DSN
Purpose: Capture and monitor agent failures in real-time (especially Agent Delta crashes).Check your Sentry dashboard for the test event.
- Sign up at sentry.io
- Create a new project (select Python)
- Copy the DSN from the project settings
- Add to
.envasSENTRY_DSN
Integration Point: In
forge.py:175-182, when a candidate fails, the error is automatically captured:forge.py
Get Discord Webhook URL
Purpose: Publish the winner’s output directly to a Discord channel.You should see a message in your Discord channel.
- Open your Discord server
- Go to Server Settings → Integrations → Webhooks
- Click “New Webhook”
- Name it “Dream Foundry Winner”
- Select the target channel
- Copy the webhook URL
- Add to
.envasDISCORD_WEBHOOK_URL
Integration Point: After the winner is selected, you can publish to Discord:
src/discord_poster.py
Get ElevenLabs API Key
Purpose: Generate voice narration for winner announcements in the Streamlit UI.Navigate through the demo to Phase 9 (Showcase). You should see an “Generate & Play Audio” button.
- Sign up at elevenlabs.io
- Navigate to Profile → API Keys
- Generate a new API key
- Add to
.envasELEVENLABS_API_KEY
ElevenLabs is only used in the Streamlit UI for presentation purposes. The CLI (
forge.py) does not use voice synthesis.Configuration Levels
You can configure Dream Foundry at different levels:Minimal
No API KeysPerfect for:
- Local testing
- Understanding the flow
- Developing custom agents
Standard
Daytona + SentryPerfect for:
- Production usage
- Isolated execution
- Error monitoring
.env
Full Demo
All IntegrationsPerfect for:
- Hackathon demos
- Presentations
- Full feature showcase
.env
Additional Setup (Optional)
Selenium WebDriver (for Agent Beta)
Agent Beta uses Selenium for JavaScript-rendered pages. Install a browser driver:If you skip this step, Agent Beta will fail gracefully and be scored accordingly. The forge will still complete with the other 4 agents.
CodeRabbit Integration (Advanced)
CodeRabbit is simulated in the Streamlit UI for demo purposes. To integrate real CodeRabbit PR reviews:- Install the CodeRabbit GitHub App
- Grant access to your Dream Foundry repository
- Create a PR from the winner’s branch
- CodeRabbit will automatically review
The Streamlit UI (Phase 6: Forge Runoff - Polish) shows example before/after diffs to demonstrate the concept. Real CodeRabbit reviews require GitHub integration.
Verification
Run the complete test suite to verify everything works:Troubleshooting
ModuleNotFoundError: No module named 'streamlit'
ModuleNotFoundError: No module named 'streamlit'
You’re likely not in the virtual environment or didn’t install dependencies:
Daytona not configured, falling back to local
Daytona not configured, falling back to local
This means
DAYTONA_API_KEY is not set or invalid:Sentry events not appearing
Sentry events not appearing
Common issues:
- Wrong DSN format: Should be
https://[email protected]/... - Project not configured: Create a new Python project in Sentry
- Firewall blocking: Ensure outbound HTTPS to sentry.io is allowed
Discord webhook returning 404
Discord webhook returning 404
The webhook URL expired or was deleted:
- Go back to Discord Server Settings → Integrations → Webhooks
- Verify the webhook still exists
- Copy a fresh URL if needed
- Update
.env
Selenium WebDriverException
Selenium WebDriverException
ChromeDriver not installed or wrong version:Alternatively, Agent Beta will fail gracefully. The forge continues with other agents.
Rate limiting from lu.ma / Meetup
Rate limiting from lu.ma / Meetup
Running the forge repeatedly triggers rate limits:
- Solution 1: Wait 5 minutes between runs
- Solution 2: Use
--daytonaflag to isolate requests - Solution 3: Implement custom caching (see
candidates/agent_gamma.py:26-52for event list)
Python version mismatch
Python version mismatch
Dream Foundry requires Python 3.12+ for modern type hints:
Next Steps
Quickstart
Run your first forge in 5 minutes
Architecture
Understand the 5-phase Dream Foundry pipeline
Custom Agents
Build your own competing agent
Scoring System
Deep dive into the scoring rubric
Pro Tip: Start with the minimal setup (no API keys) to understand the flow, then progressively add integrations as needed.