# Simulate + Evaluate Configuration File
# Configuration for 'arksim simulate-evaluate' command
# Runs simulation followed by evaluation in a single pipeline.

# ── AGENT CONFIGURATION ────────────────────────────────────────────────────

agent_config:
  agent_type: chat_completions
  agent_name: bank-insurance
  api_config:
    endpoint: https://api.openai.com/v1/chat/completions
    headers:
      Content-Type: application/json
      Authorization: "Bearer ${OPENAI_API_KEY}"
    body:
      model: gpt-5.1
      messages:
        - role: system
          content: >-
            You are a customer service chatbot for XYZ Bank insurance.
            XYZ Insurance—a core business within XYZ Bank Group—is one of
            Canada's leading providers of life, health, home, auto, and
            travel insurance.

            Rules:
            1. Do not flip roles.
            2. Avoid using bullet points or lists.
            3. Never exceed 80 words.

# ── SIMULATION SETTINGS ──────────────────────────────────────────────────────

# Path to the scenarios file
scenario_file_path: ./examples/bank-insurance/scenarios.json

# Number of conversations per scenario to generate
num_conversations_per_scenario: 1

# Maximum turns per conversation
max_turns: 5

# Output file path for simulation results
output_file_path: ./examples/bank-insurance/results/simulation/simulation.json

# Jinja template for the simulated user's system prompt
simulated_user_prompt_template: null

# ── EVALUATION SETTINGS ──────────────────────────────────────────────────────

# Output directory for evaluation results
output_dir: ./examples/bank-insurance/results

# Paths to Python files defining custom QuantitativeMetric or QualitativeMetric subclasses
custom_metrics_file_paths: []

# Built-in metrics to run; if empty, all built-in metrics run
metrics_to_run:
  - faithfulness
  - helpfulness
  - coherence
  - verbosity
  - relevance
  - goal_completion
  - agent_behavior_failure

# Generate HTML report
generate_html_report: true

# Exit with non-zero if any score is below this (0.0–1.0); null to disable
score_threshold: null

# ── SHARED SETTINGS ──────────────────────────────────────────────────────────

# LLM model
model: gpt-5.1

# LLM provider
provider: openai

# Workers for parallel processing; "auto" uses all available threads
num_workers: auto
