A unified hub to create, simulate, and evaluate methods for patient/client simulation.
📚 Documentation | 🚀 Quick Start | 📦 Supported Agents
Set up and activate the virtual environment (after installing uv)
uv sync
source .venv/bin/activateCreate a file named .env and fill it with your API credentials:
OPENAI_API_KEY=<your API key>
OPENAI_BASE_URL=<your API base URL> [Optional]Run the following script for simulation (with default configs)
uv run python -m examples.simulateYou can also run the following script to run customized simulations.
uv run python -m examples.simulate client=[client] therapist=[therapist] evaluator=evaluator evaluator.eval_type=[eval_type]| Therapist | Key | Description |
|---|---|---|
| CBT Therapist | CBT |
Cognitive Behavioral Therapy therapist |
| Eliza | eliza |
Classic pattern-matching therapist |
| Bad Therapist | bad |
Deliberately poor therapist for training |
| User | user |
Human-in-the-loop therapist |
| Evaluator | Key | Description |
|---|---|---|
| LLM Judge | llm_judge |
LLM-based evaluation of therapy sessions |
You can run the following command to create the necessary files for a new agent:
uv run python -m examples.create generator.gen_agent_type=[client|therapist] generator.gen_agent_name=<agent_name>For example
uv run python -m examples.create generator.gen_agent_type=client generator.gen_agent_name=testpatienthub/
├── base/ # Base classes (ChatAgent, etc.)
├── clients/ # Client agent implementations + configs
├── therapists/ # Therapist agent implementations + configs
├── evaluators/ # Evaluation modules
├── generators/ # Character/file/event generators
├── npcs/ # Non-player character agents
├── configs/ # Shared config utilities
├── events/ # Session management
└── utils/ # Helpers
examples/ # CLI entry points
data/
├── characters/ # Character profiles (JSON)
├── prompts/ # Prompt templates (YAML)
├── sessions/ # Session logs
└── resources/ # Source datasets
docs/ # Documentation (Docusaurus)
See LICENSE for details.