pub mod mock;
pub mod ollama;
pub mod openai_compat;
pub mod ares_backend;
#[cfg(feature = "lancor")]
pub mod lancor;
use crate::agent::{LLMResponse, Message, TokenCallback, ToolDefinition};
use crate::Result;
use async_trait::async_trait;
#[async_trait]
pub trait LlmBackend: Send + Sync {
async fn generate(
&self,
messages: &[Message],
tools: &[ToolDefinition],
on_token: Option<&TokenCallback>,
) -> Result<LLMResponse>;
}