知识库章节 ▾

导航

▸ 从这里开始 按角色

类别

工具 52
词汇表 12

工具

DeepSeek Harness:通过 JoinGonka Gateway 连接自有提供商

DeepSeek Harness (dsh 命令) 是来自 DeepSeek AI 的开源智能体套件:一个让模型可以读取和编辑项目文件、运行命令、委派子任务并维护执行计划的 shell,而您可以通过浏览器监控这一切并确认危险步骤。该项目尚处于早期阶段:作者自称为 developer preview,并明确警告会存在破坏性变更。因此,下文均基于特定版本 — 0.1.5-rc.2 — 该版本我们完成了从初始界面到模型响应的完整设置。

首次启动时,dsh 会要求提供其官方供应商的 API 密钥,但其模型层是开放的:在 Settings → Models 页面,您可以添加任何支持 OpenAI Chat Completions、OpenAI Responses 或 Anthropic Messages 这三种协议中的任意一种的提供商。JoinGonka Gateway 同时支持这三种协议,因此该套件无需插件或补丁,即可使用标准方式连接到去中心化的 Gonka 网络。

OpenRouter 目录中该应用页面的一个典型细节是:在过去 30 天内,通过该渠道运行 DeepSeek Harness 的模型排名中,DeepSeek V4 Flash 0731 位居第二,GLM 5.3 Flash 位居第三(截至 2026 年 9 月 21 日的数据;第一名是一个匿名测试模型)。这两种开源模型均由 Gonka 网络提供支持(以及 MiniMax M2.7),因此您可以直接将常用的配置迁移到不同的 endpoint,而无需更换模型:只需更改地址和 Token 价格即可。

什么是 DeepSeek Harness 以及如何启动它

Harness 就是 Agent 工作中围绕在模型周围的一切:那个「请求 → 工具调用 → 结果 → 下一步」的循环,文件与终端工具,权限与确认,会话日志,上下文压缩。DeepSeek Harness 用插件把这些拼装起来:它的「一切皆插件」架构建立在 Cordis 框架之上,从工具到模型适配器,任何节点都能在不改核心的前提下替换。代码以 MIT 许可开源。

无需安装——只要有 Node.js 就行(22 系列需 22.19 及以上,或 24 及更新版本):

npx @deepseek-ai/dsh web

该命令会在 http://127.0.0.1:3080 上拉起 Web UI 并在浏览器中打开;通过 SSH 启动时,地址只会打印到终端。--no-open 参数让服务器启动但不打开浏览器,--port 用于改端口。启动 dsh 时所在的目录会成为默认工作目录,但界面只有在你明确选择工作区之后才会开始会话。

模式命令用途
Web UIdsh web主界面:会话、设置、操作确认
单次任务dsh --profile headless "task"脚本与 CI:回答输出到 stdout,推理过程输出到 stderr
ACPdsh --profile acp支持 Agent Client Protocol 的编辑器与客户端
SDKdsh --profile sdkJSON-RPC 客户端,包括 Python SDK

模型层由两个适配器构成。直连适配器走厂商官方 API。多服务商适配器 dsh-llm-pi-ai 构建在 pi-ai 库之上——正是终端 Agent Pi 底层所用的同一个库;通过它既能接入内置目录里的服务商,也能接任何自有 endpoint。因此配置文件里的字段名——api、contextWindow、maxTokens——与你在 Pi 上熟悉的那套完全一致。

关于成熟度。 项目 README 开头就是一句警告:developer preview、快速迭代、破坏性变更。另有一份 SAFETY.md 明确指出:尚未进行安全审计,而 Agent 会执行由模型生成的命令。务实结论很简单:把 dsh 跑在容器、虚拟机或独立账号下,并对它能触及的一切做好备份。

通过 Web UI 连接:Settings → Models

第 1 步:密钥。前往 gate.joingonka.ai/register 注册:确认邮箱后,账户会收到 3M 个免费代币。进入控制台,打开「API 密钥」板块,创建一个带 jg- 前缀的密钥。不妨为 harness 单独建一个密钥——这样它的流量就会在统计里独占一行。

