前言¶
在使用 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 开发者,这是一个实用的工具。