🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

认知折叠 orangeofcarl0-sys/dsh-epistemic-fold

DeepSeek Harness
orangeofcarl0-sys14 天前有提交已提供中文文档扫描:含敏感能力

Compaction 应该让上下文更小,而不是让 Agent 忘掉它已经学到的东西。

34.2/100
综合分
6
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add orangeofcarl0-sys/dsh-epistemic-fold
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · chat
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/26) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-epistemic-fold(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 23:36:25

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 57 处,展示前 55 条)
  • 读取本地文件
    scripts/build-plugin.mjs:53
    const entries = await readdir(dir, { withFileTypes: true })
  • 删除本地文件递归
    scripts/build-plugin.mjs:99
    await rm(OUT, { recursive: true, force: true })
  • 读取本地文件
    scripts/build-plugin.mjs:104
    const source = await readFile(join(SRC, rel), 'utf8')
  • 写入本地文件
    scripts/build-plugin.mjs:107
    await mkdir(dirname(target), { recursive: true })
  • 写入本地文件
    scripts/build-plugin.mjs:108
    await writeFile(target, js, 'utf8')
  • 读取本地文件
    scripts/build-plugin.mjs:115
    const clientSource = await readFile(join(ROOT, 'client.js'), 'utf8')
  • 写入本地文件
    scripts/build-plugin.mjs:116
    await writeFile(join(OUT, 'client.js'), clientSource, 'utf8')
  • 读取本地文件
    scripts/generate-presets.mjs:280
    const dir = presetDirCandidates(dshHome).find(candidate => existsSync(candidate))
  • 读取本地文件
    scripts/generate-presets.mjs:300
    const { block, rowIndent } = extractConfig(readFileSync(file, 'utf8'), `preset-${name}`)
  • 读取本地文件
    scripts/generate-presets.mjs:322
    const existing = existsSync(OUT_FILE) ? readFileSync(OUT_FILE, 'utf8') : ''
  • 读取本地文件
    scripts/generate-presets.mjs:322
    const existing = existsSync(OUT_FILE) ? readFileSync(OUT_FILE, 'utf8') : ''
  • 写入本地文件
    scripts/generate-presets.mjs:323
    writeFileSync(OUT_FILE, spliceBlock(existing, block), 'utf8')
  • 写入本地文件
    src/checkpoint/bundle-store.ts:53
    await mkdir(dirname(target), { recursive: true, mode: BUNDLE_DIR_MODE })
  • 读取本地文件
    src/checkpoint/bundle-store.ts:56
    const stored = await readFile(target, 'utf8')
  • 读取本地文件
    src/checkpoint/bundle-store.ts:90
    raw = await readFile(file, 'utf8')
  • 读取本地文件
    src/checkpoint/bundle-store.ts:142
    names = await readdir(dir)
  • 读取本地文件
    src/checkpoint/bundle-store.ts:152
    descriptors.push(await this.describe(bundle, (await stat(file)).size))
  • 删除本地文件
    src/checkpoint/bundle-store.ts:158
    await rm(bundlePath(this.root, sessionId, checkpointId), { force: true })
  • 写入本地文件
    src/checkpoint/bundle-store.ts:167
    await mkdir(dirname(target), { recursive: true, mode: BUNDLE_DIR_MODE })
  • 读取本地文件
    src/checkpoint/bundle-store.ts:174
    raw = await readFile(commitPath(this.root, sessionId, checkpointId), 'utf8')
  • 读取本地文件
    src/checkpoint/bundle-store.ts:196
    names = await readdir(this.root)
  • 发起网络请求
    src/recall/recall-loop.ts:382
    const found = await options.fetch(request)
  • 读取本地文件
    scripts/apply-framing-seam.mjs:177
    if (!existsSync(edit.file)) {
  • 读取本地文件
    scripts/apply-framing-seam.mjs:182
    const text = readFileSync(edit.file, 'utf8')
  • 写入本地文件
    scripts/apply-framing-seam.mjs:192
    writeFileSync(edit.file, text.replace(edit.find, edit.replace), 'utf8')
  • 读取密钥环境变量
    scripts/check-route.mjs:53
    const KEY = process.env.EF_LIVE_API_KEY ?? ''
  • 发起网络请求
    scripts/check-route.mjs:111
    const response = await fetch(URL_UNDER_TEST, {
  • 读取本地文件
    scripts/count-baselines.mjs:19
    if (!existsSync(root)) continue
  • 读取本地文件
    scripts/count-baselines.mjs:20
    for (const cell of readdirSync(root)) {
  • 读取本地文件
    scripts/count-baselines.mjs:22
    try { if (!statSync(cellDir).isDirectory()) continue } catch { continue }
  • 读取本地文件
    scripts/count-baselines.mjs:24
    if (!existsSync(transcript)) continue
  • 读取本地文件
    scripts/count-baselines.mjs:27
    if (!existsSync(reward)) { bad += 1; detail.push(cell + ':no-reward'); continue }
  • 读取本地文件
    scripts/count-baselines.mjs:29
    try { fields = JSON.parse(readFileSync(reward, 'utf8')).best_correct_fields } catch { }
  • 读取本地文件
    scripts/generate-maps.cjs:19
    const src = fs.readFileSync(baseConfigPath, 'utf8')
  • 读取本地文件
    scripts/generate-maps.cjs:92
    if (t.endsWith('.ts') || t.endsWith('.json') || t.endsWith('.d.ts')) return fs.existsSync(t)
  • 读取本地文件
    scripts/generate-maps.cjs:94
    return fs.existsSync(t + '/' + dirEntry) || fs.existsSync(t + '.ts') || fs.existsSync(t + '.d.ts')
  • 写入本地文件
    scripts/generate-maps.cjs:103
    fs.writeFileSync(path.join(root, 'scripts', 'vendor-paths.json'), JSON.stringify(srcMap.map, null, 2) + '\n')
  • 写入本地文件
    scripts/generate-maps.cjs:112
    fs.writeFileSync(path.join(root, 'scripts', 'vendor-types-paths.json'), JSON.stringify(typesMap.map, null, 2) + '\n')
  • 读取本地文件
    scripts/generate-maps.cjs:116
    const tsconfig = JSON.parse(fs.readFileSync(tsconfigPath, 'utf8'))
  • 写入本地文件
    scripts/generate-maps.cjs:123
    fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 2) + '\n')
  • 读取本地文件
    scripts/preflight-lib.mjs:61
    for (const entry of readdirSync(dir, { withFileTypes: true })) {
  • 读取本地文件
    scripts/preflight-lib.mjs:73
    if (!existsSync(path)) return
  • 读取本地文件
    scripts/preflight-lib.mjs:74
    const at = statSync(path).mtimeMs
  • 读取本地文件
    scripts/preflight-lib.mjs:89
    const missing = required.filter(rel => !existsSync(join(ROOT, rel)))
  • 读取本地文件
    scripts/preflight-lib.mjs:106
    const at = statSync(join(ROOT, rel)).mtimeMs
  • 读取本地文件
    scripts/probe-route.mjs:15
    const cred = readFileSync(homedir() + '/.dsh/.credentials.yaml', 'utf8')
  • 发起网络请求
    scripts/probe-route.mjs:22
    const r = await fetch(base + '/chat/completions', {
  • 读取本地文件
    scripts/sweep-temp.mjs:44
    entries = await readdir(dir, { withFileTypes: true })
  • 读取本地文件
    scripts/sweep-temp.mjs:55
    total += (await stat(child)).size
  • 读取本地文件
    scripts/sweep-temp.mjs:75
    entries = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    scripts/sweep-temp.mjs:87
    info = await stat(path)
  • 删除本地文件递归
    scripts/sweep-temp.mjs:96
    if (!dryRun) await rm(path, { recursive: true, force: true })
  • 写入本地文件
    scripts/vendor-basic.mjs:89
    mkdirSync(OUT, { recursive: true })
  • 读取本地文件
    scripts/vendor-basic.mjs:91
    const source = readFileSync(join(SRC, `${module}.ts`), 'utf8')
  • 写入本地文件
    scripts/vendor-basic.mjs:93
    writeFileSync(join(OUT, `${module}.ts`), `${header(module)}\n${body}`, 'utf8')
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-compaction@deepseek-ai/dsh-compaction-tool-result-pruner@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-token-meter@deepseek-ai/dsh-tools@deepseek-ai/dsh-util-values
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 保持契约的上下文运行时
  • 服务长程智能体

为 DeepSeek Harness 上的长程智能体提供保持契约的上下文运行时

README

由 DeepSeek 最新模型翻译生成
Epistemic Fold Compaction 应该让上下文更小,而不是让 Agent 忘掉它已经学到的东西。 Epistemic Fold 是 DeepSeek Harness 上的一个 context runtime,面向长周期 Agent。它把旧轨迹折叠出模型的 active context,同时保证原始历史仍可恢复、frozen prefix 保持稳定、整个过程可观察。 精确历史始终可恢复。 旧轨迹离开热上下文。 Agent 继续工作,而不必把有损摘要当成事实来源。 English · 使用指南 · 架构 · 研究归档 Epistemic Fold Sidebar 面板:模式、相对窗口的上下文压力、归档历史、累计折叠次数、检索活动与实测供应商用量 来自真实会话的真实渲染。Sidebar 读取与 /context status 相同的 status projection,且不进入模型 prompt——未知值显示为 —,绝不伪造为 0。 问题 长周期 Agent 会积累大量有用的历史: - 需求以及后来的修订; - 失败的尝试,以及它们为什么失败; - 工具输出; - 实现决策; - 临时约束; - 可能几百轮之后才再次用到的事实。 最终这些历史必须离开 active prompt。 通常的做法是把它摘要掉。
展开完整文档(README 剩余 1 节)
Epistemic Fold

Compaction 应该让上下文更小,而不是让 Agent 忘掉它已经学到的东西。

Epistemic Fold 是 DeepSeek Harness 上的一个 context runtime,面向长周期 Agent。它把旧轨迹折叠出模型的 active context,同时保证原始历史仍可恢复、frozen prefix 保持稳定、整个过程可观察。

精确历史始终可恢复。 旧轨迹离开热上下文。 Agent 继续工作,而不必把有损摘要当成事实来源。

English · 使用指南 · 架构 · 研究归档

Epistemic Fold Sidebar 面板:模式、相对窗口的上下文压力、归档历史、累计折叠次数、检索活动与实测供应商用量

来自真实会话的真实渲染。Sidebar 读取与 /context status 相同的 status projection,且不进入模型 prompt——未知值显示为 —,绝不伪造为 0。

问题

长周期 Agent 会积累大量有用的历史:

- 需求以及后来的修订;
- 失败的尝试,以及它们为什么失败;
- 工具输出;
- 实现决策;
- 临时约束;
- 可能几百轮之后才再次用到的事实。

最终这些历史必须离开 active prompt。

通常的做法是把它摘要掉。

这对上下文体积有帮助,但会带来第二个问题:

原始历史 ↓ 摘要 ↓ 摘要的摘要 ↓ 现在到底还有哪些是成立的?

压缩后的叙述可能有用,但它是很差的 canonical record。细节会消失,旧值可能重新看起来像当前值,而后来的 Agent 可能完全没有办法找回那段被折叠掉的精确来源。

Epistemic Fold 改的是这个契约。

┌──────────────────────┐
旧 model-visible ───►│ exact Fold Bundle │─────┐ history │ immutable + hashed │ │ └──────────────────────┘ │ │ │ ▼ │ ┌──────────────────────┐ │ │ compact checkpoint │ │ │ + bounded state │ │ └──────────────────────┘ │ │ │ ▼ │ active context │ │ │ 需要旧细节? │ └──── search / recall ───► 精确归档

active prompt 变小了。原始历史没有消失。

这和“直接摘要一下”有什么不同

| | 普通的 lossy compaction | Epistemic Fold |
| 事实来源 | 压缩叙述往往成为唯一可见的表示 | DSH session + exact Fold Bundle 仍是 canonical |
| 旧细节 | 可能无法恢复 | archived messages 精确、可搜索、可分页 |
| 反复压缩 | 可能反复重写之前的摘要 | 普通 fold 只推进单调的 Fold Frontier |
| 当前状态 | 基本隐含在叙述里 | 确定性状态可以与叙述分离表示 |
| cache 行为 | 重写早期上下文会扰动 prefix | leaf fold 保持 frozen prefix 稳定;root rebase 很少 |
| 可观察性 | 通常不透明 | /context status + Sidebar 展示 pressure、fold、archive、recall 与用量 |

EF 不打算造世界上最聪明的摘要器。

它要做的是让 有损摘要不再具有权威性。

30 秒导览

1. 选择你要的取舍

/context mode economy
/context mode balanced
/context mode quality

| 档位 | 思路 |
| Economy | 热上下文尽量精简;旧细节按需召回 |
| Balanced | 保留更长的 verbatim recent tail |
| Quality | Balanced + semantic rationale checkpoint |

三档共用同一个 engine。每上一档只增加一个明确的 retention / redundancy 杠杆,所以取舍是可检视的,而不是藏在三套互不相关的实现里。

legacy 是 EF 的冻结兼容基线。
basic 让 EF 退场,把 compaction 委托给 vendored Basic backend。

2. 观察运行时在做什么

/context status

典型字段:

context mode: economy

current context:
pressure 42819 tokens
window 131072 tokens
occupancy 32.7%

archived history:
archived tokens ~286000 (estimated)
checkpoints now 6

retrieval:
searches 12
recalls 8

folds (lifetime):
leaf folds 27
root rebases 3

浏览器 Sidebar 读取同一个 status model。

状态 UI 在模型历史之外。 查看压缩状态不会消耗它正在报告的那部分上下文。

3. 让 Agent 找回已经离开 prompt 的内容

当 DSH 提供 ToolRuntime 时,EF 注册两个工具:

- context_search —— 定位相关的已折叠历史和有界原文 excerpt;
- context_recall —— 读取 checkpoint 视图或精确 archived messages。

所以“当前不在 prompt 里”不等于“没了”。

Fold 是怎样工作的

普通 Leaf Fold 只处理 Fold Frontier 之后的 open trajectory:

[frozen checkpoint][frozen checkpoint] | frontier | [open trajectory........]
└────── leaf fold ──────┘

事务顺序是刻意固定的:

选择合法 span ↓ 归档精确的 model-visible messages ↓ 构建 checkpoint / state 表示 ↓ 提交 DSH surface replacement ↓ 推进 Fold Frontier

归档必须先于有损替换提交。

这给出 EF 的核心不变量:

Bundle durable before surface loss.

Root Fold 不同:当长期 carry cost 确实值得这次 cache 扰动时,它会重整更大的 frozen surface。Root fold 故意保持低频。

快速开始

从 release tarball 安装

release tarball 是最省事的固定版本安装方式,因为它已经包含构建好的 lib/——不会触发 prepare,不需要 allowBuilds,拿到的就是 release notes 描述的那份代码。

dsh plugin --profile <name> add file:/path/to/dsh-epistemic-fold-0.1.0.tgz

或者固定到 git tag

dsh plugin --profile <name> add github:orangeofcarl0-sys/dsh-epistemic-fold#v0.1.0

裸写 github:owner/repo 跟的是默认分支,不是 release。
dsh plugin 从不查询 GitHub Releases API:它把 spec 交给 pnpm,裸写形式会被解析到默认分支的
TIP,只有带 #<tag-or-commit> 时才真正 pin——实测表现为 codeload.github.com 的 tarball URL,末尾是解析出的 commit sha。想跟未发布代码就显式去掉 #v0.1.0,不要靠意外。

Profile bundle 顺序

EF 会原位 patch DSH 自带的 preset,所以它必须排在 dsh-web-app 之后:

{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-epistemic-fold"
]
}
}
}

EF 替换 DSH standard、ptc、cordis preset 内的 compaction backend; minimal 保持 DSH 原样。

配置默认档位:

- name: dsh-epistemic-fold
config:
bundleRoot: <profile persistence root>/epistemic-fold
mode: economy

然后在会话里验证:

/context status

安装渠道、pnpm allowBuilds、preset 校验、浏览器检查和升级行为见使用指南 与详细的 部署链。

今天到底验证了什么?

EF 刻意把“已测量的行为”和“产品假设”分开。

在当前实现上已确立

- 先归档后有损替换,且 Fold Bundle 带哈希校验;
- 对已折叠历史的精确有界召回;
- 单调的 Fold Frontier 行为;
- 生产路径上的 Leaf / Root fold 事务;
- 召回排序与时间上 supersession 的保护;
- 真实的 DSH plugin 挂载、preset substitution、运行时命令与 Sidebar;
- 一条不需要每次 fold 都调用语义模型的 Economy 路径。

仍未确定

- Balanced 或 Quality 相对 Economy 是否能带来可靠的长周期稳态优势;
- 在计入真实 provider cache 行为、重试、工具调用和路由定价之后,是否有一个档位普遍更便宜;
- 跨档位的完整外部 benchmark 排名。

这个区分是刻意的。EF 多次通过真实运行发现 instrumentation bug,项目选择保留这些更正,而不是把一次 null result 包装成营销结论。

完整证据链在 docs/README.zh.md。

产品界面

运行时命令

/context status
/context line
/context mode economy|balanced|quality

Sidebar

Sidebar 展示:

- context occupancy;
- archived history;
- 当前 checkpoint 数量;
- 累计 leaf / root fold;
- search / recall 活动;
- provider 用量;
- 命中价格 profile 时的成本估算。

未知值显示为 unknown —— 绝不伪造为 0。

Basic fallback

设置:

mode: basic

EF 就会刻意从 session surface 上消失:

- 不注册 EF projection;
- 不注册 Sidebar 面板;
- 不注册 /context;
- 不注册 recall 工具;
- compaction 委托给 vendored Basic backend。

你可以在不卸载插件的前提下做对比测试或回滚。

EF 不打算成为什么

Epistemic Fold 不是:

- 向量数据库;
- 通用 embedding memory 层;
- 学习式压缩规划器;
- 语义依赖图;
- 多级“摘要的摘要”层级;
- DSH goals、plans、todos 或项目指令的替代品。

这些边界是刻意的。

EF 拥有的是 folding contract。已有的 DSH 子系统继续拥有它们本来就拥有的状态。

状态归属与自定义 ef/anchor 事件当前的持久化限制见 Architecture。

一行架构

不可变历史 → 精确归档 → 紧凑工作投影 → 稳定 frozen surface ↔ 有界精确召回

或者更简单:

History ≠ Memory ≠ Context

这就是整个项目。

开发

本仓库是一个独立的 plugin source tree。测试直接跑 vendored DSH source(与 DSH monorepo 相同的 source-level resolution),所以测试 plugin 本身不需要先构建。

前置条件:Node ^22.19 || >=24、pnpm 11.7.x、npm。

git clone https://github.com/deepseek-ai/deepseek-harness.git vendor/deepseek-harness
cd vendor/deepseek-harness
git checkout 639ed015397290b3745d163aafe02ffee4aa3f84
pnpm install

node --max-old-space-size=8192 ./node_modules/typescript/bin/tsc -b \
packages/compaction/compaction-basic \
packages/core/tools \
packages/util/atomic-write

cd ../..
npm install
node scripts/generate-maps.cjs

npm test
npm run typecheck:all
npm run build

vendor/ 被 gitignore,但它是本地开发环境的一部分,不是可以随手清掉的 test output。
live tier 是 opt-in(EF_LIVE=1),没有可用 route 时会 skip,因此未测量的行为不会被报告成通过。

CI

每次 push 跑两个 lane:

- pinned DSH baseline(639ed015…,即 0.2.0-rc.2 release)——必须通过。
- DSH master——允许失败的兼容性探针。

两个 lane 都跑 typecheck、全量测试和 keyless evaluation tier。

关于版本号。 0.2.0-rc.2 是 CI 钉住的测试基线,同时也是本仓库实际安装的版本线: engines.dsh 与全部 peer range 都指向它,vendored checkout 也是同一个 release。

最后这点是关键。typecheck 通过 tsconfig paths 把 @deepseek-ai/* 解析到 vendored 源码,而 runtime 把同样的 specifier 解析到 node_modules 里的 npm 二进制。
当两者处在不同版本线时(vendored 0.2.0-rc.2、已安装 0.1.7-rc.2),编译器检查的是一套 API,Node 执行的是另一套,二者之间的任何差异对双方都不可见。
一个 import 了「已安装版本线里不存在」的包的 bridge,就是这样通过了 typecheck:all、却在运行时以 ERR_MODULE_NOT_FOUND 死掉的。现在两者钉在同一条线上,并且有测试推导这一点而不是把它重写一遍。

仓库结构

src/
engine.ts EpistemicFoldEngine —— Basic 事务 + EF compile hook fold-economics.ts 经济性 leaf admission 与 rebase 决策(R2-B、R2-C) policy.ts plugin 配置解析 + routed-model pressure 计算 policy-compiler.ts amortized rebase policy:break-even horizon、硬 override economics-profile.ts 版本化成本模型:ρ、ρ_eff、cache realization、break-even candidate.ts 待提交 fold candidate 的身份(每 session 单槽) bundle-store.ts FileBundleStore —— 原子、哈希校验、0600 权限 compiler.ts input 切分、canonical bundle 构建、checkpoint 渲染 frontier.ts Fold Frontier:从 CURRENT surface 定位/重建
leaf-policy.ts [frontier+1, bestEnd] span 选择 + frozen budget 载入
root-policy.ts root rebase 建议(手动 /compact = Root Fold) state.ts 确定性 StateReducer:anchor、supersession、lifecycle authority.ts 哪些 event kind 可以支撑哪些 authority domain anchor-service.ts authority-gated anchor 写入通道(ctx.epistemicFold) projection.ts 把 reducer 接入 ctx.sessionProjections renderer.ts 结构化 checkpoint:Current/Evidence/Open/Rationale/Recall recall.ts context_search + context_recall(有界、分页、精确) tools.ts 向 ctx.tools 注册 recall 工具 hash.ts canonical JSON + SHA-256 checkpoint-marker.ts checkpoint body 内的 EF1 marker 协议 pressure.ts frozen/open pressure 归因 trigger.ts trigger-breakdown 计算 trigger-diagnostics.ts 按 target 的 trigger 分解,输出到 log event-data.ts EF 读取的 session event payload 的类型化 reader rebase-intent.ts rebase-intent registry idle-rebase.ts idle 时段的 rebase consumer effective-config.ts 已解析配置的报告 preset.ts 档位阶梯及其证据状态 status.ts /context status 模型(对调用方数据的纯函数) status-projection.ts 面向 client 的 status projection(Sidebar 的数据源) command.ts /context 命令面 plugin.ts 组合 plugin:拥有 ctx.compaction,串联以上模块 entry.ts 裸名入口(挂载 DOCTOR,而不是 plugin) doctor.ts 常驻的 substitution doctor(只观察) preset-self-check.ts 把未生效的 preset substitution 变成显式报错 compat.ts frameCheckpoint seam 探测 + fail-loud 断言 basic/ DSH Basic backend 的 vendored 副本,内联了 seam index.ts, types.ts library 面与共享类型 client.js 浏览器 Sidebar panel(手写,无 bundler) eval/ 评测 harness:workload、ROI lab、Pareto、paired runner profiles/economics/ 版本化 provider 定价(asOf + source) tests/ 测试套件,以及带受控 LLM adapter 的共享 harness bench/ paired-baseline harness(Basic vs EF prefix 经济性) scripts/ 构建、preset 生成、vendoring、seam 应用、preflight docs/ 设计记录与评测报告(见下)

文档

docs/ 下的编号 R/RC 文档是研究与验证归档,不是用户手册。

推荐阅读顺序:

- 使用指南 —— 安装、模式、命令、Sidebar、排错。
- 架构 —— contract、fold 生命周期、state 与 recall。
- 开发指南 —— 本地环境、测试、评测约定。
- 研究与证据导航 —— 稳定文档 + 完整归档。
- 部署链 —— DSH preset 与浏览器部署的详细路径。

完整索引在 docs/README.zh.md。

License

MIT。见 LICENSE 与 THIRD_PARTY_NOTICES.md。
预览分享卡片长什么样 ↓orangeofcarl0-sys/dsh-epistemic-fold
分享 · DeepSeek Harness Hub
orangeofcarl0-sys/dsh-epistemic-fold

Compaction 应该让上下文更小,而不是让 Agent 忘掉它已经学到的东西。

这是你的仓库?认领条目

回到顶部