DeepSeek Harness 插件:dsh-cognition (DSNLE) - 项目记忆与约束系统

前言

在使用 DeepSeek Harness (DSH) 开发智能体时,一个常见痛点是 Agent 缺乏对项目上下文的持久记忆。这导致智能体在处理后续任务时,无法复用历史先例,或在修改代码时忽略既定约束。DSNLE 旨在解决这一问题,它不依赖 Prompt 欺骗,而是基于 DSH 原生原语构建一套完整的约束、观测、记忆与验证机制。

这是什么

dsh-cognition 是一个为 DSH Agent 提供项目记忆能力的插件。它利用 DSH 的原生原语(如 tools/pre-execute、fs/edit-intent、skills、session event sourcing)实现约束与验证,并通过 Learned、Precedent 和 Git 变更追踪实现记忆功能。

安装与启用

前置条件:Node.js ≥ 22 + 正在运行的 DeepSeek Harness。

1、克隆仓库并安装:

git clone https://github.com/scd13150/dsh-cognition.git && cd dsnle
node install-dsnle.mjs --set-default

2、使新会话生效。--set-default 会创建 dsnle 预设并设置为默认(同时备份你的配置)。安装后必须重启 DSH 或打开一个全新的会话,旧会话不会自动加载新预设。

3、验证安装。在新会话中运行以下命令:

nle_check

如果返回 ok: true,则表示安装成功。此时你应该能在工具列表中看到 nle_suggest、nle_focus、nle_mutate 等工具,在技能目录中看到 nle-learned-* 和 nle-reflections。

核心功能

dsh-cognition 提供“约束 / 观测 / 记忆 / 验证”四层能力:

  • 约束与观测:通过强制链路和 Scope 锁,在修改发生前进行拦截和版本守卫。
  • 记忆机制:
    • Learned:关键词映射到文件,支持置信度、衰减与跨项目提升。
    • Precedent:历史会话中的成功先例。
    • Git:共改文件、变更频率与回滚记录。
  • 验证:通过契约门和 Guard 总闸,确保状态不被篡改,并提供成本报告。

典型用法

1. 基础工具调用
DSH 插件工具调用自带 Schema 描述。一个典型的任务执行链路包含以下步骤:

  • nle_suggest:定位与检索。
  • nle_focus:锁定 Scope。
  • nle_mutate / nle_select:执行编辑或对账收尾。
  • nle_guard:总闸验证。

2. 启用语义通道(可选)
语义检索(Embedding 重排)是可选增强。启用前需准备一个工作区目录,并运行独立 Helper 进程:

node nle-semantic/server.mjs --spool <工作区>/.nle-semantic

模型使用 Xenova/all-MiniLM-L6-v2(384 维),由 transformers.js 自动下载(约 90MB,不随仓库分发)。

注意事项

  • 会话与预设:运行中的会话不会自动获取新的预设,务必在全新会话中验证。
  • 语言召回:中文任务对英文代码库的 Recall 能力较弱,插件依赖 learned/alias 等机制作为兜底。
  • 依赖进程:语义通道依赖独立的 helper 进程,且插件注册为 agent-plane 工具,不提供安全隔离。作用域锁属于 Workflow 约束而非权限边界。
  • 离线环境:若需在无网环境使用语义通道,需先在有网机器运行 --selfcheck 生成缓存再迁移。

结尾

dsh-cognition 通过 DSH 原生原语将项目记忆能力深度集成到开发流中,实现了从约束、观测到记忆、验证的闭环。对于需要在多会话中保持上下文一致性的 DSH 开发者,这是一个实用的工具。

插件主页:https://github.com/scd13150/dsh-cognition

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

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

小夜