pub struct AgentSlot {Show 14 fields
pub agent_type: String,
pub role: Option<TeamRole>,
pub description: String,
pub prompt: String,
pub permissive: bool,
pub permissive_deny: Vec<String>,
pub max_steps: Option<usize>,
pub timeout_ms: Option<u64>,
pub parent_id: Option<String>,
pub metadata: Value,
pub workspace: String,
pub agent_dirs: Vec<String>,
pub skill_dirs: Vec<String>,
pub lane_config: Option<SessionQueueConfig>,
}Expand description
Unified agent slot declaration — used for both standalone subagents and team members.
AgentSlot is a superset of SubAgentConfig that also carries an optional
team role. When role is None the slot describes a standalone subagent;
when set, crate::orchestrator::AgentOrchestrator::run_team uses it to
build the team layout.
Fields§
§agent_type: StringAgent type (general, explore, plan, etc.)
role: Option<TeamRole>Team role for this slot; None means standalone subagent.
description: StringTask description
prompt: StringExecution prompt
permissive: boolWhether to bypass HITL (permissive mode)
permissive_deny: Vec<String>Deny rules to enforce even in permissive mode
max_steps: Option<usize>Maximum execution steps
timeout_ms: Option<u64>Execution timeout in milliseconds
parent_id: Option<String>Parent subagent ID (for nesting)
metadata: ValueCustom metadata
workspace: StringWorkspace directory for this slot (defaults to “.”)
agent_dirs: Vec<String>Extra directories to scan for agent definition files
skill_dirs: Vec<String>Extra directories to scan for skill definition files
lane_config: Option<SessionQueueConfig>Lane queue configuration for External/Hybrid tool dispatch
Implementations§
Source§impl AgentSlot
impl AgentSlot
Sourcepub fn new(agent_type: impl Into<String>, prompt: impl Into<String>) -> Self
pub fn new(agent_type: impl Into<String>, prompt: impl Into<String>) -> Self
Create a new agent slot with the given agent type and prompt.
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set the task description.
Sourcepub fn with_permissive(self, permissive: bool) -> Self
pub fn with_permissive(self, permissive: bool) -> Self
Set permissive mode (bypass HITL).
Sourcepub fn with_permissive_deny(self, deny_rules: Vec<String>) -> Self
pub fn with_permissive_deny(self, deny_rules: Vec<String>) -> Self
Set deny rules to enforce even in permissive mode.
Sourcepub fn with_max_steps(self, max_steps: usize) -> Self
pub fn with_max_steps(self, max_steps: usize) -> Self
Set the maximum number of execution steps.
Sourcepub fn with_timeout_ms(self, timeout_ms: u64) -> Self
pub fn with_timeout_ms(self, timeout_ms: u64) -> Self
Set the execution timeout in milliseconds.
Sourcepub fn with_parent_id(self, parent_id: impl Into<String>) -> Self
pub fn with_parent_id(self, parent_id: impl Into<String>) -> Self
Set the parent subagent ID.
Sourcepub fn with_metadata(self, metadata: Value) -> Self
pub fn with_metadata(self, metadata: Value) -> Self
Set custom metadata.
Sourcepub fn with_workspace(self, workspace: impl Into<String>) -> Self
pub fn with_workspace(self, workspace: impl Into<String>) -> Self
Set the workspace directory.
Sourcepub fn with_agent_dirs(self, dirs: Vec<String>) -> Self
pub fn with_agent_dirs(self, dirs: Vec<String>) -> Self
Add extra directories to scan for agent definition files.
Sourcepub fn with_skill_dirs(self, dirs: Vec<String>) -> Self
pub fn with_skill_dirs(self, dirs: Vec<String>) -> Self
Add extra directories to scan for skill definition files.
Sourcepub fn with_lane_config(self, config: SessionQueueConfig) -> Self
pub fn with_lane_config(self, config: SessionQueueConfig) -> Self
Set lane queue configuration for External/Hybrid tool dispatch.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AgentSlot
impl<'de> Deserialize<'de> for AgentSlot
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 From<AgentSlot> for SubAgentConfig
impl From<AgentSlot> for SubAgentConfig
Source§impl From<SubAgentConfig> for AgentSlot
impl From<SubAgentConfig> for AgentSlot
Source§fn from(c: SubAgentConfig) -> Self
fn from(c: SubAgentConfig) -> Self
Auto Trait Implementations§
impl Freeze for AgentSlot
impl RefUnwindSafe for AgentSlot
impl Send for AgentSlot
impl Sync for AgentSlot
impl Unpin for AgentSlot
impl UnsafeUnpin for AgentSlot
impl UnwindSafe for AgentSlot
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,
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 more