# Agent behavior configuration (safe to edit per profile)
# This file only controls agent-side behavior (VAD/LLM/TTS/ASR providers).
# Infra/server/network settings should stay in .env.

agent:
  vad:
    type: silero
    model_path: data/vad/silero_vad.onnx
    threshold: 0.5
    min_speech_duration_ms: 100
    eou_threshold_ms: 800

  llm:
    # provider: openai | openai_compatible | siliconflow
    provider: openai_compatible
    model: deepseek-v3
    temperature: 0.7
    # Required: no fallback. You can still reference env explicitly.
    api_key: your_llm_api_key
    # Optional for OpenAI-compatible endpoints:
    api_url: https://api.qnaigc.com/v1

  tts:
    # provider: edge | openai_compatible | siliconflow | dashscope
    # dashscope defaults (if omitted):
    #   api_url: wss://dashscope.aliyuncs.com/api-ws/v1/realtime
    #   model: qwen3-tts-flash-realtime
    #   dashscope_mode: commit (engine splits) | server_commit (dashscope splits)
    #   note: dashscope_mode/mode is ONLY used when provider=dashscope.
    provider: openai_compatible
    api_key: your_tts_api_key
    api_url: https://api.siliconflow.cn/v1/audio/speech
    model: FunAudioLLM/CosyVoice2-0.5B
    voice: anna
    speed: 1.0

  asr:
    # provider: buffered | openai_compatible | siliconflow
    provider: openai_compatible
    api_key: you_asr_api_key
    api_url: https://api.siliconflow.cn/v1/audio/transcriptions
    model: FunAudioLLM/SenseVoiceSmall
    interim_interval_ms: 500
    min_audio_ms: 300
    start_min_speech_ms: 160
    pre_speech_ms: 240
    final_tail_ms: 120

  duplex:
    enabled: true
    system_prompt: You are a helpful, friendly voice assistant. Keep your responses concise and conversational.

  barge_in:
    min_duration_ms: 200
    silence_tolerance_ms: 60
