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
dsh-weixin 把微信 iLink/ClawBot 私聊接入 DSH agent。插件模式直接使用 DSH apiProxy,独立模式通过 DSH Web HTTP RPC + WebSocket 事件流连接。
--- = 新气泡(单/双换行、句子内 --- 不切分),一轮最多 10 条;长度上限按当前气泡累计,空闲超时自动兜底# 可选:默认 DSH_ROOT 为 D:\Program Files\dsh,profile 为 web
$env:DSH_ROOT = 'D:\Program Files\dsh'
$env:DSH_PROFILE = 'web'
npm install
npm run install:dsh
安装脚本调用 DSH 官方 plugin add 逻辑。Windows 上源码路径含空格时,脚本会使用 $DSH_HOME/bundles/dsh-weixin 稳定缓存,避免生成无法解析的 profile 包链接。
cd 'D:\Program Files\dsh'
pnpm dsh --profile web --dump-config
pnpm dsh --profile web
首次启动会打开扫码窗口(独立应用窗口,扫码成功后自动关闭)。登录凭据、会话映射和设置默认持久保存在 $DSH_HOME/channels/dsh-weixin(通常是 ~/.dsh/channels/dsh-weixin),更新或卸载插件不会删除它。
插件模式不输出日志:dsh-weixin 由 DSH 加载时给自身组件注入静默 logger(不动 DSH 自己的
console,因此 DSH 的启动横幅、状态输出等都保持正常);插件自身的收发/扫码日志不打印到 DSH 终端。扫码/续期窗口在 DSH 所在机器上用独立应用窗口弹出,扫码成功后自动关闭。需要完整日志排查时请改用独立模式npm start。
npm run uninstall:dsh
卸载会从指定 DSH profile 移除 bundle,并清理安装脚本创建的稳定缓存;不删除你的会话数据。
/help:查看命令/new:创建并切换到新 DSH 会话/stop:取消当前任务/status:查看连接和会话状态/renew:立即生成扫码续期链接/send <相对路径>:发送 outboxDir 内的文件/users、/allow add|remove <ID>、/cron:管理员命令在设置页填写 JSON 数组:
[
{
"id": "morning-summary",
"cron": "0 9 * * 1-5",
"userId": "微信用户ID",
"prompt": "总结今天的待办事项",
"enabled": true
}
]
cron 按运行 DSH 的本地时区解析,五个字段依次是分、时、日、月、星期。
npm start
默认连接 http://127.0.0.1:3080。配置集中放在 config/.env(参考 config/.env.example,该文件不进入版本库):进程已有的环境变量优先,.env 只补充缺失项;DSH_URL、WX_BOT_CWD、WX_BOT_SESSION_DIR、WX_BOT_PRESET、WX_BOT_ACCESS_POLICY、WX_BOT_ALLOWLIST、WX_BOT_ADMINS、WX_BOT_STREAMING、WX_BOT_TYPING 等均可在其中配置。
WX_BOT_SEND_INTERVAL_MS(默认 200)控制两次微信消息发送的最小间隔(毫秒),用于降低 iLink 发送限流概率;设 0 可关闭节流。
独立模式会在启动微信连接前调用只读 DSH API 检查服务。如果 DSH 未启动、地址错误或端口上不是 DSH,程序会提示先运行 pnpm dsh web 并以退出码 1 结束,不会启动扫码和微信轮询。检测超时默认为 3000 ms,可用 DSH_STARTUP_CHECK_TIMEOUT_MS 调整。
微信一次只显示一条消息气泡。回复由模型按下列契约切成多条气泡:
--- = 一个气泡结束:模型在输出中用单独占一行、前后带换行的 ---(等价于 \n---\n)主动切气泡,程序把它前面的内容立即作为一条消息发送(分隔符本身不进入微信文案)。单个/双换行只是段落排版,句子中间嵌入的 --- 也只是普通文字,都不会触发切分。此契约写在 src/prompt/system-prompt.md,可在设置页修改。streamFlushChars(默认 800 字符)时,在最近的标点/换行处强制切分;每切出一个气泡后从下一个气泡重新计数,不从整条回复头部累计。streamFlushMs(默认 30000 ms)没有新内容时,强制发出当前气泡,避免“没反应”。项目自带默认 prompt 文件:
src/prompt/
system-prompt.md 系统设定与气泡契约
soul.md 人设与灵魂
rules.md 行为规则
memory.md 背景记忆(静态,人工维护)
首次启动会把默认文件复制到频道数据目录(插件模式 $DSH_HOME/channels/dsh-weixin/prompt/,独立模式 session/prompt/),之后在 DSH“设置 → 微信”页面的 Prompt 定制 区编辑这些副本(保存/重置默认),修改对下一条消息即时生效。渲染后的 prompt 会在每次请求前注入给模型,支持 {date} 占位符(当前日期)。
npm test
npm run check CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。