网易首页 > 网易号 > 正文 申请入驻

新仓把OpenCode免费模型接进DSH主线

0
分享至

先说清楚它解决的是什么。DeepSeek Harness(DSH)有个子智能体(subagent)委托机制:你主线 agent 遇到一个活儿,可以"外包"给另一个后端去干,自己只管收结果。问题在于,DSH 本身并不能直接用 OpenCode(那个有免费/隐身模型的独立产品)里的模型——因为 OpenCode 的免费额度有反滥用护栏,你用普通 HTTP 客户端拿同一个 API key 去调,它直接 403,回一句"OpenCode 的免费额度只能从 OpenCode 内部用"。dsh-subagent-opencode 就是给 DSH 补上这个口子:它注册成一个委托后端(provider),把任务丢给本地 opencode run 一次性跑完,让 OpenCode 自己那个 client 去发请求——这是"从 DSH 合法用到 OpenCode 免费模型"的受支持路径。仓库 0 星、很新,但切中一个很具体的痛点。

一、它是什么:DSH 的一个"委托后端",不是完整的 agent

先纠一个容易搞混的概念。它不是一个 agent,也不是"让 DSH 变成 opencode"。它是 DSH 的 subagents 机制上的一个 provider——你可以理解成"一条委托规则里的后端驱动":告诉 DSH"当你把这个子任务派给 opencode 时,我这么去调 opencode、这么把结果取回来"。

它的工作方式很克制:每次委托都在当前会话的工作目录下,起一个子进程 opencode run --standalone --format json,把你的任务文本作为这个进程的消息发进去,等它跑完,只取子进程最后输出的 assistant 文本(或者一段被安全裁剪过的失败诊断)。它自己不持有任何 API key、不读任何凭据——它只用 DSH 已经给它挂好的 subagents 和 subprocess 两个服务,整包代码里除了 Node 内置模块,唯一的第三方 import 是 DSH 自己的 @deepseek-ai/schemastery(用来渲染配置页的 schema)。

二、它到底能干啥:把 OpenCode 的免费模型接进 DSH 主线



(图注1:一次委托的四步。DSH 主线把子任务丢给注册的 opencode provider;provider 起本地 opencode run 子进程;由 OpenCode 自己的 client 发请求,合法命中免费/隐身模型;只把子进程的最终 assistant 文本取回主线,过程旁白一并带回)

它能干的核心一件事,但价值很实:

• 让 DSH 合法调用 OpenCode 的免费 / 隐身(stealth zen)模型:这是它存在的全部理由。OpenCode 的免费层只认"从我自己内部发起的请求",这个 provider 就是那个"内部发起"的通道。

• 一行一模型:它的后端是"进程外"的,没有 start-time 能力广播,所以一行配置对应一个模型,不同模型就挂不同行。

• one-shot 委托:起一个子进程、把任务发进去、拿到最终结果、结束。不是可续跑的会话,是一次性的。

• 免凭据:DSH 主线不用配 OpenCode 的 key,凭据留在 OpenCode 那边,provider 不碰。

三、架构:subagents 接缝 + subprocess 服务 + NDJSON 折叠



(图注2:左边是 DSH 已挂载的 subagents 接缝和 subprocess 服务(provider 只借用,不自己起服务);中间是 opencode run 子进程这个黑箱——工具、权限、日志、token 都在 OpenCode 里,DSH 只看最终文本;右边是一行一模型的配置边界和 one-shot 一次性委托)

几个值得展开的架构点,读一遍知道它"稳"在哪:

• 它不自己起服务:只往 DSH 的 subagents 接缝上注册一个 provider,真正起进程靠 DSH 已有的 subprocess 服务。这意味着卸载它不会留任何残留服务,也没多开一个长驻进程。

• 任务校验很严:只收纯文本任务,做合并、做 UTF-8 字节上限检查(默认 128KB),超了拒收而不是硬塞——因为任务作为一个 argv 参数进子进程,太大就会撑爆。

