bamboo_engine/runtime/managers/
prompt.rs1use async_trait::async_trait;
2use bamboo_agent_core::Session;
3
4use crate::runtime::config::AgentLoopConfig;
5
6#[derive(Debug, Clone)]
8pub struct PromptAssemblyOutput {
9 pub effective_system_prompt: String,
10 pub skill_context: String,
11 pub tool_guide_context: String,
12}
13
14#[async_trait]
20pub trait PromptManager: Send + Sync {
21 async fn assemble_prompt(
23 &self,
24 session: &mut Session,
25 config: &AgentLoopConfig,
26 ) -> PromptAssemblyOutput;
27
28 async fn refresh_external_memory(&self, session: &mut Session, config: &AgentLoopConfig);
30
31 fn refresh_task_list(&self, session: &mut Session);
33}