最近做 AI 应用开发的朋友,大概率会遇到一个尴尬场景:大模型的“脑子”很聪明,但让它正经完成一件专业工作,结果却经常一言难尽。让它写周报,它写出的是流水账;让它做 PPT,它产出的是空话合集;让它设计界面,它又只会用“现代简约”四个字糊弄你。
问题的根源不是你选的模型不够强,而是模型手里缺了一份“专业岗位操作手册”。这正好解释了为什么 Agent Skill 最近在开发者社区里被反复讨论。它要做的事情,就是给模型补充“在一个具体场景里按什么流程、用什么格式、产出什么结果”的完整规则。
在 DeepSeek 生态里,DeepSeek Harness 这类工具正在把“给模型安装技能”这件事工程化。它不是一个简单的聊天框,而是把模型调度、插件管理、Skill 运行、工作区隔离、对话归档这些环节整合起来的一套桌面级工作台。
这篇文章我会从 Agent Skill 的基础概念讲起,对比它和 Agent、MCP 的区别,然后带你在 DeepSeek Harness 中完成安装、Skill 创建,并用 PPT Skill 和 UI 设计 Skill 跑通两个真实任务,最后给出常见问题排查和工程建议。
1. 为什么 Agent Skill 突然这么重要
先说一个核心判断:Agent 应用正在从“能聊天”走向“能干成事”,而 Skill 是这中间最关键的工程抽象。
过去大家用大模型,主要停留在“问答”层面:把问题抛给模型,模型凭训练记忆生成回答。这种模式对“写一段文案”“解释一个概念”这类开放式任务够用,但对“生成一份符合公司模板的周报”“输出一套完整且规范的设计方案”这类约束型任务,表现就很不稳定。
为什么不稳定?因为约束型任务需要满足外部规则。比如 PPT,公司可能要求必须包含封面、目录、过渡页、内容页、结尾页,内容页又要求包含问题分析、数据支撑、方案建议。再比如 UI 设计,企业级项目通常有明确的颜色规范、字体层级、组件间距,不是一句“好看就行”能解决的。
这些规则如果每次都在对话里临时交代,太累;如果全部塞进系统提示词,又太乱。Skill 的出现,就是为了把这些规则打包成一个可复用、可安装、可分享的单元。
类比一下:Skill 就像给 Agent 发了一本《岗位操作手册》。模型本身是那个聪明但没经验的实习生,而 Skill 告诉你“第一步做什么、第二步做什么、最终输出长什么样”。有了手册,实习生也能稳定交付。
从社区反馈看,Skill 能被反复提及,不是因为概念新鲜,而是因为它是当前投入产出比最高的 Agent 调优手段之一。换模型成本高,改提示词效果有限,而安装或创建一个好的 Skill,往往能直接让任务质量上一个台阶。
2. Skill 与 Agent、MCP 到底有什么区别
很多人刚接触时会困惑:Skill 和 Agent 有什么区别?Agent Skill 和 MCP 又是不是同一个东西?
先给结论:三者解决的是不同层的问题。
Agent 是执行者,它是那个“决定要做什么、调用什么工具、按什么顺序执行”的智能体主体。Skill 是知识包,它是一组提示词、规则、示例和输出模板的组合,用来教会 Agent 完成某一类具体任务。MCP 是连接器标准,它解决的是“Agent 怎么安全、统一地调用外部工具和数据”,比如读数据库、查文件、调用 API。
可以这样理解:Agent 是厨师,Skill 是菜谱,MCP 是食材供应链。厨师根据菜谱决定做什么菜,菜谱告诉厨师步骤,而食材供应链解决“食材从哪来、怎么验收”。三者的关系是协作,不是替代。
我用一个表格来对比:
| 维度 | Agent | Skill | MCP |
|---|---|---|---|
| 本质 | 执行主体 | 技能定义 | 工具接入协议 |
| 回答的问题 | 谁来完成任务 | 任务按什么规则做 | 任务怎么调用外部能力 |
| 典型内容 | 模型配置、工具列表、执行逻辑 | 提示词、流程、参考示例、输出格式 | 工具服务、资源定义、调用约定 |
| 类比 | 厨师 | 菜谱 | 食材供应链 |
| 变化频率 | 低频,整体架构 | 高频,按任务迭代 | 中低频,按工具接入迭代 |
实际项目里,三者经常一起出现。一个 Agent 负责理解用户意图;它加载了“日报生成”这个 Skill,知道输出格式必须是“今日完成、存在问题、明日计划”三段;写日报时需要读取 Git 提交记录,这又通过 MCP 调用代码仓库工具来完成。
所以不要再纠结“Skill 好还是 MCP 好”。更准确的说法是:MCP 解决的是“Agent 的手能伸多远”,Skill 解决的是“Agent 的手按什么标准干活”。两者缺一不可。
3. DeepSeek Harness 是什么,适合谁用
从公开信息和社区讨论来看,DeepSeek Harness 是围绕 DeepSeek 模型生态的一体化 Agent 开发与运行工具。它更像一个“Agent 工作台”,而不是单一命令行工具。
它提供了几个关键能力。第一是模型接入与调度,可以在一个界面里管理多个 DeepSeek 实例,并针对不同任务切换配置。第二是插件中心,支持安装各种插件,比如 Modlens、PPT skill、UI 设计 skill 等。第三是工作区,不同项目有独立的工作目录和上下文,避免对话串味。第四是会话管理,支持对话归档,方便回溯历史任务。第五是视觉识别能力,这对 UI 设计类 Skill 尤为重要,因为设计稿的评审需要依赖图片理解。
还有一个值得注意的点:DeepSeek Harness 提供桌面版,也支持 Docker 部署,还有 Studio 形态。这意味着它既适合个人开发者在本地快速试用,也适合团队做统一部署。
那它适合谁?如果你正在做这几类事,值得关注:
- 你经常用 DeepSeek 系列模型做重复性工作,比如写日报、写 PPT 大纲、做设计初稿,但每个任务都需要反复调提示词。
- 你负责给团队搭建统一的 Agent 环境,希望把模型配置、Skill、插件固定下来,而不是靠每个人本地维护一堆零散脚本。
- 你想尝试 Agent 开发,但不想从零实现模型调度、上下文管理、工具调用这些底层逻辑。
反过来,如果你只是偶尔用一下大模型问答,不涉及多步骤任务,那它对你来说暂时不是刚需。这一点要诚实判断,工具再热,也要和你的使用场景匹配。
4. 环境准备与 DeepSeek Harness 安装
这一部分我们进入实操。先说明:由于 DeepSeek Harness 迭代速度较快,不同版本的安装命令可能有差异,下面展示的是通用思路,具体版本和镜像信息以官方文档为准。
4.1 前置依赖检查
无论你选择哪种安装方式,建议先确认本机环境满足基本条件。Windows、macOS、Linux 都可以,但推荐优先使用 64 位系统,并保证有足够的磁盘空间。
# 检查系统信息 uname -a # 检查 Node.js 版本,建议使用 18 或 20 的 LTS 版本 node -v # 检查 npm 版本 npm -v # 检查 pnpm 是否安装,没有装就全局安装 pnpm -v npm install -g pnpm如果你的环境里没有 Node.js,去官网下载 LTS 版本安装即可。这里建议用 pnpm 而不是 npm,因为它对依赖的管理更严格,安装速度也更快,而且社区讨论 DeepSeek Harness 时经常提到 pnpm,说明项目对 pnpm 的支持比较成熟。
4.2 桌面版安装
从社区反馈来看,桌面版是大多数 Windows 用户的首选安装方式。原因很简单:不需要手动配置复杂的命令行环境,下载安装包、双击、下一步即可。
基本步骤如下:
- 打开 DeepSeek Harness 官网,进入下载页面。
- 选择对应平台的安装包,Windows 用户选择 exe 或 msi 格式。
- 双击安装包,按照引导完成安装。
- 第一次启动时,按提示完成模型配置或登录。
这里提醒一句:如果你要本地部署,务必预留足够的模型存储空间。DeepSeek 系列模型的体积不小,磁盘空间不足会导致启动失败。
4.3 通过 pnpm 安装
如果你更习惯命令行,或者需要基于源码二次开发,可以通过 pnpm 安装。
# 克隆项目源码 git clone https://github.com/你的目标仓库地址/DeepSeek-Harness.git cd DeepSeek-Harness # 安装依赖 pnpm install # 启动 Web 界面,常见脚本为 dev 或 start pnpm dev # 如果 dev 不存在,尝试 pnpm start注意:上面命令中的仓库地址需要替换为官方文档给出的地址。社区里有人遇到“卡在 pnpm dsh web”这个问题,大多是因为依赖安装不完整或网络原因。出现这种情况时,先检查 pnpm 是否成功安装了所有依赖,再确认对应脚本名称是否正确。
4.4 Docker 部署
如果是团队统一部署,推荐使用 Docker 方式。它的好处是环境一致性,不会出现“在我机器上能跑,在你机器上不行”的问题。
# 拉取镜像,镜像名以官方文档为准 docker pull deepseek-harness:latest # 启动容器,并将本机端口映射到容器端口 docker run -d --name dsh \ -p 3000:3000 \ -v dsh-data:/app/data \ deepseek-harness:latest启动后,浏览器访问http://localhost:3000就能看到工作台界面。使用 Docker 时,建议把数据目录挂载到宿主机,避免容器重建后数据丢失。
4.5 启动与验证
安装完成后,无论哪种方式,最终目标是进入工作台并成功发起一次对话。验证标准很简单:在工作台里新建一个会话,输入一句问候,能收到模型回复,说明核心链路已经通。
如果连这一步都失败,优先排查两个点:一是模型配置是否正确,二是网络是否能正常访问模型服务。
5. Skill 安装与第一个 Skill
DeepSeek Harness 的 Skill 有两种获取方式:从插件中心安装,或者手动导入本地 Skill 文件。
5.1 从插件中心安装
桌面版或 Web 界面通常都有“插件中心”入口,你可以在里面搜索需要的 Skill。比如:
- Modlens:常用于模型可视化与调试分析,适合排查模型输出异常的场景。
- PPT Skill:用于生成 PPT 大纲、页面内容和演讲稿。
- ui-ux-pro-max:用于生成符合政企标准的 UI 设计方案。
安装流程一般是:进入插件中心 → 搜索 Skill 名称 → 点击安装 → 在 Skill 管理页面确认启用。安装后记得刷新会话,否则当前会话可能加载不到新 Skill。
5.2 手动导入 Skill 文件
如果你拿到了别人分享的 Skill 文件,通常是.md、.yaml或.json格式,可以手动导入到工作区的 skills 目录下。
# 进入工作区的 skills 目录 cd ~/deepseek-harness/workspace/skills # 创建自己的 skill 目录 mkdir -p daily-report把下载好的文件复制进去,然后在工作台里刷新 Skill 列表,就能看到新 Skill。
5.3 加载并使用第一个 Skill
以“日报生成”Skill 为例。安装后,你在对话里直接告诉 Agent:
请使用日报生成 Skill,根据今天的开发内容生成一份日报。 今天完成:完成登录模块重构,修复了两个鉴权 bug。Skill 生效后,输出就不再是自由发挥的“今天做了东西”,而是会严格按照 Skill 定义的板块和格式输出。判断一个 Skill 是否真正生效,就看它的特殊格式是否被遵守。
6. 从零创建一个自己的 Skill
社区里有大量现成 Skill,但真正让工具“好用”的,往往是按自己团队规范定制的那几个 Skill。下面我用一个日报 Skill 演示完整的创建过程。
6.1 Skill 的核心组成
一个最小可用的 Skill,至少要包含三部分:
- 元信息:名字、描述、版本。
- 触发条件:用户说什么话时启用这个 Skill。
- 指令内容:告诉模型按什么流程完成任务,包括步骤、格式、示例。
描述字段非常重要。Agent 判断该使用哪个 Skill 时,主要靠描述匹配用户意图。描述写得越具体,命中率越高。
6.2 创建日报 Skill 的完整示例
在工作区的 skills 目录下创建daily-report目录,然后新建skill.yaml:
name: daily-report description: 生成标准格式的研发日报。当用户提到日报、今日工作、工作汇报时使用。 version: 1.0.0 trigger: - "写日报" - "生成日报" - "日报" instructions: | 当收到日报请求时,请按以下步骤执行: 1. 如果用户没有提供素材,先询问今天完成的主要工作。 2. 如果用户提供了素材,直接开始整理。 3. 所有内容分为三个板块:今日完成、存在问题、明日计划。 4. 今日完成每条不超过 50 字,使用动词开头。 5. 存在问题必须说明影响和可选解决方案。 6. 明日计划使用有序列表。 output_format: | ## 今日完成 - 完成事项 1 - 完成事项 2 ## 存在问题 - 问题描述 - 影响:说明影响范围 - 方案:可选解决方案 ## 明日计划 1. 计划事项 1 2. 计划事项 2这个文件的含义很清楚:当用户提到“日报”相关的词,Agent 就会加载这个 Skill,并严格按instructions里的流程执行,最后用output_format指定的格式输出。
6.3 加载与测试
创建完成后,在 DeepSeek Harness 工作台执行:
@daily-report 写日报:完成订单服务重构,修复超时 bug,联调支付接口。如果 Skill 加载成功,输出会是规范的三段式日报,而不是自由格式。如果输出仍然是自由格式,说明 Skill 没有被识别,可以检查目录名、文件名和描述字段是否有拼写错误。
6.4 迭代技巧
Skill 不用一次写完美。我的建议是:先写一个粗糙版本跑通,然后看输出效果逐步补充。实际使用中,你很快会发现三个高优先级改进点:
- 补充行业术语表,避免模型用词不合团队习惯。
- 增加正反示例,模型见过“好的长什么样、差的长什么样”,输出会更稳定。
- 把数据来源写进指令,比如日报需要关联 Git 提交记录,就在 Skill 里写明“先通过 Git 工具拉取今日提交”。
7. PPT Skill 实战
PPT 制作是 Agent Skill 最适合落地的场景之一,因为它规则明确、步骤固定、产出格式清晰。用 PPT Skill,本质上是把“做 PPT”这个模糊任务拆成了“大纲设计、页面填充、文案优化、备注撰写”几个确定性步骤。
7.1 PPT Skill 能解决什么问题
不用 Skill 时,你让模型“做一个关于数据中台的 PPT”,它可能会直接输出 10 页内容,但页与页之间没有逻辑,文字堆砌,甚至没有演讲人备注。而一个合格的 PPT Skill 会要求:
- 先确认 PPT 受众、页数和核心目标。
- 生成结构化大纲,每一页只解决一个问题。
- 内容页遵循“观点 + 依据 + 案例”的结构。
- 每页附带演讲人备注。
这正好对应了那些“看起来简单,但实际做起来全是坑”的环节。
7.2 安装 PPT Skill
在 DeepSeek Harness 插件中心搜索 PPT Skill,按提示安装即可。如果社区有团队维护的版本,也可以使用 5.2 节的手动导入方式。
社区里提到的 Hermes 编写 PPT Skill,思路是:先用 Hermes 这类智能体工具把 PPT 的结构和文案拆解成标准流程,再固化成 Skill 文件导入 Harness。本质上是把别人验证过的流程复制到自己的环境里。
7.3 使用 PPT Skill 生成 PPT
安装完成后,你可以这样发起任务:
使用 PPT Skill,生成一份 12 页的《数据中台建设方案》PPT。 受众:企业 CIO 和业务负责人。 目标:说明为什么要建数据中台,以及分几步落地。 要求:每页一个核心观点,数据要可信,语言要克制。Skill 生效后,模型会按固定流程产出:大纲、每页标题、核心文案、数据建议、演讲人备注。你得到的不是一段“看起来像 PPT”的文本,而是一份可以直接用来排版的内容结构。
7.4 使用后的再加工
有一个认知要建立:PPT Skill 负责的是内容结构和信息的组织,不是最终视觉呈现。拿到 Skill 输出后,还需要导入到真正的 PPT 工具里做视觉设计。如果团队有品牌规范,可以把规范同样写成一个 Skill,让模型在生成时就把字体、配色、版式要求纳入考虑,这样后续设计工作量会小很多。
8. UI 设计 Skill 实战:政府/企业级设计规范
UI 设计 Skill 比 PPT Skill 更依赖视觉理解能力,所以 DeepSeek Harness 支持视觉识别这一点就很重要了。从社区讨论看,ui-ux-pro-max 这个 Skill 被反复提及,它的定位是“高端 UI 设计”,主打政府和企业级项目。
8.1 政企级 UI 与普通 UI 的差异
很多开发者对“政府/企业级设计”没有概念,以为只是换个颜色。实际上,政企项目的 UI 规范通常比互联网 C 端产品严格得多:
- 色彩系统有明确语义,比如主色、功能色、状态色不允许随意混用。
- 字体层级必须清晰,字号、字重、行高都有规范。
- 组件使用有边界,同一种交互不能出现多种视觉形态。
- 必须考虑无障碍性和低带宽环境下的加载性能。
通用大模型默认输出的“酷炫界面”风格,在政企项目里往往不适用。这就是 ui-ux-pro-max 这类 Skill 的价值:它把一套成熟的高端设计规范变成了模型可执行的指令。
8.2 使用 UI 设计 Skill 的示例
在 DeepSeek Harness 中安装并启用对应 Skill 后,可以这样发起任务:
使用 ui-ux-pro-max Skill,为「智慧政务服务平台」设计一套界面规范草案。 要求: 1. 基于政府/企业级设计语言,给出主色、辅助色和功能色的推荐色值。 2. 定义标题、正文、辅助文字的字号、字重和行高。 3. 覆盖表格、表单、按钮、弹窗四类核心组件的设计规范。 4. 所有方案需要说明设计依据,而不是只给结论。Skill 生效后,输出会是一套有逻辑的设计规范草案,而不是一句“建议使用蓝色和白色”的空话。它能给出具体色值、间距、圆角、阴影参数,并对每个决策做解释。
8.3 从规范到页面
UI 设计 Skill 的第二个能力,是根据规范生成页面布局描述。比如:
按照刚才确定的设计规范,为「政务服务平台」的登录页给出布局方案。 包含品牌区、表单区、辅助信息区,并标注各区域的视觉层级。这时输出的不是设计稿,而是一份足够清晰的“视觉交付说明”,前端工程师可以据此快速实现页面,设计师也可以在此基础上快速出图。这个工作流的价值在于,把“设计规范到页面”的中间过程从几个人开会对齐,变成了可重复的执行流程。
9. 个人 Skills 的沉淀与分享
Skill 用的越多,你越会意识到:真正能提升效率的,不是网上现成的通用 Skill,而是围绕自己团队工作流程定制的 Skill 集合。这就带来两个问题:如何沉淀,如何分享。
9.1 建立个人 Skills 库
我建议把 Skill 当作代码来管理。每个 Skill 都放进独立的目录,使用 Git 做版本管理。这样做的好处是:改坏了可以回滚,换机器可以快速恢复,团队协作时可以用统一的 PR 流程来评审 Skill 变更。
另一个建议是:一个 Skill 只解决一个问题。很多人图省事,把日报、周报、OKR 总结都写进一个 Skill,结果指令越来越长,模型越来越容易“忘事”,最终效果反而不如拆分成三个独立 Skill。
9.2 分享时需要注意什么
如果你想把自己的 Skill 分享给社区,需要注意四件事。
第一,命名要直白。Skill 的名字和描述里直接写明适用场景,不要用艺术化命名。
第二,版本要清晰。在元信息里写上版本号,并维护变更记录。
第三,示例要完整。一个没有示例的 Skill 很难被信任,至少给出一个输入输出示例,让使用者能快速判断是否适合自己。
第四,注意敏感信息。如果 Skill 里保存了公司内部的数据口径、业务规则或客户信息,分享前必须脱敏。
10. 常见问题与排查思路
根据社区讨论和实际使用中的高频问题,整理成如下排查表:
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 安装时卡在 pnpm dsh web | 依赖安装不完整或网络原因 | 检查 pnpm 日志,确认依赖是否有失败项 | 重新执行 pnpm install,或切换镜像源 |
| 插件安装后找不到 Skill | 插件未启用或会话未刷新 | 进入插件管理页确认状态,新建会话 | 重新启用插件并重启会话 |
| 使用 Skill 后输出格式不对 | Skill 描述不准确,模型没识别到 | 查看 Skill 是否被加载,检查描述关键词 | 优化触发词和描述,增加示例 |
| 生成 UI 设计时视觉理解不生效 | 当前模型不支持视觉或未开启视觉模块 | 确认模型配置与视觉功能状态 | 切换到支持视觉的模型,或检查权限 |
| Docker 启动但页面访问不了 | 端口映射错误或容器内服务未启动 | 查看容器日志,检查端口是否被占用 | 修正端口映射,重启容器 |
| 对话归档后找不回来 | 备份目录未挂载或路径配置有误 | 检查数据目录挂载配置 | 重启前确认数据卷挂载正常 |
| 创建 Skill 后报 YAML 语法错误 | 缩进或中文标点问题 | 用 YAML 校验工具检查文件 | 修正缩进,使用英文标点 |
一个更通用的排错思路是:别急着改代码,先判断问题出在链路哪一层。按“模型是否正常回复 → Skill 是否被加载 → 插件是否启用 → 指令描述是否准确”的顺序逐层排查,比盲目重装效率高得多。
11. 最佳实践与工程建议
如果你准备把 DeepSeek Harness 和 Skill 用在真实项目里,下面几条建议值得认真对待。
11.1 Skill 文件也属于代码,需要评审
Skill 本质上是提示词工程的高级形态,但它比普通提示词更复杂,因为它会直接影响模型的行为边界。团队协作时,Skill 的变更应当经过评审,尤其是涉及输出格式、数据读取、权限操作的 Skill,不能随意合并。
11.2 明确安全边界
Skill 可能会让模型调用外部工具。在配置这些能力时,遵循最小权限原则:只给完成当前任务所必需的权限,不要默认开启全部工具访问能力。比如日报 Skill 只需要读取 Git 提交记录,就不要给它修改代码库的权限。
11.3 版本兼容性要提前规划
DeepSeek Harness 还在快速迭代,插件和 Skill 的格式存在变动的可能。在生产环境使用前,建议先锁定版本,并建立验证集。每次升级后,用同一组测试任务跑一遍,确认所有 Skill 仍然符合预期,再应用到正式工作流。
11.4 日志与回溯很重要
Agent 的输出来自于多条指令、多个工具调用的组合,一旦结果异常,定位原因为什么是很难的。因此,开启对话归档功能,并保留关键任务的历史记录,是生产环境的基本要求。DeepSeek Harness 的会话归档功能在这个场景下很有价值。
11.5 从任务驱动的角度引入新 Skill
不要因为某个 Skill 在社区很火就盲目安装。更稳妥的路径是:记录你反复做的三件事,针对这三件事写三个自己的 Skill,然后把它们用起来、迭代好。这比收藏 20 个“热门 Skill”有效得多。
12. 总结与后续学习方向
现在回过头看,DeepSeek Harness 和 Agent Skill 真正解决的核心问题,不是模型聪明不聪明,而是模型能不能在真实工作流里稳定交付。Skill 把“专业岗位的操作规则”从一个飘忽不定的提示词,变成了可安装、可版本化、可分享的工程产物。
下一步,建议你先做三件事:第一,在本地装好 DeepSeek Harness,跑通一个基础对话;第二,从日报或者周报这种高频、低风险的任务开始,创建第一个自己的 Skill;第三,把 Skill 文件纳入 Git 管理,开始像对待代码一样对待它。
当你熟练掌握了 Skill 的创建和迭代,再回头看 MCP、Agent、视觉识别这些能力,会更容易把它们串成一个完整的生产流程。工具会持续迭代,但这个“先拆分流程、再固化技能”的思路,在未来的 Agent 应用开发里会越来越重要。