dsh-opencode-free:OpenCode 免费模型路线的星桥模式 Agent 预设

前言

在 DeepSeek Harness(dsh)里接 OpenCode 的免费模型,通常要先装社区桥接插件 dsh-opencode-xdbridge,把隔离的 opencode 运行时注册成 provider opencode-xdbridge。模型按 token 计费为零,但每回合整段对话重发、速率限制和 shim 的 8 MB 请求体上限才是日常瓶颈。下面介绍维护者 SZYTree0312 发布的 dsh-opencode-free(星桥模式):挂在 dsh 上的 agent preset,只做 agent 侧的前缀稳定与载荷控制,不替代桥接插件,也不是独立运行时或 fork。

这是什么

dsh-opencode-free 是 @deepseek-ai/dsh-agent-preset 形态的补丁包,主产物为 presets/opencode-free.patch.yml。上游 Harness 基线需 pin 在 0.2.0-rc.2(上游明示会有破坏性变更)。名字「星桥」:「星」指 space-bunny、big-pickle 等免费模型名单,「桥」指 xdbridge。

与百炼成金类 preset 形态相同,目标函数不同:那边偏省 token 费用;这里硬约束是免费额度速率、每轮延迟(四层转发 + 每轮重发)和 8 MB 请求体失败上限,收益落在额度与延迟上,不是钱。

路线原理(与 preset 为何这样调)

桥接实现里,每回合新建上游会话(backend.js 的 POST /session),服务端不保留状态,整段对话每轮重发。因此:

  1. 载荷随历史线性增长,请求体大小由会话长度决定。
  2. 前缀匹配是主要的「省算力」途径;bridge 会把 cached_tokens 回传为 prompt_tokens_details.cached_tokens。
  3. dsh-opencode-xdbridge 在 adapter.js 里对免费模型使用零价计费,且仅在运行时上报的每一个计费维度都为 0 时才列出模型——「省 token 钱」不是本 preset 的设计目标。

工具目录必须全程固定:protocol.js 组装 system 时会拼接 Available external tools: …,工具集合或顺序一变,system 就变,缓存前缀失效。因此 preset 要求 tool-plugin-manager 保持 disabled,并避免让 tool_choice / parallel_tool_calls 逐轮翻转的模式。细节见仓库内 docs/how-the-bridge-shapes-the-request.md。

核心策略(相对上游与百炼方向的差异)

旋钮 星桥取向 原因摘要
agent-instructions.maxBytes 32768(较上游减半) 每字节都在每轮重发的数据块里
tool-result-pruner 4096/2048/512 配合 8 MB 请求体硬闸
compaction.headroomTokens 32768 免费模型窗口常 128K,过大余量会把压缩触发点压得过低
summarizationModel / modelPolicies 留空 免费名单轮换,钉死 id 易在撤模日导致压缩失败
tool-fs 读上限 800 行 / 1000 字符 / 24 KiB 控制单次读入对载荷的冲击

共同纪律:工具目录全程固定、历史只追加、动态状态推尾部。

安装与启用

本 preset 不含 xdbridge,也不会替你安装。两部分作者与职责分开:XDTrees 的 dsh-opencode-xdbridge 管 provider、模型目录、隔离运行时与 8 MB 上限;本仓库只管 agent 侧工具面、提示词、压缩与载荷。preset YAML 中不引用 opencode-xdbridge 插件 id,未装桥接时仍可装本 preset,只是选不到对应模型,不会拖垮 profile。

安装顺序如下(命令来自仓库 README):

  1. 先装桥接插件:
dsh plugin --profile web add github:XDTrees/dsh-opencode-xdbridge
  1. 再装本 preset:
dsh plugin --profile web add github:SZYTree0312/dsh-opencode-free
  1. 在会话预设选择器里选择 星桥模式。

卸载 preset:

dsh plugin --profile web remove dsh-opencode-free

README 注明:桥接插件 peer 范围为 dsh >=0.1.1-rc.1 <0.2.0,而本 preset 按 0.2.0-rc.2 的 preset 机制编写;本机两者并存可用,但升级 dsh 后需留意 peer 与机制是否仍匹配。安装前建议通读 README 安装章节,或交给 Agent 按文档逐步执行。

典型用法与撞限流时的调整

典型用法:在已安装 xdbridge 的 profile 上启用星桥模式,用 provider opencode-xdbridge 下的免费模型跑会话;调参思路(载荷小、前缀稳、压缩尽量不触发)对任何「按上下文线性付费且每轮重发整段对话」的路线也有参考价值,换 provider 时需重看数值。

命中速率限制时,README 建议按下列顺序收紧(从较不伤能力到较伤能力):

  1. 关网页抓取:tool-web 的 fetch: false(搜索可保留)。
  2. 关闭子代理与 workflow:tool-subagent / tool-subagent-fork / workflow-ptc / tool-workflow 置 disabled: true。
  3. 再压 tool-fs 读上限(例如 500 行 / 800 字符 / 16 KiB)。
  4. 降低推理档位:agent-default-model.reasoningEffort 从 max 往下调。

readLimit 收得太狠可能逼模型分块重读、反而多回合;建议先跑几次真实会话观察再改。

适用场景与注意

适合谁: 已在 dsh 上走 OpenCode 免费模型(经 xdbridge)、需要在 agent 层系统控制载荷与前缀、并愿意与桥接插件分版本维护的开发者。

状态(截至仓库 README): 已对桥的请求装配、缓存回传、每回合新建会话、8 MB 上限做源码级验证;preset 第一版已发布;实机验证(命中率、载荷曲线、8 MB 在多长会话后构成威胁)与各免费模型窗口/输出上限的核对仍待补充。preset 结论随 dsh-opencode-xdbridge 实现变化而需复查——若 protocol.js system 组装、会话策略、NO_COST/窗口上报或 shim 体上限变更,应回到 docs/how-the-bridge-shapes-the-request.md 对照调参。

安全与许可: 插件以当前 dsh 进程权限运行;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-opencode-free 把 OpenCode 免费路线上的 agent 行为钉在「前缀稳定、载荷可控、少触发额外请求」上,与 XDTrees 的 xdbridge 分工明确。需要细节、安装说明与桥接请求证据时,以仓库 README 与 docs/how-the-bridge-shapes-the-request.md 为准。

  • 目录页:https://www.skillhub.cn/plugins/SZYTree0312/dsh-opencode-free
  • GitHub:https://github.com/SZYTree0312/dsh-opencode-free
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