• NDJSON 折叠取全量:子进程的输出是逐行 JSON,它会按消息 id 分组,把所有非空 assistant 消息按到达顺序拼全——因为 OpenCode 会在步骤间"自言自语"("我读两个文件"、"我看一下…"),它最后一条消息常常只含结果的尾巴,取"最后一条"反而会漏。

• 三态结算:completed(成功 + 最终文本)/ error(失败,带固定进程信息 + 一行裁剪过的后端错误,≤4096 字节)/ aborted(取消)。而且它绝不在流没读完时把截断的答案当"完成"——输出没齐就报 incomplete-output,不把半截结果伪装成成功。

四、怎么装:装 bundle → 暴露工具 → 配一行一模型

它走的是 DSH 插件 bundle,安装、暴露、配置三步,命令行就够。

第一步:装进 profile,重启 profile。

【从 GitHub 装(发布到 npm 前用这条)】 dsh plugin --profile web add github:geokkjer/dsh-subagent-opencode 【或 npm 发布后】 dsh plugin --profile web add dsh-subagent-opencode 【本地 checkout 就 link】 pnpm add link:/path/to/dsh-subagent-opencode

注意:这一步只是注册 provider,它不会起任何 OpenCode 进程、也不会暴露任何工具,直到某条委托规则点名它。

第二步:暴露一个委托工具。要让主线 agent 真的能调它,得加一条 DSH 的子智能体工具行(@deepseek-ai/dsh-tool-subagent),指向这个 provider:

• insert: - id: tool-subagent-opencode name: '@deepseek-ai/dsh-tool-subagent' config: provider: opencode toolName: subagent_opencode backgroundMode: one-shot maxDepth: provider-managed

maxDepth: provider-managed 是这个后端该用的值——它没法在另一个产品内部帮你管递归预算。Web 应用里模型能看到哪些工具来自 Agent preset,所以这条要么加进 preset,要么在 Plugins 页开同一条。

第三步:一行配一个模型。provider 那一行长这样,要接第二个模型就再加一行、providerName 换掉:

• insert: - id: dsh-subagent-opencode-kimi name: 'dsh-subagent-opencode' config: providerName: opencode-kimi model: opencode/kimi-k3

五、举例:把一段代码修复任务委托给 OpenCode

举个实际用法。你主线 agent 在跑一个项目,遇到一段"让这段脚本兼容 Python 3.12"的活儿,你想甩给 OpenCode 免费模型去修,自己主线只管收结果:

1. 前提:这台机器上 opencode --version 能跑通(OpenCode 已装、已登录,且在 DSH 进程的 PATH 上)。

2. 你主线调用工具 subagent_opencode,任务文本写清楚:把 <仓库路径>/tools/fmt.py 改成兼容 Python 3.12,别动其它文件。

3. provider 在当前会话工作目录起 opencode run --standalone --format json -- <上面那段任务>,把任务文本作为消息发进去。

4. OpenCode 自己读文件、改代码、跑验证——这些过程日志都留在 OpenCode 那边,DSH 看不到中间步。

5. 跑完,provider 把子进程全部非空 assistant 消息拼起来取回主线。你拿到的是"完整答复"(含 OpenCode 自己的旁白),不是它替你精炼过的摘要。

两个实操要点(都是它的真实限制):

• 跨目录任务要么放行 autoApprove、要么改 cwd:子进程被关在当前会话工作目录里,非交互模式下它读外部目录会被 OpenCode 自动拒(external_directory ... auto-rejecting)。要让它读别的目录,要么给这行配 autoApprove: true(这会顺带放行它没明确拒绝的所有权限,仅在你能接受这个宽度时开),要么把这一行的 cwd 设成任务所在的目录。

• 任务走 argv,别塞超大文本:任务超过默认 128KB 上限会被拒而不是流进 stdin。委托文件路径让 OpenCode 自己去读,比把整个文件内容塞进任务文本稳得多。

六、应用场景 + 需要注意的事

