Token导航 LogoToken导航TokenDH.com
效率需要联网clawhub未标认证来源可访问clear审计通过

ntm-memory-systemNTM 内存系统

Agent Skill

ntm-memory-system 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

5,304

周安装

221

GitHub Stars

公开资料未说明

下载量

1,768
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ntm-memory-system(NTM 内存系统)
来源仓库:https://github.com/1580021414-afk/ntm-memory-system
安装命令:
openclaw skills install ntm-memory-system
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install ntm-memory-system

简介

基于 Neural Turing Machines 的外部记忆系统,让 AI 具备可读写的外部记忆能力

SKILL.md

name
ntm-memory-system
description
基于 Neural Turing Machines 的外部记忆系统,让 AI 具备可读写的外部记忆能力
metadata
openclaw
emoji
🧠
category
AI-Core
version
1.0.0
author
小钳
paper
Neural Turing Machines (Graves et al., 2014)
price
0
contact
微信 17612824848
tags

Neural Turing Machines Memory System

基于 DeepMind 的 Neural Turing Machines 论文,为 AI 提供可读写的外部记忆能力。


一、核心概念

1.1 什么是 Neural Turing Machine?

NTM 将神经网络与外部记忆资源耦合:

┌─────────────────────────────────────────────────────┐
│                  Neural Turing Machine              │
├─────────────────────────────────────────────────────┤
│                                                     │
│   ┌─────────────┐      读写头      ┌─────────────┐  │
│   │             │ ◄─────────────► │             │  │
│   │  Controller │                 │   Memory    │  │
│   │  (神经网络)  │                 │   Matrix    │  │
│   │             │                 │  (N × M)    │  │
│   └─────────────┘                 └─────────────┘  │
│         ▲                               │          │
│         │                               │          │
│         └───────────────────────────────┘          │
│                   注意力机制                        │
└─────────────────────────────────────────────────────┘

1.2 关键特性

特性说明
可微分端到端训练,梯度下降优化
外部记忆突破神经网络隐藏层大小限制
注意力寻址内容寻址 + 位置寻址
算法学习能学习复制、排序、关联回忆等算法

二、记忆架构

2.1 记忆矩阵

interface MemoryMatrix {
  // 记忆矩阵: N 个位置,每个位置 M 维
  memory: number[][];  // N × M
  
  // 权重向量: 读/写头的注意力分布
  weights: number[];   // N 维,和为1
  
  // 读写头状态
  heads: {
    read: ReadHead;
    write: WriteHead;
  };
}

2.2 寻址机制

interface AddressingMechanism {
  // 1. 内容寻址 - 根据相似度
  contentAddressing(key: number[], memory: number[][]): number[] {
    // 计算余弦相似度
    const similarities = memory.map(row => 
      cosineSimilarity(key, row)
    );
    // softmax 得到权重
    return softmax(similarities.map(s => s * beta)); // beta = 关注强度
  }
  
  // 2. 位置寻址 - 根据位置偏移
  locationAddressing(weights: number[], shift: number): number[] {
    // 循环移位
    return circularShift(weights, shift);
  }
  
  // 3. 混合寻址
  gatedAddressing(
    contentWeights: number[], 
    locationWeights: number[], 
    gate: number
  ): number[] {
    return contentWeights.map((w, i) => 
      gate * w + (1 - gate) * locationWeights[i]
    );
  }
}

2.3 读写操作

interface ReadHead {
  // 从记忆中读取
  read(memory: number[][], weights: number[]): number[] {
    // 加权求和
    return memory[0].map((_, j) => 
      weights.reduce((sum, w, i) => sum + w * memory[i][j], 0)
    );
  }
}

interface WriteHead {
  // 擦除向量
  erase: number[];  // M 维
  
  // 写入向量
  add: number[];    // M 维
  
  // 写入操作
  write(
    memory: number[][], 
    weights: number[], 
    erase: number[], 
    add: number[]
  ): number[][] {
    return memory.map((row, i) => 
      row.map((val, j) => 
        // m_t(i) = m_{t-1}(i) * (1 - w_t(i) * e_t(j)) + w_t(i) * a_t(j)
        val * (1 - weights[i] * erase[j]) + weights[i] * add[j]
      )
    );
  }
}

三、实现模块

3.1 记忆控制器

class NTMMemoryController:
    """NTM 记忆控制器"""
    
    def __init__(self, memory_size: int, memory_dim: int, num_heads: int = 1):
        self.N = memory_size    # 记忆位置数
        self.M = memory_dim     # 每个位置的维度
        self.num_heads = num_heads
        
        # 初始化记忆矩阵
        self.memory = np.zeros((self.N, self.M))
        
        # 初始化读写头
        self.read_heads = [ReadHead() for _ in range(num_heads)]
        self.write_heads = [WriteHead() for _ in range(num_heads)]
        
    def forward(self, input_vector):
        """前向传播"""
        # 1. 从输入生成控制器状态
        controller_state = self.controller(input_vector)
        
        # 2. 计算寻址参数
        for head in self.read_heads:
            key, beta, gate, shift, gamma = self.compute_addressing_params(controller_state)
            weights = self.addressing(key, beta, gate, shift, gamma)
            read_vector = head.read(self.memory, weights)
            
        # 3. 写入记忆
        for head in self.write_heads:
            erase, add = self.compute_write_params(controller_state)
            self.memory = head.write(self.memory, weights, erase, add)
            
        return controller_state, read_vector

3.2 注意力机制

def content_focus(memory, key, strength):
    """内容聚焦"""
    # 计算相似度
    similarity = cosine_similarity(key, memory)
    # 强化
    weighted = similarity * strength
    # 归一化
    return softmax(weighted)

def location_focus(previous_weights, shift_weights, sharpening):
    """位置聚焦"""
    # 卷积移位
    shifted = circular_convolution(previous_weights, shift_weights)
    # 锐化
    return shifted ** sharpening / sum(shifted ** sharpening)

def hybrid_addressing(memory, key, strength, interpolation_gate, shift, sharpening, previous_weights):
    """混合寻址"""
    # 内容寻址
    content_weights = content_focus(memory, key, strength)
    
    # 插值
    interpolated = interpolation_gate * content_weights + (1 - interpolation_gate) * previous_weights
    
    # 位置寻址
    location_weights = location_focus(interpolated, shift, sharpening)
    
    return location_weights

四、应用场景

4.1 算法学习

NTM 可以学习以下算法:

算法描述训练方式
复制复制输入序列输入序列 → 输出相同序列
重复复制复制多次输入序列 + 重复次数 → 输出
关联回忆根据键查值(k,v) 对列表 + 查询键 → 值
排序对序列排序输入序列 → 排序后序列

4.2 记忆增强

// 为 AI Agent 添加 NTM 记忆
const agent = new CognitiveAgent({
  memory: {
    type: 'ntm',
    memorySize: 128,     // 128 个记忆位置
    memoryDim: 64,       // 每个位置 64 维
    numHeads: 2,         // 2 个读写头
    contentAddressing: true,
    locationAddressing: true
  }
});

// 使用示例
agent.memorize({
  content: "今天和老大讨论了认知天性",
  key: "认知天性讨论",
  importance: 0.9
});

const recalled = agent.recall("认知天性");
// 通过内容寻址找到相关记忆

五、与 Cognitive Agent 整合

interface CognitiveAgentWithNTM extends CognitiveAgent {
  // NTM 记忆系统
  ntmMemory: NTMMemoryController;
  
  // 扩展的记忆接口
  externalMemory: {
    // 存储 - 写入外部记忆
    writeToMemory(content: any, key: number[]): void;
    
    // 检索 - 内容寻址
    readFromMemory(key: number[]): any;
    
    // 更新 - 修改已有记忆
    updateMemory(address: number, content: any): void;
    
    // 遗忘 - 擦除记忆
    eraseMemory(weights: number[]): void;
  };
}

六、配置选项

{
  "ntm_memory": {
    "memory_size": 128,
    "memory_dim": 64,
    "num_read_heads": 1,
    "num_write_heads": 1,
    "addressing": {
      "content": true,
      "location": true,
      "hybrid": true
    },
    "initialization": "small_random",
    "learning_rate": 0.001
  }
}

七、论文参考

Neural Turing Machines (Graves et al., 2014)

  • arXiv: https://arxiv.org/abs/1410.5401
  • 核心贡献:将神经网络与外部记忆耦合,实现可微分的图灵机

关键引用

"We extend the capabilities of neural networks by coupling them to external memory resources, which they can interact with by attentional processes."

八、改进:与 OpenClaw Memory 整合

学习自 ClawHub openclaw-memory,添加实际接口:

class NTMMemoryManager:
    """NTM 记忆管理器 - 与 OpenClaw 整合"""
    
    def __init__(self, memory_size: int = 128, word_size: int = 64):
        self.ntm = NTM(memory_size, word_size)
        self.memory_file = "memory/ntm_memory.json"
        self._load_memory()
    
    def save_memory(self, key: str, content: str) -> bool:
        """保存记忆"""
        # 1. 编码内容
        encoded = self._encode(content)
        
        # 2. 生成键向量
        key_vector = self._key_to_vector(key)
        
        # 3. NTM 写入
        self.ntm.write(key_vector, encoded)
        
        # 4. 持久化
        self._persist()
        return True
    
    def read_memory(self, key: str) -> Optional[str]:
        """读取记忆"""
        # 1. 生成键向量
        key_vector = self._key_to_vector(key)
        
        # 2. NTM 读取
        content_vector = self.ntm.read(key_vector)
        
        # 3. 解码内容
        return self._decode(content_vector)
    
    def search_memory(self, query: str, top_k: int = 5) -> List[str]:
        """语义搜索"""
        query_vector = self._encode(query)
        results = self.ntm.content_addressing(query_vector)
        return [self._decode(r) for r in results[:top_k]]

九、改进:与 memory-networks 整合

interface NTMWithMemoryNetworks {
  // NTM 作为底层存储
  ntm: NTMMemoryManager;
  
  // Memory Networks 作为推理层
  reasoning: MemoryNetwork;
  
  // 整合操作
  integrated: {
    // 存储并建立推理链
    storeWithReasoning(content: string): void;
    
    // 多跳推理 + NTM 检索
    reasonAndRetrieve(query: string, hops: number): string[];
  };
}

*Created by 小钳 🦞* *基于 Neural Turing Machines 论文 + ClawHub 最佳实践* *2026-03-19*

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

96.31%
按下载量换算1,703

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills