微信扫码
添加专属顾问
DeepSeek Harness开源实测:非预期的Codex,实为可定制Agent平台脚手架,社区反馈与产品定位全解析。 核心内容: 1. Harness定位与组件:非目标Codex,是可定制Agent runtime,含Web coding agent等组件 2. 实测过程与对比:本地跑通多环境,与Kimi K3对比,复杂任务测试结果 3. 社区反馈与产品阶段:两组用户关注点,Trajectory设计与运行时信息面板好评
DeepSeek-V4-Pro 正式版上线当天,DeepSeek Harness 也开源了。之前注册Deepseek Harness公众号已经吵闹过一阵。V4 Flash 发布报告的模型卡里只漏过一句 DSH,外界却已经猜测了很久,可谓期待值拉满了。
源码摊开以后,预期和实物略有点对不上号。很多人等的是 DeepSeek 版 Codex。当前开源的这套东西更像还能继续造 Agent 的 runtime。Web coding agent 有,Headless、Python SDK、ACP 和 JSON-RPC 也有。模型、工具、会话、权限、沙箱、Agent Loop 和 UI,都可以拆开再装。
我第一时间基于开源仓库,在本机把 npm、Web、Headless 和 Python SDK 都跑通了,拆开默认配置和 session log,又拿同一个 Kimi K3 对照 DSH 与 Kimi Code,最后让 V4 Pro 连续做一条带视觉产物的复杂任务。
跑完以后总体印象是:DSH 现在更像是一个开放的 Agent 平台脚手架,默认产品还带着预览版的毛边,留待社区的打磨。一切皆插件的理念挺新颖,Trajectory 的源码设计口碑不错,值得学习。
图 1 按插件树、可替换能力和追加式事件流绘制的概念图。该图由图像模型生成,不是产品界面。
DSH 仍处于 Developer Preview。文中数字来自单次本机运行和公开用户反馈,用来看差异和边界,不做产品排名。
知乎问题《如何评价在 8 月 13 日发布的 DeepSeek Harness》下的反馈,大致分成两组。
一组用户等的是成熟 coding agent。他们关心桌面 App、终端体验、Windows、缓存命中、日常编码效果,以及官方 Harness 能不能把 V4 Pro / Flash 再抬一截。
另一组内测者盯着插件、Preset、Trajectory 和运行时自修改。他们看见的是一个可以继续开发 Agent 的平台。
两边都没看错。DSH 同时有这两个身份,完成度却不对称。runtime 已经很开放,默认产品体验还没追上 Claude Code、Codex、Kimi Code。
段小草把 Trajectory 比作 Agent 的 DevTools。时间轴、每轮请求和日志都能看见,查上下文压缩、Skill 过多和模型犯错时很有用。
卜寒兮也特别提到运行信息面板。缓存命中、输入 / 输出 token 和 token 速度都直接显示出来。
这件事和源码对得上。DSH 要求模型看见的内容必须已经记进日志,Trajectory 直接从 session event log 投影。它没有另埋一套监控数据,所以看见的轨迹更接近模型当时收到的真实请求。
社区早期插件里有不少换肤和整活,更值得看的是领域 Agent。
Kitt 在进化分享的 Data Agent 只保留 read、edit、write,再用 sqlcmd 替换 bash。模型围着数据库执行结果转,同时不再带着和数据分析无关的工具与上下文。
这个例子把 Plugin 和 Preset 的分工讲清楚了。插件提供新能力,Preset 决定某类 Agent 能看见哪些能力。DSH 真有生产价值时,往往落在删掉什么、替换什么。继续堆工具,只会多耗 token,也让模型更难选。
Adam Platin自述用一周内测版管理机器学习竞赛。Agent 读规则、跑脚本、推进实验并调用浏览器,89 步后收尾。
瓜子脸帅哥给出了另一条时间线。DSH 将 Agent 接入微信,从需求到真机收到回复约 87.6 分钟,花费约 18 元。过程包含 SDK 调研、零依赖客户端、mock server、真实端点冒烟和扫码绑定。
这两条都是用户自述,不能当 benchmark。它们仍然给出一个很实用的尺度。长任务是否做完只是一半,另一半是花了多少分钟、多少 step、多少 token、几次人工接管。
官方最快的路径是 npx @deepseek-ai/dsh web。Node 需要 ^22.19.0 || >=24,启动后填写 API Key、选择工作区和 Agent Preset 就能用。源码安装还会碰到 pnpm、构建和 Git hooks,更适合准备开发插件的人。
本机实际跑通了四条入口。
--dump-config默认配置也能直接核对。Web profile 组装出 129 行插件配置,Headless 为 81 行。默认模型是 DeepSeek V4 Flash,权限是 workspace-write + ask。不同模式不是界面开关,它们加载的提示词和工具集合确实不同。
DSH 没有把运行时请求藏在内存里。System prompt 由 persona、工具说明和插件注册的 prompt sections 拼起来。发请求前,request/header 会记下 system、model、temperature、max tokens 与 tools,request/context 记下 provider 和 context window。
官方 Python SDK 的 minimal composition 更容易看清这个结构。它把 persona 固定成一句 You are a helpful software engineer assistant.,关掉 workspace prompt、Skills 与 compaction,只留下 persistent bash 和 str_replace_editor。模型前缀被冻住了,工具面带来的干扰也少很多。
会话以 zstd 压缩 JSONL 保存,每条记录都有统一外壳。
{"type": "tool/call", "seq": 31, "time": 1786632922876, "data": {}}
一次写文件任务在本机产生 61 条事件。里面有 turn/start、三个 step/start、用户消息、请求头、reasoning chunks、两次 tool call / result、assistant message 和 turn/end。模型先 write,再 read 核对,最后汇报。
所以 Trajectory 能同时回答三类问题。
测试目录位于一个大仓库内部。DSH 沿最近的 .git 找到仓库根,注入了 AGENTS.md / CLAUDE.md,又扫到用户技能目录里的 27 条摘要。写文件任务后续 step 出现约 1.3 万 cache-read token。这些固定前缀进了缓存,也说明它们确实进了模型请求。
后来评测和敏感项目,我都会换独立 Git 根,显式设置独立的 DSH_HOME 与 DSH_AGENTS_HOME。比较模型时用 minimal composition,这样才能够把上下文整理的干净一点。
图 2 标准、PTC、极简、创造四种预设对应不同插件组合。
标准模式提供完整的编码工具,适合直接处理日常开发任务。PTC模式在此基础上允许模型用 TypeScript 组合多步工具操作,极简模式只保留 bash 和文本编辑器,创造模式则增加运行时检查、插件实验和自定义 Preset 所需的能力。
Kimi Code 与 DeepSeek Harness 都是国产、MIT 开源、可接多模型的 coding agent / Harness。两边的出发点并不相同。
-p、ACP、Web | ||
kimi vis | ||
Kimi Code CLI 的仓库本身也是开放的。两边都开源,差别在运行时怎么组织。Kimi Code 把可扩展能力围着一套终端产品转,DSH 把 loop、provider、session 和 UI 都放进同一种插件组合模型。
公开反馈普遍认为同模型换 Harness 会改变产物,但任务、权限和上下文经常没有保持一致。这里固定 Kimi K3 API、提示词、工作区与隐藏验收,看两套产品怎样完成相同任务。
kimi-k30.35.0 非交互模式有一处我故意留了不同。DSH 使用 minimal,只暴露 persistent bash 与 str_replace_editor。Kimi Code 使用默认工具。这样不适合比较谁的工具更少,适合观察两套 Harness 怎样把同一个模型引向不同执行路径。若要比较默认产品能力,还得用 DSH standard 再跑一轮。
两道题分别是依赖批次规划与会话事件投影。每题有 7 个公开测试、8 个模型看不见的隐藏测试。
正确性没有拉开。两边四条轨迹全部通过 15 / 15。第一题 Kimi Code 快约一分钟,第二题 DSH 快约十二秒,速度没有稳定赢家。
过程差得更清楚。
Kimi Code 首轮并行读取 README、源码和测试,随后整文件 Write,再用 Bash 验证。依赖规划只用了 5 次工具调用。它的默认工具更丰富,系统提示也更偏向尽快完成一个编码任务。
DSH minimal 主要在 persistent bash 与 str_replace_editor 之间来回走。依赖规划用了 11 次工具调用,步骤更碎。换来的是模型前缀、工具面和请求日志更容易冻住,session log 还给出完整 request、tool 与 usage 事件。
Kimi Code 的 stream-json 在本轮没有返回 token usage,因此不比较成本。DSH 两题分别记录 7,593 / 5,082 input token,以及 22,515 / 18,632 cache-read token。
同一个 Kimi K3 最终都过题,走法已经明显不同。Kimi Code 更像已经调好的成品。DSH minimal 更容易冻住前缀、换掉工具和 provider、把实验复现出来。
如果目标是日常终端编码,Kimi Code 的安装和默认工具更省事。如果目标是研究上下文、替换 provider、定制领域 Agent 或复现实验,DSH 的插件树与事件日志更好用。
前面的轨迹差异,在源码里可以找到三组对应关系。
第一组是 Agent Loop。Kimi Code 当前默认使用 v2 引擎,把循环、工具调度和上下文管理组织成一组 DI Service,Plan、Swarm 等功能可以按需注入。DSH 则把 ReactLoopAgent 本身注册成 Cordis 插件,Loop 与模型 Provider、工具等服务采用同一种装卸方式。Kimi Code 的重心是一款可扩展的终端 Agent,DSH 留给开发者的改造范围更大,连 Agent 怎样循环都可以替换。
第二组是会话记录。Kimi Code v2 通过 wire.jsonl 保存 Agent 边界上的事件,DSH 也用 Session Event 恢复状态和驱动界面。DSH 还增加了一条运行时约束,模型看见的内容必须已经写进日志。这就是 Trajectory 能还原请求、工具调用和 token 变化的原因。
第三组是工具与执行环境。Kimi Code 用 Agent Profile 控制工具范围,再通过 KAOS 抽象本地与 SSH 环境。DSH 用 Preset 决定工具和提示词,再把文件系统、子进程和 sandbox 拆成可替换服务。两边都能换模型和执行位置,DSH 更强调更换这些底层服务时,上层工具保持不动。
所以,两套项目都有插件、事件日志和环境抽象,差别主要在开放到哪一层。Kimi Code 优先把终端编码体验调好,DSH 则把更多运行时部件交给开发者重新组合。这也解释了同一个 Kimi K3 在两边都能过题,执行步骤和日志形态却明显不同。
前面的两道小题适合看工具轨迹,还不足以观察 Harness 怎样影响完整产物。这一轮固定 deepseek-v4-pro API、Prompt 和验收要求,让 DSH 与 Kimi Code 在两个独立工作区里各做一款原创跳一跳游戏。
任务不只要求画出一个网页。玩家要能用鼠标、触摸和空格蓄力起跳,游戏要处理平台碰撞、Perfect 奖励、连击、失败与重开。项目还要带一个零依赖 Node.js 后端,提供排行榜、统计、JSON 持久化、输入校验和路径防护,并留下确定性测试接口。参考 VISTA 的思路,最终验收同时看代码测试、真实浏览器行为和画面。
先看最终结果。Kimi Code 做成了全屏 2.5D 方块舞台,DSH 做成了 2D 横向画布,右侧放排行榜和操作说明。
图 3 同一模型、同一 Prompt 的最终游戏界面。左侧为 Kimi Code,右侧为 DSH,均来自真实浏览器运行态。
读者可以直接打开 Kimi Code 版本 和 DeepSeek Harness 版本 体验。两个页面均为前端单文件版本,游戏可以直接运行;排行榜与统计功能仍需配套 Node 后端。
我自己也各玩了几局。两个版本都不只是能打开,蓄力、落点和连续跳跃已经有了小游戏该有的手感。Kimi 版的舞台感更强,DSH 版更像一个带完整信息区的 Web 游戏。
两套 Harness 都完成了前端、后端、排行榜持久化和自动测试,过程却不一样。DSH 分三段 session 完成,合计约 25 分钟、85 个 step 和 96 次工具调用,交付 19 项后端测试。第一次运行中断后,它能够接着补齐约 880 行游戏逻辑和浏览器 smoke test。
Kimi Code 初次生成约 14 分 30 秒,算上两轮修复约 21 分钟,交付 17 项后端测试。它的初版已经有完整的 2.5D 视觉风格,后续根据真实浏览器反馈修复了 updateHUD 调用和遮罩层显示问题。
这次评测留下三点印象。
第一,同一个模型和同一份 Prompt,最终仍然长成了两种产品。Kimi Code 更偏向全屏游戏体验,DSH 更偏向带排行榜和说明区的完整页面。小样本无法证明这是稳定倾向,但足以说明 Harness 会参与塑造产物。
第二,两边都能承载二十分钟左右、有前后端、有测试、需要中途修复的任务。DSH 的固定物理步长、seeded PRNG 和原子写入,Kimi Code 的 2.5D 舞台与完整交互,都已经超过一次性页面 Demo。
第三,两边都出现过模型自测通过、真实浏览器失败。DSH 的 canvas backing store 尺寸错误,画面只剩天空。Kimi Code 先遇到函数归属错误,随后又被 CSS 覆盖了 hidden 属性。问题反馈给 V4 Pro 后都修好了,也给各自的浏览器测试补上了回归检查。
这条共同的失败最值得记住。Agent 写的测试很容易和实现共用盲点。Harness 可以保留完整轨迹,也能帮助模型继续修正,最终仍要靠独立浏览器、外部验收和人眼试玩来确认产物真的可用。
DSH 同时提供 DeepSeek 直连适配器和基于 pi-ai 的多 Provider 适配器。本机分别使用 Kimi K3、GPT-5.6 Sol 和 Claude Opus 4.8 完成了文件写入、读回与工具调用。
这项冒烟只说明 provider、OpenAI-compatible 消息、SSE 和工具协议可以工作,不用来比较三种模型。实际接入仍应逐个验证文本、流式、工具调用、错误映射和长连接。
仓库采用 TypeScript monorepo。主干可以先压成这几层。
deepseek-harness/
├── apps/cli + apps/web 命令行与浏览器入口
├── packages/boot + bundle Profile 与插件树组装
├── packages/core/
│ ├── agent-loop Turn / Step 驱动
│ ├── session 追加式事件日志
│ ├── tools 工具注册与执行
│ └── system-prompt Prompt 片段组装
├── packages/preset 每会话 Agent 组合
├── packages/llm DeepSeek 与多 Provider 适配
├── packages/fs + sandbox 可替换执行能力
├── packages/code-runtime PTC / Code Mode
└── vendor/cordis 插件生命周期底层
这张图能解释 DSH 的技术栈。Cordis 管插件生命周期和服务依赖,DSH 在上面定义 Agent 领域的 session、loop、tools、LLM、sandbox 和 UI。KM 的运行时拆解对 Fiber、Preset、Code Mode 与工具遮蔽有更细的源码映射,这里只留和使用体验最相关的五点。
代码入口在 vendor/cordis/src/context.ts、fiber.ts 与 service.ts。
插件通过 inject 声明依赖的服务。依赖没出现时,Fiber 停在 PENDING。服务出现后进入 ACTIVE。提供方退出时,依赖组件先卸载,再回收自身 effect。
每次注册服务、监听器或定时器,都要把 disposer 一起交给 ctx.effect()。卸载时按相反顺序清理。Agent Loop 能成为普通插件,前提正是底层已经能管住这种体量组件的加载、依赖和退出。
这个机制也有明确边界。外部文件、网络消息和已经发生的业务动作不会自动回滚。依赖注入也无法替代恶意代码沙箱。
代码入口在 packages/boot/app-boot/src/profile.ts 与 packages/preset/agent-presets/src/。
Profile 从空列表开始叠 bundle,再应用 profile、home 和命令行 patch。Web 与 Headless 因此是两棵不同的插件树。dsh --profile web --dump-config 使用同一套 patch 算法输出最终结果,配置展示和真实启动不会各维护一套逻辑。
Preset 再决定某个会话看见哪些工具、提示词和投影单元。同一个进程里可以同时跑 standard、minimal 或领域 Agent。前面 Data Agent 用 sqlcmd 替换 bash,就是这套作用域落到产品上的例子。
代码入口在 packages/core/agent-loop/src/agent.ts、invariant.ts 与 packages/core/session/src/。
每一步请求都从 session 派生 messages。请求发出前,invariant 会再比较当前请求与 session.deriveMessages(),并核对模型、system prompt、temperature、max tokens 和 tools。
const expected = session.deriveMessages()
if (JSON.stringify(options.messages) !== JSON.stringify(expected)) {
fail('log-reconstruction desync')
}
这条约束解释了 Trajectory 为什么清楚,也解释了 fork、恢复和 UI 为什么能共用同一条事件流。它还带出一条隐私含义。上下文一旦注入模型,也会进入日志和数据边界。
代码入口在 packages/fs/fs/src/types.ts、fs-local/、fs-sandbox/ 与 tool-str-replace-editor/。
文件系统先定义 FileSystem、opaque target 和 version,再由 local / sandbox provider 实现,最后由 read、write、editor 消费。把文件与子进程 provider 换到远程沙箱时,上层工具不必跟着 fork。
写入还支持 createIfAbsent 与 replaceIfVersion。模型读完文件以后,若文件已被别人改过,provider 可以拒绝陈旧覆盖。并发安全因此落在工具下方,不必由每个编辑工具再写一遍。
代码入口在 packages/code-runtime/。
PTC 让模型写一段 TypeScript 来组合多次工具调用。程序在 worker_threads 中执行,工具请求通过消息通道回到宿主,仍然经过同一套 pre-execute、审批、调度和 post-execute 流水线。
中间数据可以留在运行环境里,不必每一步都塞回模型上下文。这比模型会写代码更要紧。代价是执行模型生成的代码需要额外隔离,worker 仍不是完整安全边界。
做 Agent 基础设施的人值得马上看。DSH 把 loop、session、provider、工具和 UI 都摊在能核对的源码里。
需要领域 Agent 的团队值得做小实验。先复制 minimal / standard preset,再删工具、换 provider,比迁移整套工作流更容易验证收益。
模型评测人员可以用 minimal composition。同时锁定模型版本、推理档位、endpoint 和外部验收。
只想找日常编码工具的人可以先观望。Kimi Code、Claude Code、Codex 等产品在终端体验、桌面入口、IDE 集成和默认工作流上更成熟。
生产接入要自己补治理。插件来源、配置 diff、凭证边界、Windows 验收、日志保留和数据外发,都得部署方承担。
如果团队正在设计自己的 Harness,还可以带走三个问题。
这三个问题,DSH 已经给出能跑、能核对的答法。默认产品、插件质量和治理能不能追上这套结构,是下一阶段的事。
working/eval/results.mdworking/cross-model/harness-compare/working/kimi-code/working/cross-model/compat/working/jump-game/workspace/working/eval/zhihu-feedback.mdoutput/attachments/全部数字以 2026-08-14 的单次本机运行结果为界。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-09-04
DeepSeek Harness 保姆级使用教程
2026-09-03
Google重磅发布Teamwork,最新的多智能体研究!
2026-09-03
在 Codex 中原生集成其他厂家的 Harness
2026-09-03
都在开源 Harness,Codex 和 DeepSeek 到底有什么不一样?
2026-09-02
我为什么愿意在 Pi 上折腾:一个极简 Agent Harness 的真实价值
2026-09-02
吐槽一下Codex harness的假开源
2026-09-02
断网也能用:OpenMAIC背后的大模型是什么?(附·本地部署教程)
2026-08-31
腾讯开源Hy4 preview,我狠测了24小时:到底值不值得冲?
2026-06-22
2026-06-18
2026-07-23
2026-06-20
2026-06-23
2026-08-16
2026-07-25
2026-06-29
2026-06-20
2026-07-01
2026-09-03
2026-08-31
2026-08-23
2026-08-20
2026-08-19
2026-08-14
2026-08-04
2026-07-17
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。