pub struct TeammateLoopConfig {Show 25 fields
pub name: String,
pub role: String,
pub initial_prompt: String,
pub provider: ModelProvider,
pub base_system_prompt: Option<String>,
pub session_id: Arc<Mutex<String>>,
pub disabled_tools: Vec<String>,
pub deferred_tools: Arc<Mutex<Vec<String>>>,
pub session_loaded_deferred: Arc<Mutex<Vec<String>>>,
pub registry: Arc<ToolRegistry>,
pub jcli_config: Arc<JcliConfig>,
pub teammate_manager: Arc<Mutex<TeammateManager>>,
pub broadcast_inbox: Arc<Mutex<Vec<ChatMessage>>>,
pub cancel_token: CancellationToken,
pub system_prompt_snapshot: Arc<Mutex<String>>,
pub messages_snapshot: Arc<Mutex<Vec<ChatMessage>>>,
pub status: Arc<Mutex<TeammateStatus>>,
pub tool_calls_count: Arc<AtomicUsize>,
pub current_tool: Arc<Mutex<Option<String>>>,
pub wake_flag: Arc<AtomicBool>,
pub work_done: Arc<AtomicBool>,
pub hook_manager: Arc<Mutex<HookManager>>,
pub disabled_hooks: Arc<Mutex<Vec<String>>>,
pub context_config: Arc<Mutex<AgentContextConfig>>,
pub sub_agent_metrics: Arc<Mutex<SubAgentMetrics>>,
}Expand description
Teammate agent loop 的配置
Fields§
§name: String§role: String§initial_prompt: String§provider: ModelProvider§base_system_prompt: Option<String>§session_id: Arc<Mutex<String>>共享的当前 session id 槽(session 切换时会被主线程更新)
disabled_tools: Vec<String>禁用工具名列表
deferred_tools: Arc<Mutex<Vec<String>>>延迟加载的工具列表(与主 agent 共享同一 Arc)
session_loaded_deferred: Arc<Mutex<Vec<String>>>本会话 LoadTool 已加载的 deferred 工具(与主 agent 共享同一 Arc)
registry: Arc<ToolRegistry>§jcli_config: Arc<JcliConfig>§teammate_manager: Arc<Mutex<TeammateManager>>§broadcast_inbox: Arc<Mutex<Vec<ChatMessage>>>广播收件箱(来自其他 agent 的广播消息)
cancel_token: CancellationToken§system_prompt_snapshot: Arc<Mutex<String>>供 /dump 读取的 system prompt 快照
messages_snapshot: Arc<Mutex<Vec<ChatMessage>>>供 /dump 读取的 messages 快照
status: Arc<Mutex<TeammateStatus>>细粒度运行状态(与 TeammateHandle 共享)
tool_calls_count: Arc<AtomicUsize>累计工具调用次数(与 TeammateHandle 共享)
current_tool: Arc<Mutex<Option<String>>>当前正在执行的工具名(与 TeammateHandle 共享)
wake_flag: Arc<AtomicBool>唤醒标志(与 TeammateHandle 共享):@self 或 from==Main 的广播会 set 它 WorkDone 后仅此标志能触发重新激活(清除 work_done),未 WorkDone 时任何消息都唤醒
work_done: Arc<AtomicBool>WorkDone 终态标志(与 TeammateHandle 共享):WorkDone 工具调用后 set,loop 看到后退出
hook_manager: Arc<Mutex<HookManager>>父 agent 共享的 HookManager(Teammate 调 LLM 前走 PreLlmRequest hook 链)
disabled_hooks: Arc<Mutex<Vec<String>>>父 agent 的 disabled_hooks 快照(Teammate 走 hook 链时用)
context_config: Arc<Mutex<AgentContextConfig>>父 agent 的上下文配置快照(供 select_messages + micro_compact 复用)
sub_agent_metrics: Arc<Mutex<SubAgentMetrics>>子 Agent metrics 累加器(与 DerivedAgentShared.sub_agent_metrics 共享)
Auto Trait Implementations§
impl Freeze for TeammateLoopConfig
impl !RefUnwindSafe for TeammateLoopConfig
impl Send for TeammateLoopConfig
impl Sync for TeammateLoopConfig
impl Unpin for TeammateLoopConfig
impl UnsafeUnpin for TeammateLoopConfig
impl !UnwindSafe for TeammateLoopConfig
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.