Skip to content

DeepSeek Harness ​

DeepSeek Harness(命令 dsh)是 DeepSeek 开源的 Agent 框架,采用"一切皆插件"的架构,自带 Web 界面。EduWork@ECNU 也以它作为上游运行时(详见 开源与项目关系)。学校的大模型通过 OpenAI 兼容接口接入。

注意:DeepSeek Harness 目前处于开发者预览阶段,后续版本可能出现不兼容的变更;官方也提示它尚未经过安全审计,可能执行模型生成的命令并访问授予它的文件。使用前请阅读其安全说明,建议在虚拟机、容器等隔离环境中运行,并只授权需要的目录。

启动 DeepSeek Harness ​

需要安装 Node.js。在要让 Agent 工作的项目目录中执行:

bash
npx @deepseek-ai/dsh@latest web

命令会在 http://127.0.0.1:3080 启动 Web 界面,并自动用浏览器打开;通过 SSH 登录的机器只会打印地址,加上 --no-open 则不会打开浏览器。如果浏览器没有自动打开,请使用终端打印的完整地址(其中带有 token 参数)。首次运行会自动创建 ~/.dsh 目录(Windows 为 %USERPROFILE%\.dsh)。命令中的 @latest 用来确保使用最新版本,而不是机器上已有的旧版 dsh。

配置 ChatECNU 模型 ​

在 我的令牌 中创建并复制您的 API Key。

方式一:使用配置文件(推荐) ​

首先把 API Key 写入 ~/.dsh/.env(把 your_api_key 替换为您的 API Key):

ini
CHATECNU_API_KEY=your_api_key

再将下面的内容保存为 ~/.dsh/profiles/web/cordis.patch.yml。如果该文件中已有内容,请把这一段合并进去,不要删除其他配置:

yaml
- id: llm-pi-ai
  config:
    providers:
      chatecnu:
        displayName: ChatECNU
        apiKeyEnv: CHATECNU_API_KEY
        api: openai-completions
        baseURL: https://chat.ecnu.edu.cn/open/api/v1
        compat:
          supportsDeveloperRole: false
          maxTokensField: max_tokens
          thinkingFormat: deepseek
        models:
          - id: ecnu-max
            name: ecnu-max
            contextWindow: 512000
            maxTokens: 64000
            input: [text, image]
            reasoningEfforts:
              off:
              low: low
              high: high
              max: max
          - id: ecnu-plus
            name: ecnu-plus
            contextWindow: 256000
            maxTokens: 32000
            input: [text, image]
            reasoningEfforts:
              off:
              low: low
              medium: medium
              xhigh: xhigh

刷新 Web 界面,在会话输入框的模型选择器中选择 ecnu-max 或 ecnu-plus。选择后会成为新会话的默认模型。配置修改后无需重启,会在下一次请求时生效。

方式二:在界面中添加 ​

  1. 打开 设置 → 模型,选择 添加模型提供商,把卡片切换到 自定义模型 API;
  2. 按下表填写:
设置项填写内容
Provider IDchatecnu(创建后不可修改)
显示名称ChatECNU
API 地址https://chat.ecnu.edu.cn/open/api/v1
API 协议OpenAI Chat Completions
API 密钥您的 API Key
  1. 在 模型目录 中添加模型 ecnu-max 和 ecnu-plus。点击 获取可用模型 可以从平台读取列表,列表中还包含向量、重排序、文生图等非对话模型,只勾选这两个对话模型即可;
  2. 展开每个模型的 模型选项:上下文窗口填 512000(ecnu-max)或 256000(ecnu-plus),输入类型勾选 图片;需要思考强度菜单时,再打开 推理等级,按下方 reasoningEfforts 的档位配置。

注意:界面表单没有 compat 相关的选项。如果请求被拒绝,或者选择思考强度后没有生效,请改用方式一。

配置说明 ​

字段说明
apiKeyEnv保存 API Key 的环境变量名,值取自系统环境变量或 ~/.dsh/.env
api接口协议,openai-completions 对应 /chat/completions 对话接口。一个提供商只能使用一种协议
baseURL平台的 OpenAI 兼容端点
compat.supportsDeveloperRole设为 false,系统提示词使用 system 角色发送
compat.maxTokensField设为 max_tokens,输出上限使用 max_tokens 字段发送
compat.thinkingFormat设为 deepseek。学校接口的思考参数(thinking 与 reasoning_effort)与 DeepSeek 一致,设置后选择的思考强度才会生效,选择 off 则会明确关闭思考,详见 思考模式
contextWindow / maxTokens上下文窗口与单次输出上限。输出上限取 64K / 32K 是 Agent 场景的推荐值(模型最大输出为 256K / 128K),把更多窗口留给输入,详见 模型介绍
input模型接受的输入类型,两个主模型均支持图片
reasoningEfforts模型选择器里的思考强度菜单:键是菜单中的档位,值是实际发送的 reasoning_effort。ecnu-max 支持 low / high / max,ecnu-plus 支持 low / medium / xhigh;off 留空表示关闭思考

无界面模式 ​

无界面模式(dsh headless,回答一个任务后退出)使用 ~/.dsh/profiles/headless/cordis.patch.yml,不会读取 web 下的配置。把上面的提供商配置复制到这个文件中,并追加下面一段指定默认模型(无界面模式无法在界面里选择模型):

yaml
- id: agent-default-model
  config:
    provider: chatecnu
    model: ecnu-max

之后即可运行:

bash
npx @deepseek-ai/dsh@latest headless "你好"

终端界面等其他启动方式同样使用各自 profile 下的配置,请参考 DeepSeek Harness 官方文档。

数据上传与隐私 ​

DeepSeek Harness 默认带有两类会话上传:使用 DeepSeek 官方模型 API 时上传 Session Log;在您主动给出反馈(消息评分、编辑、撤回消息)时,通过 OTel 上传会话日志。上传内容可能包含消息文本、工具参数和结果以及工作区路径。使用学校模型处理敏感内容时,建议关闭:

  • 在 Web 界面的 设置 → 通用 中关闭 在使用官方模型 API 时上传 Session Log;
  • 启动时设置环境变量 DSH_TELEMETRY_MODE=DISABLED:
bash
DSH_TELEMETRY_MODE=DISABLED npx @deepseek-ai/dsh@latest web

Windows PowerShell:

powershell
$env:DSH_TELEMETRY_MODE = "DISABLED"
npx @deepseek-ai/dsh@latest web

注意:ecnu-max 同时最多处理 3 个请求,ecnu-plus 为 5 个,超出会返回 429,详见 配额限制。

您的请求将按 credits 配额统一处理,详见 配额限制。