dsh-context-pro
其他 活跃维护

dsh-context-pro

kiwifruit13/dsh-context-pro

支持Agent上下文浸泡,可注入五维认知图鉴,采用链协议prestep零干预模式,支持JSON快照链演化提取,无需额外配置即可快速接入增强Agent上下文能力。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
HTML
主要语言
NOASSERTION
开源协议
1010 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:kiwifruit13/dsh-context-pro
git clone https://github.com/kiwifruit13/dsh-context-pro.git
git clone git@github.com:kiwifruit13/dsh-context-pro.git
README.md main

DSH-Context-Pro

DSH Agent 的链感知系统 + 洞察引擎——让模型内化五维认知结构(因果/逻辑/操作/叙事/时间),在回复末尾通过一行 JSON 快照隐式标记,系统在后台提取并维护会话内链图,并对每轮回复做洞察分析(带归因档案),用户全程无感。

定位:不是记忆引擎,不是注入器,是认知结构层。
核心哲学:CoT 放权——系统只做三件事:注入图鉴到 System Prompt + 解析 JSON 快照 + 在 ChainGraph 上做归因洞察(超然层)。

核心机制

链协议模式(主模式)

System Prompt(已含五链图鉴 + 情绪底色 + 末尾 JSON 快照指令)
    │
    ▼
模型 CoT 自由推理 → 生成自然语言正文 + 末尾 JSON 快照行
    │
    ▼
session/event → hook.ts 解析快照 + 更新 ChainGraph + 剥离 JSON 行
    │
    ▼
用户看到纯自然语言回复

五链图鉴通过 ctx.systemPrompt.section() 注入 System Prompt,模型内化后自然运用。末尾 JSON 快照由 hook 自动剥离,用户不可见。

非链模式

当 chains.enabled=false 时,插件退化为简单的上下文整形器,通过 agent/pre-step 拦截消息流做 SELECT/INJECT/MEASURE。

五维认知图鉴

链 本质 触发
因果链《溯源者》 对抗混乱,寻找"第一因" 异常/困境 + "为什么/怎么办"
逻辑链《架构师》 对抗片面,追求"绝对理性" 权衡/假设/"如果…那么…"
操作链《手艺人》 对抗空谈,追求"落地执行" 动作动词/"先…再…"/无从下手
叙事链《说书人》 对抗碎片,构建"意义之弧" 具体年月/状态反转/回顾唏嘘
时间链《预言家》 对抗短视,建立"动态视野" "以前/现在/以后"三段对比

图鉴细节见 docs/Architectural-Thinking.md(已注册为技能 architectural-thinking,模型可发现)。

链间化学反应

五链可相互催化:因果×时间 → 深层归因动力学,逻辑×操作 → 抗脆弱执行手册,叙事×因果 → 沉浸式深度诊断,时间×叙事 → 变革蓝图。详见 docs/Integrated-Catalysis.md(已注册为技能 integrated-catalysis)。

洞察引擎

洞察引擎是链感知系统之上的超然层——只观察、只建议、不干预 CoT。它解决一个核心问题:让 AI 真的越来越懂用户。

它在做什么

每轮模型回复后,洞察引擎在 ChainGraph(会话内的全局结构)上做四步归因:

ChainGraph(会话内的累积知识)
   ↓
6 个分析器产出 InsightItem[](链间化学反应/迁移预测/置信度趋势等)
   ↓
attributeInsightsPure() 在 ChainGraph 上做归因
   ↓
每条 InsightItem 附带 ConfidenceProfile:
   • nodeEvidence:基于哪些 ChainNode(primary / supporting / contradicting)
   • edgeEvidence:基于哪些结构化关系(parent-child / divergence / cross-chain-link 等)
   • contradictingEvidence:反向证据
   • attributionScore:综合评分 0-1
   • rationale:人类可读的归因路径
   ↓
get_insights 工具暴露归因洞察(模型按需调取,参考非约束)
   ↓
generateTopics() 基于归因洞察生成推荐话题(话术引用真实 ChainNode 内容)
   ↓
用户侧话题卡片(基于 basedOn 档案展示"为什么推荐这个话题")

它解决的核心问题

旧版本(v0.2.0)的问题 v0.3+ 的解决
洞察只是"我看到了 X"的现象报告 洞察升级为"我为什么这样判断"的归因诊断
话题按洞察 type 套死模板("如果是化学反应就推荐 X") 话题话术从归因档案动态生成,引用真实 ChainNode 内容
用户感受不到"AI 真的懂我" 归因真实 + 引用真实 → 用户的"被理解"感自然涌现

