编码工具

DeepSeek Harness

在 Harness 中配置 TokenLab 模型,验证请求,并按需选择 MCP、Skills 或 provider bundle

选择需要的接入方式

要把 TokenLab 用作 Agent 的主模型,在 Harness Web UI 中添加 custom provider 即可,不依赖可选的 TokenLab provider bundle。需要媒体等 API 时添加 MCP 工具,需要 API 使用说明时安装 Skill;两者都不会自行切换主模型。

Harness 仍是开发者预览版。以下 Web UI 步骤于 2026 年 9 月 27 日对照官方文档及已发布的 @deepseek-ai/dsh 0.1.5-rc.3 包核对。下方 bundle 说明也以此版本为目标;其他 Harness 版本的兼容性需另行核对。

把任务交给现有 Agent

阅读 https://tokenlab.sh/docs/zh/integrations/deepseek-harness,核对我安装的版本和操作系统。
确认我需要 TokenLab 主模型、MCP 工具还是 API Skill。
保留已有账户、提供商配置和权限,说明改动后如何恢复。
不要在聊天中索要或填写 API key;由我在本地填写,并操作必要的界面步骤。
先说明一次小验证的费用,只有我明确选择这次测试后,才协助执行并核对 TokenLab 请求记录。

启动 Harness

在 macOS、Linux 或 Windows 上使用 Node CLI;选择受支持的 Node 版本,初次安装可使用 Node 24 LTS。在项目目录的终端或 PowerShell 中运行:

node --version
npx @deepseek-ai/dsh@0.1.5-rc.3 web

打开命令输出的本地地址。首次进入 Web UI 时,通过 Choose workspace 添加并选中项目目录后才能发送消息。这些命令使用 web profile;Electron 应用的 desktop profile 不由这套 CLI 流程管理。参见官方启动指南和 Web UI 指南。

配置一个 TokenLab provider

  1. 打开 Settings → Models → Add a custom provider,保留已有提供商和权限设置。
  2. 填写小写 Provider ID,例如 tokenlab-chat,从下表选一种协议及对应 Base URL。每个 provider 使用一种协议。
  3. 在本地表单填写 TokenLab API key。Harness 把 UI 管理的 key 保存到 $DSH_HOME/.credentials.yaml,设置文件只保存引用。不要把 key 发到聊天中或提交到仓库。
  4. 从 TokenLab 模型目录添加一个当前模型 ID,并在模型详情 API中核对 tokenlab.accepted_request_formats,不要按名字猜协议。
  5. 保存 provider,选中它的模型,再新建会话。已经发过请求的旧会话会保留日志中记录的模型。
Provider ID 示例Harness API protocolBase URL必须声明的公开请求格式
tokenlab-chatopenai-completionshttps://api.tokenlab.sh/v1openai_chat_completions
tokenlab-responsesopenai-responseshttps://api.tokenlab.sh/v1openai_responses
tokenlab-messagesanthropic-messageshttps://api.tokenlab.shanthropic_messages

第一次文本请求可选当前仍可用的 gpt-4.1-mini,按 Chat 行配置。Fetch available models → Add selected 可以帮助填充 custom provider,但发现模型不代表协议已匹配或计费请求已跑通;之后仍需保存 provider。发现失败时可手动填写 ID。

这里没有 Gemini native 的 custom-provider 协议。仅当模型详情列出 Chat 请求格式 时才使用该路径。图像输入和推理控制可能需要额外的 settings.yaml 字段;开启前请对照 Harness provider 配置和所选模型支持的字段。

验证一次小请求

在新会话中发送:

只回复 TOKENLAB_CONNECTION_OK。不要使用工具,也不要修改文件。

这次请求会计费。检查回复,并在 TokenLab 请求记录中核对相同模型、时间和状态。完成首次文本检查即可,不必为了证明接通而测试三种协议或生成付费媒体。模型列表或 MCP 工具发现成功,也不代表 key 已获得生成权限。

可选:TokenLab bundle

@tokenlabai/dsh-provider@0.1.5 面向 Harness 0.1.5-rc.3。只需配置一个模型时,可用上面的原生 custom-provider 步骤;需要预设模型路由和工具时,可安装 bundle。

bundle 包含 2026 年 9 月 27 日核对的 136 个公开聊天模型固定快照:Responses 27 个、Messages 10 个、Chat 99 个,每个模型只出现在一条路由上。它固定使用 @tokenlabai/mcp-server@0.6.24,另带独立的 tokenlab_wait_task 工具。安装此版本不会刷新模型目录;使用前应核对实时目录,按需通过 custom provider 添加新模型。

已有兼容 Harness 安装时,先确认 PATH 中存在 pnpm。安装和启动必须使用相同的 dsh 入口、版本及 profile;如果通过 npx 启动,把下面的 dsh 换成同一个带版本号的启动命令:

