A comprehensive collection of AI agents, examples, and documentation for the Runloop Platform
- Overview
- Repository Structure
- Production Agents
- Quick Start
- Environment Setup
- Technology Stack
- Features
- Documentation
- Contributing
- License
Runloop Workspace is a unified repository containing production-ready AI agents, SDK examples, code samples, and comprehensive documentation for building agentic applications with the Runloop platform.
This workspace demonstrates:
- Enterprise-grade AI agents with LangGraph.js and Claude Sonnet 4.5
- Runloop Devboxes for secure, isolated execution environments
- Multi-service integration (Supabase, Resend, Brave Search, Tavily, Exa)
- Production patterns for error handling, logging, and observability
- TypeScript best practices for agent development
runloop-workspace/
βββ runloop-interview/ # Production AI Agents (3 agents)
β βββ agent-working-directory/
β βββ agents/
β βββ 1_lead-gen-sales-agent/ # Lead generation & enrichment
β βββ 2_marketing-content-agent/ # Marketing content generation
β βββ 3_customer-support-triage-agent/ # Support ticket triage
β
βββ runloop-practice/ # SDK Examples & Bootcamp
β βββ examples/ # Basic SDK usage patterns
β βββ bootcamp/ # Learning exercises
β βββ demos/ # Demo applications
β
βββ runloop-agents/ # Additional Agent Implementations
β βββ langgraph-agents/ # LangGraph-based agents
β βββ basic-agents/ # Simple agent examples
β βββ advanced-agents/ # Complex agent patterns
β
βββ runloop-code-examples-main/ # Official Code Examples
β βββ python/ # Python SDK examples
β βββ typescript/ # TypeScript SDK examples
β βββ notebooks/ # Jupyter notebooks
β
βββ runloop-documentation/ # Technical Documentation
β βββ api-reference/ # API documentation
β βββ guides/ # How-to guides
β βββ architecture/ # System architecture docs
β
βββ runloop-system-prompts/ # Agent System Prompts
βββ templates/ # Reusable prompt templates
βββ best-practices/ # Prompt engineering guides
Purpose: Automate B2B lead research and enrichment using AI-powered web search
Key Features:
- Multi-source company research (Brave, Tavily, Exa)
- Intelligent lead scoring and qualification
- LinkedIn profile enrichment
- Automated email notifications
- Supabase database persistence
- Duplicate lead detection with URL normalization
Stack: LangGraph.js + Claude Sonnet 4.5 + Brave/Tavily/Exa APIs
Location: runloop-interview/agent-working-directory/agents/1_lead-gen-sales-agent/
Run Command:
cd runloop-interview/agent-working-directory/agents/1_lead-gen-sales-agent
npm run start:langgraphPurpose: Generate high-quality technical marketing content for developer audiences
Key Features:
- Video outline generation (7-9 scenes, code examples)
- Twitter thread creation (5-7 tweets, optimized for engagement)
- LinkedIn post writing (800-1200 words, technical depth)
- Developer portfolio demo content
- AI-powered code snippet generation
- Content versioning and tracking
Stack: LangGraph.js + Claude Sonnet 4.5 + Runloop Objects API
Location: runloop-interview/agent-working-directory/agents/2_marketing-content-agent/
Run Command:
cd runloop-interview/agent-working-directory/agents/2_marketing-content-agent
npm run start:langgraphPurpose: Intelligent support ticket classification and routing
Key Features:
- Automated ticket categorization (provisioning, execution, snapshot, environment)
- Priority scoring (P0-P3)
- Root cause analysis
- Diagnostic step generation
- Engineering team routing
- SLA tracking and notifications
Stack: LangGraph.js + Claude Sonnet 4.5 + Runloop Devboxes API
Location: runloop-interview/agent-working-directory/agents/3_customer-support-triage-agent/
Run Command:
cd runloop-interview/agent-working-directory/agents/3_customer-support-triage-agent
npm run start:langgraph- Node.js 18+ or Bun 1.0+
- TypeScript 5.0+
- Git
- API Keys:
- Runloop API Key
- Anthropic API Key
- Supabase Account
- Resend API Key
- Brave Search API Key (for lead-gen agent)
- Tavily API Key (optional)
- Exa API Key (optional)
- Clone the repository:
git clone https://github.com/tesseract-creator/runloop-workspace.git
cd runloop-workspace- Navigate to an agent directory:
cd runloop-interview/agent-working-directory/agents/1_lead-gen-sales-agent- Install dependencies:
npm install
# or
bun install- Configure environment variables:
cp .env.example .env
# Edit .env with your API keys (see Environment Setup below)- Run the agent:
npm run start:langgraph
# or
bun run start:langgraphEach production agent requires the following environment variables in a .env file:
# Runloop Platform
RUNLOOP_API_KEY=your_runloop_api_key_here
# Anthropic (Claude)
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# Supabase Database
SUPABASE_URL=your_supabase_project_url
SUPABASE_SECRET_KEY=your_supabase_service_role_key
# Resend (Email Notifications)
RESEND_API_KEY=your_resend_api_key_here
FROM_EMAIL=noreply@yourdomain.com
RECIPIENT_EMAIL=your_email@example.comLead Generation Agent (Agent 1):
# Search APIs
BRAVE_API_KEY=your_brave_search_api_key
TAVILY_API_KEY=your_tavily_api_key # Optional
EXA_API_KEY=your_exa_api_key # OptionalMarketing Content Agent (Agent 2):
# Search APIs (for research)
TAVILY_API_KEY=your_tavily_api_key # Optional
EXA_API_KEY=your_exa_api_key # OptionalCustomer Support Agent (Agent 3):
# No additional variables required- Use Service Role Key: For Supabase, use
SUPABASE_SECRET_KEY(service role key) instead ofSUPABASE_KEY(anon key) to bypass Row-Level Security policies - Email Domain: Ensure
FROM_EMAILuses a domain you've verified in Resend - API Key Security: Never commit
.envfiles to version control (already in.gitignore)
- Runloop Platform - Devbox orchestration and execution
- LangGraph.js v0.4.9 - Agent workflow framework
- LangChain - LLM integration and tooling
- Claude Sonnet 4.5 - AI reasoning engine
- Supabase - PostgreSQL database with real-time capabilities
- Resend - Transactional email service
- Brave Search - Web search API
- Tavily - AI-optimized search API
- Exa - Semantic search API
- TypeScript 5.0+ - Type-safe development
- Node.js 18+ / Bun 1.0+ - Runtime environments
- ESM Modules - Modern JavaScript modules
- UUID - Unique identifier generation
- β Autonomous execution in isolated Runloop devboxes
- β Multi-step reasoning with LangGraph React agents
- β Tool orchestration (web search, file operations, API calls)
- β Streaming responses with real-time progress updates
- β Error recovery with exponential backoff and retries
- β State persistence with LangGraph checkpointers
- β Comprehensive logging (structured console output)
- β Database integration (Supabase with enhanced error logging)
- β Email notifications (success/failure alerts)
- β Devbox snapshots (reproducible execution states)
- β Metrics tracking (tool calls, LLM calls, execution time)
- β Resource cleanup (automatic devbox shutdown)
- β TypeScript strict mode (full type safety)
- β Modular architecture (config, lib, types separation)
- β Environment validation (missing key detection)
- β Hot reload (tsx watch mode)
- β Debug mode (verbose logging)
- Runloop Documentation - Official platform docs
- LangGraph.js Docs - Agent framework guide
- Claude API Reference - Claude Sonnet documentation
- Agent READMEs - Each agent has detailed documentation in its directory
- Start with SDK Examples:
runloop-practice/examples/ - Complete Bootcamp:
runloop-practice/bootcamp/ - Study Production Agents:
runloop-interview/agent-working-directory/agents/ - Review System Prompts:
runloop-system-prompts/templates/ - Build Your Own Agent: Use production agents as templates
All production agents follow a consistent architecture pattern:
agent/
βββ index.ts # Main agent class and execution flow
βββ config/
β βββ index.ts # Environment and configuration loading
βββ lib/
β βββ database.ts # Supabase client and operations
β βββ email.ts # Resend email service
β βββ prompts.ts # System prompt loader
β βββ tools.ts # LangGraph tool definitions
βββ prompts/
β βββ system-prompt.md # Agent system prompt
βββ types/
β βββ index.ts # TypeScript type definitions
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ .env.example # Environment variable template
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow existing code style and patterns
- Add TypeScript types for all new code
- Include comprehensive logging
- Test agents end-to-end before submitting
- Update documentation for new features
- Never commit
.envfiles or API keys
| Component | Status | Notes |
|---|---|---|
| Lead Gen Agent | β Production | Enhanced error logging, deduplication |
| Marketing Content Agent | β Production | Service role key, enhanced logging |
| Support Triage Agent | β Production | Service role key, enhanced logging |
| SDK Examples | β Complete | Basic usage patterns |
| Documentation | β Complete | Architecture and guides |
| System Prompts | β Complete | Template library |
Solution: Ensure you're using SUPABASE_SECRET_KEY (service role key) instead of SUPABASE_KEY (anon key) in your .env file.
Solution: The agent implements exponential backoff (1s, 2s, 4s, 8s, 16s). Rate limits are 1 req/sec for free tier.
Solution: All agents now include enhanced error logging showing code, message, details, and hints.
Solution: The agent now normalizes URLs (removes trailing slashes, www, https) before deduplication checks.
This project is licensed under the MIT License - see the LICENSE file for details.
- Runloop Platform - Official website
- Runloop Documentation - Platform docs
- Runloop API Reference - API documentation
- LangGraph.js - Agent framework
- Claude by Anthropic - AI model
- Runloop Team - For the incredible devbox platform
- LangChain Team - For LangGraph.js framework
- Anthropic - For Claude Sonnet 4.5
- Open Source Community - For the amazing tools and libraries
For questions, issues, or collaboration opportunities:
- GitHub Issues: Create an issue
- Runloop Discord: Join the community
- Documentation: docs.runloop.ai
Built with β€οΈ using Runloop, LangGraph, and Claude
β Star this repository if you find it useful!