Skip to main content

ResearchStep

Struct ResearchStep 

Source
pub struct ResearchStep { /* private fields */ }
Expand description

An agent that proposes experiments, runs them, and decides when to stop.

Implementations§

Source§

impl ResearchStep

Source

pub fn config_hash(&self) -> CacheKey

Content-addressable hash of this step’s configuration.

Every field that is not #[soma(skip_hash)], so adding one cannot silently leave it out of the journal key.

Source§

impl ResearchStep

Source

pub fn new( model: impl Into<String>, objective: impl Into<String>, pipeline: Graph, ) -> Self

A researcher that pursues objective by experimenting on pipeline, asking model what to try next. Starts with an empty seed and 20 iterations; adjust with with_history and with_max_iterations.

Source

pub fn with_history(self, records: Vec<ExperimentRecord>) -> Self

Seed the loop with what is already known. An agent that starts from an empty pool repeats work someone already did.

Source

pub fn with_max_iterations(self, n: usize) -> Self

Cap the loop at n experiments. The cap is the budget, not the goal — the agent may Conclude well before reaching it.

Source

pub fn completed(&self, ctx: &StepCtx<'_>) -> Vec<ExperimentRecord>

Every experiment behind this run, seed first, newest last.

Rebuilt from the turns rather than accumulated in a field. A step is a description of behaviour, not a place to keep state: derive the history and a replay reconstructs exactly the history the original run had, because it replays exactly the same results.

Trait Implementations§

Source§

impl Serialize for ResearchStep

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Step for ResearchStep

Source§

fn config_hash(&self) -> CacheKey

Derived: the pipeline under investigation is part of the key too, which the hand-written version left out — two research loops over different graphs shared a journal.

Source§

fn meta(&self) -> StepMeta

This step’s [StepMeta]: turn budget, journaling, schemas, placement.
Source§

fn poll(&self, ctx: &StepCtx<'_>) -> Result<Transition>

Advance one turn. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

The receiver as &dyn Any, ready for downcast_ref.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more