{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://jambonz.org/schema/verbs/llm",
  "minVersion": "0.9.6",
  "title": "LLM",
  "description": "Connects the caller to a large language model for a real-time voice conversation. Handles the complete STT → LLM → TTS pipeline, including turn detection, interruption handling, and tool/function calling. The caller speaks naturally and the LLM responds via synthesized speech. This is the primary verb for building AI voice agents on jambonz.",
  "type": "object",
  "allOf": [
    {
      "$ref": "../components/llm-base"
    }
  ],
  "properties": {
    "verb": {
      "const": "llm",
      "description": "The verb name."
    }
  },
  "required": [
    "vendor",
    "llmOptions"
  ],
  "examples": [
    {
      "verb": "llm",
      "vendor": "openai",
      "model": "gpt-4o",
      "auth": {
        "apiKey": "sk-..."
      },
      "llmOptions": {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful customer service agent. Be concise and friendly."
          }
        ],
        "temperature": 0.7
      },
      "actionHook": "/llm-complete",
      "toolHook": "/llm-tool-call"
    }
  ]
}