第 2 步:首个界面。在测试状态提示(Continue 按钮)之后,dsh 会要求你填入官方 API 密钥(「Add an API key to get started」)。这一步并非必须:点击 Configure later 即可跳过。

第 3 步:服务商。打开 Settings → Models,选择 Add a custom provider。表单字段如下:

字段值说明
Provider IDjoingonka小写拉丁字母,以字母开头。该标识符是永久的:它会进入请求、已保存的会话以及密钥引用名称。无法重命名——只能新建一个服务商并删除旧的
Display nameJoinGonka Gateway列表中显示的任意名称
Base URLhttps://gate.joingonka.ai/v1带 /v1 后缀
API protocolopenai-completions如何选择协议——见下表
API keyjg-your-key只写字段:保存后页面拿到的是脱敏描述符,而非密钥本身

第 4 步:模型。在 Models 区块中点击 Fetch available models:dsh 会向网关拉取列表,并弹出「Choose models to add」窗口。在我们的实测中,窗口里列出了网络上的全部三个模型——MiniMaxAI/MiniMax-M2.7、deepseek-ai/DeepSeek-V4-Flash-0731 和 zai-org/GLM-5.3-Flash——点击 Add selected 后,harness 会根据网关数据自动为每个模型填好上下文窗口和回复上限。接下来只需点击 Create provider。

第 5 步:选择模型。关闭设置,点击 Choose workspace 并添加项目目录。新服务商的模型会出现在选择器中;所选模型将成为新会话的默认模型。

dsh 将密钥与设置分开存放:保存在 ~/.dsh/.credentials.yaml 文件中,仅所有者可读。settings.yaml 里只保留对它的引用名称——在我们的实测中是 JOINGONKA_API_KEY,取自服务商标识符。

该选哪种协议。网关三种协议都支持,区别在于基础地址和附带的便利功能:

API protocolBase URL何时选用
openai-completionshttps://gate.joingonka.ai/v1首选:网关的规范路径,模型列表可通过按钮拉取,推理模型的思维链以独立流返回
openai-responseshttps://gate.joingonka.ai/v1如果你的插件或场景基于 Responses API
anthropic-messageshttps://gate.joingonka.aiAnthropic Messages 格式;/v1/messages 路径由客户端自行拼接

dsh 中一个服务商只使用一种协议,因此要用第二种协议就需再建一个服务商,使用不同的 Provider ID。日常使用第一种足矣;在我们的实测中,带工具调用的智能体循环在三种协议下都正常运行。

通过文件配置:settings.yaml

Models 表单写入的是普通的 YAML 文档——$DSH_HOME/settings.yaml,默认路径为 ~/.dsh/settings.yaml。你可以直接编辑它:设置顶部的 Open configuration file 按钮会打开该文件,适配器会在下一次请求时重新读取——无需重启。以下是针对 Gonka 网络的完整配置:

# ~/.dsh/settings.yaml
llm-pi-ai:
  providers:
    joingonka:
      displayName: JoinGonka Gateway
      apiKeyEnv: JOINGONKA_API_KEY
      api: openai-completions
      baseURL: https://gate.joingonka.ai/v1
      models:
        - id: deepseek-ai/DeepSeek-V4-Flash-0731
          name: DeepSeek V4 Flash
          contextWindow: 380000
          maxTokens: 32768
        - id: zai-org/GLM-5.3-Flash
          name: GLM-5.3 Flash
          contextWindow: 390000
          maxTokens: 8192
          reasoningEfforts:
            off: low
            high: high
        - id: MiniMaxAI/MiniMax-M2.7
          name: MiniMax M2.7
          contextWindow: 200000
          maxTokens: 8192
agent-default-model:
  provider: joingonka
  model: deepseek-ai/DeepSeek-V4-Flash-0731