关键设计原则

  • 零新增存储:归因档案随返回值流转,不持久化
  • 洞察千变万化,方法论稳定:评估方法(四步法)结构固定,洞察内容由 ChainGraph 实时生成
  • 基于 ChainGraph 多轮对话:跨轮引用让"AI 真的懂我"的感受自然涌现,不需要额外机制
  • 超然层纯粹:归因档案是"档案",不参与 CoT 推理

完整设计文档

详细设计(契约、归因算法、话题生成、生命周期、配置、测试):docs/insight-engine-design.md

安装与装配

方式 A:DSH Web Profile 安装(推荐,已验证)

# 1. 安装 dsh CLI 到项目(提供 node_modules/.bin/dsh)
pnpm add @deepseek-ai/dsh

# 2. 添加插件到 web profile(写入 ~/.dsh/profiles/web/package.json)
pnpm exec dsh plugin --profile web add @kiwifruit/dsh-context-pro

# 3. 验证已生效
pnpm exec dsh plugin --profile web list

⚠️ dsh 不在全局 PATH 时必须用 pnpm exec;--profile web 会把依赖写入用户级 profile(~/.dsh/profiles/web),不改动工作区 cordis.yml。

方式 B:npm 包手动装配(工作区级)

npm install @kiwifruit/dsh-context-pro

在 cordis.patch.yml 中添加:

- insert:
    - id: context-pro
      name: '@kiwifruit/dsh-context-pro'
      config:
        chains:
          enabled: true
          injectProtocol: true
          maxNodesPerChain: 20
          insight:
            enabled: true

方式 C:全局 CLI 安装(最简两步)

# 1. 全局安装 dsh CLI(需确保 pnpm global bin 在 PATH,或先运行 pnpm setup)
npm install -g @deepseek-ai/dsh

# 2. 直接添加插件到 web profile
dsh plugin --profile web add @kiwifruit/dsh-context-pro

⚠️ 若提示 dsh 命令未找到,请运行 pnpm setup 刷新 PATH,或改用方式 A(项目级 pnpm exec)。

配置完整参考

字段 默认值 说明
chains.enabled false 开启链感知(五链图鉴 + JSON 快照提取)
chains.injectProtocol false 注入五链图鉴到 System Prompt
chains.maxNodesPerChain 20 每链节点上限(防演化失控)
chains.insight.enabled true 启用洞察引擎(依赖 chains.enabled)
chains.insight.similarityThreshold 0.15 Jaccard 相似度阈值,去重话题
chains.insight.maxStaleRounds 3 连续未确认轮次上限,过期淘汰
chains.insight.maxInsights 20 洞察项总数上限
chains.insight.maxTopics 10 话题总数上限
chains.insight.historyWindow 40 历史累积窗口(最近 N 轮 = 2N 条消息)
chains.insight.maxSessions 100 会话总数上限
chains.insight.selectiveAnalysis false 启用选择性分析器(P1)
chains.insight.auth.enabled false API Key 鉴权
chains.insight.rateLimit.maxRequests 100 限流:窗口内最大请求数
chains.insight.rateLimit.windowMs 60000 限流:窗口毫秒数

核心能力

能力 说明 接入方式
五链图鉴注入 因果/逻辑/操作/叙事/时间 + 情绪底色 + 融合法则 chains.injectProtocol: true 自动注入 System Prompt
JSON 快照提取 末尾一行 JSON,自动解析入链图、自动剥离(用户不可见) hook.ts 监听 session/event
洞察引擎(超然层 + 归因) 链间化学反应/迁移预测/置信度趋势/缺口聚合/分歧收敛,仅建议不干预;每条洞察附带归因档案(节点证据 + 边证据 + 反证 + 综合评分 attributionScore) get_insights 工具 + HTTP API
话题生成(基于归因洞察) 每轮重建推荐话题,话术引用真实 ChainNode 内容(不是固定模板);每条话题带 basedOn 档案说明"为什么推荐这个话题" getTopics() + HTTP API + Client UI 注入
话题卡片 UI 输入区下方渲染可点击话题,点击复制到剪贴板 Client 插件挂载 conversation.input.dock
HTTP API /api/context-pro/topics /mark-active /topics/stream /topics/batch /stats webServer 服务自动注册,支持鉴权/限流
项目技能注册 agent-principles api-contract-guide architectural-thinking integrated-catalysis chain-fusion-advanced insight-engine hook-tool-data-flow 启动时自动注册,模型可发现

HTTP API 端点

端点 方法 说明
/api/context-pro/topics GET 获取指定会话的话题建议 ?sessionId=xxx
/api/context-pro/topics/stream GET SSE 实时推送话题变更 ?sessionId=xxx
/api/context-pro/topics/batch POST 批量查询 { sessionIds: string[] }
/api/context-pro/mark-active POST 标记 Client 已激活 { sessionId }
/api/context-pro/stats GET 全量可观测性指标(快照成功率/链健康度/洞察命中率)
/api/context-pro/openapi.json GET OpenAPI 3.1 规范文档

