架构指南(繁体本土化)

2026 年 DeepSeek Harness(dsh):架构、模式、发布与安全评估

TTokenhot Team2026年8月17日更新于 2026年9月13日约 15 分钟阅读
2026 年 DeepSeek Harness(dsh):架构、模式、发布与安全评估

更新于 2026 年 9 月 13 日;本指南基于 dsh-v0.1.5-rc.2。

DeepSeek Harness(dsh)值得作为 Agent 运行时评估,但对“它是否稳定到可用于生产”的当前回答是否定的。DeepSeek 将它标为开发者预览软件,警告会有破坏兼容性的改动,并说明它尚未接受安全审计,也没有获得生产就绪认定。这并不使 dsh 没有价值;它说明了使用方式:固定所评估的版本、隔离它能访问的资源,在把有价值文件或凭据交给它之前测量自己的工作负载。

本文说明架构,区分 dsh 面向用户的模式与 CLI profile,并展示可复现评估路径。内容反映 2026 年 9 月 13 日检查的 dsh-v0.1.5-rc.2 仓库标签和发布页面。持续更新的分支上的文档可能含有你安装的发布版本中没有的工作。

DeepSeek Harness 是什么

官方仓库 将 dsh 描述为 DeepSeek AI 开发的开源 Agent harness。模型提供推理;harness 提供围绕它的运行时:模型适配器、工具、会话、文件系统和子进程访问、审批策略、设置和 Agent 循环。

设计建立在 Cordis 及“一切皆插件”模型上。该标签的架构文档说明,插件向共享上下文贡献服务、类型化事件和可逆效果;模型适配器、工具注册表、会话日志和 Agent 循环都是可替换部件,profile 按既定顺序组合 bundle 与 patch 文件。

这很实用:可经由 profile 及其 patch 更换 provider 或添加能力,而不必 fork 整个运行时。但这不代表每个组件都能在任何任务中安全替换,也不代表插件故障会同进程可访问的所有数据隔离。该标签的安全说明称模型生成命令和第三方插件可能访问向其开放的文件、进程、网络和凭据。

为什么会话日志重要

dsh 将持久会话事件记录在只追加日志中。架构文档确定会话日志是模型历史的来源,并要求模型可见输入能从该日志重建。DeepSeek 官方页面也将回放、恢复、搜索和 fork 描述为同一事件流上的操作。

这给开发者的不是模糊的“记忆”功能,而是模型看过什么、哪些工具事件已提交的记录。但它不保证确定性结果:模型、provider 响应、工具环境、插件集和外部系统都会影响下次运行。将日志用作审计和调试辅助,再验证所需行为。

会话格式改变也影响升级计划。v0.1.5-rc.1 发布说明描述了向会话格式 V3 的迁移:受支持旧日志会迁入新版本且保留原件,但升级后的会话不能由降级版本读取。回滚可执行文件不等于回滚会话数据。升级有价值工作区前,应复制 Harness home,并在可丢弃会话上测试迁移。

四种面向用户的模式

DeepSeek 官方 Harness 页面列出四种模式,描述 Agent 如何呈现给用户:

模式 官方描述 合适的评估问题
Standard 完整编码 Agent,含文件编辑、Shell、文件和网页检索、Skills、计划、目标、子 Agent 与工作流。 审批和工具策略能否约束要运行的任务?
PTC 通过 Code Mode SDK 暴露 Standard 能力,模型可在 TypeScript 程序中组合多项工具操作。 批量操作能否改善工作流而不使审查更困难?
Minimal 官方产品概览描述为持久 bash 与 str_replace_editor。 小而明确的工具面能否完成要基准测试的任务?
Creator 检查运行时、在内存中试验 Cordis 插件、创建自定义 Agent preset 的模式。 能否原型化 preset 而不将其当作生产策略?

旧的“Code Mode”标签容易误读。官方产品说明称该模式为 PTC,并解释它使用 Code Mode SDK;它不是名为 code 的、被广泛记录的独立运行时 profile。

产品概览和随 rc.2 提供的 profile 在不同层级使用“Minimal”。在 rc.2 CLI 行为参考中,Web minimal preset 只组合平台的持久 shell,其他模型可见插件不存在。因此 Web profile 必须显式启用 str_replace_editor。rc.1 发布说明对 Web minimal 和 Python sdk-minimal 说明同样默认值。Python 指南的既有说明覆盖其单独的 sdk-minimal 树及可选编辑器;不要仅凭四模式概览推断编辑器存在。

模式与 CLI profile 是不同层

命令行有自己的 profile 模型。rc.2 的 @deepseek-ai/dsh CLI 参考称 dsh 是受支持的 Node 应用启动器,并列出:

