Delete separator agent and interference_pairs tool
Interference detection via O(n²) text cosine similarity is redundant — the graph structure should surface similar nodes through link topology, shared neighbors, and community detection. The other agents (linker, extractor) already maintain these relationships. Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
parent
fd722662da
commit
92ef9b5215
3 changed files with 2 additions and 57 deletions
|
|
@ -33,7 +33,7 @@ async fn get_provenance(agent: &Option<std::sync::Arc<crate::agent::Agent>>) ->
|
|||
|
||||
// ── Definitions ────────────────────────────────────────────────
|
||||
|
||||
pub fn memory_tools() -> [super::Tool; 14] {
|
||||
pub fn memory_tools() -> [super::Tool; 13] {
|
||||
use super::Tool;
|
||||
[
|
||||
Tool { name: "memory_render", description: "Read a memory node's content and links.",
|
||||
|
|
@ -75,9 +75,6 @@ pub fn memory_tools() -> [super::Tool; 14] {
|
|||
Tool { name: "graph_health", description: "Show graph health report with maintenance recommendations.",
|
||||
parameters_json: r#"{"type":"object","properties":{}}"#,
|
||||
handler: Arc::new(|_a, _v| Box::pin(async { graph_health().await })) },
|
||||
Tool { name: "interference_pairs", description: "Find similar nodes that may interfere (duplicates or near-duplicates).",
|
||||
parameters_json: r#"{"type":"object","properties":{"threshold":{"type":"number","description":"Similarity threshold (default 0.5)"},"limit":{"type":"integer","description":"Max pairs to return (default 10)"}}}"#,
|
||||
handler: Arc::new(|_a, v| Box::pin(async move { interference_pairs(&v).await })) },
|
||||
]
|
||||
}
|
||||
|
||||
|
|
@ -343,13 +340,3 @@ async fn graph_health() -> Result<String> {
|
|||
Ok(crate::subconscious::prompts::format_health_section(&store, &graph))
|
||||
}
|
||||
|
||||
async fn interference_pairs(args: &serde_json::Value) -> Result<String> {
|
||||
let threshold = args.get("threshold").and_then(|v| v.as_f64()).unwrap_or(0.5) as f32;
|
||||
let limit = args.get("limit").and_then(|v| v.as_u64()).unwrap_or(10) as usize;
|
||||
let arc = cached_store().await?;
|
||||
let store = arc.lock().await;
|
||||
let graph = store.build_graph();
|
||||
let mut pairs = crate::neuro::detect_interference(&store, &graph, threshold);
|
||||
pairs.truncate(limit);
|
||||
Ok(crate::subconscious::prompts::format_pairs_section(&pairs, &store, &graph))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue