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.