pub struct AgentConfig {
pub name: String,
pub model: String,
pub system_prompt: String,
pub api_key: Option<String>,
pub temperature: Option<f32>,
pub max_tokens: Option<u32>,
pub base_url: Option<String>,
pub top_p: Option<f32>,
pub top_k: Option<u32>,
pub timeout_seconds: Option<u64>,
pub reasoning: Option<bool>,
pub reasoning_effort: Option<String>,
}Expand description
Configuration for a single LLM agent.
This struct can be loaded from a TOML file and used to create an LlmAgent.
§Example
name = "my_agent"
model = "ollama::gemma3:latest"
system_prompt = "You are a helpful assistant."
temperature = 0.7
max_tokens = 1024Fields§
§name: StringUnique name for the agent
model: StringModel in “provider::model” format (e.g., “ollama::gemma3:latest”)
system_prompt: StringSystem prompt for the agent
api_key: Option<String>API key for the LLM provider (optional, can use env vars)
temperature: Option<f32>Temperature for generation (0.0 - 2.0)
max_tokens: Option<u32>Maximum tokens to generate
base_url: Option<String>Base URL override for the LLM provider
top_p: Option<f32>Top-p (nucleus) sampling parameter
top_k: Option<u32>Top-k sampling parameter
timeout_seconds: Option<u64>Request timeout in seconds
reasoning: Option<bool>Enable reasoning mode (for supported providers)
reasoning_effort: Option<String>Reasoning effort level
Implementations§
Source§impl AgentConfig
impl AgentConfig
Sourcepub fn new(name: impl Into<String>, model: impl Into<String>) -> Self
pub fn new(name: impl Into<String>, model: impl Into<String>) -> Self
Create a new AgentConfig with required fields.
Sourcepub fn from_toml(toml_str: &str) -> Result<Self>
pub fn from_toml(toml_str: &str) -> Result<Self>
Parse an AgentConfig from a TOML string.
§Example
use ceylon_runtime::config::AgentConfig;
let toml = r#"
name = "my_agent"
model = "ollama::llama2"
"#;
let config = AgentConfig::from_toml(toml).unwrap();
assert_eq!(config.name, "my_agent");Sourcepub fn from_file(path: impl AsRef<Path>) -> Result<Self>
pub fn from_file(path: impl AsRef<Path>) -> Result<Self>
Load an AgentConfig from a TOML file.
§Example
use ceylon_runtime::config::AgentConfig;
let config = AgentConfig::from_file("agent.toml").unwrap();Sourcepub fn with_system_prompt(self, prompt: impl Into<String>) -> Self
pub fn with_system_prompt(self, prompt: impl Into<String>) -> Self
Set the system prompt.
Sourcepub fn with_api_key(self, api_key: impl Into<String>) -> Self
pub fn with_api_key(self, api_key: impl Into<String>) -> Self
Set the API key.
Sourcepub fn with_temperature(self, temperature: f32) -> Self
pub fn with_temperature(self, temperature: f32) -> Self
Set the temperature.
Sourcepub fn with_max_tokens(self, max_tokens: u32) -> Self
pub fn with_max_tokens(self, max_tokens: u32) -> Self
Set max tokens.
Trait Implementations§
Source§impl Clone for AgentConfig
impl Clone for AgentConfig
Source§fn clone(&self) -> AgentConfig
fn clone(&self) -> AgentConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AgentConfig
impl Debug for AgentConfig
Source§impl Default for AgentConfig
impl Default for AgentConfig
Source§impl<'de> Deserialize<'de> for AgentConfig
impl<'de> Deserialize<'de> for AgentConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for AgentConfig
impl RefUnwindSafe for AgentConfig
impl Send for AgentConfig
impl Sync for AgentConfig
impl Unpin for AgentConfig
impl UnwindSafe for AgentConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more