pub struct AgentProfile {Show 37 fields
pub schema: u32,
pub id: String,
pub name: String,
pub display_name: String,
pub role: Option<String>,
pub version: String,
pub persona: Persona,
pub sys_prompt_file: String,
pub model: ModelConfig,
pub model_ref: Option<String>,
pub mcp_servers: Vec<McpServerEntry>,
pub skills: Vec<String>,
pub installed_skills: Vec<SkillCardEntry>,
pub disabled_skills: Vec<String>,
pub disabled_mcp: Vec<String>,
pub addons: Vec<AddonRef>,
pub transport: TransportConfig,
pub communication: CommunicationConfig,
pub capabilities: Vec<String>,
pub entitlements: Entitlements,
pub notifications: NotificationsConfig,
pub retry: RetryConfig,
pub lifecycle: LifecycleConfig,
pub identity: IdentityConfig,
pub file_transfer: FileTransferConfig,
pub deployment: DeploymentConfig,
pub companion: CompanionConfig,
pub hitl: HitlConfig,
pub voice: VoiceConfig,
pub hooks: HooksConfig,
pub trusted_peers: Vec<TrustedPeer>,
pub created_at: String,
pub updated_at: String,
pub appearance: AgentAppearance,
pub federation: FederationConfig,
pub file_actions: Vec<FileAction>,
pub action_pipeline: ActionPipelineConfig,
}Fields§
§schema: u32§id: String§name: String§display_name: String§role: Option<String>Coarse human-facing role for grouping/filtering (e.g. “Engineer”). A free label, not a registry — bundled defaults are UI suggestions and users can type their own. Discovery/job-routing stays on the A2A card’s skills/tags; this is purely organizational.
version: String§persona: Persona§sys_prompt_file: String§model: ModelConfig§model_ref: Option<String>Optional pointer into ~/.mur/models.yaml. When set, the runtime
prefers the registry entry over the inline model: block.
mcp_servers: Vec<McpServerEntry>§skills: Vec<String>§installed_skills: Vec<SkillCardEntry>Skills installed via mur skill install. Distinct from skills
(which holds legacy per-agent paths from mur agent skill add).
Broadcast in the Agent Card alongside skills.
disabled_skills: Vec<String>Per-agent skill denylist (add-on Phase 1). Skill names that are installed/visible to this agent but suppressed from injection. Non-destructive: the skill’s files/stats are untouched. Empty = all visible skills enabled (back-compat: absent in old profiles).
disabled_mcp: Vec<String>Per-agent MCP denylist (add-on Phase 1). McpServerEntry names not
spawned for this agent. Non-destructive: the entry + its pin stay in
the profile. Empty = all configured servers enabled.
addons: Vec<AddonRef>Plugin-groups imported by this agent (add-on Phase 2). Each is self-contained (members installed per-agent). Absent/empty in legacy profiles (back-compat).
transport: TransportConfig§communication: CommunicationConfig§capabilities: Vec<String>§entitlements: Entitlements§notifications: NotificationsConfig§retry: RetryConfig§lifecycle: LifecycleConfig§identity: IdentityConfigCryptographic identity for cross-host A2A (P0a.5+). Default = empty (legacy P0a profiles continue to load without this block).
file_transfer: FileTransferConfig§deployment: DeploymentConfig§companion: CompanionConfigCompanion subsystem (Phase 1.1+). Default = disabled (legacy profiles continue to load without this block).
hitl: HitlConfigHuman-in-the-loop configuration (Phase 2). Default = disabled.
voice: VoiceConfigVoice I/O configuration (D1). Default = disabled.
hooks: HooksConfigA1: config-driven handler picker. Absent block = all defaults.
trusted_peers: Vec<TrustedPeer>Pubkeys of bridges (and other LLM-less peers) this agent will accept signed envelopes from. Empty = accept no bridge traffic. Default = empty.
created_at: String§updated_at: String§appearance: AgentAppearanceHub companion visual identity (M-h3). Default = default-blob / Normal / Pending.
federation: FederationConfigE6: Pattern federation — snapshot filter + outbox config.
file_actions: Vec<FileAction>A1: declarative UI action list — file_actions rendered as action
buttons in the pending-item selection UI. New top-level key; NOT
nested under capabilities:.
action_pipeline: ActionPipelineConfigA2 + A3: action pipeline configuration (deletion safety + queue limits).
Implementations§
Source§impl AgentProfile
impl AgentProfile
Sourcepub fn group_of(&self, name: &str) -> Option<&AddonRef>
pub fn group_of(&self, name: &str) -> Option<&AddonRef>
The imported add-on group a skill/mcp/command name belongs to.
Sourcepub fn skill_enabled(&self, skill_name: &str) -> bool
pub fn skill_enabled(&self, skill_name: &str) -> bool
Whether skill_name is enabled (§3.3): not denied AND, if it
belongs to an imported group, that group is enabled.
Sourcepub fn mcp_enabled(&self, server_id: &str) -> bool
pub fn mcp_enabled(&self, server_id: &str) -> bool
Whether MCP server server_id is enabled (§3.3).
Sourcepub fn set_skill_enabled(&mut self, skill_name: &str, enabled: bool)
pub fn set_skill_enabled(&mut self, skill_name: &str, enabled: bool)
Toggle a skill for this agent without uninstalling it.
Sourcepub fn set_mcp_enabled(&mut self, server_id: &str, enabled: bool)
pub fn set_mcp_enabled(&mut self, server_id: &str, enabled: bool)
Toggle an MCP server for this agent without removing it.
Sourcepub fn set_addon_enabled(&mut self, addon_id: &str, enabled: bool) -> bool
pub fn set_addon_enabled(&mut self, addon_id: &str, enabled: bool) -> bool
Toggle an imported plugin-group as a unit. Returns false if no add-on has that id.
Sourcepub fn disable_all_addons(&mut self)
pub fn disable_all_addons(&mut self)
Emergency kill-switch (§7): clears every add-on group’s enabled flag.
Members are already forced off by the group AND-gate in skill_enabled /
mcp_enabled, so no denylist push is needed — and avoiding it means
set_addon_enabled(id, true) fully restores the group without leftover
per-member denials.
Sourcepub fn enabled_mcp_servers(&self) -> Vec<McpServerEntry>
pub fn enabled_mcp_servers(&self) -> Vec<McpServerEntry>
This agent’s MCP servers minus any disabled for it.
Trait Implementations§
Source§impl Clone for AgentProfile
impl Clone for AgentProfile
Source§fn clone(&self) -> AgentProfile
fn clone(&self) -> AgentProfile
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 AgentProfile
impl Debug for AgentProfile
Source§impl<'de> Deserialize<'de> for AgentProfile
impl<'de> Deserialize<'de> for AgentProfile
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 PartialEq for AgentProfile
impl PartialEq for AgentProfile
Source§fn eq(&self, other: &AgentProfile) -> bool
fn eq(&self, other: &AgentProfile) -> bool
self and other values to be equal, and is used by ==.