pub struct WorkerPayload {
pub task_id: StepId,
pub attempt: u32,
pub agent: String,
pub system: Option<String>,
pub prompt: String,
pub context: Option<AgentContextView>,
pub system_ref: Option<SystemRef>,
}Expand description
Response body for HTTP /v1/worker/prompt — the shape that lets a
SubAgent pull its task input in a single round-trip.
system: the renderedAgentDef.profile.system_prompt(Nonewhen the profile is absent, or when it was baked but is delivered by reference instead — seesystem_refbelow).prompt:TaskSpec.initial_directiverendered toStringat this boundary (issue #18). The engine storesinitial_directiveasValueend-to-end (EngineState.prompts/Engine::fetch_prompt); the coercion toString(strings verbatim, anything else serde-stringified) happens here inEngine::fetch_worker_payload*because the/v1/worker/promptHTTP wire format is a plain string.agent:TaskSpec.agent— the agent name this dispatch is targeting.attempt: the 1-based attempt number, matching the currenttask.attempt.context: GH #20 Contract C — the materializedcrate::core::agent_context::AgentContextViewfor this(task_id, attempt), whenAgentContextMiddlewarewas layered onto the spawner stack that dispatched it.Noneon pre-#20 payloads (backward compat) and whenever the middleware was never layered.system_ref: GH #31 — populated instead ofsystemwhen the bakedsystem_promptexceeds the server’s configured size threshold. SeeSystemRef.
Fields§
§task_id: StepIdThe task this payload was fetched for. Typed StepId since issue
#14 — serde keeps the wire shape a plain string.
attempt: u321-based attempt number, matching the current task.attempt.
agent: StringName of the agent this dispatch is targeting.
system: Option<String>Rendered system prompt, if the agent profile defines one.
prompt: StringThe task’s initial directive, baked in at dispatch preparation.
context: Option<AgentContextView>GH #20 Contract C: the materialized task-level context view — see the struct doc above.
system_ref: Option<SystemRef>GH #31: by-reference alternative to system when the baked
system_prompt exceeds the server’s SystemRefConfig.threshold_bytes.
Exactly one of system / system_ref is ever Some when a
system_prompt was baked for this dispatch — never both Some,
never both None in that case. Absent (both None) only when no
system_prompt was baked at all (pre-existing system: None
semantics, unchanged).
Trait Implementations§
Source§impl Clone for WorkerPayload
impl Clone for WorkerPayload
Source§fn clone(&self) -> WorkerPayload
fn clone(&self) -> WorkerPayload
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WorkerPayload
impl Debug for WorkerPayload
Source§impl<'de> Deserialize<'de> for WorkerPayload
impl<'de> Deserialize<'de> for WorkerPayload
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for WorkerPayload
impl JsonSchema for WorkerPayload
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for WorkerPayload
impl PartialEq for WorkerPayload
Source§impl Serialize for WorkerPayload
impl Serialize for WorkerPayload
impl StructuralPartialEq for WorkerPayload
Auto Trait Implementations§
impl Freeze for WorkerPayload
impl RefUnwindSafe for WorkerPayload
impl Send for WorkerPayload
impl Sync for WorkerPayload
impl Unpin for WorkerPayload
impl UnsafeUnpin for WorkerPayload
impl UnwindSafe for WorkerPayload
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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