// src/agent/team/config.rs // // 团队配置类型与持久化 (.team/{session_id}/config.json)。 use serde::{Deserialize, Serialize}; /// 团队成员状态 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "lowercase")] pub enum MemberStatus { Spawning, Working, Idle, Shutdown, } /// 单个成员配置 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MemberConfig { pub name: String, pub role: String, pub system_prompt: String, pub status: MemberStatus, } /// 团队配置 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct TeamConfig { pub session_id: String, pub lead_name: String, pub members: Vec, } impl TeamConfig { /// 创建新的团队配置 pub fn new(session_id: &str) -> Self { TeamConfig { session_id: session_id.to_string(), lead_name: "lead".to_string(), members: Vec::new(), } } /// 添加成员 pub fn add_member(&mut self, name: &str, role: &str, system_prompt: &str) { self.members.push(MemberConfig { name: name.to_string(), role: role.to_string(), system_prompt: system_prompt.to_string(), status: MemberStatus::Spawning, }); } }