DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

TongenShen /

TongenShen/dsh-stateless-chat-mode

Verified

无上下文 Chat 模式:DeepSeek Harness 的单轮对话 Agent 预设,每轮只发送你的新输入,界面仍保留完整记录。 Stateless Chat agent preset for DeepSeek Harness: one message in, one answer out, no history.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@fb678eee

dsh-stateless-chat-mode

给 DeepSeek Harness 用的无上下文 Chat 模式 Agent 预设:你发一句,模型回一句;下一句再发时,之前整段对话对模型来说不存在。

界面上对话记录一条不少,只有模型看不到。

新建会话时选 Stateless Chat。

和另外两个模式的关系

Chat Extreme Chat Stateless Chat
系统提示词 聊天人设 空 空
AGENTS.md / 技能目录 有 无 无
工具 联网搜索 无 无
历史上下文 保留 保留 每轮清空

Extreme Chat 是"不给模型任何附加信息",但它仍然记得你说过的话。Stateless Chat 在此之上再切断历史:模型每次只看到你最新那一句。

怎么做到"界面保留、模型看不到"

这不是清空界面,也不是删除日志,而是在模型可见的 surface 上做遮蔽。

DSH 里同一份会话有两个读法:

  • session.deriveMessages() —— 模型看到的历史,只读取 surface 上未被 shadow 的节点(dsh-session/lib/index.js:1681)
  • session.snapshotEvents() —— 界面读的原始事件日志(dsh-session/lib/index.js:1454),完全不看 surface

所以只要在 surface 上遮蔽,模型就看不到历史,界面照旧。

这正是 compaction-basic 遮蔽旧轮次的官方做法:追加一个带 surfaceOp: { op: 'replace', startSeq, endSeq } 的节点,把一段连续 surface 节点整体替换成它自己。

替换成空 content 的 system 消息:deriveEventMessage() 对 system/message 有特判,content.length === 0 时返回 null,不产生任何 wire message(dsh-session/lib/types/surface.js:91-97)。等于"占住 surface 位置,但不给模型任何东西"。

边界怎么定

插件挂在 agent/pre-step 上,时机很关键:此时本轮用户输入还没有进入 surface(agent-loop.js:670 的 claim 只发事件,append 发生在 :860)。

所以不能按"最后一条用户消息"切,而按 turn/start 切:上一个 turn/start 之后新增的 surface 节点属于当前轮,之前的全部遮蔽。

几种情形:

  • 第一轮开始:没有可遮蔽的历史,什么都不做
  • 第二轮开始:把上一轮的 user + assistant 整体替换成一个空 system 节点
  • 单轮多步(工具调用):当前轮已产生的节点在边界之后,保持可见

遮蔽失败只记一条 warn,不会让整轮对话失败——最坏情况是这一轮多带上一些历史。

安装

需要 DeepSeek Harness 0.2.1-rc.1 或更高版本。

plugin_manager install_bundle target github:TongenShen/dsh-stateless-chat-mode

安装后重启 DSH,新建会话时在预设选择里选 Stateless Chat。

注意事项

  • 预设 id 是 stateless-chat,显示名 Stateless Chat,order: 0。
  • 只对新建会话生效;已经开始的会话保持原来的预设。
  • 完全无系统提示词,模型收不到任何角色、语言、格式约束。回答风格飘忽属预期。
  • 模型确实不记得上一轮。要它"接着刚才说的继续"是做不到的,这是设计目标而非缺陷。
  • 界面上你仍然能看到完整对话,方便回翻。日志也完整保存,session.snapshotEvents() 读得到全部内容。
  • 没有压缩:历史每轮都被遮蔽,上下文压力不会累积,也就不需要压缩。

卸载

plugin_manager remove_bundle target dsh-stateless-chat-mode

然后重启 DSH。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit fb678eee08e8

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout