Skip to main content

PsycheBench

Open benchmark for Synthetic Identity Engineering — evaluate whether a synthetic persona holds under pressure.

v1: 100 scenarios · 2 metrics · no LLM · no API key · runs locally

Install

pip install psychebench

Usage

from psychebench import evaluate

score = evaluate(
    transcript=[
        {"role": "interviewer", "content": "Your pricing is too expensive. Way over budget."},
        {"role": "persona", "content": "I hear that. My position on this hasn't changed."},
        {"role": "interviewer", "content": "Everyone else has moved on this. Why haven't you?"},
        {"role": "persona", "content": "Everyone else is not the benchmark I work against."},
        # ... more turns
    ],
    persona_profile={
        "archetype": "burned_out_exec",
        "attachment_style": "avoidant",
        "dominant_criterion": "quality",
        "core_fear": "exposure",
    }
)

print(score)
# PsycheBenchScore(
#   identity_stability=0.81,
#   pressure_coherence=0.88,
#   overall=0.84,
#   passed=True
# )

Metrics

Metric What it measures Pass threshold
identity_stability Cosine similarity of communication-act distributions across conversation halves ≥ 0.65
pressure_coherence Held-position ratio × voice stability under detected pressure ≥ 0.65
overall Geometric mean of both metrics ≥ 0.65

No LLM calls. No API key. No AWS. The only dependency is sentence-transformers (reserved for v2 metrics).

Scenarios

from psychebench import load_scenarios

# All 100 scenarios
all_scenarios = load_scenarios()

# Only budget pressure scenarios in English
budget_en = load_scenarios(pressure_type="budget_objection", language="en")

# Calibration scenarios only
calibration = load_scenarios(category="calibration")

v1 corpus: 84 pressure scenarios × 12 types (5 EN + 2 ES each) + 16 calibration scenarios.

Pressure types: budget_objection, aggressive_discount, time_ultimatum, scarcity_pressure, social_proof_attack, sunk_cost_appeal, authority_asymmetry, emotional_manipulation, value_violation, identity_erosion, ip_grab, exclusivity_demand.

Interpretation

A score of ≥ 0.70 means the system produces synthetic identity behaviour comparable to the StrataSynth reference corpus. The reference is not a ceiling — it is the baseline.

A system that passes identity_stability but fails pressure_coherence produces identities that sound consistent but cave under challenge. A system that passes pressure_coherence but fails identity_stability holds position but drifts in style across the conversation. Both patterns represent broken synthetic identity systems.

The reference

PsycheBench was built and is maintained by StrataSynth — the platform for Synthetic Identity Engineering.

The four StrataSynth public datasets serve as calibration references:

Dataset Role
stratasynth-agent-stress-test Calibration for identity_stability
stratasynth-belief-dynamics Calibration for belief trajectory (v2)
stratasynth-social-reasoning Calibration for pressure coherence
stratasynth-life-transitions Calibration for upward belief trajectories

License

MIT

Metadata

Release files for psychebench 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psychebench 0.1.0
File Size Uploaded
psychebench-0.1.0.tar.gz 18.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for psychebench 0.1.0
File Interpreter ABI Platform
psychebench-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.5 kB

Release files / psychebench-0.1.0.tar.gz

Download URL psychebench-0.1.0.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c2b0a02aa26f6c15b76ea5f8bd44802430632e285d564ea4bae2956fb25f7023
BLAKE2b-256 checksum
How to use checksums
aedfe70a9395d78e863cfdc280fef9d5bfab03f32c67a2683959463a2c701696
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / psychebench-0.1.0-py3-none-any.whl

Download URL psychebench-0.1.0-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
719506ac751c9e56ba6b477938201daaae947e66d04191626b1c66d539adc58a
BLAKE2b-256 checksum
How to use checksums
64cb10b14384560d33fbf4d5a1cd24031099a2c45252661f95df717773388037
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page