Skip to main content

Synthetic customer generation and reliability testing platform for conversational voice agents.

Project description

PersonaForge

"How do we know our voice agent won't fail in production?"

PersonaForge answers that question before your first customer call.

PersonaForge is a synthetic customer generation and reliability testing platform for conversational voice agents. It acts as the "GitHub Actions for Voice Agents," allowing developers to autonomously validate behavior, reliability, and compliance through thousands of simulated customer interactions.


The Vision

Traditional testing for voice agents is broken. It's manual, slow, and ignores voice-native failures like interruptions and latency.

The PersonaForge Way:

Build Agent -> 1,000 Synthetic Customers -> Failure Detection -> Deploy Safely

Key Features

  • Forge (Persona Engine): Goal-driven, emotionally consistent synthetic customers. They don't just generate text; they maintain memory, pursue subgoals, and react to agent behavior.
  • Runner (Execution Engine): High-concurrency voice-native conversation runner. Supports ElevenLabs Conversational AI with real-time audio streaming.
  • Judge (Evaluation Engine): Multi-stage LLM evaluation that detects:
    • Hallucinations: Agent inventing policies or facts.
    • Escalation Failures: Agent failing to hand off to a human when required.
    • Compliance: Violations of safety or business rules.
    • Voice Metrics: Interruption recovery and response latency.
  • CI/CD Integration: Built-in quality gates for your deployment pipeline.
  • Studio (Dashboard): Visualize regressions, explore failure clusters, and replay conversations turn-by-turn.

Documentation

Comprehensive user guides are available in the docs/ directory:

Quick Start

1. Installation

# Clone the repository
git clone https://github.com/yourusername/personaforge.git
cd personaforge

# Install dependencies
pip install -r requirements.txt

2. Configure API Keys

Create a .env file in the root directory:

ELEVENLABS_API_KEY=your_key_here
GOOGLE_API_KEY=your_gemini_key_here

3. Initialize Project

export PYTHONPATH=$PYTHONPATH:.
python3 -m personaforge.backend.app.cli.main init

4. Run a Scenario

python3 -m personaforge.backend.app.cli.main run scenarios/telecom_refund.yaml

5. Check for Regressions (CI Mode)

python3 -m personaforge.backend.app.cli.main ci --scenario scenarios/telecom_refund.yaml

Dashboard

The PersonaForge Studio provides a deep dive into your agent's health.

# Start the backend
uvicorn personaforge.backend.app.main:app --reload

# Start the frontend
cd personaforge/web
npm install
npm run dev

Visit http://localhost:3000 to view pass rates, failure clusters, and conversation replays.

Docker Support

You can run the entire PersonaForge stack (PostgreSQL, Redis, Backend, Frontend, and Worker) using Docker Compose:

# Create a .env file with your API keys
cp .env.example .env

# Start the services
docker-compose up --build

CI/CD Integration

PersonaForge is designed to be part of your development workflow. The repository includes a GitHub Action template in .github/workflows/ci.yml that:

  1. Runs unit tests.
  2. Initializes the PersonaForge environment.
  3. Executes a CI quality gate check against your scenarios.

To use this, add GOOGLE_API_KEY and ELEVENLABS_API_KEY to your GitHub repository secrets.

Architecture

PersonaForge is built with a modular, provider-first architecture:

  • FastAPI / SQLModel: High-performance backend with PostgreSQL.
  • Gemini 3.1 Flash Lite: Ultra-low latency LLM reasoning for customer actions and judging.
  • ElevenLabs ConvAI: Direct WebSocket integration for voice interaction.
  • Redis / RQ: Asynchronous task processing for large-scale test suites.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Built for the future of Conversational AI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

personaforge-1.0.0.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

personaforge-1.0.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file personaforge-1.0.0.tar.gz.

File metadata

  • Download URL: personaforge-1.0.0.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for personaforge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0cb44221ff4eb3f63b7fa286c9d3b0887d2e8b446a4942cb041343c3407b9446
MD5 c2a2b1fd9bab1062d4f6d95984351ed4
BLAKE2b-256 b7a39095b76933876128c20a064fcfd9b19dfff8055ca725b9380af291b8110f

See more details on using hashes here.

File details

Details for the file personaforge-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: personaforge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for personaforge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d0052136e9e110aa18fd65ec8cb3587b9fa1bca280b5683dbed8cbba66c70598
MD5 6ce1468d38f8e952902e0b8f2d9a6379
BLAKE2b-256 730aaaacdc624f98f184f9c35b799384ed5042d315b0aba6709c0a83a2906071

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page