前言¶
DSH 的 llm-pi-ai 在未声明 contextWindow 时默认使用 262144 tokens 兜底。如果本地 llama.cpp 服务器以 -c 65536 启动,默认设置将过大,导致内置压缩机制失效,第一个长请求直接触发 400 溢出错误。iyicode/dsh-ctx-probe 通过实时探测服务器真实运行时上下文窗口,解决这一配置不匹配问题。
核心功能¶
插件在每次 agent/request 触发时探测服务器真实运行时上下文窗口,支持 llama.cpp 和 Ollama 服务器。
它实现双向自动同步:探测值小于当前设置时自动收紧以防止溢出;探测值大于当前设置时自动放宽以跟随服务器增长。本机服务器(localhost 等)每个请求都会重新探测,远端服务器使用约 10 分钟 TTL 缓存。
为防止探测风暴,插件采用单飞 + 指数退避策略,起始间隔 10 秒,封顶 5 分钟。插件完全自包含,不依赖任何 @deepseek-ai/* 包。
安装¶
使用 Web profile 安装:
dsh plugin --profile web add https://github.com/IYIcode/dsh-ctx-probe
安装 bundle 属于启动期变更,必须重启 DSH Web Host(执行 dsh web 前先 Ctrl+C 停止)才能生效。
使用¶
查看当前探测状态:
/ctx-probe force
该命令会显示目标 provider/model 的三个窗口值:configured(配置值)、effective(生效值)、probed(探测值)。
给本地模型发送任意一条消息,插件会在请求前探测服务器真实 n_ctx 并自动同步设置,无需手动干预。
注意事项¶
安装失败报 “declares no dsh.bundle” 可能是网络问题,建议检查源或使用本地目录源。
插件探测失败不会拖垮 agent 循环,错误会被静默处理。