Skip to main content

bamboo_engine/runtime/managers/adapters/
memory.rs

1use async_trait::async_trait;
2use bamboo_agent_core::tools::ToolSchema;
3use bamboo_agent_core::Session;
4
5use crate::runtime::config::AgentLoopConfig;
6use crate::runtime::managers::memory::MemoryManager;
7
8/// Default memory manager that delegates to existing runner functions.
9pub struct DefaultMemoryManager;
10
11#[async_trait]
12impl MemoryManager for DefaultMemoryManager {
13    async fn recall_memories(&self, session: &mut Session, config: &AgentLoopConfig) -> bool {
14        let msg_count_before = session.messages.len();
15        crate::runtime::runner::prompt_context::inject_external_memory_into_system_message(
16            session,
17            config.prompt_memory_flags,
18            None,
19        )
20        .await;
21        session.messages.len() > msg_count_before
22    }
23
24    async fn maybe_compress(
25        &self,
26        _session: &mut Session,
27        _config: &AgentLoopConfig,
28        _phase: &str,
29        _session_id: &str,
30        _model_name: &str,
31        _tool_schemas: &[ToolSchema],
32    ) -> bool {
33        // Actual compression happens via the LLM manager's mid-turn path.
34        false
35    }
36}