unconscious: memory tools as base, agent def adds extras
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 <poc@bcachefs.org>
This commit is contained in:
parent
1c0967c4ec
commit
bc991c3521
2 changed files with 9 additions and 10 deletions
|
|
@ -77,20 +77,19 @@ impl Unconscious {
|
|||
|
||||
// Scan all .agent files, exclude subconscious-* and surface-observe
|
||||
let mut agents: Vec<UnconsciousAgent> = 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<tools::Tool> = 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<AutoStep> = def.steps.iter().map(|s| AutoStep {
|
||||
prompt: s.prompt.clone(),
|
||||
phase: s.phase.clone(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{"agent": "digest", "schedule": "daily"}
|
||||
{"agent": "digest", "schedule": "daily", "tools": ["journal_tail", "journal_new", "journal_update"]}
|
||||
|
||||
# Digest Agent — Episodic Consolidation
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue