Skip to main content

ClientCast

Towards a Client-Centered Assessment of LLM Therapists by Client Simulation

Venue: ArXiv
Paper: ArXiv

Overview

ClientCast creates client simulations for assessing LLM-based therapists. It introduces well-designed and detailed psychological profiles including Big Five personality traits, symptom assessments (PHQ-9, GAD-7, OQ-45), and conversation history from real therapy sessions to create realistic client behavior.

Key Features

  • Deep Psychological Profiling: Models Big Five personality traits alongside critical therapy-relevant traits like resistance and emotional fluctuation.
  • Symptom Assessment: Grounded in validated scales (PHQ-9, GAD-7, OQ-45).
  • Real Conversation Grounding: Uses human therapy conversation excerpts
  • Client-Centered Focus: Enables the simulated client to evaluate the therapist

How It Works

  1. Profile Construction: Builds case synopsis from basic profile
  2. Symptom Integration: Incorporates identified symptoms with severity levels
  3. Personality Mapping: Uses Big Five traits to guide response style
  4. Conversation Grounding: References real therapy conversation excerpts
  5. Response Generation: Produces responses consistent with profile and conversation context

Psychological Scales

ClientCast integrates multiple validated assessment instruments:

ScaleDescriptionFocus
PHQ-9Patient Health QuestionnaireDepression symptoms
GAD-7Generalized Anxiety Disorder scaleAnxiety symptoms
OQ-45Outcome QuestionnaireOverall functioning

Usage

CLI

uv run python -m examples.simulate client=clientCast

Python

from patienthub.clients import get_client

client = get_client(agent_name="clientCast", lang='en')

response = client.generate_response("What brings you in today?")
print(response.content)

Configuration

OptionDescriptionDefault
prompt_pathPath to prompt filedata/prompts/client/clientCast.yaml
data_pathPath to character filedata/characters/ClientCast.json
conv_pathPath to conversation datadata/resources/ClientCast/human_data.json
symptoms_pathPath to symptom assessment definitionsdata/resources/ClientCast/symptoms.json
data_idxCharacter index0
conv_idConversation excerpt ID0

Character Data Format

{
"basic_profile": {
"name": "Not Specified",
"gender": "Female",
"age": -1,
"occupation": "Not Specified",
"topic": "alcohol consumption – discussing frequency and effects...",
"situation": "The client drinks alcohol regularly to unwind...",
"emotion": "The client feels guilty about their drinking habits...",
"reasons": "Concerned about alcohol consumption and its effect on depression",
"problem": "alcohol consumption – struggles with drinking more than intended",
"feeling_expression": "Medium – shares feelings but does not deeply explore them",
"emotional_fluctuation": "Medium – talks about relief and worsening feelings",
"resistance": "Low – open to discussing drinking habits"
},
"big_five": {
"Openness": {
"score_percent": 55,
"explanation": "Enjoys watching movies and reading..."
},
"Conscientiousness": {
"score_percent": 60,
"explanation": "Aware of drinking habits, willing to set goals..."
},
"Extraversion": {
"score_percent": 45,
"explanation": "Enjoys social activities but doesn't mention frequent interactions"
},
"Agreeableness": {
"score_percent": 65,
"explanation": "Willing to reduce alcohol consumption, cooperative"
},
"Neuroticism": {
"score_percent": 75,
"explanation": "Experiences depression and uses alcohol to cope"
}
},
"symptoms": {
"PHQ-9": {
"1": {
"identified": false,
"severity_level": null,
"explanation": "Still finds interest in activities..."
}
},
"GAD-7": {
"1": {
"identified": false,
"explanation": "No mentioned anxiety symptoms..."
}
},
"OQ-45": {
"1": {
"identified": false,
"explanation": "Unable to assess social interactions..."
}
}
}
}

Resources

data/resources/ClientCast/human_data.json: Human therapy conversation excerpts for grounding client simulations data/resources/ClientCast/symptoms.json: Symptom item texts for PHQ-9, GAD-7, and OQ-45 used to identify symptoms in the ClientCast profile