欢迎光临
我们一直在努力

DeepSeek Harness 完全指南:从零搭建你的第一个 AI Agent 工作流

2026 年 8 月 13 日,DeepSeek 正式发布首款 Agent 产品 DeepSeek Harness(dsh),以 MIT 协议全面开源,直接对标 Claude Code 与 Codex。本文基于官方设计与早期社区实践,系统拆解 dsh 的核心概念、环境搭建、图形界面、进阶功能与 CLI 玩法,带你从零完成一次真实项目任务。


前言:为什么 Harness 值得你花一个晚上

过去两年,大模型从"对话框里的助手"一路演进到"能动手干活的 Agent"。但真正把 Agent 落地到开发者日常工作流里的产品,并不多。

Claude Code 证明了"让 AI 在真实代码库里读写执行"这条路走得通;Codex 证明了"规模化后台任务"有价值。但两者要么是闭源商业产品,要么与特定生态深度绑定,社区很难在其上自由扩展。

DeepSeek 这次的开源动作,信号很明确:把 Agent 的"驾驶舱"交给社区。MIT 协议意味着你可以商用、可以改、可以嵌入自己的产品。内测期间 769 位开发者报名、约 300 个社区插件冒出来——这个数字说明,生态的自驱力已经起来了。

所以这篇文章的目标很朴素:帮你在一个晚上之内,从"听说过 dsh"变成"能用 dsh 完成真实任务"。

我会按照"概念 → 安装 → 界面 → 进阶 → CLI → 实战"的顺序讲。你不需要是 TypeScript 专家,也不需要懂 Agent 框架原理,只要会装软件、会敲命令就行。


第一部分:重新理解 dsh——它不是"另一个聊天框"

1.1 dsh 到底是什么

dsh 的全称是 DeepSeek Harness,由 DeepSeek AI 开源。官方给它的定位是 Agent Harness——翻译成人话,就是"智能体运行框架"。官网地址:https://www.deepseek.com/harness/ dsh官网

如果用一个比喻:dsh 是你 AI 助手的操作系统层。它不直接"生产智能",而是提供让智能体能够:

  • 读写你电脑上的文件
  • 执行命令、跑脚本
  • 调用各种工具(搜索、子代理、工作流)
  • 按流程、按权限、按目标持续干活

一句话:网页版 ChatGPT 是"你问它答",dsh 是"你派它去干"。

1.2 它和网页版、IDE 插件的区别

这是初学者最容易混淆的地方,用一张表说清楚:

维度网页版 ChatGPT / 官方对话IDE 内 AI 插件dsh
工作位置 封闭对话 编辑器内 你的真实电脑 / 服务器
能读文件? 需手动粘贴 当前项目 任意指定工作区
能跑命令? 不能 有限 完整终端能力
权限控制 插件决定 细粒度沙箱 + 审批
可扩展性 官方功能 Marketplace MIT 开源 + 插件体系
适合场景 问答、写作 写代码辅助 端到端项目任务

看出差别了吗?dsh 的工作对象是你真实的文件系统,而不是一段被粘贴进来的文本。 这个区别决定了它能做的事情量级完全不同。

1.3 dsh 能帮你干哪些活

在这里插入图片描述

装好之后,你可以让 dsh 承担这些类型的任务:

  • 代码工程:读懂一个陌生仓库、定位 Bug、重构模块、补测试、生成 README
  • 自动化脚本:批量处理文件、定时跑数据清洗、生成报告
  • 调研与汇总:并行调研多个信息源、交叉验证、输出结构化结论
  • 运维辅助:在受控环境里跑命令、排查日志、部署验证
  • 工作流编排:把"拉数据 → 清洗 → 生成 → 发布"这种固定套路写成可复用的流水线

关键是:它工作在你的真实电脑上,读的是你的文件,跑的是你的命令。 也因此——权限和安全是 dsh 的一等公民,后面会专门讲。 在这里插入图片描述

1.4 两条前置认知