CLI 入口 作用
dsh web Web UI;dsh --profile web 的别名。
dsh --profile headless "job" 一个新的持久会话,打印最终回答后退出。
dsh --profile sdk 经 stdio 向 SDK 客户端提供的 JSON-RPC 服务器。
dsh --profile sdk-minimal 使用独立 minimal Agent 树的 SDK 服务器。
dsh --profile acp 经 ACP stdio 面向自动化客户端。

profile 是有序插件 bundle 层。Web profile 可用实时 patch 重载;headless、SDK、SDK-minimal 和 ACP 在启动时应用各层,因为在一次性或 stdio 应用拥有工作后替换依赖会破坏生命周期。profile 名称说明 dsh 如何启动和组合运行时,并不和四种产品模式一一对应。

rc.2 Python SDK 指南进一步说明:其 sdk-minimal 示例使用独立树,带持久 shell、没有运行时上下文或压缩,且会话日志为未压缩 JSONL;str_replace_editor 是可选的。指南还将该 profile 形容为可见路径的 danger-full-access,故要求隔离工作区或容器。较少工具列表不会自动成为更强安全边界。

最新发布记录改变了什么

所检查发布页面上的候选版本是 v0.1.5-rc.2,标签 dsh-v0.1.5-rc.2,标记为 Pre-release;GitHub 显示它于 9 月 10 日 15:09 发布。rc.2 说明包括反馈提交和交付文件卡片 UI 改进。

此前 v0.1.5-rc.1 候选版本于 9 月 10 日 03:09 发布,变更更大:新的 DeepSeek 模型适配器条目、任意文件上传、可继续的子 Agent 控制、模型声明支持时的动态系统提示更新、模型发现改进、代理环境处理、会话格式 V3、会话锁定、默认工具变更,以及流式工具调用续接、Web 重连行为等大量修复。

这些说明只告诉你改变了什么;没有可用性百分比、失败率、平均恢复时间或生产可靠性结果。长修复列表是阅读说明并运行回归任务的理由,不是稳定性统计。记录测试时还应区分选定的 GitHub 发布与标签、可能检查过的 master commit、以及环境中实际安装的版本。

安全且可复现的首次评估

评估使用一条固定源码路径。下列命令遵循 rc.2 README和 rc.2 CLI 参考,是文档入口而非本文已运行的命令。

首次启动前创建 checkout、一次性工作区和新的 Harness home。示例采用 POSIX shell,假定 Git、Node.js、pnpm 已按 rc.2 README 要求可用;不规定未经验证的运行时版本:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
git checkout dsh-v0.1.5-rc.2
pnpm install
pnpm run build
export DSH_HOME="$(mktemp -d)"
EVAL_WORKSPACE="$(mktemp -d)"
printf '%s\n' 'Disposable dsh evaluation workspace.' > "$EVAL_WORKSPACE/README.md"
printf 'DSH_HOME=%s\nEVAL_WORKSPACE=%s\n' "$DSH_HOME" "$EVAL_WORKSPACE"

将打印的两个绝对路径保存到运行记录。在 Web UI 文件选择器使用显示的 EVAL_WORKSPACE;在第二个 shell 粘贴显示的 DSH_HOME,不要期待它继承变量。DSH_HOME 只用于此次评估:rc.2 在此创建 profile 文件、设置、凭据引用和会话。临时工作区与源码 checkout 分开;不要放凭据,启动前从进程可见位置移除敏感文件。若需 OS 级隔离,将 checkout、home、工作区放入一次性 VM 或容器;dsh 工作区选择器和审批提示不提供该 OS 边界。

从源码根目录启动 Web UI,并始终使用源码入口:

pnpm dsh web --no-open

rc.2 README 将 http://127.0.0.1:3080 记录为默认本地地址。浏览器中打开 Choose workspace,选择上面打印的精确工作区路径,不要因源码 checkout 是调用目录就把它留作任务工作区。然后打开 Settings → Models,配置模型,运行不触碰机密或生产文件的无害任务。

首次试用还要理解第二道边界。rc.2 中,基于 base 的 profile 新会话默认 workspace-write:Bash 和文件系统修改限于会话工作区与平台临时根目录,而读取和网络访问不受 preset 限制。启用的公共 HTTP 获取没有逐次审批提示。保存的 General 权限设置只适用于后续 Web 会话,不适用于已经打开的会话;修改后在新会话验证。这些是 dsh 策略细节,不是 OS 隔离,启动前应使敏感资源不可达。

启动另一 profile 或比较 patch 前,以同一源码 checkout 和 home 检查同一组成:

pnpm dsh --profile web --dump-config

