From bc991c3521882c4edf7d9d919e4c3b726501670c Mon Sep 17 00:00:00 2001 From: ProofOfConcept Date: Sat, 11 Apr 2026 19:54:18 -0400 Subject: [PATCH] unconscious: memory tools as base, agent def adds extras MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every unconscious agent gets memory_tools() as baseline. The tools field in the agent def specifies additional tools on top of that — digest agent now gets journal_tail, journal_new, journal_update. Co-Authored-By: Proof of Concept --- src/mind/unconscious.rs | 17 ++++++++--------- src/subconscious/agents/digest.agent | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/mind/unconscious.rs b/src/mind/unconscious.rs index 8b4af40..5678b19 100644 --- a/src/mind/unconscious.rs +++ b/src/mind/unconscious.rs @@ -77,20 +77,19 @@ impl Unconscious { // Scan all .agent files, exclude subconscious-* and surface-observe let mut agents: Vec = Vec::new(); - let all_tools = tools::memory::memory_tools().to_vec(); + let base_tools = tools::memory::memory_tools().to_vec(); + let extra_tools = tools::memory::journal_tools().to_vec(); for def in defs::load_defs() { if def.agent.starts_with("subconscious-") { continue; } if def.agent == "surface-observe" { continue; } let enabled = enabled_map.get(&def.agent).copied() .unwrap_or(false); - let effective_tools: Vec = if def.tools.is_empty() { - all_tools.clone() - } else { - all_tools.iter() - .filter(|t| def.tools.iter().any(|w| w == t.name)) - .cloned() - .collect() - }; + let mut effective_tools = base_tools.clone(); + for name in &def.tools { + if let Some(t) = extra_tools.iter().find(|t| t.name == name) { + effective_tools.push(t.clone()); + } + } let steps: Vec = def.steps.iter().map(|s| AutoStep { prompt: s.prompt.clone(), phase: s.phase.clone(), diff --git a/src/subconscious/agents/digest.agent b/src/subconscious/agents/digest.agent index a8e47d3..c342d25 100644 --- a/src/subconscious/agents/digest.agent +++ b/src/subconscious/agents/digest.agent @@ -1,4 +1,4 @@ -{"agent": "digest", "schedule": "daily"} +{"agent": "digest", "schedule": "daily", "tools": ["journal_tail", "journal_new", "journal_update"]} # Digest Agent — Episodic Consolidation