Skip to main content

AgentContinuation

Struct AgentContinuation 

Source
pub struct AgentContinuation {
    pub thread_id: ThreadId,
    pub turn: usize,
    pub total_usage: TokenUsage,
    pub turn_usage: TokenUsage,
    pub pending_tool_calls: Vec<PendingToolCallInfo>,
    pub awaiting_index: usize,
    pub completed_results: Vec<(String, ToolResult)>,
    pub state: AgentState,
    pub response_id: Option<String>,
    pub stop_reason: Option<StopReason>,
    pub response_content: Vec<ContentBlock>,
}
Expand description

Continuation state that allows resuming the agent loop.

This contains all the internal state needed to continue execution after receiving a confirmation decision. Pass this back when resuming.

§Turn-summary fields

response_id and stop_reason capture the turn-closing LLM call that produced AgentContinuation::pending_tool_calls before the pause. They are carried across the pause boundary so the TurnSummary emitted on the resume path can report the same LLM metadata as the pre-pause summary for the same turn.

Both are Option and default to None for forward compatibility with continuations persisted before these fields existed.

Fields§

§thread_id: ThreadId

Thread ID (used for validation on resume)

§turn: usize

Current turn number

§total_usage: TokenUsage

Total token usage so far

§turn_usage: TokenUsage

Token usage for this specific turn (from the LLM call that generated tool calls)

§pending_tool_calls: Vec<PendingToolCallInfo>

All pending tool calls from this turn

§awaiting_index: usize

Index of the tool call awaiting confirmation

§completed_results: Vec<(String, ToolResult)>

Tool results already collected (for tools before the awaiting one)

§state: AgentState

Agent state snapshot

§response_id: Option<String>

Provider response ID from the LLM call that produced this turn’s pending tool calls.

None for continuations persisted before this field was added, or when the provider did not return an ID.

§stop_reason: Option<StopReason>

Stop reason from the LLM call that produced this turn’s pending tool calls.

None for continuations persisted before this field was added.

§response_content: Vec<ContentBlock>

Full content blocks from the LLM response that produced this turn’s pending tool calls (text, thinking, and tool-use blocks).

When the LLM emits text before tool calls (e.g. “I will run that.” followed by a tool_use block), those text blocks must be preserved so Phase 5 can reconstruct the complete assistant message in the conversation history.

Empty for continuations persisted before this field was added.

Trait Implementations§

Source§

impl Clone for AgentContinuation

Source§

fn clone(&self) -> AgentContinuation

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentContinuation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for AgentContinuation

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for AgentContinuation

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

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
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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.