pub struct CostGuardrails {
pub warn_usd: Option<f64>,
pub hard_limit_usd: Option<f64>,
}Expand description
Spending caps applied to the agentic loop.
Both fields are None by default — i.e. no limits. Once warn_usd
is reached the agent emits a one-shot tracing::warn!. Once
hard_limit_usd is reached the agent refuses further provider
requests and returns an error.
Fields§
§warn_usd: Option<f64>Warn once when cumulative session cost exceeds this USD threshold.
hard_limit_usd: Option<f64>Hard-stop: refuse new provider requests above this USD threshold.
Implementations§
Source§impl CostGuardrails
impl CostGuardrails
Sourcepub fn with_env_overrides(self) -> Self
pub fn with_env_overrides(self) -> Self
Overlay environment-variable overrides on top of a base config.
Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Load guardrails using env-only (no config file). Used from code
paths that don’t have a loaded crate::config::Config on hand.
Trait Implementations§
Source§impl Clone for CostGuardrails
impl Clone for CostGuardrails
Source§fn clone(&self) -> CostGuardrails
fn clone(&self) -> CostGuardrails
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 CostGuardrails
impl Debug for CostGuardrails
Source§impl Default for CostGuardrails
impl Default for CostGuardrails
Source§fn default() -> CostGuardrails
fn default() -> CostGuardrails
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for CostGuardrails
impl<'de> Deserialize<'de> for CostGuardrails
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 CostGuardrails
impl RefUnwindSafe for CostGuardrails
impl Send for CostGuardrails
impl Sync for CostGuardrails
impl Unpin for CostGuardrails
impl UnsafeUnpin for CostGuardrails
impl UnwindSafe for CostGuardrails
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more