以下几点很重要:

  • apiKeyEnv 不是密钥本身,而是对密钥的引用名。dsh 会按顺序查找其值:启动时的环境变量,然后是 .credentials.yaml(表单会写入这里),然后是启动目录下的 .env,最后是 ~/.dsh/.env。如果你要在无浏览器环境下配置 harness,只需在 ~/.dsh/.env 中写入一行 JOINGONKA_API_KEY=jg-your-key,权限设为 600 即可。启动之后导出的变量,已经运行的进程是看不到的。
  • 请显式设置 contextWindow 和 maxTokens。对于 dsh 一无所知的模型,它会默认按 262,144 和 32,768 个 token 处理——这与实际限制并不相符。你设置的 maxTokens 同时会成为每个请求的默认响应上限。
  • reasoningEfforts 是 Effort 菜单中的推理等级。手动添加的模型没有等级,因此不会为它显示该菜单。GLM-5.3 Flash 的开关是二元的:low 会关闭推理,其他任何值都会让它保持完整推理。因此 off 等级被映射为 low,而 high 则原样传递。在我们的测试中,使用 off 时完全没有推理块,使用 high 时推理块又回来了。
  • agent-default-model 是新 agent(包括 headless 模式)使用的模型。界面中的模型选择效果相同;你也可以在这里添加 reasoningEffort。

dsh 文档针对严格网关建议的 compat 开关(supportsDeveloperRole: false、maxTokensField: max_tokens)在这里并不需要:JoinGonka Gateway 同时接受 developer 角色和 max_completion_tokens 字段。

安装器 npx @joingonka/setup 不会配置这个 harness:整个接入过程只需上一节的表单或上面的 YAML 片段。

验证与常见错误

验证整套集成最快的方法,就是在代码目录里跑一次单次运行。把一个带有明显 bug 的小文件放在旁边,让 agent 去找出来:

cd /path/to/project
npx @deepseek-ai/dsh --profile headless "Read calc.py and tell me in one sentence whether it has a bug."

最终答案输出到 stdout,推理过程输出到 stderr,并带有 dsh: reasoning: 前缀。agent 应该自行调用读文件工具并给出实质性的回答:在我们的运行中,网络上的三个模型都指出了出错的那一行。这说明「请求 → 工具调用 → 结果 → 回答」这一完整链路经由网关已经正确打通。

验证的另一半在网关侧。进入控制台的「使用情况」,可以看到按小时和按天统计的请求、按模型和按密钥的拆分。一旦出现带有 harness 密钥和最新请求时间的那一行,就说明流量确实在走网关。

如果出了问题,通常直接从报错信息里就能读出诊断结论:

看到什么意味着什么该怎么办
AUTH: 401: … Invalid API key网关没有接受该密钥在 Models 页面重新输入密钥,或修正 apiKeyEnv 所引用的变量
MISSING_CREDENTIAL: … no credential for provider route "joingonka"apiKeyEnv 引用的位置什么都没找到在表单里保存密钥,或在启动 dsh 之前设置好变量:环境只在启动时读取一次
UNKNOWN_MODEL该模型不在 provider 的 models 列表中把它加进表单或文件,或选择已经配置好的模型
400 … Model "…" not found. Available: …ID 写得不准,通常是没有厂商前缀从网关在报错信息中给出的列表里复制 id
429 … currently overloaded … (rate limit)该模型目前在网络里已没有空闲容量高负载下的正常情况:dsh 会自行重试。若重试次数用尽,就切换模型或稍等一分钟;状态可在状态页查看
Fetch available models 返回 401拉取列表时用了错误的密钥检查表单里的密钥;模型也可以手动填写,一样能用
推理模型没有 Effort 菜单该模型条目没有声明推理等级按上面的示例,在 settings.yaml 里加上 reasoningEfforts
推理模型的回答被截断或为空推理过程占用并吃光了回答的额度不要把 maxTokens 调得太低;短任务请选择 off 等级
输入框显示 Select model,输入被锁定默认模型指向了一个已被删除的 provider在选择器里换一个模型

如何选择模型

网络中所有模型的价格都是相同的,因此选择主要取决于行为而非预算。以下是限制条件以及模型在我们 dsh 运行中针对同一任务(读取文件并找出其中的错误)的表现:

