让 headless 会话连续对话并自动留存记忆
29.4/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/yj060464-commits/dsh-chat-tools.git按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 82 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/6) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-chat-tools(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:08:10
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 连续对话REPL
- 会话日志自动总结
- 思考档位切换
README
由 DeepSeek 最新模型翻译生成dsh-chat-tools
为 dsh(headless 模式)加装「连续对话 + 长期记忆 + 工作流可视化」的零依赖伴侣工具链。纯 bash + Python 标准库,不侵入 dsh 内部,只读写磁盘 transcript。
一个面向 dsh 的零依赖伴侣工具包:连续对话、持久记忆和实时工作流可视化。纯 bash + Python 标准库,只读写磁盘上的 transcript。
组件
| 文件 | 作用 |
| chat.sh | 连续对话 REPL:免 dsh 前缀,分段滚动上下文保持对话连贯;决策点拍板(模型给出多选项时渲染终端菜单,拍板后自动沿该分支继续);退出/Ctrl-C 自动总结存记忆 |
| chat_context.py | 分段滚动上下文构建器:段内窗口只增不减(前缀稳定 → 缓存命中率高),超限才整段截断;段起点持久化在 window.state |
| chat_choice.py | 决策点解析器:解析/剥离模型回复末尾的 [CHOOSE] 块(纯函数、零依赖),供 chat.sh 渲染拍板菜单 |
| chat_workflow_tail.py | 工作流实时透传:增量追读 dsh 会话 transcript(zstd frame 逐帧解码),把工具调用/结果、步骤边界实时打印到终端,零额外 token |
展开完整文档(README 剩余 1 节)
dsh-chat-tools 为 dsh(headless 模式)加装「连续对话 + 长期记忆 + 工作流可视化」的零依赖伴侣工具链。纯 bash + Python 标准库,不侵入 dsh 内部,只读写磁盘 transcript。 一个面向 dsh 的零依赖伴侣工具包:连续对话、持久记忆和实时工作流可视化。纯 bash + Python 标准库,只读写磁盘上的 transcript。 组件 | 文件 | 作用 | | chat.sh | 连续对话 REPL:免 dsh 前缀,分段滚动上下文保持对话连贯;决策点拍板(模型给出多选项时渲染终端菜单,拍板后自动沿该分支继续);退出/Ctrl-C 自动总结存记忆 | | chat_context.py | 分段滚动上下文构建器:段内窗口只增不减(前缀稳定 → 缓存命中率高),超限才整段截断;段起点持久化在 window.state | | chat_choice.py | 决策点解析器:解析/剥离模型回复末尾的 [CHOOSE] 块(纯函数、零依赖),供 chat.sh 渲染拍板菜单 | | chat_workflow_tail.py | 工作流实时透传:增量追读 dsh 会话 transcript(zstd frame 逐帧解码),把工具调用/结果、步骤边界实时打印到终端,零额外 token | | session_log.sh | 一次性会话包装器:包装任意 dsh 命令,会话结束后自动提取关键点写入项目 AGENTS.md「会话日志」 | | session_extract.py | LLM 记忆提取器:解析 transcript → LLM 提炼要点 → 追加到 AGENTS.md;无 key 时回退关键词提取;发送前对密钥/私钥等自动脱敏 | 解决的问题 dsh --profile headless "..." 每次都是全新会话(headless 固定新建随机 session),上下文不连续,还得敲一长串前缀。这套工具让 dsh 拥有: 1. 连续对话(省 token) — 每次提问自动带上当前分段窗口内的对话记录(默认上限 8 轮 / 8000 字符,可调):窗口在段内只增不减,相邻两轮请求互为「前缀扩展」,DeepSeek 自动前缀缓存几乎全命中(只 miss 最新一轮增量);仅当超限才一次性截断(丢最旧一半),整窗 miss 从「每轮一次」降到「每段一次」 2. 长期记忆 — 会话结束自动把关键点写入项目 AGENTS.md「会话日志」,新会话自动注入(AGENTS.md 分层约定) 3. 工作流可视化 — 实时看到模型每一步工具调用/结果/耗时,纯透传磁盘上已写好的 transcript,不消耗额外 token 4. 中文输入适配 — readline 行编辑:退格按「字符」删,中文不会删成半个字/乱码 5. 决策点(多选项拍板) — 任务有多个可行方向时,模型按约定在回复末尾输出 [CHOOSE] 块(A/B/C… 选项),chat.sh 渲染成终端可选菜单,你输序号/字母拍板(q=都不选、直接说想法),自动以该选择继续执行分支;新回复仍有块则继续弹菜单(上限 CHOICE_MAX_ROUNDS 防失控)——headless 下等效于 web 端「多选项让用户拍板」的项目分支体验 6. 思考档位实时切换(!effort) — 运行中临时把模型思考档位切到 high/max(写入共享的 agent-default-model.reasoningEffort,与 web 端模型选择器同一存储),退出对话自动还原为进入前的档位(仅当期间未被外部改动才还原,避免覆盖 web 端新选择)。注意与 !thinking(回复末尾的思考记录附加内容,off/short/full)是两回事:!effort 改的是模型实际推理强度(off/high/max,low 官方 API 已有但本机 dsh 适配器暂不支持)。 依赖 - dsh(必需,底层对话引擎;可用 CHAT_DSH_CMD 换成任何兼容命令) - bash(4.x+)、python3(仅标准库)、zstd(CLI,解码 transcript 用) Ubuntu/Debian: sudo apt install zstd dsh 按官方方式安装 安装 git clone https://github.com//dsh-chat-tools.git cd dsh-chat-tools chmod +x chat.sh session_log.sh session_extract.py 用法 连续对话(推荐日常入口) ./chat.sh # 进入连续对话,直接输入问题 ./chat.sh --new # 忽略已有上下文,强制开新对话 ./chat.sh --help 对话内命令: | 命令 | 作用 | | exit / quit / q | 结束对话并总结存记忆 | | !save | 立即总结存记忆(不结束对话) | | !clear | 丢弃当前上下文重新开始(旧上下文归档保留) | | !context | 显示当前上下文文件路径 | | !thinking [off\|short\|full] | 切换回复末尾附加的思考记录模式(off=关闭 short=简短改动摘要 full=完整改动明细;不带参数=查看当前) | | !workflow [on\|off] | 工作流实时透传开关 | | !choose [on\|off] | 决策点拍板菜单开关(不带参数=查看当前) | | !effort [off\|high\|max] | 临时切换思考档位(写入 agent-default-model.reasoningEffort,退出对话自动还原为进入前档位;不带参数=查看当前) | | !dsh | 临时更换底层 dsh 命令 | 一次性命令包装 ./session_log.sh dsh tui # 包装任意 dsh 命令 ./session_log.sh --profile headless "..." # 参数原样透传 环境变量 | 变量 | 默认 | 说明 | | CHAT_DSH_CMD | dsh --profile headless | 底层命令 | | CHAT_DIR | $DSH_HOME/chat/ | 上下文目录 | | CHAT_MAX_TURNS | 8 | 分段窗口的轮数上限(0=全部;窗口在段内只增不减,超限才整段截断) | | CHAT_MAX_CHARS | 8000 | 分段窗口的字符数上限(0=不限;超限整段截断) | | CHAT_SHOW_THINKING | full | 思考记录:full 完整改动明细 / 1 简短摘要 / 0 关闭 | | CHAT_SHOW_WORKFLOW | 1 | 工作流实时透传开关 | | CHAT_CHOICE | 1 | 决策点拍板菜单:1 开启(默认)/ 0 关闭([CHOOSE] 块按原文显示;对话内 !choose on\|off 可随时切换) | | CHOICE_MAX_ROUNDS | 5 | 连续决策点自动继续的上限轮数(防失控) | | CHAT_WF_CHUNKS | 0 | 1=同时显示推理/文本流式分块(很吵) | | CHAT_WF_MAX_ARGS / CHAT_WF_MAX_RESULT | 200 | 工具参数/结果截断长度 | | SESSION_LOG_BASE_URL / SESSION_LOG_API_KEY / SESSION_LOG_MODEL | 见下 | LLM 端点/密钥/模型,默认取 ANTHROPIC_* / DEEPSEEK_API_KEY,再默认 DeepSeek anthropic 兼容端点 + deepseek-chat | 安全:密钥只走环境变量,不写死在代码里;LLM 提取与日志写入前会对私钥、API Key、token 自动脱敏。所有运行时数据(对话记录、transcript)只落在 $DSH_HOME,仓库本身不产生任何敏感文件。 工作原理(简要) - 上下文文件:chat.sh 把对话以 dsh transcript 同格式(user/message、assistant/message 事件)追加到 $DSH_HOME/chat//context.jsonl,每次提问由 chat_context.py 取当前分段窗口拼入任务(段起点记在 window.state,--new/!clear 归档时重置)。 - 增量追读:dsh 每次 append 事件批次 = 一个完整 zstd frame + fsync。chat_workflow_tail.py 记住已消费的压缩字节偏移,只喂新字节给 zstd -d -c:exit 0 才推进偏移,exit≠0(尾部 frame 未写完)丢弃重试——天然不丢不重,且不做每轮从头解压。 - 会话发现:headless 每次新建随机 session id,tailer 靠「启动前记录的 epoch 时间戳」只挂新会话,并用单向切换防止新旧会话横跳。 - 决策点协议:chat.sh 在附加要求提示词中约定——任务有多个可行方向时,模型在回复末尾输出 [CHOOSE]…[/CHOOSE] 块(首行问题描述 + 每行一个 A. … 选项)。chat.sh 检测到块后:把含块的完整回复存入上下文(模型看得见自己列的选项)→ 用 chat_choice.py 剥离块、渲染菜单 → 你拍板后把「(决策点回应)用户选择/意见」作为下一轮消息继续执行该分支。CHAT_CHOICE=0 时既不注入约定也不拦截,完全退化为旧行为。 - 记忆落盘:会话结束把 context/transcript 交给 session_extract.py,LLM 提炼要点(重试 + 关键词兜底),追加到 AGENTS.md「会话日志」(新的置顶,超 100 行自动删最旧)。 - 思考档位(!effort):进入对话时读一次 settings.yaml 的 agent-default-model.reasoningEffort(与 web 端模型选择器共享此存储)记为原始档位;!effort 写新档位(段不存在则创建、字段不存在则插入、存在则替换);退出(exit/q/Ctrl-C 双路)仅在「当前值仍是本次设置值」时才还原回原始档位——安全网避免覆盖对话期间 web 端的新改动。 兼容性 只依赖 transcript 磁盘格式,不侵入 dsh 内部:换模型、换工作区、甚至换掉 dsh 本身,只要还有 user/message、assistant/message 事件格式的会话文件,这套工具都能接着用。已适配 Linux(Ubuntu)下中文输入法。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yj060464-commits/dsh-chat-tools
让 headless 会话连续对话并自动留存记忆
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目