文档导航

文档 用途
docs/chain-design-final.md 终局设计文档(五链图鉴/提取通道/架构/纪律)
docs/chain-guide.md 链感知使用与架构指南
docs/Architectural-Thinking.md 五维认知结构图鉴(技能 architectural-thinking)
docs/Integrated-Catalysis.md 链间化学反应催化酶(技能 integrated-catalysis)
docs/AGENTS.md 智能体工作原则(技能 agent-principles)
docs/CLAUDE.md API/接口/胶水公约(技能 api-contract-guide)
docs/洞察引擎.md 洞察引擎架构与分析器详解(v0.2.0 历史版本)
docs/insight-engine-design.md 洞察引擎 v0.3+ 完整设计文档(归因档案 + 话题生成)
docs/insight-architecture.md 洞察引擎架构终局(超然层/协作图/归因四步法/话题范式/生命周期/三条通道)

目录结构

DSH-Context-Pro/
├── src/
│   ├── index.ts           入口(name/apply/inject)
│   ├── prestep.ts         agent/pre-step 拦截器(链协议模式零干预)
│   ├── config.ts          Config schema(契约先行)
│   ├── skills.ts          技能注册(7 个技能)
│   ├── session-id.ts      统一 session ID 获取工具
│   ├── metrics.ts         可观测性指标收集
│   ├── auth.ts            HTTP 鉴权/限流中间件
│   ├── openapi.ts         OpenAPI 3.1 规范生成
│   └── chains/
│       ├── types.ts       链契约(ChainNode/ChainGraph/ChainIndex/InsightReference)
│       ├── graph.ts       ChainGraph 演化实现(upsert/prune/supersede/ended)
│       ├── index.ts       ChainIndex 临时存储 + 生命周期
│       ├── hook.ts        session/event 监听(提取快照 + 链提取 + 洞察分析 + 话题注入)
│       ├── snapshot.ts    快照 JSON 解析(容错修复 + confidence/diverged/supersede)
│       ├── prompt.ts      五链图鉴提示词段(注入 System Prompt)
│       ├── guide.ts       脉络导览(GPS/轨道图/缺口探测)
│       ├── insight.ts     洞察引擎(5 分析器 + 话题生成 + LRU 内存保护)
│       └── candidate.ts   链节点 → SELECT 候选(仅非链模式)
├── scripts/
│   ├── verify-e2e.ts      端到端装配验证
│   ├── verify-chains.ts   链感知方案验证(40 用例)
│   ├── verify-protocol.ts 图鉴协议内容完整性验证
│   ├── verify-attribution.ts 归因算法验证(23 断言)
│   ├── verify-topics.ts   话题生成验证(13 断言)
│   └── diag-*.ts          会话日志/崩溃诊断工具链
├── docs/                  设计文档 / 技能源文件 / 公约
├── cordis.yml             装配示例(npm 包模式)
├── cordis.patch.yml       发布包自动应用的 patch
└── tsconfig.build.json    构建配置

验证

# 类型检查(用 harness 的 tsc)
cd D:/Git/github/deepseek-harness-master
node --import tsx/esm E:/Deepseek/DSH-Context-Pro/scripts/verify-e2e.ts

# 链感知(40 用例)
node --import tsx/esm E:/Deepseek/DSH-Context-Pro/scripts/verify-chains.ts

# 协议内容完整性
node --import tsx/esm E:/Deepseek/DSH-Context-Pro/scripts/verify-protocol.ts

# Cordis 配置校验(122 文件)
node --import tsx/esm scripts/verify-cordis-config.ts

设计决策

决策 理由
CoT 放权 模型通过 System Prompt 内化五链图鉴,系统不干预推理过程
末尾 JSON 快照为主提取通道 正文自然表达,hook 自动剥离快照行(用户不可见)
链图跟会话生命周期 删对话即删链,非长期记忆,零残留
纯 TS 无外部引擎 贴近 DSH 生态、HMR 友好、零依赖
洞察引擎超然层 只观察、只建议、不干预 CoT,避免污染模型推理
归因档案(v0.3+) 让洞察从"结果评价"升级为"归因诊断":节点证据 + 边证据 + 反证 + 综合评分。洞察本身千变万化,但评估方法稳定可复用
话题基于归因生成 话题必须依据洞察产生,话术引用真实 ChainNode 内容(不按洞察 type 套死模板)
Client UI 走 HTTP 持久化、重启不丢失、不依赖动态插件 RPC

发布到 npm

npm run build
npm publish --access public

当前版本:0.3.0 | 协议:GPL-3.0 | 仓库:https://github.com/kiwifruit13/dsh-context-pro