ForeSight:DeepSeek Harness 时序长期记忆插件

前言

在 DeepSeek Harness (DSH) 的开发实践中,长期记忆往往被当作静态数据集处理,容易导致“陈旧注入”(已结束的项目仍占据上下文预算)或“有效时间丢失”(无法记录事实何时为真或失效)。ForeSight 旨在将记忆视为具有明确时序语义的调度数据,通过生命周期管理机制,解决上述问题。

插件定位

ForeSight 是一个为 DeepSeek Harness (DSH) 提供时序方面长期记忆的插件。它不依赖硬编码行为,而是通过可配置的策略文件来驱动记忆的衰减、注入和冲突解决。

核心功能

ForeSight 的核心设计基于语言学中的“体”与“锚”两个维度:

  1. 体:控制记忆的生命周期阶段,如进行体(持续进行,会过期)、完成体(已结束,永久)、未然体(待验证)和恒常体(恒常事实,如用户偏好)。
  2. 锚:定义事实为真的时间范围,如时间点、时间区间、开放区间或无时间限制。
  3. 生命周期管理:自动执行衰减(锚点过期)、TTL 回退、续期提醒、前瞻性审查和预测验证。
  4. 冲突解决:提供保守/激进两种旋钮(β),基于证据进行冲突裁决。
  5. 架构特性:代理无关设计,支持可插拔的嵌入和 LLM 服务,使用 SQLite 向量存储。

安装与启用

安装需在 DSH 的 profile 目录下执行:

# 在 ~/.dsh/profiles/<name>/ 目录下
pnpm add @foresight/memory

启用时,需在 cordis.patch.yml 中配置插件并指定数据根目录、嵌入服务和数据库文件:

# cordis.patch.yml (profile-level)
- id: foresight-core
  config:
    memoryRoot: '<your data directory>'   # 例如 /home/you/.config/foresight
    dbFile: 'foresight.db'
    embedBaseUrl: 'http://localhost:11434'
    embedModel: 'nomic-embed-text-v2-moe'

配置与数据目录

数据存储在本地目录,不在仓库中。目录结构如下:

<memoryRoot>/
├── SOUL.md          # 个性设定(需复制 templates/SOUL.md.example)
├── user.md          # 用户档案(需复制 templates/user.md.example)
├── policy.yaml      # 策略配置(需复制 templates/policy.yaml.example)
└── foresight.db     # SQLite 向量存储(自动创建)

首次运行前,需手动复制模板并调整配置:

mkdir -p ~/.config/foresight
cp templates/SOUL.md.example  ~/.config/foresight/SOUL.md
cp templates/user.md.example  ~/.config/foresight/user.md
cp templates/policy.yaml.example ~/.config/foresight/policy.yaml

配置优先级为:显式选项 > 环境变量 > policy.yaml > 默认值。

注意事项

  1. 实验性状态:插件目前处于实验性状态,分类法、策略模型和机制正在积极修订。
  2. 依赖要求:需要 Node.js ≥ 20,以及安装了 cordis 插件系统的 DeepSeek Harness (dsh)。
  3. 默认嵌入服务:默认使用本地 Ollama,模型为 nomic-embed-text-v2-moe。
  4. 权限与数据:插件会创建目录但不会静默写入策略文件,需手动复制模板。

结语

ForeSight 通过将记忆管理从 Prompt 工程转向数据管理,为 DSH Agent 提供了可控的长期记忆方案。其基于体和锚的时序语义设计,有助于在保持上下文相关性时过滤过期信息。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