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::refresh_external_memory_context(
16            session,
17            config.prompt_memory_flags,
18            None,
19            config.project_context_resolver.as_deref(),
20        )
21        .await;
22        session.messages.len() > msg_count_before
23    }
24
25    async fn maybe_compress(
26        &self,
27        _session: &mut Session,
28        _config: &AgentLoopConfig,
29        _phase: &str,
30        _session_id: &str,
31        _model_name: &str,
32        _tool_schemas: &[ToolSchema],
33    ) -> bool {
34        // Actual compression happens via the LLM manager's mid-turn path.
35        false
36    }
37}