# ⚙️ Dashboard Settings ## Table of Contents 1. [Overview](#overview) 2. [Memory Settings](#memory-settings) 3. [API & Model Settings](#api--model-settings) 4. [MCP Server Management](#mcp-server-management) 5. [Agent Behavior](#agent-behavior) 6. [Search Engine Configuration](#search-engine-configuration) 7. [Network & Proxy](#network--proxy) 8. [Cost Control](#cost-control) 9. [Performance Tuning](#performance-tuning) 10. [Import/Export](#importexport) --- ## Overview The **Settings Dashboard** provides comprehensive configuration for all aspects of the WebScraper environment, models, MCPs, agents, and observability. ### Settings Structure ``` Settings ├── Memory │ ├── Short-Term Memory │ ├── Working Memory │ ├── Long-Term Memory │ └── Shared Memory ├── API & Models │ ├── OpenAI │ ├── Anthropic │ ├── Google │ ├── Groq │ ├── Custom Providers │ └── Model Routing ├── MCP Servers │ ├── Installed Servers │ ├── Available Servers │ └── Custom Servers ├── Agent Behavior │ ├── Exploration vs Exploitation │ ├── Retry Strategy │ ├── Planning Depth │ └── Risk Tolerance ├── Search Engines │ ├── Google Search │ ├── Bing Search │ ├── Brave Search │ └── DuckDuckGo ├── Network & Proxy │ ├── Proxy Pool │ ├── VPN Configuration │ ├── Rate Limiting │ └── User Agent Rotation ├── Cost Control │ ├── Daily Budget │ ├── Model Costs │ └── Alerts └── Performance ├── Batch Processing ├── Parallel Execution ├── Caching └── Context Optimization ``` --- ## Memory Settings ### Configuration ```typescript interface MemorySettings { // Layer toggles enableShortTerm: boolean; // Episode memory enableWorking: boolean; // Reasoning buffer enableLongTerm: boolean; // Persistent patterns enableShared: boolean; // Multi-agent memory // Size limits maxEpisodeMemoryMB: number; // Default: 10 maxWorkingMemoryItems: number; // Default: 50 maxLongTermPatterns: number; // Default: 10000 // Vector database vectorDB: { provider: 'faiss' | 'qdrant' | 'pinecone' | 'weaviate'; embeddingModel: string; // Default: 'text-embedding-3-small' dimension: number; // Default: 1536 similarityMetric: 'cosine' | 'euclidean' | 'dot_product'; }; // Storage backend storage: { backend: 'filesystem' | 'postgresql' | 'mongodb' | 'redis'; path: string; // For filesystem connectionString?: string; // For databases }; // Optimization autoPrune: boolean; // Default: true pruneThreshold: number; // Default: 0.3 (keep if score > 0.3) pruneIntervalHours: number; // Default: 24 autoSummarize: boolean; // Default: true maxContextTokens: number; // Default: 4000 } ``` ### UI Component ```jsx
``` --- ## Search Engine Configuration ### Configuration ```typescript interface SearchEngineSettings { default: 'google' | 'bing' | 'brave' | 'duckduckgo' | 'perplexity'; google?: { apiKey: string; searchEngineId: string; region: string; safeSearch: boolean; }; bing?: { apiKey: string; market: string; }; brave?: { apiKey: string; country: string; }; duckduckgo?: { region: string; safeSearch: boolean; }; perplexity?: { apiKey: string; model: string; }; // Global settings maxResults: number; timeout: number; cacheResults: boolean; cacheTTL: number; } ``` ### UI Component ```jsx No API key required (free)
``` --- ## Network & Proxy ### Configuration ```typescript interface NetworkSettings { proxy: { enabled: boolean; pools: ProxyPool[]; rotationStrategy: 'round_robin' | 'random' | 'health_based'; maxRetries: number; }; vpn: { enabled: boolean; provider: string; server: string; credentials: { username: string; password: string; }; }; rateLimiting: { enabled: boolean; requestsPerSecond: number; burstSize: number; }; userAgent: { rotationEnabled: boolean; customUserAgents: string[]; }; timeout: { connect: number; read: number; }; } ``` ### UI - See [proxy-vpn.md](./WebScraper_OpenEnv_SoftwareDoc.md#9-network-layer--vpn--proxy) for full details --- ## Cost Control ### Configuration ```typescript interface CostControlSettings { dailyBudget: number; // USD monthlyBudget: number; // USD alertThresholds: number[]; // [0.5, 0.8, 0.9] = 50%, 80%, 90% modelCosts: Record; enforcements: { stopOnBudgetExceeded: boolean; downgradeToCheaperModel: boolean; notifyOnHighCost: boolean; }; } ``` ### UI Component ```jsx
${todayCost.toFixed(2)} / ${dailyBudget.toFixed(2)} ${monthCost.toFixed(2)} / ${monthlyBudget.toFixed(2)}
Get notified at these percentages of budget
{models.map(model => ( ))}
Model Input (per 1M tokens) Output (per 1M tokens) Estimated Cost/Episode
{model.name} ${model.inputCost.toFixed(2)} ${model.outputCost.toFixed(2)} ${model.estimatedCostPerEpisode.toFixed(4)}
``` --- ## Performance Tuning ### Configuration ```typescript interface PerformanceSettings { batchProcessing: { enabled: boolean; batchSize: number; maxConcurrent: number; }; parallelExecution: { enabled: boolean; maxWorkers: number; }; caching: { enabled: boolean; cacheHTML: boolean; cacheAPIResponses: boolean; cacheDuration: number; // Seconds maxCacheSize: number; // MB }; contextOptimization: { enabled: boolean; summarizeOldObservations: boolean; pruneThreshold: number; maxContextTokens: number; }; } ``` --- ## Import/Export ```jsx
``` --- **Next:** See [rewards.md](./rewards.md) for advanced reward function design.