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
APEX 是一个 DeepSeek Harness 实验 preset。它让每个真实用户任务先用官方 Minimal 的首请求 形状锚定模型轨迹,再在模型完成第一次动作后加入精简执行约束,并通过一个常驻发现工具按需 开放 Standard 能力。目标是减少无关 prompt、工具 schema、代码和 token,同时保留完成复杂 任务所需的工具。
当前版本是 APEX v0.4.1。它是可测试的实验版本,不代表已经证明 DeepSeek V4.1b 在所有 任务上都优于官方 Minimal 或 Standard。
| Preset id | 界面名称 | 用途 |
|---|---|---|
apex-v041 |
APEX v0.4.1(实验) | v0.4 + 自适应研究租约 + Standard 工具白名单 |
apex-v04 |
APEX v0.4(实验) | 按任务动态提升 + 压缩恢复 + 跨平台 Guard/验证 |
apex-v03 |
APEX v0.3(实验) | Minimal 锚定 + 一次性 APEX 策略 + 按需 Standard 工具 |
minimal-max-v2 |
Minimal Max v0.2(实验) | 不含 APEX 策略的稳定对照组 |
升级到 v0.4.1 不会覆盖或改写 apex-v04、apex-v03 或 minimal-max-v2。包名暂时继续使用
dsh-minimal-max,以保持现有 DSH profile 的插件升级路径稳定;对用户显示的产品名称和
新 preset 使用 APEX。
每条真人 user/message
-> 清除上一任务的临时解锁,开始新的任务锚点
-> 请求 1:官方 Minimal persona + bash + str_replace_editor
-> 每次工具执行前:拒绝宽泛名称终止、重复研究和超预算研究
-> 首次 assistant/message 或 tool/call 写入 session log
-> 当前任务动态晋级并注入一次有界验证与交付 APEX 策略
-> 常驻:bash + str_replace_editor + dev_tool_search
-> dev_tool_search(query=...) 发现白名单内的候选
-> dev_tool_search(toolNames=[一个已发现名称])
-> 只有成功 tool/result 的租约会让下一次请求加入该 Standard 工具
-> 下一条真人 user/message 或 compaction/end
-> 新任务/压缩恢复周期,再次从 Minimal 双工具开始
首请求的 system prompt 仍然只有:
You are a helpful software engineer assistant.
并保持 complete: true、includeRuntimeContext: false。首请求会过滤
agent-instructions 和 skill-catalog,APEX 策略也不会在这一轮出现。
晋级后,APEX 只添加一条带来源标记的 user-role instructions 消息;它会写入 session log, 因此同一任务或压缩恢复周期无需在每个请求重复注入。策略要求模型:
file://。晋级、解锁和重新锚定都由持久 session events 重建,不依赖进程内缓存。每条来源为
kind: user 的真人消息会建立新的任务边界,清空上一任务的临时解锁;插件注入的 policy
消息不会被误判为新任务,上一任务的 policy 也会从新任务首请求的消息投影中移除。
compaction/end 同样会清空旧解锁并重新进入 Minimal 锚点,待下一次模型动作后恢复 APEX
policy。子 agent 保留完整工具目录,并在首请求获得精简 APEX 策略,避免隐藏其汇报或委派
能力。
这里的“按任务动态提升”是一个可复现的事件状态机,不是关键词猜测:每个任务都先锚定, 只有当前任务真的继续执行时才晋级;额外 Standard 工具仍由模型针对具体步骤显式解锁。
v0.4.1 把真实测试中失控的研究路径从软提示升级为执行前硬约束:每个任务默认有三次
web_search,工具目录发现最多四次;规范化后相同的查询在第二次就会被拒绝。如果三次后仍有
明确的证据缺口,模型必须通过 dev_tool_search 说明 researchGap 并提交一条不重复的
nextWebQuery;成功结果只发放该查询的一次性租约。可按证据缺口逐次续额,单任务绝对上限为十次;
不得从 fork 或第三方摘要推断官方
URL、标题、版本等精确事实;仓库 URL 的大小写应以权威页面标题或 clone 命令为准,
不照搬搜索结果链接的偶然大小写。被拒绝的调用
仍保留审计结果,但不会执行工具体,也不会生成解锁租约。默认 Web 预算用尽后,同一任务内也不能再解锁或执行
subagent、subagent_fork、workflow、ralph 或 send_message 绕过研究预算;本地实现工具保持可用。
预算和租约都从持久 session events
重建,并在下一条真人消息或 compaction/end 后清零。
V4.1b 的首请求工具形状会影响后续轨迹。若在首请求内加入关键词分类、额外路由 prompt 或
大量工具 schema,就同时改变了要验证的 Minimal 锚点。因此 v0.4.1 用真人消息划分任务,
不读取任务关键词;晋级后由 dev_tool_search 根据下一项具体需要开放工具。
本版明确不包含:
这些能力只有在 A/B 数据证明当前门控不足时才会进入后续版本。
>=22.19.0bash.exe 可从 PATH 找到当前审查基线对应 DeepSeek Harness commit
74bd5f76ba8035639bf5b4f94ce0449187ca5489。完整来源与固定 commit 见
NOTICE。
使用已安装的 dsh:
cd /path/to/dsh-APEX_Plugin
dsh plugin --profile web add .
dsh web
从 Harness 源码运行:
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-APEX_Plugin
pnpm dsh web
启动日志应同时出现:
[dsh-apex] installed and mount-validated preset "minimal-max-v2"
[dsh-apex] installed and mount-validated preset "apex-v03"
[dsh-apex] installed and mount-validated preset "apex-v04"
[dsh-apex] installed and mount-validated preset "apex-v041"
相同内容已存在时,installed 会显示为 existing。安装器只创建缺失目录,不覆盖同名
用户内容;若新复制的 preset 挂载失败,只回滚该目录。
确认 bundle 已进入 profile:
dsh --profile web --dump-config
输出应包含 minimal-max-preset-installer 和 dsh-minimal-max。随后在 Web UI 新建会话并
选择“APEX v0.4.1(实验)”。preset 不会重组已有会话,所以旧会话不会自动切换到 v0.4.1。
v0.4.1 使用 Harness 的 ctx.tools.guard 在工具体运行前拒绝已知宽泛终止形式,包括 pkill、
killall、taskkill /IM、Stop-Process -Name,以及同一命令中的 pgrep | kill 和
Get-Process | Stop-Process。使用当前任务启动时记录的 PID:
kill -TERM 12345
Windows 对应使用 taskkill /PID 12345 或 Stop-Process -Id 12345。该 Guard 不增加 prompt
或工具 schema,因此不会改变 Minimal 首请求形状。
通常只需直接描述任务。第一轮之后,模型会看到 dev_tool_search 的能力索引;当任务需要
联网、技能、目标、子 agent、工作流、后台任务或 Standard 文件工具时,应先解锁对应工具,
而不是用 bash 模拟缺失能力。
即使知道精确名称,也必须先搜索一次,让白名单候选写入持久结果:
{"query":"web"}
然后每次只解锁一个由该任务早先搜索返回的名称:
{"toolNames":["web_search"]}
不知道名称时可使用更自然的长查询;v0.4.1 按命中词数量排序,不再要求每个词都匹配:
{"query":"filesystem grep"}
搜索最多返回 20 个白名单工具及其首行说明,不会把完整 Standard schema 放进每个请求。 只有成功的解锁结果从下一条模型请求生效,并持续到下一条真人用户消息或本次 compaction。 外部插件临时注册但不属于当前 Standard 清单的工具不会被发现或解锁。
bash。cross-platform.yml 会在 push / PR 后分别使用 Ubuntu、macOS、Windows 运行
完整 npm run check。当前本地真实安装、挂载、Web 启动和 HTTP smoke 已在 macOS 完成。Linux 与 Windows 的代码 路径已有单元/安装 contract 和 CI 入口;在对应原生主机或 CI 实际跑绿之前,不宣称已完成 这两个系统的端到端实测。
插件没有第三方开发依赖,不需要运行 npm install:
cd /path/to/dsh-APEX_Plugin
npm test
npm run check
验证覆盖:
如果插件与 Harness 不在默认相邻目录,可指定 checkout:
DSH_CHECKOUT=/path/to/deepseek-harness npm test
不要用日常 DSH home 做安装试验:
TEST_ROOT=/path/to/test-directory
TEST_HOME="$(mktemp -d "$TEST_ROOT/apex-v0.4.1-home.XXXXXX")"
DSH_HOME="$TEST_HOME" dsh plugin --profile web add /path/to/dsh-APEX_Plugin
DSH_HOME="$TEST_HOME" dsh --profile web --dump-config
DSH_HOME="$TEST_HOME" dsh web --port 0
检查 .agent-presets/apex-v041/ 是否包含 composition、策略、Guard 和三个跨平台运行模块,并在
新会话中确认请求工具序列:
1. 每条真人任务的首次请求:bash + str_replace_editor
2. 当前任务晋级后:bash + dev_tool_search + str_replace_editor
3. 当前任务先发现、再由成功结果显式解锁的单个工具
4. 下一条真人任务或 compaction 后:回到步骤 1
结构正确与模型能力是两个独立验收层。推荐使用四组盲测:
minimalminimal-max-v2apex-v041standard保持同一模型端点、版本、推理强度、max tokens、题目、workspace 初始状态和权限。每次使用 全新会话,每组至少重复 10 次,并记录:完成率、硬性需求覆盖率、首个动作、工具参数合法率、 返工次数、输入/输出 token、延迟和错误。比较 B/C 可以单独判断 APEX 策略的净影响;比较 A/B 可以判断工具锚定的影响;D 是完整 Standard 对照。另用 v0.3/v0.4 配对测试判断进程 Guard 和验证策略的净影响,用 v0.4/v0.4.1 配对测试判断自适应研究租约与绝对上限的收益和副作用。不要以单次成功 宣称普遍提升。
n=1,不代表稳定排序。apex-v041、apex-v04、apex-v03 或 minimal-max-v2。感谢以上作者和项目公开实验、代码与设计思路。APEX 是独立社区项目,不隶属于 DeepSeek, 也不代表 DeepSeek 官方背书。
MIT。第三方来源、采用范围与固定 commit 见 NOTICE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。