适合用在哪:已经在用 DSH 做主线、又想要 OpenCode 那批免费/隐身模型(尤其是普通 HTTP 客户端拿不到、只有 OpenCode 内部才能用的 zen 模型)做子任务外包的场景;想给 DSH 主线加"把某类活儿(改代码、跑验证)委托出去"的能力,且这个活儿适合一次性、结果导向的。

要注意 / 风险(务必读):

• 子进程是黑箱:OpenCode 用的什么工具、开了什么权限、会话日志、token 消耗,DSH 全看不到,主线只拿最终文本。也就是说"这条子任务到底怎么干成的"无法从 DSH 主线会话日志重建,排查只能进 OpenCode 自己的日志。

• 答案含旁白,不是摘要:取回的是 OpenCode 说的全部(含"I'll read both files" 这类过程话),多步任务回给你的文本会比较啰嗦,用之前要接受这一点。

• 凭据仍留在 OpenCode 里:provider 不读 key,但 OpenCode 侧的登录态/凭据得是通的;要隔离 OpenCode 状态得用 env 指 XDG 目录,隔离了就得在那边另配凭据。

• one-shot,不能续跑:它没实现 prepareContinuable,所以 backgroundMode: continuable 和 send_message 追问都不可用,只能用 one-shot。需要多轮就别选它。

• 免费模型有滥用防护:这是它命门也是它价值所在——免费额度只认 OpenCode 内部发起,所以别想着用它绕去跑大规模生产负载,那是 OpenCode 免费层明确不保护的用法。

• 委托会话会进 OpenCode 历史:子进程共享用户 OpenCode 状态,你委托的活儿会出现在你的 OpenCode 历史记录里,介意就用 env 隔离。

dsh-subagent-opencode 很小、切面很窄,但它是"让 DSH 主线合法吃到 OpenCode 免费模型"的官方姿势——在一个有免费模型白嫖需求的 DSH 工作流里,它是目前最直接的一块拼图。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
姆巴佩不当言论背后,才是我们该深思的东西!

姆巴佩不当言论背后,才是我们该深思的东西!

梦归秋辰
2026-10-27 19:38:14
张水华火到国外!外媒:辞职10个月赚500万 很多人一辈子赚不到

张水华火到国外!外媒:辞职10个月赚500万 很多人一辈子赚不到

念洲
2026-10-27 09:21:31
伟大已故领袖不容侮辱!姆巴佩不当言论惹众怒,沉默一整天后道歉,央视:听其言观其行

伟大已故领袖不容侮辱!姆巴佩不当言论惹众怒,沉默一整天后道歉,央视:听其言观其行

子非鱼人
2026-10-27 22:01:54
日方收到通知,下个月不见面了,中方要把时间留给更重要的事

日方收到通知,下个月不见面了,中方要把时间留给更重要的事

健身狂人
2026-10-27 16:55:01
德国专家:美国现在之所以处处避开中国,那就是可能美国已经意识到了,现在的中国早就不是美国能够随意掌控的了

德国专家:美国现在之所以处处避开中国,那就是可能美国已经意识到了,现在的中国早就不是美国能够随意掌控的了

扶苏聊历史
2026-10-27 18:06:49
48岁瓦妮莎自曝患癌首个信号:极度疲劳,如今已无癌

48岁瓦妮莎自曝患癌首个信号:极度疲劳,如今已无癌

影视情报室
2026-10-27 01:16:50
一百万买一条命:判决书里,权力最大的人被隐去了名字

一百万买一条命:判决书里,权力最大的人被隐去了名字

卉姐
2026-10-27 11:50:47
WTT冠军赛:13人率先晋级16强!莫雷加德3-0过关,国乒连赢3场

WTT冠军赛:13人率先晋级16强!莫雷加德3-0过关,国乒连赢3场

全言作品
2026-10-28 04:27:08
被吐槽,主持金球奖颁奖礼时亨利多次陷入尴尬场面

