pub enum XaiReasoningCapability {
Effort {
supported: &'static [ReasoningLevel],
default_level: Option<ReasoningLevel>,
can_disable: bool,
},
IntrinsicReasoning,
NonReasoning,
}Expand description
Documented reasoning capability for an exact xAI model id.
Evidence: official xAI docs and a live GET /v1/models probe
(2026-08-14). grok-4.5/grok-4.5-latest and grok-4.6 support
low/medium/high effort, default high, and reasoning cannot be disabled.
xAI has not published a grok-4.6-latest alias (upstream 404), so only
the bare id is cataloged. grok-4.20-multi-agent-0309 supports
low/medium/high/xhigh where effort controls agent count. No other exact id
has documented effort support in that original snapshot.
Added 2026-09-21: exact grok-4.7 supports low/medium/high/xhigh,
default high, no off (https://docs.x.ai/developers/model-capabilities/text/reasoning).
The older models’ capability contracts are unchanged by this addition.
Variants§
Effort
Documented named-effort control (reasoning:{effort:"..."} on the
Responses wire).
IntrinsicReasoning
Reasoning is intrinsic; no documented effort control or disable switch.
NonReasoning
Model does not reason; named reasoning levels must be rejected.
Trait Implementations§
Source§impl Clone for XaiReasoningCapability
impl Clone for XaiReasoningCapability
impl Copy for XaiReasoningCapability
Source§impl Debug for XaiReasoningCapability
impl Debug for XaiReasoningCapability
impl Eq for XaiReasoningCapability
Source§impl PartialEq for XaiReasoningCapability
impl PartialEq for XaiReasoningCapability
impl StructuralPartialEq for XaiReasoningCapability
Auto Trait Implementations§
impl Freeze for XaiReasoningCapability
impl RefUnwindSafe for XaiReasoningCapability
impl Send for XaiReasoningCapability
impl Sync for XaiReasoningCapability
impl Unpin for XaiReasoningCapability
impl UnsafeUnpin for XaiReasoningCapability
impl UnwindSafe for XaiReasoningCapability
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.