Behaviour for LLM services. Processes LLM context frames and produces text output frames (LLMTextFrame, LLMFullResponseStartFrame, etc.).
@callback process_context(context :: term(), state :: term()) :: {:ok, output_frames :: [struct()], state :: term()}