被吐槽,主持金球奖颁奖礼时亨利多次陷入尴尬场面

懂球帝
2026-10-27 19:04:03
消失两年的反诈博主,都以为他“被抓了”,原来是被境外电诈金主买凶绑架后折磨致死了。

消失两年的反诈博主,都以为他“被抓了”,原来是被境外电诈金主买凶绑架后折磨致死了。

贴小君
2026-10-27 11:29:35
女子网购206块羊骨头,8岁儿子拼着玩:妈妈,这个好像个真人啊

女子网购206块羊骨头,8岁儿子拼着玩:妈妈,这个好像个真人啊

悬案解密档案
2025-06-13 10:44:43
光明日报:不容侮辱中国已故伟大领袖!吃中国饭,砸中国锅?姆巴佩,不配!

光明日报:不容侮辱中国已故伟大领袖!吃中国饭,砸中国锅?姆巴佩,不配!

大风新闻
2026-10-27 16:00:03
中英法三文发道歉信!姆巴佩就不当言论道歉:对中国怀有深深敬意

中英法三文发道歉信!姆巴佩就不当言论道歉:对中国怀有深深敬意

全景体育V
2026-10-27 20:15:51
歼20隐身突袭美军航母编队,遭4架F35、2架F22拦截【空战模拟】

歼20隐身突袭美军航母编队,遭4架F35、2架F22拦截【空战模拟】

军武咖
2026-10-27 12:31:37
美国、英国、法国、德国、意大利、澳大利亚等30余国发表联合声明

美国、英国、法国、德国、意大利、澳大利亚等30余国发表联合声明

环球时报国际
2026-10-27 17:31:01
“徽剑案”最荒诞的问题,事到如今还不指出来吗?

“徽剑案”最荒诞的问题,事到如今还不指出来吗?

走读新生
2026-10-27 14:16:56
身体这处毛发变白,暗示寿命不长?这3个部位的毛发变白,要警惕

身体这处毛发变白,暗示寿命不长?这3个部位的毛发变白,要警惕

熊猫医学社
2026-10-27 11:35:05
胡锡进:姆巴佩严重无知!应该主动了解中国舆论禁忌 希望他诚恳道歉

胡锡进:姆巴佩严重无知!应该主动了解中国舆论禁忌 希望他诚恳道歉

念洲
2026-10-27 14:19:34
局势升级!美防长宣布反华言论,国防部出手,大批中国机构遭清除

局势升级!美防长宣布反华言论,国防部出手,大批中国机构遭清除

影孖看世界
2026-10-27 21:41:10
联赛第一!北京轻取山东豪取5连胜 周琦两双桑普森布朗均22分

联赛第一!北京轻取山东豪取5连胜 周琦两双桑普森布朗均22分

醉卧浮生
2026-10-27 21:38:44
2026-10-28 05:55:00
呼呼历史论
呼呼历史论
分享有趣的历史
815文章数 18531关注度
往期回顾 全部

科技要闻

M6芯片版14英寸MacBook Pro:15999元起

头条要闻

光明日报批姆巴佩:不容侮辱中国已故伟大领袖

头条要闻

光明日报批姆巴佩:不容侮辱中国已故伟大领袖

体育要闻

世界上最无趣的前锋,拿下了金球奖

娱乐要闻

芒果遇到厉娜和许飞笑发财了!

财经要闻

订单越厚,账单越重:算力租赁的杠杆游戏

汽车要闻

纯电续航1003km 大五座SUV腾势N8正式开启预订

态度原创

教育
房产
游戏
旅游
时尚

教育要闻

在校时间过长、“变味”的护学岗遭家长吐槽 江苏省教育厅现场回应

房产要闻

从全国第一跌到第七!海南人,放下生娃焦虑!

曝《GTA6》PS5版需下载210GB 11月12日预载

旅游要闻

舞彩浅山红叶季 精选5条赏秋线路

尹佳恩:世界尚未给出答案

无障碍浏览 进入关怀版