pub struct GraphInterruptPayload {
pub kind: String,
pub node: Option<String>,
pub message: Option<String>,
pub data: Option<Value>,
pub thread_id: String,
pub checkpoint_id: String,
}Expand description
A graph interrupt as it crosses the Agent boundary.
GraphAgent cannot return GraphError::Interrupted to a Runner: the trait
yields events, and an error would end the invocation. It therefore emits one
event carrying this payload, so a caller can read which node paused, why, and
which checkpoint to resume from.
It travels as JSON in Event::provider_metadata under
INTERRUPT_METADATA_KEY rather than as a field on adk_core::EventActions.
A graph-shaped type in adk-core would put a Tier 3 concept in a Tier 1
crate; every other consumer of the event is unaffected by an extra metadata
key.
§Example
use adk_graph::interrupt::GraphInterruptPayload;
if let Some(pause) = GraphInterruptPayload::from_event(event) {
println!("paused at {:?}: {:?}", pause.node, pause.message);
// Resume by invoking the same thread again, supplying any decision.
}Fields§
§kind: String"before", "after", or "dynamic".
node: Option<String>The gated node, for a static interrupt. None for a dynamic one, which
carries a message instead.
message: Option<String>The message a node supplied, for a dynamic interrupt.
data: Option<Value>The data a node attached with NodeOutput::interrupt_with_data.
thread_id: StringThe thread to resume.
checkpoint_id: StringThe checkpoint the run stopped at.
Implementations§
Source§impl GraphInterruptPayload
impl GraphInterruptPayload
Sourcepub fn new(interrupt: &Interrupt, thread_id: &str, checkpoint_id: &str) -> Self
pub fn new(interrupt: &Interrupt, thread_id: &str, checkpoint_id: &str) -> Self
Build a payload from an interrupt and the run it stopped.
Sourcepub fn from_event(event: &Event) -> Option<Self>
pub fn from_event(event: &Event) -> Option<Self>
Read the payload from an event, or None if the event is not a graph
interrupt.
Sourcepub fn to_metadata_value(&self) -> String
pub fn to_metadata_value(&self) -> String
Serialize for transport in Event::provider_metadata.
Trait Implementations§
Source§impl Clone for GraphInterruptPayload
impl Clone for GraphInterruptPayload
Source§fn clone(&self) -> GraphInterruptPayload
fn clone(&self) -> GraphInterruptPayload
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more