模型标识符上下文 / 回复在 dsh 中的行为
DeepSeek V4 Flashdeepseek-ai/DeepSeek-V4-Flash-0731380K / 32768简洁的回复,标明了行号。拥有网络中最大的回复上限,适合单次处理长编辑和大文件。
GLM-5.3 Flashzai-org/GLM-5.3-Flash390K / 8192推理模型:dsh 将推理过程显示在单独的流中,回复保持简洁。推理过程计入回复限制。
MiniMax M2.7MiniMaxAI/MiniMax-M2.7200K / 8192任务解决正确;推理过程通过单独的 reasoning_content 字段提供,回复正文中仅包含答案本身。

默认推荐为 DeepSeek V4 Flash:代理工作很容易达到上下文容量和编辑长度的瓶颈,而该模型在这两个参数上都有充足的余量。当任务需要深入思考复杂的逻辑时,请切换到 GLM-5.3 Flash 并将推理级别保持在 high;对于快速编辑,同一提供商提供的该模型级别设为 off。MiniMax M2.7 是处理短任务的稳健选择,此时可见的推理过程不会造成干扰。可在界面选择器中或通过 agent-default-model 块中的 model 字符串更改模型。

网络构成由参与者投票决定,并随时间变化;最新的列表及限制条件始终可通过 GET https://gate.joingonka.ai/v1/models 获取——“获取可用模型”按钮使用的也是该端点。

费用说明及工作中的注意事项

智能体工具消耗 token 的方式与聊天不同:对于你的每一句话,harness 都会添加一个系统提示词和所有工具的描述,然后与模型进行多轮对话。在我们的测试运行中,“读取文件并查找错误”的任务耗时两到三轮,使用了 14,000 到 22,000 个 token,其中几乎全部是输入:即使在你提问之前,每轮都会消耗约 7,000 个 token。这是为自主性支付的正常代价,这也是为什么按 token 计费至关重要的原因。

通过 JoinGonka Gateway,输入端 token 每百万个仅需 $0.0069,输出端每百万个仅需 $0.021——此价格适用于网络中的所有模型,并从此页面的实时源中自动获取。2026 年 9 月的价格量级如下:

场景消耗量通过 Gateway
单次任务(读取文件、查找错误)14-22K token几分钱的零头
一天的高强度工作3-7M token几美分
一个月的活跃开发约 150M token一美元左右

按实际消耗付费,无订阅,无请求配额限制;余额和每日消耗量可在后台查看。

版本。 项目目前处于 developer preview 状态,每次更新后请检查提供商是否正常,为了可复现性,请直接在命令中固定版本:npx @deepseek-ai/[email protected] web。

权限。 新会话默认在 Workspace Write 模式下运行——写入权限仅限于工作目录;超过策略的操作,界面会要求确认。可在 Settings → General 中更改模式。

重试。 如果发生单次网络错误,dsh 会自动重试请求——根据文档最多重试五次——因此短时的网络负载峰值通常不会被察觉。

隐私。 网关不存储提示词和响应的内容:统计数据中仅保留消耗总量。智能体在你的本地机器上读取项目文件。

如果需要处理图像——界面截图、照片中的图表——请在旁边配置第二个具有视觉能力模型的提供商:dsh 支持同时使用多个提供商,而 Gonka 网络模型是基于文本的。

DeepSeek Harness 并不是模型开发实验室自身发布的唯一智能体:GLM 的作者 Z.ai 有 ZCode 环境,MiniMax 有终端版的 MiniMax Code。两者都使用相同的密钥连接到同一个网关。

DeepSeek Harness 是 DeepSeek AI 发布的一个开源智能体 harness,目前处于 developer preview 状态:支持 Web UI、单次运行、ACP 和基于插件架构的 SDK。你可以通过以下方式连接自己的 endpoint:Settings → Models → Add a custom provider,地址填 https://gate.joingonka.ai/v1,协议选 openai-completions,密钥填 jg-…;点击 Fetch available models 按钮即可自动拉取 DeepSeek V4 Flash、GLM-5.3 Flash 和 MiniMax M2.7 及其限制。上述配置会被记录为 ~/.dsh/settings.yaml 中的一个 llm-pi-ai 块。对于 GLM-5.3 Flash,声明 off: low 和 high: high 等级即可实现推理切换。在格式稳定前,请在隔离环境中运行 harness 并固定版本。

想了解更多?

探索其他章节或立即开始赚取 GNK。

获取密钥及免费 token →