dsh --version
pnpm --version
dsh plugin --profile web add --workspace-root @tokenlabai/dsh-provider@0.1.5

启动该 profile 前,在启动环境或它读取的 .env 中设置:

TOKENLAB_API_KEY=sk-your-tokenlab-key

Harness 读取启动目录和 $DSH_HOME(通常是 ~/.dsh)里的 .env,继承的环境变量优先。进入 Web UI 后选择工作区,不会切换到那个目录的 .env。不要把文件提交到 git;修改后需重启。通过 UI 为 custom provider 保存的 key,不会自动成为 bundle 所需的 TOKENLAB_API_KEY。

重启同一个 profile,再查看模型和工具列表。使用 headless 时,安装和启动都改为 headless;安装到 web 不会配置另一个 profile。

Harness 0.1.5-rc.3 按 provider key 合并已保存的 llm-pi-ai.providers,异名 provider 可以共存。已保存的 tokenlab-responses、tokenlab-messages 或 tokenlab-chat 条目会覆盖 bundle 中对应的同名路由,升级旧目录时应检查这些条目。保留 $DSH_HOME/settings.yaml 中的其他 provider 和模型,不要用整份 Cordis patch 替换设置文档。

公开模型详情只标识 reasoning 能力,没有枚举每个模型支持的 effort 值,因此 bundle 不声明 reasoningEfforts。Harness 不会为这些自定义路由提供 effort 等级选项,这不表示服务端推理被关闭。若自行配置 reasoningEfforts,应先独立验证取值,再写入对应 provider 的 models 列表中的模型条目,并保留其他模型。仅有 reasoning 能力不能证明支持 xhigh 或 max。

bundle 默认使用 TOKENLAB_MCP_TOOL_PROFILE=core,提供 32 个 MCP 工具,schema 默认为 TOKENLAB_MCP_SCHEMA_MODE=portable。只做发现可选 catalog(6 个工具);需要全部 89 个工具及额外的 response 生命周期、batch、Seedance 资产/组和 worlds 操作时,选 full。独立的 tokenlab_wait_task 轮询工具在所有 profile 中均可用,不计入上述 MCP 工具数。TOKENLAB_API_BASE 与 TOKENLAB_ANTHROPIC_BASE_URL 默认均为 https://api.tokenlab.sh;TOKENLAB_OPENAI_BASE_URL 默认是 https://api.tokenlab.sh/v1。

使用 bundle 的媒体工具时,检查 delivery.mode:complete 直接取结果;async 把 delivery.task_id 交给 tokenlab_wait_task,读取终态 status、response 和 result_urls。等待超时不代表任务完成。保留计费或破坏性工具的审批,详见异步任务。

卸载时使用同一个入口和 profile,然后重启:

dsh plugin --profile web remove --workspace-root @tokenlabai/dsh-provider

失败时检查什么

  • **输入框不可用:**确认已经选中工作区和模型。
  • **MISSING_CREDENTIAL 或 401:**核对所选 provider 的凭据。bundle 工具读取启动环境的 TOKENLAB_API_KEY,与 UI 保存的模型 key 是两处设置。
  • **UNKNOWN_MODEL 或旧 ID 已下线:**核对实时目录,配置当前精确 ID,再新建会话。重装 bundle 0.1.5 不会更新其快照。
  • **地址可访问但生成失败:**核对协议、Base URL 和模型接受的格式。不要为了得到一次成功而删掉历史、工具或图像输入。
  • **找不到 dsh 或 pnpm:**Harness 可使用上面的带版本号 npx 命令;运行 plugin 命令前先安装 pnpm。插件安装失败与 API key 错误不是一回事。

MCP 和 Skills 是独立选择

手动添加 custom provider 不会安装工具。不需要 bundle 时,可按 TokenLab MCP 指南接入可调用的 API 工具,先检查发现,再执行生成。

安装 TokenLab Skills 时,将完整 Skill 目录放在项目根目录的 .dsh/skills/tokenlab-api-integration/,保留 SKILL.md 及引用文件。Harness 也会发现 .agents/skills/。这些说明不会安装 provider、MCP server 或 key;支持的目录以官方文件系统 Skills 文档为准。

Jev / System One & Webhooks

Jev(POST /v1/systemone)使用 core 或 full 的 mcp__tokenlab__evaluate_decisions。先查 category=decision 和模型详情。决策是同步结果,不是聊天模型或异步任务;不要放进模型选择器或交给 tokenlab_wait_task。

Webhook 管理需要 full 与启动环境中单独的 TOKENLAB_MANAGEMENT_TOKEN=mt-...,由 bundle 显式传给 MCP。推理 key 不能替代管理 token;后者权限超出 Webhook。登记 Webhook 不代表 Harness 已成为接收端。

本页内容