
Security News
Open VSX Begins Implementing Pre-Publish Security Checks After Repeated Supply Chain Incidents
Following multiple malicious extension incidents, Open VSX outlines new safeguards designed to catch risky uploads earlier.
dspyground
Advanced tools
An open-source prompt optimization harness powered by GEPA. Install directly into your existing AI SDK agent repo, import your tools and prompts for 1:1 environment portability, and align agent behavior through iterative sampling and optimization—delivering an optimized prompt as your final artifact. Built for agentic loops.
# Using npm
npm install -g dspyground
# Or using pnpm
pnpm add -g dspyground
# Initialize DSPyground in your project
npx dspyground init
# Start the dev server
npx dspyground dev
The app will open at http://localhost:3000.
Note: DSPyground bundles all required dependencies. If you already have
aiandzodin your project, it will use your versions to avoid conflicts. Otherwise, it uses its bundled versions.
Edit dspyground.config.ts to configure your agent environment. All configuration is centralized in this file:
import { tool } from 'ai'
import { z } from 'zod'
// Import your existing tools
import { myCustomTool } from './src/lib/tools'
export default {
// Your AI SDK tools
tools: {
myCustomTool,
// or define new ones inline
},
// System prompt for your agent
systemPrompt: `You are a helpful assistant...`,
// Optional: Zod schema for structured output mode
schema: z.object({
response: z.string(),
sentiment: z.enum(['positive', 'negative', 'neutral'])
}),
// Preferences - optimization and chat settings
preferences: {
selectedModel: 'openai/gpt-4o-mini', // Model for interactive chat
useStructuredOutput: false, // Enable structured output in chat
optimizationModel: 'openai/gpt-4o-mini', // Model to optimize prompts for
reflectionModel: 'openai/gpt-4o', // Model for evaluation (judge)
batchSize: 3, // Samples per iteration
numRollouts: 10, // Number of optimization iterations
selectedMetrics: ['accuracy'], // Metrics to optimize for
optimizeStructuredOutput: false // Use structured output during optimization
},
// Metrics evaluation configuration
metricsPrompt: {
evaluation_instructions: 'You are an expert AI evaluator...',
dimensions: {
accuracy: {
name: 'Accuracy',
description: 'Is the information correct?',
weight: 1.0
},
// Add more dimensions...
}
}
}
Configuration automatically reloads when you modify the file—no server restart needed!
Create a .env file in your project root:
AI_GATEWAY_API_KEY=your_api_key_here
# Optional: For voice feedback feature (press & hold space bar in feedback dialog)
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1 # Optional: Custom OpenAI-compatible endpoint
The AI_GATEWAY_API_KEY will be used by DSPyground to access AI models through AI Gateway. Follow the getting started guide to create your API key.
Voice Feedback (Optional):
OPENAI_API_KEY: Required for voice feedback feature. Allows you to record voice feedback in the evaluation dialog by pressing and holding the space bar. Uses OpenAI's Whisper for transcription.OPENAI_BASE_URL: Optional. Set this if you want to use a custom OpenAI-compatible endpoint (e.g., Azure OpenAI). Defaults to https://api.openai.com/v1.Note: All data is stored locally in .dspyground/data/ within your project. Add .dspyground/ to your .gitignore (automatically done during init).
DSPyground follows a simple 3-step workflow:
Install DSPyground in your repo and import your existing AI SDK tools and prompts for 1:1 environment portability. Use dspyground.config.ts to configure your agent environment.
Interact with your agent and collect trajectory samples that demonstrate your desired behavior:
dspyground.config.tsRun GEPA optimization to generate a refined prompt aligned with your sampled behaviors. Click "Optimize" to start the automated prompt improvement process.
Our implementation extends the traditional GEPA (Genetic-Pareto Evolutionary Algorithm) with several key modifications:
Core Improvements:
data/metrics-prompt.jsonHow It Works:
Key Differences from Standard GEPA:
.dspyground/data/runs.json with:
dspyground.config.tsAll configuration lives in dspyground.config.ts:
tools: Your AI SDK tools (imported from your codebase or defined inline)systemPrompt: Base system prompt for your agent (defines agent behavior and personality)schema: Zod schema for structured output mode (enables JSON extraction, classification, etc.)selectedModel: Model used for interactive chat/testing in the UIoptimizationModel: Model to generate responses during optimization (the model you're optimizing for)reflectionModel: Model for evaluation/judgment (typically more capable, acts as the "critic")useStructuredOutput: Enable structured output in chat interfaceoptimizeStructuredOutput: Use structured output during optimizationbatchSize: Number of samples per optimization iteration (default: 3)numRollouts: Number of optimization iterations (default: 10)selectedMetrics: Array of metrics to optimize for (e.g., ['accuracy', 'tone'])evaluation_instructions: Base instructions for the evaluation LLMdimensions: Define custom evaluation metrics with:
name: Display name for the metricdescription: What this metric measuresweight: Importance weight (default: 1.0)positive_feedback_instruction: How to handle positive examplesnegative_feedback_instruction: How to handle negative examplescomparison_positive: Comparison criteria for positive samplescomparison_negative: Comparison criteria for negative samplesvoiceFeedback.enabled: Enable/disable voice feedback feature (default: true)voiceFeedback.transcriptionModel: OpenAI Whisper model for transcription (default: 'whisper-1' — only Whisper supported)voiceFeedback.extractionModel: Model to extract rating and feedback from transcript (default: 'openai/gpt-4o-mini')Note: Voice feedback requires OPENAI_API_KEY in your .env file. Press and hold space bar in the feedback dialog to record voice feedback.
OPENAI_API_KEY)Frontend: Next.js with AI SDK (ai package)
useChat and useObject hooksBackend: Next.js API routes
/api/chat - Text and structured chat endpoints/api/optimize - GEPA optimization with streaming progress/api/samples, /api/runs - Data persistence/api/metrics-prompt - Configurable metricsOptimization Engine: TypeScript implementation
src/app/api/optimize/route.tssrc/lib/metrics.tsAll data is stored locally in your project:
Configuration:
dspyground.config.ts — All configuration: tools, prompts, schema, preferences, and metricsRuntime Data:
.dspyground/data/runs.json — Optimization history with all runs and scores.dspyground/data/samples.json — Collected conversation samples organized by groupsNote: Add .dspyground/ to your .gitignore to keep runtime data local (automatically done during init).
GEPA:
AI SDK:
Built by the team that built Langtrace AI and Zest AI.
Apache-2.0. See LICENSE.
FAQs
DSPyGround - Optimize and test your AI agents with AI SDK
The npm package dspyground receives a total of 4 weekly downloads. As such, dspyground popularity was classified as not popular.
We found that dspyground demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Following multiple malicious extension incidents, Open VSX outlines new safeguards designed to catch risky uploads earlier.

Research
/Security News
Threat actors compromised four oorzc Open VSX extensions with more than 22,000 downloads, pushing malicious versions that install a staged loader, evade Russian-locale systems, pull C2 from Solana memos, and steal macOS credentials and wallets.

Security News
Lodash 4.17.23 marks a security reset, with maintainers rebuilding governance and infrastructure to support long-term, sustainable maintenance.