常见问题
基础问题
MemX 现在成熟到什么程度?
早期试点。当前版本在预发与演示环境运行,未承载客户生产流量,尚未替换正在服务线上流量的上一代实现。未发布到公共包仓库,部署包与源码随交付提供。
用什么语言实现?和 MemX、memorus 这两个名字是什么关系?
引擎是 Rust 实现的原创工作区,不是任何上游项目的分支或移植。MemX 是本站对该产品的称呼;工程名为 memorus,命令行(memorus-r)与服务(memorus-server)的二进制沿用工程名。Python、Node.js 绑定与 C FFI 调用的是同一套 Rust 引擎。
默认会调用外部模型吗?
不会。抽取默认使用 rules 模式,完全本地;hybrid 与 llm 模式需要显式开启并配置模型服务。
需要 GPU 吗?
默认配置不需要:规则抽取与关键词检索都在 CPU 上完成。要做语义检索,需要配置嵌入服务,或以 onnx-embedding 构建选项开启本地嵌入。
数据存在哪里?
服务端默认构建只链接 SQLite 存储。客户环境部署包里,所有持久数据落在一个命名卷上,不依赖外部数据库、缓存或消息队列。其他向量库后端需在构建时显式开启。
使用问题
如何控制衰减速度?
参数([ace.decay]) | 效果 |
|---|---|
half_life | 增大 → 衰减更慢(默认 30 天) |
boost_factor | 增大 → 每次召回回升更多(默认 0.1) |
protection_days | 新记忆保持满权重的天数(默认 7 天) |
permanent_threshold | 减小 → 更容易成为不再衰减的记忆(默认 15 次) |
衰减清理由 memorus-r sweep 或 MCP 工具 run_decay_sweep 触发。
记错了的内容怎么处理?
memorus-r list或memorus-r conflicts— 找到它memorus-r forget <memory-id>— 删除memorus-r learn "正确的内容"— 手动写入
同一事实出现新值时,引擎会把旧记忆标记为已被取代,检索时排在后面;每条记忆的变更历史可以通过 GET /api/v1/memories/{id}/history 查询。
记忆指向的代码改了怎么办?
锚定到源文件的记忆在检索时会重新核对,标为已核验、陈旧或无法核验。对陈旧记忆默认只标注;可配置 [ace.verification] policy 为 demote(降权)或 drop(剔除)。也可以用 memorus-r verify 批量核对。
多个用户或 Agent 如何隔离?
每条记忆带用户、Agent 标识与作用域(全局、项目、团队)。服务端可选按 API 密钥区分租户(默认关闭)。服务端 MCP 端点目前仅支持单租户部署。
隐私问题
内置规则不能单独关闭
13 层内置脱敏规则不能单独关闭或移除,只能通过 [privacy] redaction_patterns 追加规则。脱敏属于 ACE 处理管线,管线默认开启;关闭 ACE 时写入不经脱敏。
内置规则覆盖哪些类型?
按从具体到一般的顺序依次应用:
| 类型 | 替换为 |
|---|---|
| API 密钥(常见服务商前缀、代码仓库平台令牌) | [REDACTED:API_KEY] |
| OAuth 令牌 | [REDACTED:OAUTH_TOKEN] |
| JWT | [REDACTED:JWT] |
api_key= / access_token= 等参数 | [REDACTED:API_KEY_PARAM] |
| 云访问凭证 | [REDACTED:AWS_CREDENTIALS] |
| 邮箱 | [REDACTED:EMAIL] |
| 电话 | [REDACTED:PHONE] |
| 银行卡号 | [REDACTED:CREDIT_CARD] |
| 社会保障号 | [REDACTED:SSN] |
| 私钥块 | [REDACTED:PRIVATE_KEY] |
| 数据库连接串 | [REDACTED:DB_CONNECTION] |
| 密码、令牌等通用密钥字段 | [REDACTED:SECRET] |
| 本地用户路径 | [USER_PATH] |
脱敏失败会怎样?
写入时先脱敏再处理。脱敏这一步失败时,这次写入整条不落库,不会把原文存进去。配置里的自定义正则无法编译时,服务直接报错,不会静默跳过。
能按用户删除数据吗?
可以。REST 提供 POST /api/v1/users/{user_id}/erase,删除该用户的记忆。
性能问题
检索延迟、容量有多大?
目前没有可复现的基准数字,所以这里不写数字。