macayaven's picture
Upload folder using huggingface_hub
dd41762 verified
Raw
History Blame Contribute Delete
7.21 kB
"""
MCP Tool definitions for Docker Neural Memory.
These tools provide a learning-focused interface, different from
traditional memory systems:
Traditional: Neural Memory:
store(content) observe(context) - triggers learning
query(prompt) infer(prompt) - generates from model
- surprise(input) - measures novelty
- consolidate() - compresses patterns
"""
from dataclasses import dataclass
from typing import Any
@dataclass
class ObserveResult:
"""Result from observe operation."""
surprise: float # How novel was this? (0-1)
weight_delta: float # Magnitude of weight change
patterns_activated: list[str] # What patterns fired
@dataclass
class InferResult:
"""Result from infer operation."""
response: str # Generated from learned patterns
confidence: float # Model certainty
attention_weights: list[float] # What memory attended to
@dataclass
class SurpriseResult:
"""Result from surprise measurement."""
score: float # Surprise score (0-1)
nearest_pattern: str # Most similar learned pattern
recommendation: str # "learn", "skip", or "consolidate"
@dataclass
class ConsolidateResult:
"""Result from consolidation."""
patterns_merged: int
memory_compressed_by: float # Percentage
stability_score: float
@dataclass
class CheckpointResult:
"""Result from checkpoint operation."""
checkpoint_id: str
tag: str
size_mb: float
weight_hash: str
@dataclass
class StatsResult:
"""Memory statistics."""
total_observations: int
weight_parameters: int
capacity_used: float # Estimated 0-1
avg_surprise: float # Recent learning signal
domains: list[str]
# Tool schemas for MCP registration
TOOL_SCHEMAS: dict[str, dict[str, Any]] = {
"observe": {
"name": "observe",
"description": "Feed context to the memory. Weights update automatically via test-time training. Unlike store(), this triggers actual learning.",
"inputSchema": {
"type": "object",
"properties": {
"context": {
"type": "string",
"description": "Content to learn from",
},
"learning_rate": {
"type": "number",
"description": "Override default learning rate",
},
"domain": {
"type": "string",
"description": "Domain tag for routing",
},
},
"required": ["context"],
},
},
"infer": {
"name": "infer",
"description": "Query the memory using learned representations. Unlike query(), this uses the learned model to GENERATE, not retrieve.",
"inputSchema": {
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "What to infer about",
},
"temperature": {
"type": "number",
"description": "Generation temperature",
},
"max_tokens": {
"type": "integer",
"description": "Response length limit",
},
},
"required": ["prompt"],
},
},
"surprise": {
"name": "surprise",
"description": "Measure how surprising/novel an input is. High surprise = worth learning. Low surprise = already known.",
"inputSchema": {
"type": "object",
"properties": {
"input": {
"type": "string",
"description": "Input to measure surprise for",
},
},
"required": ["input"],
},
},
"consolidate": {
"name": "consolidate",
"description": "Trigger consolidation pass (like sleep for memory). Compresses recent learning into stable long-term patterns.",
"inputSchema": {
"type": "object",
"properties": {},
},
},
"checkpoint": {
"name": "checkpoint",
"description": "Save current learned state as a named checkpoint. Like `docker commit` but for neural memory.",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Tag name (e.g., 'v1.0', 'pre-experiment')",
},
"description": {
"type": "string",
"description": "Optional description",
},
},
"required": ["tag"],
},
},
"restore": {
"name": "restore",
"description": "Restore memory to a previous checkpoint. Like `docker run image:tag` but for learned state.",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Checkpoint tag to restore",
},
},
"required": ["tag"],
},
},
"fork": {
"name": "fork",
"description": "Fork memory state into a new branch. Enables experimentation without losing stable state.",
"inputSchema": {
"type": "object",
"properties": {
"source_tag": {
"type": "string",
"description": "Source checkpoint to fork from",
},
"new_tag": {
"type": "string",
"description": "Name for the new branch",
},
},
"required": ["source_tag", "new_tag"],
},
},
"list_checkpoints": {
"name": "list_checkpoints",
"description": "List all available checkpoints.",
"inputSchema": {
"type": "object",
"properties": {},
},
},
"stats": {
"name": "stats",
"description": "Get memory statistics including capacity, observations, and domains.",
"inputSchema": {
"type": "object",
"properties": {},
},
},
"attention_map": {
"name": "attention_map",
"description": "Visualize what the memory attends to for a query.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Query to visualize attention for",
},
},
"required": ["query"],
},
},
"explain": {
"name": "explain",
"description": "Export learned patterns as interpretable summaries.",
"inputSchema": {
"type": "object",
"properties": {
"top_k": {
"type": "integer",
"description": "Number of top patterns to explain",
"default": 10,
},
},
},
},
}