pub struct AtifSectionConfig {
pub enabled: bool,
pub agent_name: String,
pub agent_version: String,
pub model_name: String,
pub tool_definitions: Option<Vec<Value>>,
pub extra: Option<Value>,
pub output_directory: Option<PathBuf>,
pub filename_template: String,
pub storage: Vec<AtifStorageConfig>,
}Expand description
Per-trajectory ATIF exporter config.
When enabled, this section creates a dispatcher that opens a separate
crate::observability::atif::AtifExporter for each top-level agent or turn scope. The
{session_id} placeholder in AtifSectionConfig::filename_template is required so
concurrent sibling trajectories cannot overwrite each other’s files.
Fields§
§enabled: boolWhether ATIF export is active.
agent_name: StringHuman-readable agent name.
agent_version: StringAgent version string.
model_name: StringDefault model name.
tool_definitions: Option<Vec<Value>>Tool definitions available to the agent.
extra: Option<Value>Extra ATIF agent metadata.
output_directory: Option<PathBuf>Directory containing trajectory JSON files. Ignored when storage is non-empty.
filename_template: StringFilename template. {session_id} is replaced with the top-level trajectory scope UUID, and
{metadata.<path>:-fallback} placeholders use path-safe strings from the top-level scope
metadata or the optional literal fallback. When storage is non-empty, the rendered
filename is appended to each backend’s key prefix.
storage: Vec<AtifStorageConfig>Optional list of remote storage destinations. When non-empty, completed
trajectories are uploaded to every configured backend instead of being
written locally; the local file write at output_directory is
skipped. Backends are independent: an upload failure on one destination
is recorded against that destination and skipped on subsequent
trajectories, while the other destinations continue to receive writes.
Trait Implementations§
Source§impl Clone for AtifSectionConfig
impl Clone for AtifSectionConfig
Source§fn clone(&self) -> AtifSectionConfig
fn clone(&self) -> AtifSectionConfig
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 AtifSectionConfig
impl Debug for AtifSectionConfig
Source§impl Default for AtifSectionConfig
impl Default for AtifSectionConfig
Source§impl<'de> Deserialize<'de> for AtifSectionConfig
impl<'de> Deserialize<'de> for AtifSectionConfig
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 EditorConfig for AtifSectionConfig
impl EditorConfig for AtifSectionConfig
Source§fn editor_schema() -> &'static EditorSchema
fn editor_schema() -> &'static EditorSchema
Auto Trait Implementations§
impl Freeze for AtifSectionConfig
impl RefUnwindSafe for AtifSectionConfig
impl Send for AtifSectionConfig
impl Sync for AtifSectionConfig
impl Unpin for AtifSectionConfig
impl UnsafeUnpin for AtifSectionConfig
impl UnwindSafe for AtifSectionConfig
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request