Skip to main content

Memory Judge:写入决策链

每一次写入请求,都经过三阶段串行决策。阶段顺序固定,不可跳过。

决策链架构

写入请求


┌─────────────────────┐
│ Stage 1: Hard Guards │ ← 硬规则,确定性,LLM 无法覆盖
└─────────────────────┘
│ 通过

┌─────────────────────┐
│ Stage 2: LLM Judge │ ← 语义判断,结构化 JSON 输出
└─────────────────────┘
│ 通过 / 失败自动兜底

┌─────────────────────┐
│ Stage 3: Rule Fallback│ ← 管理员可配置的规则表
└─────────────────────┘


写入存储

Stage 1:硬规则守卫

以下情况直接拒绝,不进入后续阶段:

规则说明
内容为空content 空字符串或纯空白
内容过长超过配置的最大长度(默认 5000 字符)
敏感内容命中敏感词列表(管理员可配置)
频率超限同一 Agent 写入频率超过阈值

这些规则是确定性的,不受 LLM 输出影响。

Stage 2:LLM Judge

LLM 接收内容,输出结构化 JSON:

{
"shouldStore": true,
"targetLayer": "stable",
"confidence": 0.87,
"reason": "这是一条跨会话稳定的项目规范",
"suggestedType": "project_rule",
"suggestedImportance": 0.8,
"semanticKey": "api-response-format"
}

阈值控制:

  • confidence < 0.5:自动降级到 Stage 3
  • LLM 调用失败:自动降级到 Stage 3
  • 响应格式错误:自动降级到 Stage 3
LLM 是建议者,不是决策者

LLM Judge 的输出是推荐,最终决策还是由系统规则和管理员配置决定。关闭 LLM Judge(MEMORY_JUDGE_LLM_ENABLED=false)不影响基础写入功能。

Stage 3:规则兜底

从管理员配置的规则表(judge_rules)按优先级匹配:

规则匹配逻辑:
1. 关键词匹配(精确 / 正则)
2. memoryType 推断
3. importance 默认值
4. semantic_key 推断

配置参考

# 启用 LLM Judge
MEMORY_JUDGE_LLM_ENABLED=true
MEMORY_LLM_API_KEY=sk-...
MEMORY_LLM_MODEL=gpt-4o-mini
MEMORY_LLM_BASE_URL=https://api.openai.com/v1

# 置信度阈值(低于此值降级到规则兜底)
MEMORY_JUDGE_CONFIDENCE_THRESHOLD=0.5

# 单次 LLM 调用超时(ms)
MEMORY_JUDGE_TIMEOUT_MS=5000