不多,两条就够:

  • dsh 本身不生产模型。它负责调度、干活;真正"想问题、写代码、回话"的是背后的大模型服务(默认 DeepSeek,也可接其他 OpenAI 兼容服务)。
  • 一切动手都基于"工作区"。没有工作区,agent 就不知道你的文件在哪,自然没法干活。这是贯穿全文的核心概念。
  • 理解了这两点,后面所有设计都会显得顺理成章。


    在这里插入图片描述

    第二部分:十分钟搭好环境

    2.1 你需要装什么

    动手前说清楚:你只需要两样东西——Node.js(dsh 的运行底座)和 dsh 本体(一条命令装好)。不需要数据库、不需要 Java、不需要懂编程。

    dsh 用 TypeScript 写成,运行在 Node.js 上,所以第一步是装 Node.js。

    2.2 安装 Node.js

    去 Node.js 官网 下载 最新 LTS 版本,一路下一步安装即可。 Node.js官网

    ⚠️ 版本要求:dsh 处于预览阶段,要求 Node.js 22 及以上。如果你机器上是老版本,请升级再继续。

    装完后打开终端验证:

    node -v
    npm -v

    在这里插入图片描述

    看到类似下面的版本号,说明装好了:

    v24.11.1
    11.6.2

    2.3 启动 dsh

    不需要"单独安装",直接运行下面这条命令,npm 会自动下载并启动:

    npx @deepseek/harness web

    在这里插入图片描述

    第一次运行会花一两分钟下载依赖,终端滚动一堆日志,这是正常的。看到类似下面的输出,就说明启动成功了:

    Harness web UI running at: http://127.0.0.1:3080

    想先装好再启动? 也可以全局安装:

    npm install -g @deepseek/harness
    dsh web

    两种方式效果一样。新手推荐直接用 npx,少一个概念。

    2.4 打开界面

    启动成功后,打开浏览器访问:

    http://127.0.0.1:3080/

    在这里插入图片描述

    看到 dsh 主界面,环境准备就算完成了。

    此刻界面还是"空"的:左边没有工作区,中间没有会话,底部输入框还不能用。别急,这正是我们后面几章要逐个解锁的。

    2.5 常见问题速查(先收藏)

    问题解法
    npx 下载很慢 / 失败 检查网络或代理,可临时换 npm 国内镜像:npm config set registry https://registry.npmmirror.com
    端口被占用 换端口启动:dsh web –port 8080,然后访问 http://127.0.0.1:8080/
    node -v 版本太老 去官网下载最新 LTS 覆盖安装
    浏览器打不开界面 以终端打印的地址为准,确认端口一致、终端没报错,再刷新

    第三部分:认识主界面——每一个角落都有讲究

    3.1 整体布局

    打开 http://127.0.0.1:3080/,界面从上到下、从左到右分四个区域:

    ┌──────────────────────────────────────────┐
    │ [+新会话] 工作区列表 [设置 ⚙️] │ ← 顶部状态栏
    ├──────────┬───────────────────────────────┤
    │ │ 对话区(工具调用树 / 轨迹) │
    │ 侧边栏 │ │
    │ – 工作区 │ │
    │ – 会话 │ │
    │ │ ┌─────────────────────────┐ │
    │ │ │ 输入框(附件 / / / @) │ │
    │ │ └─────────────────────────┘ │
    └──────────┴───────────────────────────────┘

    • 左上角:新会话按钮。每点一次开一个独立对话,上下文互不干扰。
    • 左侧边栏:工作区与会话导航。目前只有一个"工作区"入口——这是 dsh 最核心的概念。
    • 中间:对话区。你的指令、agent 的回复、它调用工具的每一步,都在这里滚动展示。
    • 底部:输入框。给 agent 下指令的地方。注意它现在是锁定的——因为还没选工作区。
    • 右上角:设置按钮。点开有四个 tab,后面逐个用到。

    3.2 第一道必做配置:填 API 密钥

    界面什么都好,但还缺一样东西:大脑。

    dsh 自己不生产模型,真正"想问题、写代码、回话"的是背后的模型服务。所以开工前必须先告诉 dsh:用哪家的模型、用什么密钥。

    第一步:去 DeepSeek 平台拿密钥

    注册并登录 DeepSeek 开放平台,在"API Keys"里创建一个新密钥。

    ⚠️ 密钥只显示一次:创建后完整字符串只在页面上出现一次,关闭就看不到了。请先复制到安全地方再关页面。

    第二步:在 dsh 里填写

    回到 dsh 界面,点右上角设置 → 模型 tab。页面上会列出已预置的 DeepSeek 提供方。把密钥填进去,保存。

    保存后模型路由立即生效,不需要重启。

    回到主界面,看对话区上方的模型状态:如果显示 DeepSeek-V4-Flash(或你选的模型名),就说明配置成功了。此时还可以点开它切换其他模型。

    第三步:安全提醒

    API 密钥就是你的"钱袋子",按量计费,请把它当密码对待:

    • 不要截图发群里、不要提交到 git
    • 泄露后立刻去平台 吊销重建,旧密钥立即失效

    3.3 接入更多模型(OpenAI 兼容)

    模型页上有两个入口,对应两种场景:

    ① 内置提供方:dsh 预置了 20 多家主流模型服务,填密钥即可用。流程与 DeepSeek 完全一致。

    ② 自定义提供方(OpenAI 兼容):这是给"标准 OpenAI 兼容接口"准备的。只要你的服务实现了 OpenAI 的接口协议,就能被 dsh 识别。典型场景:

    • 本地跑的开源模型(Ollama、vLLM)
    • 公司内部的模型网关
    • 第三方中转 / 代理服务

    点"添加自定义提供方",填几个字段:

    字段说明
    Base URL 服务地址,如 http://localhost:11434/v1
    API Key 服务密钥(本地服务可为空)
    模型列表 该服务提供的模型名

    以最常见的 Ollama + qwen2.5:7b 为例:

    Base URL: http://localhost:11434/v1
    API Key: (留空)
    Models: qwen2.5:7b

    保存后,主界面的模型选择器里就能看到"本地 Ollama"了。

    ⚠️ 跨机器访问:本机服务用 localhost;如果 Ollama 跑在另一台机器,地址要换成那台机器的局域网 IP,并确认服务监听了非本机端口。


    第四部分:工作区——Agent 干活的"地盘"

    4.1 为什么必须有工作区

    想象你雇了一位远程助理:他要帮你干活,第一件事是什么? 告诉他你的项目在哪。否则他不知道去哪个文件夹翻文件,也不知道改完的东西放哪。

    工作区就是这个"项目在哪"的答案。

    在 dsh 里,工作区 = 一个项目目录的持久化记录,它记着三样东西:

  • 目录路径
  • 显示名字
  • 属于它的会话清单
  • 一句话:工作区 = 目录 + 名字 + 会话清单。

    因为 dsh 所有的"动手"都建立在工作区上:读文件、跑命令、写代码——都得有个根目录。不选工作区,agent 就没有"地盘",输入框就是锁着的。

    4.2 添加你的第一个工作区

    界面上有两个添加入口(侧边栏顶部 + 工作区分区),殊途同归,都会打开系统目录选择器。

    选哪个目录合适?

    • ✅ 项目根目录最合适(仓库根、网站源码目录),这样 agent 能读到项目里所有文件
    • ❌ 别选 C 盘、用户主目录这种大而全的目录——范围太大会让 agent 找东西很慢,误操作风险也高

    选好目录后,dsh 会自动完成两件事:记录路径、创建该工作区下的初始会话。

    回到主界面,左侧边栏工作区分区下已经出现了你的项目目录名。同时你会发现:底部输入框解锁了。

    4.3 工作区操作

    鼠标悬停在工作区行上,会出现操作菜单:

    • 重命名:改显示名(不改实际目录)
    • 删除:移除工作区记录(不删文件、不删会话,会话归入"未分组")
    • 切换:点工作区名即可,对应会话列表会跟着切换

    如果你有多个项目,就再走一遍添加流程,每个项目一个工作区。每个工作区互相独立,会话不会串。

    ⚠️ 注意:同一目录只能添加一次;添加的是"文件夹"而不是"文件"。


    第五部分:发出第一条指令,看 Agent 怎么干活

    5.1 新建会话 + 发指令

    点左上角 新会话 按钮,创建独立对话。底部输入框已经可用,提示语是"描述你想要构建的内容"。

    第一次用,推荐这种只读、安全、立刻见效的指令:

    列出当前工作区目录下的文件,并简要说明这个项目是做什么的

    💡 指令越具体越好:agent 是按指令干活的,含糊就只能猜。想要什么、范围在哪、产出什么格式,一次性说清楚,后面省很多来回。

    按 Enter 发送,你会看到两件事同时发生:

  • 你的消息出现在对话区
  • 下方开始出现工具调用记录(先"思考",再"执行")
  • 第一次跑会花点时间:它要先理解你的指令,再调用工具去看工作区文件,最后汇总成回答。短任务十几秒,长任务几分钟都正常。

    完成后,对话区留下完整记录:你的问题、它调用工具的每一步、最后的回答。底部还有一行统计信息(耗时、工具轮次、token 消耗)。

    5.2 读懂"工具调用树"

    普通聊天里,AI 给你一段文字就结束了。但 dsh 的 agent 要真正动手,所以它每做一步,界面就多一行记录——这些记录串起来,就是 工具调用树。

    一条典型流程(从下往上看):

    [Think] 理解指令:需要列出工作区文件并判断项目类型
    [ReadDir] 读取工作区根目录
    [ReadFile] 打开 package.json
    [ReadFile] 打开 README.md
    [Think] 综合信息:这是一个 Next.js 博客项目
    [Reply] 向用户汇报结论

    看到规律了吗?agent 的干活节奏是:想一下 → 动一下 → 看结果 → 再想 → 再动。

    每一行都可以点开展开,看完整内容:

    • 点开 Think:看到当时的思考过程
    • 点开 Pwsh / Bash:看到实际执行的命令和输出
    • 点开"上下文注入":看到注入的提示词内容

    想确认 agent 到底对你的项目做了什么?逐行点开看,一切透明。

    常见内置工具有:ReadFile(读文件)、WriteFile(写文件)、ReadDir(列目录)、Bash / Pwsh(执行命令)、Grep(搜索内容)、WebSearch(联网搜索)等。工具越多,agent 能干的事越多。

    5.3 读懂统计行

    任务完成后,工具调用树下方会显示一行统计,例如:

    1 轮 · 4 步 | LLM 14.9s · 工具调用 45.5s | 缓存命中 71% | 输入 76K tok · 输出 1.6K tok

    拆解一下:

    部分含义
    1 轮 · 4 步 1 轮对话,共 4 次工具调用
    LLM 14.9s 模型"思考"耗时
    工具调用 45.5s 实际执行(读文件、跑命令)耗时
    缓存命中 71% 输入缓存命中率,越高越省钱越快
    输入 76K tok · 输出 1.6K tok 本次 token 消耗

    任务变长时,这些数字帮你判断:时间花在了"想"还是"干"上。


    第六部分:会话里的十个进阶功能

    6.1 切换模型 + 推理等级

    配置好模型后,dsh 默认用你配置的那个。但不同任务适合不同模型:

    • 简单问答 → 轻量 Flash 模型(快、便宜)
    • 复杂重构 → 强推理模型(慢、准)

    切换不需要重启,会话进行到一半也能换。

    入口有两个:对话区上方的模型状态区,或输入框左侧的模型选择器。点开后:

    • 模型:列出所有已配置且可用的模型,点一下立即生效
    • 推理等级:控制"想多深",一般是 High / Medium / Low
    档位适用场景
    High 复杂架构、难 Bug、多约束任务
    Medium(默认) 日常开发主力
    Low 简单问答、快速确认

    建议先用默认档跑,觉得回答太浅就调高一档,觉得太慢就调低。没有绝对正确,按任务手感来。

    6.2 给 Agent 喂附件

    有些场景纯文字说不清楚——比如"帮我看下这份报错截图"“基于这份设计稿改代码”。这时候用附件:

    添加方式和聊天软件一样:直接拖拽文件到输入框,或点附件按钮选择文件。成功后输入框上方出现缩略图 / 文件条,确认后正常发送即可。

    dsh 支持常见类型,实践中用得最多的是:截图 / 图片、PDF、Excel/CSV、日志文件、设计稿。

    ⚠️ 大文件处理:文件过大会挤占上下文。如果是一整个项目,更推荐把项目目录设为工作区(让 agent 自己读),而不是压缩上传。能靠工作区读的文件,就不用附件传。

    每个附件都会转成模型能理解的内容,占用 token。附件越多越大,开销越高。用完的文件可以删掉,控制上下文在合理范围。

    6.3 斜杠命令 / 与引用 @

    dsh 的输入框不只是打字的地方。敲两个符号,会弹出两个快捷面板:

    ① 斜杠命令 /

    在输入框敲 /,弹出命令列表(内置命令 + 你安装的技能)。选一个,它就以"让 agent 用这个技能干活"的方式加入指令。

    举例:装了视频制作类技能后,输入 / 选它,再补一句"把这个网址做成一条介绍视频",agent 就按该技能的工作流执行。

    好处:把复杂能力变成一句话。

    ② 引用 @

    在输入框敲 @,弹出引用面板。作用是**"点名"某个东西参与对话**。可引用的包括:工作区文件、已有会话、已安装的技能、子代理等。

    引用比斜杠更灵活,可以夹在句子里用:

    用 @视频制作技能 把这份 @设计稿.png 翻译成英文版介绍

    一句话记住:想给 agent 加能力,敲 /;想点名某个东西,敲 @。

    6.4 权限模式与审批机制

    agent 在你电脑上干活,总要有边界。dsh 用权限模式管这件事。

    输入框左侧有访问模式按钮,点开弹出权限选择器。档位从低到高:

    档位含义
    Read Only 只读,不写文件、不执行命令(最安全)
    Workspace Write 可读写工作区内文件,工作区外需审批(日常推荐)
    Full Access 放行一切操作,包括工作区外(慎用)

    切换即时生效,只影响之后的操作。

    审批弹窗:即使设好了模式,agent 遇到"超权限"操作时,dsh 会停下来弹出审批卡片,写明了它想改哪个文件、跑什么命令、访问什么地址。看清了再决定。

    🔑 关键点:允许是一次性的。agent 每做一步超权限操作都要单独问一次,批准只放行当前这一步,不会"一劳永逸"。这正是 dsh 安全性的核心:agent 永远不能绕过你自作主张。

    日常使用保持 Workspace Write + ask 就好。never(永不询问)主要给自动化 / CI 场景用。

    6.5 用"目标"锁定方向

    agent 干活时常出现这种情况:你让它"修登录页 Bug",它修着修着开始优化布局、整理代码风格——方向跑偏了。

    目标(Goal)就是用来治这个的:你先把"这次会话要完成什么"明确告诉 agent,它会在每轮决策时对照目标,跑偏了就拉回来。

    不需要特殊按钮,直接在对话里说就行:

    # 方式一:和任务一起说
    本次会话的目标是:修复登录页在手机端显示错乱的问题。现在开始排查。

    # 方式二:任务中途补设
    设定目标:先把登录页 Bug 修完,其他优化都先不做。

    dsh 会把目标记下来,界面显示当前目标状态。agent 每一步都会对照它。

    💡 目标越收敛越好:“把 README 补全” 比 “把这个项目完善一下” 管用得多。目标模糊,agent 就没法判断什么算跑偏。

    6.6 计划模式:先审方案再动手

    大部分任务"边想边干"没问题。但有些任务不适合:

    • 破坏性改动(删数据、改数据库结构)
    • 多步骤、高风险的部署
    • 需要你先确认思路的大重构

    计划模式就是干这个的:让 agent 先交方案,你点头,再动手。

    用斜杠命令控制:

    /plan # 进入计划模式
    /plan 重构用户模块的鉴权逻辑 # 带任务进入计划模式
    /exit-plan # 退出计划模式

    进入后,你发一个任务,agent 会:

  • 先思考整体思路
  • 输出分步计划(每步干什么、影响哪些文件)
  • 等待你审阅确认
  • 批准后按步骤执行,每步严格按计划走
  • 全程你知道它要干什么、干到哪了。

    ⚠️ 计划模式是"软约束":它引导 agent 先计划后执行,但不额外限制工具权限。权限边界还是靠 6.4 的权限模式管。日常小任务没必要开,反而多一道审阅。

    6.7 子代理:把任务拆给"组员"并行干

    有些任务天然适合分工:

    • “调研 3 个方案的优缺点”
    • “同时改前端 + 后端 + 文档”
    • “并行跑 5 组测试”

    子代理就是 agent 委派出去的子 agent:主 agent 拆任务 → 分配给子代理并行执行 → 最后汇总给你。相当于项目经理 + 组员。

    不需要专门按钮,直接在指令里说:

    用两个子代理并行调研:一个查这个框架的官方文档,一个查社区实践案例,最后汇总

    你会在消息流里看到子代理行,展开后是子代理自己的完整对话记录。

    💡 适用判断:子代理适合"拆得开、各干各"的任务。任务紧密耦合、改一处影响全局的(如改公共类型定义),反而适合交给一个 agent 从头做,避免不一致。

    6.8 后台任务:耗时活丢到后台

    agent 有些活很慢:跑全量测试、批量处理、长时间调研。如果让它一路干完,你的对话就一直"转圈",期间想干别的都不行。

    后台任务就是解法:把耗时任务放后台跑,对话立刻恢复可用,完成后再回来收结果。

    把这个批量压缩任务放到后台执行,完成后告诉我结果

    你会看到会话头部出现后台任务列表,实时显示每个任务状态。任务跑完后,agent 把结果汇报到对话里,你也可以随时从列表查看。

    常见后台任务类型:命令行任务、子代理任务——统一由后台任务系统管理。

    6.9 工作流:把流程编排成脚本

    子代理解决"拆分",后台任务解决"等待",但都差一层:流程的编排。

    比如你有个固定套路:拉取数据 → 清洗 → 生成报告 → 发布。每次都靠手发指令太累。

    工作流(Workflow)就是把这类流程写成编排脚本:按顺序定义每步干什么、何时启动子代理、子代理间怎么衔接。写好脚本后,一条命令跑完整个流水线。

    一句话:普通任务是"干一次",工作流是"定个流程,以后照跑"。

    工作流是偏进阶的能力。初学者先做到"认识它、能跑现成流程"即可。想深入编排和写脚本,等基础功能都熟了再看进阶内容。

    6.10 轨迹视图:从原始记录回看每一步

    对话区顶部有两个视图 tab:对话 和 轨迹。

    • 对话视图:整理成清晰消息流,日常够用
    • 轨迹视图:按轮次组织的原始记录(USER / CONTEXT / ASSISTANT / TOOL),排查细节用

    点顶部 轨迹 tab 切换,再点 对话 切回来。切换不影响会话内容,只是换一种看法。

    💡 小提示:轨迹视图信息量大,是给"查细节"用的。日常干活看对话视图就好,别被原始记录淹没。


    第七部分:侧边栏——会话的总控台

    dsh 的左侧边栏不只是导航,它是会话的总控台。所有会话按工作区分组排列,一眼看清每个项目下有哪些对话。

    7.1 新建与切换

    • 新建:点侧边栏顶部的 [+] 按钮
    • 切换:直接点对应会话行,对话区加载完整历史,从头到尾可翻看、可续聊

    会话行上会显示状态信息:正在运行的会话有运行指示,等待你审批的会标出来——方便你一眼找到需要处理的事。

    7.2 搜索

    会话多了靠翻很累,用搜索框(支持按标题和内容搜)。标题搜不到就搜内容。

    7.3 会话操作

    鼠标悬停在会话行上,出现操作按钮:

    操作作用
    重命名 改会话标题,方便检索
    分叉(Fork) ⭐ 从当前位置复制出新会话,原会话原样保留——做实验、试不同方案特别好用
    归档 不用的会话收起来,列表更清爽
    删除 彻底删除(谨慎)

    🌟 分叉是神器:它不动原会话,从你选的位置复制出新分支。想"试试另一种思路又不破坏现有进度"时,先分叉。

    7.4 视图选项

    侧边栏的视图选项按钮可调整展示方式:按最近更新排序、手动排序、按工作区分组或平铺成一张列表——按你的习惯选就行。


    第八部分:设置——把 dsh 调成你的形状

    点右上角设置按钮,弹出设置面板。四个 tab:通用、插件、Agent 预设、模型。

    8.1 通用设置

    选项说明
    Agent 预设 新会话的 agent 类型(见 8.3)
    权限 新会话默认权限模式(推荐 Workspace Write)
    语言 界面语言,支持中文,切换立即生效
    外观 浅色 / 深色 / 跟随系统
    Enter 行为 agent 繁忙时按 Enter 怎么办(默认"排队发送")

    设置面板还有个**“打开配置文件”**入口,能看到 dsh 的实际配置文件。新手不建议直接改——界面能设的先用界面,改错了反而出问题。

    8.2 插件

    设置 → 插件 tab,列出当前部署已安装的插件及其配置项。它们是 dsh 能力的地基,例如:

    • 终端插件:给命令执行兜底,可配置执行范围、是否启用沙箱——是安全边界的一部分

    你可能想问:插件和 6.3 的技能(Skills)是一回事吗?

    不完全一样,理解为两层:

    • 插件:底层能力模块,在设置里管理(如终端、文件系统、搜索)
    • 技能:面向任务的可调用工作流,在会话里用 / 调用

    它们是 dsh 插件体系的两个侧面。

    8.3 Agent 预设

    同一个 dsh,agent 可以有不同的"形态"。Agent 预设就是这些形态的出厂配置。

    内置四个预设,能力从全到简:

    预设定位
    标准模式 功能完整的编码 Agent(大多数人的日常选择,默认)
    精简模式 去掉部分工具,适合轻量任务
    只读模式 只观察不改动,适合调研
    创造模式 可自定义、可扩展,进阶玩法

    切换路径:设置 → Agent 预设 → 点选。切换后新会话生效(已有会话不受影响)。

    创造模式还支持自定义预设——对 agent 行为有特殊要求时(比如固定系统提示词、限制可用工具集),可以自己创建一个。属于进阶玩法,先知道有这条路。

    8.4 主题

    通用设置 → 外观:浅色 / 深色 / 跟随系统。切换立即生效,不用重启。

    纯看习惯:长时间盯代码推荐深色护眼;如果拿不准,选跟随系统——自动匹配你电脑的明暗风格,最省心。主题只影响外观,不影响任何功能。


    第九部分:脱离界面的 CLI 玩法

    前面都在讲 Web UI,但 dsh 不只有图形界面。dsh 命令本身是个多模式启动器,除了 dsh web,还有几个有意思的模式。

    9.1 Headless 模式:无人值守跑任务

    最有意思的是 headless 模式——不需要界面,一条命令把任务干完就退出:

    dsh run "分析当前目录的代码结构,生成一份架构说明文档"

    跑完后终端直接打印 agent 的回答。适合写进脚本、定时任务、CI 流水线。 可以理解为 dsh 的"命令行版"。

    9.2 Profile 管理

    dsh 用 profile 管理不同运行配置。每个 profile 是一套独立的插件组合和配置:

    dsh –profile work run "…"
    dsh –profile personal web

    这样你可以在"工作账号"和"个人项目"之间干净地隔离。

    9.3 环境变量传密钥

    headless 模式通过环境变量读取密钥(不依赖图形界面的设置面板):

    export DEEPSEEK_API_KEY="sk-xxx"
    dsh run "…"

    这也是它能嵌入 CI 的原因——密钥从环境变量注入,不落盘。

    9.4 插件管理命令

    dsh plugin list # 列出已装插件
    dsh plugin install <name> # 安装插件
    dsh plugin enable <name> # 启用插件


    第十部分:安全边界——权限机制再深挖一层

    6.4 讲了权限模式,现在把背后机制说透:每个权限预设,实际上捆绑了两件独立的事:

  • 文件系统沙箱范围(能读写哪些目录)
  • 审批策略(超范围时是询问还是放行)
  • 界面上的一个档位,背后就是这两个开关的组合。

    10.1 沙箱的三个档位

    沙箱只管理文件系统效果,由松到严:

    档位文件读写范围
    Read Only 只读,任何位置都不能写
    Workspace Write 可读写工作区内,工作区外只读
    Full Access 全系统可读写

    ⚠️ 重要:沙箱只管文件读写。网络访问、进程可见性不归沙箱管,那是另一套机制。所以即便在 Workspace Write 下,agent 依然可以访问网络——这是设计如此(调研、下载依赖都需要)。

    10.2 权限组合对照

    界面档位背后的真实组合:

    权限模式沙箱审批策略
    Read Only 只读 一律拒绝写操作
    Workspace Write 工作区内可写 工作区外操作 → 询问
    Full Access 全开放 直接放行,不询问

    看出规律了吗?档位越高,沙箱越松;Full Access 连审批都关了。 这就是为什么 6.4 强调 Full Access 要慎用。

    10.3 沙箱的实现

    “护栏"由操作系统机制实现(如文件系统权限、隔离目录)。不同系统护栏强度有差异,某些边界(如硬链接)可能只能做到"部分限制”。

    日常使用记住一条就够:默认 Workspace Write(只读 + 写工作区内),是最常见也最稳妥的组合。


    第十一部分:完整实战——为已有项目生成 README

    理论讲完,现在把全文知识串起来,走一遍真实小项目任务:给一个已有项目生成一份 README。

    这个任务用到了全文主线能力:工作区、会话、工具调用、目标、审阅。

    11.1 任务目标

    分析当前工作区的项目,生成一份 README.md,
    包含:项目简介、主要功能、使用说明。

    11.2 开工前确认三件事(缺一不可)

  • ✅ 已配置好模型(API 密钥有效)
  • ✅ 已添加工作区(指向目标项目根目录)
  • ✅ 权限模式为 Workspace Write(允许写文件)
  • 11.3 Step 1:新建会话 + 设目标

    点 新会话,先设定目标,防止跑偏:

    设定目标:为当前工作区的项目生成 README.md,只做这一件事。

    11.4 Step 2:发任务(指令要具体)

    分析这个项目是做什么的,然后生成一份 README.md,
    包含项目简介、主要功能和使用说明。
    先读一下项目的关键文件(package.json / pyproject.toml / Cargo.toml 等)再动笔。

    注意指令里的三个要点:

    • 做什么:生成 README
    • 产出在哪:README.md
    • 怎么干:先读关键文件再动笔

    指令越具体,结果越可控。

    11.5 Step 3:盯工具调用树

    发送后,盯住消息流的工具调用树(5.2 节)。你会看到它反复"读一下、想一下、再读一下"——这是正常的,它正在理解你的项目。

    典型流程:

    [Think] 需要确定项目类型,先读清单文件
    [ReadFile] package.json
    [ReadFile] src/index.ts
    [ReadDir] src/
    [Think] 这是一个基于 Hono 的 API 服务,含 3 个路由模块
    [WriteFile] README.md
    [Reply] 已完成,README.md 已生成

    11.6 Step 4:审阅 + 调整

    agent 完成后,对话区出现 README 草稿,工作区里多了 README.md 文件。别急着收工,做两件事:

  • 审阅内容:打开文件看是否准确,项目名、命令、功能描述对不对
  • 不满意就改:直接在对话里说"安装命令应该是 pnpm 不是 npm,改一下",agent 会就地修订
  • 11.7 Step 5:收尾

    满意后,这单任务就完成了。你可以:

    • 继续让它"补一份 CONTRIBUTING.md"
    • 分叉(7.3)出一条新分支试试不同 README 风格
    • 归档这个会话,下次回来续聊

    回顾一下:工作区、会话、工具调用、目标、审阅——全文主线能力,在这个小任务里全部用上了。


    第十二部分:FAQ 速查表

    全文出现过的问题汇总,遇到坑先来这翻:

    问题解法
    npx 下载慢 / 失败 换 npm 国内镜像:npm config set registry https://registry.npmmirror.com
    端口被占用 dsh web –port 8080,访问 http://127.0.0.1:8080/
    node -v 版本太老 需 Node.js 22+,官网下载最新 LTS 覆盖安装
    浏览器打不开界面 以终端打印地址为准,确认端口一致、无报错,再刷新
    保存后模型不可用 / 密钥无效 密钥可能没复制全(sk- 开头一整串),或刚创建未生效,重建一个
    提示余额不足 DeepSeek 按量付费,新账号可能需充值,去平台费用页查看
    想用别的模型 设置 → 模型 → 添加提供方(内置 20+),或添加 OpenAI 兼容自定义提供方
    API 密钥泄露 平台吊销重建,旧密钥立即失效;别截图发群、别提交 git
    添加工作区但侧边栏没有 确认选的是文件夹不是文件;同一目录只能添加一次
    删工作区文件会丢吗 不会。删除只是移除分组记录,文件与会话都保留
    会话太多找不到 用侧边栏搜索框,按标题或内容搜;不用的归档
    想回到昨天的对话 点侧边栏会话行,历史完整加载,直接续聊
    agent 跑偏了 先设目标(6.5)再发任务;跑偏了直接说"停,回到目标上";或用计划模式(6.6)
    agent 运行太久 看工具调用树它卡在哪;长任务放后台(6.8),或指令里限定范围
    回答不满意 换更强模型(6.1)或调高推理等级,再检查指令是否具体
    老是弹审批 说明它想动工作区外的东西。看清操作再决定:该放行放行,不该放行拒绝(6.4)
    对话视图 vs 轨迹视图 对话是"人话版",轨迹是原始轮次记录(USER/CONTEXT/ASSISTANT/TOOL),排查细节用轨迹(6.10)
    界面英文想换中文 设置 → 通用 → 语言 → 中文
    界面太亮/太暗 设置 → 通用 → 外观,浅色/深色/跟随系统(8.4)
    无人值守跑任务 用 headless:dsh run "…"(9.1)
    想限制权限更严 切 Read Only,或保持 Workspace Write 并在审批时拒绝超范围操作(10.1)
    想加新能力 装插件或技能。插件在设置 → 插件查看,技能在会话里用 / 调用

    结语:从"问它"到"让它干"

    回顾你走过的路:

    dsh 是什么 → 装环境 → 认界面 → 发第一条指令 → 进阶功能 → CLI → 安全边界 → 完成真实任务

    你已经完成了从零到一的跨越。

    dsh 的真正价值,不在于它用了多强的模型,而在于它把"让 AI 在你的真实工作环境里、按你的规则、持续把一件事干完"这件事,变成了一套可控、可审计、可扩展的流程。

    MIT 开源 + 插件生态,意味着它不会停留在今天这个样子。社区已经在冒出插件、工作流模板、预设配置——你现在上车,正好能参与它的演进。

    接下来,去你自己的项目里,让 agent 帮你干第一件真实的活吧。遇到问题,回来翻这篇指南。


    在这里插入图片描述

    参考资料

    • DeepSeek 官方开源仓库(GitHub):https://github.com/deepseek-ai/deepseek-harness
    • DeepSeek 开放平台:API 密钥管理与计费

    本文基于公开资料与官方设计整理,版本迭代较快,具体以官方最新文档为准。如发现偏差,欢迎在评论区指正。

    赞(0)
    未经允许不得转载:171主机测评 » DeepSeek Harness 完全指南:从零搭建你的第一个 AI Agent 工作流
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址