pub struct AgentDefinition {Show 22 fields
pub id: String,
pub slug: String,
pub name: String,
pub icon: String,
pub provider: String,
pub description: String,
pub working_directory: String,
pub shell: String,
pub provider_flags: String,
pub auto_start: i64,
pub restart_on_crash: i64,
pub idle_timeout_minutes: i64,
pub created_at: i64,
pub agent_type: String,
pub environment: String,
pub agent_bus_id: String,
pub is_seeded: i64,
pub accounts: String,
pub parent_id: String,
pub branch_label: String,
pub updated_at: i64,
pub user_hidden: i64,
}Expand description
A user-defined AI agent in the user’s agent-definition catalog.
Fields§
§id: String§slug: StringStable, filesystem-safe identifier. Drives working directory,
env var keys (AGENTMUX_AGENT_ID), and cross-references.
NEVER changes after creation — distinct from name which is
the renameable display. See
specs/SPEC_AGENT_IDENTITY_RESTRUCTURE_2026_04_14.md.
name: String§icon: String§provider: String§description: String§working_directory: String§shell: String§provider_flags: String§auto_start: i64§restart_on_crash: i64§idle_timeout_minutes: i64§created_at: i64§agent_type: String§environment: String§agent_bus_id: String§is_seeded: i64§accounts: StringJSON-encoded per-provider account assignments
({"github":"acct-id", …}). Written by the Agent pane’s Identity
tab (AgentIdentityPanel) via updateagent, read back by
parseAgentAccounts and consumed by startup credential
resolution. (An older v6 comment called this deprecated in favour
of db_agent_identity_links; that migration never completed — the
JSON blob is still the live store, so the schema flatten keeps the
column.)
parent_id: StringParent definition id (db_agent_definitions.id). Empty string = root definition; non-empty = this agent was forked from another. Added in v6. See spec §Phase 1.
branch_label: StringLabel describing the branch (e.g. "pr-422-review",
"experiment-refactor"). Empty for root definitions and for
branches that didn’t set a label. Added in v6.
updated_at: i64Last-modified timestamp (epoch ms). Set to created_at on insert
and refreshed on every agent_def_update. Schema v2. 0 for
rows written before v2 (until next update).
Per-user hide flag for seeded templates. 1 = the user clicked
“Hide template” on the picker’s + New from template tier; the
row stays on disk (templates are manifest-managed; deletion would
fight re-seed) but the default listagents view filters it out.
Reset to 0 by the agent-seed re-sync flow for any NEW template
id newly added to the manifest, so a fresh template surfaces once
even if a same-named one was previously hidden. Schema v3 (Phase
2 of SPEC_AGENT_PICKER_TWO_TIER_2026_05_24.md — Q2 Decision Y).
User-owned rows (is_seeded = 0) MUST stay at 0 here; their
removal path is deleteagent, not hide.
Trait Implementations§
Source§impl Clone for AgentDefinition
impl Clone for AgentDefinition
Source§fn clone(&self) -> AgentDefinition
fn clone(&self) -> AgentDefinition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AgentDefinition
impl Debug for AgentDefinition
Source§impl<'de> Deserialize<'de> for AgentDefinition
impl<'de> Deserialize<'de> for AgentDefinition
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>,
Auto Trait Implementations§
impl Freeze for AgentDefinition
impl RefUnwindSafe for AgentDefinition
impl Send for AgentDefinition
impl Sync for AgentDefinition
impl Unpin for AgentDefinition
impl UnwindSafe for AgentDefinition
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.