forked from kent/consciousness
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
|
// Scan all .agent files, exclude subconscious-* and surface-observe
|
||||||
let mut agents: Vec<UnconsciousAgent> = Vec::new();
|
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() {
|
for def in defs::load_defs() {
|
||||||
if def.agent.starts_with("subconscious-") { continue; }
|
if def.agent.starts_with("subconscious-") { continue; }
|
||||||
if def.agent == "surface-observe" { continue; }
|
if def.agent == "surface-observe" { continue; }
|
||||||
let enabled = enabled_map.get(&def.agent).copied()
|
let enabled = enabled_map.get(&def.agent).copied()
|
||||||
.unwrap_or(false);
|
.unwrap_or(false);
|
||||||
let effective_tools: Vec<tools::Tool> = if def.tools.is_empty() {
|
let mut effective_tools = base_tools.clone();
|
||||||
all_tools.clone()
|
for name in &def.tools {
|
||||||
} else {
|
if let Some(t) = extra_tools.iter().find(|t| t.name == name) {
|
||||||
all_tools.iter()
|
effective_tools.push(t.clone());
|
||||||
.filter(|t| def.tools.iter().any(|w| w == t.name))
|
}
|
||||||
.cloned()
|
}
|
||||||
.collect()
|
|
||||||
};
|
|
||||||
let steps: Vec<AutoStep> = def.steps.iter().map(|s| AutoStep {
|
let steps: Vec<AutoStep> = def.steps.iter().map(|s| AutoStep {
|
||||||
prompt: s.prompt.clone(),
|
prompt: s.prompt.clone(),
|
||||||
phase: s.phase.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
|
# Digest Agent — Episodic Consolidation
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue