dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
为 DeepSeek Harness(DSH)的新对话自动注入一段可编辑的历史对话。插件会等到新对话第一次发送用户消息时再注入,单纯打开空白窗口不会写入内容。
插件支持两种方式:
写入对话模式会同步 DSH Agent 的回合编号,避免注入历史与真实聊天使用相同编号。如果当前 DSH 版本无法安全同步,插件会跳过这次显示注入并记录警告,不会冒险写坏会话投影。
设置页还提供总开关,关闭后,新建会话不再注入。插件在全新顶层会话第一次发送用户消息时读取模式和开关,不会中途改变已经开始聊天的会话,也不会递归注入 subagent。
0.1.0-rc.6 或更高兼容版本在终端运行:
dsh plugin --profile web add github:wdsjwzl/dsh-session-seed
然后打开 ~/.dsh/profiles/web/cordis.patch.yml,加入:
- insert:
- id: session-seed
name: dsh-session-seed
重启 dsh web,并在浏览器中强制刷新一次。随后可在 设置 → 对话注入 中启用插件、选择注入方式或打开对话配置文件。
插件按以下顺序确定配置文件:
cordis.patch.yml 中显式配置的 config.file。DSH_HOME 下的 session-seed.json。~/.dsh/session-seed.json。如果文件不存在,插件会自动复制仓库附带的安全示例。插件升级不会覆盖已经存在的配置文件。
配置格式:
{
"enabled": true,
"messages": [
{
"role": "user",
"content": "以前聊过的用户消息"
},
{
"role": "assistant",
"content": "以前聊过的助手回复"
}
]
}
说明:
enabled: false 可在文件层暂停注入;设置页总开关也必须同时开启。messages 只读取非空的 user 和 assistant 消息。provider 和 model,用于“写入对话”模式下 assistant 历史消息的来源标记。如需使用自定义路径,可在 profile patch 中配置:
- insert:
- id: session-seed
name: dsh-session-seed
config:
file: D:/dsh-data/my-session-seed.json
插件在全新的顶层 session 第一次收到真实用户消息、且 Agent 尚未开始该回合时,写入完整的 turn/step/message 生命周期。恢复旧 session 时不会重复写入,单纯创建或打开空白 session 也不会写入。
插件在新 session 第一次收到真实用户消息时冻结当时的配置,并通过 system prompt 在每次请求中提供同一份 transcript。DSH 重启后,插件会从该 session 已持久化的 request header 恢复原快照,不会用后来修改的配置替换旧会话内容。
隐藏模式能避免页面出现注入消息,但底层不是原生 user/assistant 角色,且每次请求都会重复占用上下文 Token。
dsh plugin --profile web update dsh-session-seed
更新后重启 dsh web。现有的 ~/.dsh/session-seed.json 不会被覆盖。
先从 cordis.patch.yml 删除 session-seed 条目,然后运行:
dsh plugin --profile web remove dsh-session-seed
用户配置文件不会自动删除。
对话配置文件可能包含私人信息。提交 issue、日志或复刻本仓库时,请勿上传自己的 ~/.dsh/session-seed.json。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。