Skip to content

记忆系统

Rnix 提供持久化记忆子系统,允许智能体跨会话积累知识。灵感来自人类记忆的工作方式 — 提交重要事实、后续召回、并逐步构建用户画像。


架构

记忆子系统在两个作用域运行:

  • 项目级 (memory) — 当前项目的专属知识,存储在 .rnix/memory/
  • 全局级 (global_memory) — 跨项目知识,存储在 ~/.config/rnix/memory/

每个作用域由 FileMemoryProvider 支撑,以纯文本文件形式持久化。

内核组件

组件位置职责
MemoryStorekernel/memory/store.go双作用域 API 层,含安全扫描
FileMemoryProviderkernel/memory/provider.go基于文件的作用域存储
RecallIndexkernel/memory/recall.go基于 TF-IDF 的历史对话搜索索引
Writebackkernel/memory/writeback.go异步知识抽取(进程完成后触发)
SecurityScannerkernel/memory/scanner.go写入前内容安全扫描

VFS 设备

记忆子系统暴露三个 VFS 设备:

/dev/memory/commit

写入持久化知识条目。支持五种操作:

操作说明
add追加新知识条目
replace替换现有条目(精确匹配)为新内容
remove删除条目(精确匹配)
snapshot读取所有当前条目
capacity检查剩余容量(字符数限制)

双作用域: target 设为 "memory"(项目级,默认)或 "global_memory"(全局级)。

请求示例:

json
{
  "action": "add",
  "target": "memory",
  "content": "API 使用 JWT 认证,RS256 签名"
}

/dev/memory/recall

搜索历史进程对话和提取的知识。只读。

参数类型默认值说明
querystring搜索关键词
max_resultsint20最大结果数
summarizeboolfalseLLM 摘要结果,用于精简上下文注入

请求示例:

json
{
  "query": "认证实现细节",
  "max_results": 10,
  "summarize": true
}

/dev/memory/profile

管理用户画像(角色、偏好、专业领域)。操作语义与 /dev/memory/commit 相同,但固定为 user 目标作用域。

请求示例:

json
{
  "action": "add",
  "content": "用户偏好简洁的英文代码注释"
}

安全扫描

所有对记忆设备的写入都经过 ScanContent() 安全扫描。扫描器会拒绝包含以下内容的写入:

  • API 密钥和密钥凭证
  • 凭据模式
  • 潜在危险代码模式

被拒绝的写入会返回包含原因的错误。


Writeback

当进程完成后,Writeback 组件会异步从对话中提取有用知识并提交到项目记忆。这在后台执行,不阻塞进程生命周期。


配置

记忆设置在 memory.yaml 中配置:

设置默认值说明
store.memory_char_limit50000项目记忆条目最大字符数
store.user_char_limit10000用户画像条目最大字符数

相关文档

Released under the MIT License.