pub enum RoundObservation {
Accepted {
prompt_tokens: u32,
estimated_tokens: usize,
},
SuspectedOverflow {
prompt_tokens: u32,
},
ThinkingOnly,
}Expand description
One per-round capability observation, reported through
ChatCtx::on_round_usage at the moment it is observed (Phase 20,
docs/design/model-self-tuning.md §2.2 — the recover_cw_400 pattern,
generalized to the success direction). Evidence must not wait for a turn
epilogue an error can skip: the motivating failure discarded a backend-
accepted 8,734-token prompt because the turn later ended in Err.
Variants§
Accepted
Backend evaluated prompt_tokens and the round produced a usable
response (tool calls or non-empty content). estimated_tokens is the
loop’s chars/4 estimate of the same request, for calibration.
Quality-gated AND truncation-gated at the emission sites: never
emitted when the prompt was within 5% of the request’s num_ctx
(Ollama may have silently dropped the head of the prompt).
SuspectedOverflow
Persistent empty responses at prompt_tokens after retries (the
85%-of-safe-context silent-overflow exit).
ThinkingOnly
Response carried only non-content fields (thinking/reasoning) with empty content.
Trait Implementations§
Source§impl Clone for RoundObservation
impl Clone for RoundObservation
Source§fn clone(&self) -> RoundObservation
fn clone(&self) -> RoundObservation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RoundObservation
Source§impl Debug for RoundObservation
impl Debug for RoundObservation
impl Eq for RoundObservation
Source§impl PartialEq for RoundObservation
impl PartialEq for RoundObservation
Source§fn eq(&self, other: &RoundObservation) -> bool
fn eq(&self, other: &RoundObservation) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RoundObservation
Auto Trait Implementations§
impl Freeze for RoundObservation
impl RefUnwindSafe for RoundObservation
impl Send for RoundObservation
impl Sync for RoundObservation
impl Unpin for RoundObservation
impl UnsafeUnpin for RoundObservation
impl UnwindSafe for RoundObservation
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
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>
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>
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