Skip to content
dsh.fish
Bundle

dsh-dream

DSH 自动做梦插件:后台定期回顾近期会话与记忆,整合去重、更新过时、修剪索引(复刻 CC-HAHA autoDream,与 dsh-memory 并存)

Source
yihefeikong-rgb
stars
1 stars
License
MIT
Updated
Updated 14 days ago

Readme

# dsh-dream

DSH 自动做梦插件:后台定期回顾近期会话与已有记忆,**整合去重、更新过时、删除矛盾、修剪重建索引**。
复刻 [CC-HAHA](https://github.com/NanmiCoder/cc-haha) 的 `autoDream`(后台记忆整合)行为,
与已安装的 `dsh-memory` 并存——`dsh-memory` 负责"随手记"(extractMemories),`dsh-dream` 负责"睡前整理"。

> [!IMPORTANT]
> 本项目不是 CC-HAHA 官方组件,也不隶属于 CC-HAHA 或 DeepSeek。自动做梦的
> 门控链与整合流程参考 CC-HAHA(见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)),
> 插件代码使用 DSH 原生能力(会话查询、子代理、命令、工具、设置)独立实现。

> [!IMPORTANT]
> 独立插件,不修改 dsh-memory;与它共享同一个 `~/.dsh/memory/` 目录,文件格式与 `MEMORY.md` 索引完全兼容。

## 功能

- **自动定时**:默认 24 小时 + 积累 5 个会话后,后台静默执行一次记忆整合(五重门控,不阻塞对话)。
- **手动触发**:`/dream` 命令,或 agent 调用 `memory_dream` 工具,立即整合一次。
- **整合内容**(对齐 CC-HAHA autoDream 4 阶段,执行用 **fork 子代理**):
  - 插件 fork 一个子代理(默认继承会话模型;可选覆盖 provider/model/maxTokens)
  - 子代理按 4 阶段提示词(定向 → 收集近期信号 → 整合 → 修剪索引)输出**动作 JSON**
  - 插件在 host 侧安全落盘:合并重复(`merge`/`update`)、修正过时/删除矛盾(`delete`)、
    从近期会话提炼新记忆(`create`)、重建 `MEMORY.md` 索引(≤200 行 / ≤25KB)
- **安全**:所有写操作限制在记忆目录内;动作整批预检通过后才开始写入;删除/覆盖前自动存 `.history/` 历史版本;LLM 输出严格 JSON 校验;`.dream-lock` 防并发。

## 安装

```powershell
dsh plugin --profile web add C:\Users\huangxinyang\.dsh\plugins\dsh-dream
# 或从源码目录:
dsh plugin --profile web add D:\claude\...\dsh-dream
```

安装后**重启 DSH**:

```powershell
dsh web
```

## 配置

有两种方式,效果一致(设置面板写入的是用户层,覆盖 patch 默认值;`applies: restart`,**重启后生效**):

1. **设置面板(推荐)**:打开 DSH 设置 → **插件** → **插件配置** 选项卡 → **自动做梦** 卡片,直接编辑并保存。
   卡片字段含说明与"已覆盖/恢复默认"标记;保存后写入 `~/.dsh/settings.yaml` 的 `dsh-dream:` 段。
2. **patch 文件**:编辑 `cordis.patch.yml` 的默认配置。

| 选项 | 默认 | 说明 |
|---|---:|---|
| `enabled` | true | 后台自动做梦总开关 |
| `minHours` | 24 | 距上次整合最小间隔(小时) |
| `minSessions` | 5 | 距上次整合后最少新会话数 |
| `triggerMode` | hybrid | hybrid=时间或内容量先到先触发 / gates=仅固定间隔 / volume=仅按内容量 |
| `minVolumeChars` | 30000 | 内容量触发阈值(近期待整合会话文本估算字符数) |
| `scanIntervalMinutes` | 10 | 后台门控检查间隔(分钟) |
| `scopes` | auto | auto=近期活跃项目+通用 / all=全部 / current=当前项目+通用 |
| `maxDigestChars` | 60000 | 近期会话摘要上限(字符) |
| `maxMemoryChars` | 80000 | 记忆正文参考上限(字符) |
| `maxTokens` | 8192 | 子代理整合输出上限;0=不传,由宿主/模型决定 |
| `agentTimeoutMs` | 900000 | 做梦子代理总超时(毫秒) |
| `provider` / `model` | '' | 空 = 继承会话模型 |
| `manualOnly` | false | true=只允许手动/工具触发 |
| `storageDir` | '' | 空 = 默认 `~/.dsh/memory` |

> 设置卡片属于插件浏览器端(client bundle)。**新增或更新设置卡片后需重启 DSH**,
> 让宿主重新扫描插件的 `dsh.client` 声明(`pkgMeta` 缓存只在进程启动时刷新)。

## 使用

- 手动整合一次:发送 `/dream`(可选 `all` / `current` 指定作用域范围)。
- agent 主动触发:调用 `memory_dream` 工具。

整合结果会作为一条系统消息出现在当前会话;日志以 `[dsh-dream]` 前缀输出。

## 与 CC-HAHA 的关系

参考 CC-HAHA `src/services/autoDream/` 的门控链与整合流程(`autoDream.ts` / `consolidationPrompt.ts` /
`consolidationLock.ts`),使用 DSH 原生能力(`ctx.sessionQuery` 读会话、`ctx.llm` 整合、`ctx.commands` / `ctx.tools` 入口)独立实现。

## License

MIT

Install

dsh plugin --profile web add github:yihefeikong-rgb/dsh-cc-haha-dream

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source