Web 进程占用第一个终端。复制 home 或检查最终状态前停止服务和活跃会话;若用另一 shell,显式导出记录的 $DSH_HOME,并先回到源码 checkout。rc.2 CLI 参考称命令初始化缺失 profile 文件、打印组合树且不启动 Web app。记录标签、源码 checkout、profile、patch 文件、模型标识符、$EVAL_WORKSPACE、$DSH_HOME 和任务结果。CLI/help、发布说明描述行为,不是本地命令成功的证据。

谨慎配置模型或网关

Web UI 的 Models 页面支持内置和自定义 provider。rc.2 provider 指南要求自定义 provider ID、base URL、API 协议、凭据及至少一个模型。支持协议名为 openai-completions、openai-responses、anthropic-messages。模型发现只是便利:端点未公开支持的模型列表格式时,手动输入模型 ID。

OpenAI 兼容网关仍可能因请求格式不同拒绝请求。provider 指南特别指出系统提示角色和输出 token 字段兼容性,并称图像或推理声明是描述端点而非测试端点。成功保存 key 仅是配置进展,不证明真实任务可运行。

若评估 Tokenhot 作为 provider 路径,其保存的 Quick Start 为 API 设置记录 https://api.tokenhot.ai/v1 与 Bearer Token/API key 身份验证。Web UI 中选 Settings → Models → Add a custom provider,输入该 base URL,选择所选 Tokenhot 路径实际公开的协议,添加已验证模型 ID。provider 设置属于 $DSH_HOME/settings.yaml;Web UI 将凭据存入 $DSH_HOME/.credentials.yaml,只在设置中保留引用。经 UI 或文档环境机制输入 key,绝不放在一次性工作区或源码控制。

只在所选 Tokenhot 路径记录或确认 openai-completions 时使用它。以自己的账户、工作负载验证模型 ID 和请求格式。本文材料未证明当前模型可用性、定价、延迟、服务在线率或成功的 dsh 请求,故示例不作此类承诺。

升级和回滚检查

从一个候选版本转到另一个前,停止 Web 进程和活跃会话,复制确切的 $DSH_HOME 与一次性工作区,并将副本放在版本记录旁。该 home 含 profile、设置、凭据引用和会话,使比较可复现。阅读发布说明中会话格式、默认工具、provider 适配器和插件 API 的改变。旧、新环境运行同一个小任务,然后比较:

  1. Web UI 或 headless profile 能以预期工作区和模型启动吗?
  2. 工具审批是否在策略预期的位置显示?
  3. 任务能恢复吗,且会话日志是否含需检查的模型可见输入和工具结果?
  4. 插件和 patch 能否无配置错误加载?
  5. 新运行失败时,能否恢复复制 home 并继续使用旧会话文件?

测试迁移时不要覆盖唯一会话副本。新版本若写较新会话格式,保留原件,并在副本测试降级。新源码 checkout 失败时,同时恢复复制的 $DSH_HOME 和工作区;只回滚可执行文件会留下旧版无法读取的会话数据。仅当这些检查对自己的文件、provider、工具和审批策略通过后,再推广到有价值环境。

常见问题

DeepSeek Harness 是官方软件吗?

项目发布在 deepseek-ai/deepseek-harness 组织下,由 DeepSeek 官方 Harness 页面链接,并以 MIT 许可证发布。仓库和官方页面是了解当前行为、发布状态的适当来源。

dsh 是 LLM 吗?

不是。它是围绕模型的运行时:provider、工具、会话、Agent 循环、策略和应用 profile;仍需要兼容模型端点与凭据。

CI 应使用哪个入口?

从文档化的 headless profile 开始,用于一次性命令。给它一次性工作区、明确 Harness home,固定版本,并测试计划自动化的确切 provider 与任务。Headless 是入口,不保证确定性或生产安全行为。

发布修复列表能证明稳定性吗?

不能。发布说明描述改动和修复,不衡量不同使用环境或工作负载下的可靠性。用它们选择回归案例,再收集自己的结果。

我能通过 Tokenhot 路由 dsh 吗?

有可能,前提是所选 Tokenhot 端点公开 dsh 支持的协议之一,且模型 ID、请求格式兼容。Tokenhot API 设置提供 base URL 和 Bearer Token 模式;真实兼容性需要带凭据请求,超出本文范围。

应从哪里开始?

阅读 rc.2 仓库 README,选择隔离工作区,并针对无害任务运行 Web UI 或 headless profile。provider 实验若需文档化 Tokenhot API 字段,请遵循 Quick Start,并在得出结论前验证模型和协议。

总结

dsh 是会发生破坏性变更、尚未安全审计的开发者预览软件。本文区分产品模式和 CLI profile,并说明隔离、固定版本、会话迁移及自有工作负载评估。

相关文章

相关模型