什么是 DeepSeek Harness?
学习目标
完成本章后,你应该能够:
- 用自己的话区分 LLM、Agent 与 Agent Harness;
- 说明 DeepSeek Harness(DSH)的项目定位与核心能力;
- 识别标准模式、PTC 模式、极简模式和创造模式的用途;
- 解释“一切皆插件”怎样影响 Agent 的模型、工具、Skill(技能)与运行方式;
- 根据任务是否需要多步骤执行、工具调用和结果验证,判断是否需要 Harness。
开始前的准备
接上一篇:什么是 Harness?https://blog.csdn.net/liwei3gjob/article/details/164099512?sharetype=blogdetail&sharerId=164099512&sharerefer=PC&sharesource=liwei3gjob&spm=1011.2480.3001.8118
本篇是概念入门,不要求你提前安装 DSH。只需具备基本的文件与浏览器操作经验,并准备一个自己熟悉的任务场景,例如“整理资料”“修改代码”或“生成并检查文件”,后文会用它来判断什么时候需要 Harness。
假设你向模型提出“整理这个项目的报错原因,并修改代码、运行测试、输出结论”。如果只生成一段排查建议,语言理解与生成能力就能发挥作用。要真正读取项目文件、修改代码、执行命令、观察测试结果并继续修正,还需要工作区、工具、权限、上下文和执行流程。这个差距,正是理解 Harness 的入口。
为什么只有大语言模型还不够
大语言模型(Large Language Model,LLM)擅长理解输入、推理并生成文本或代码。应用向模型提供上下文和工具描述后,模型可以生成工具调用意图。不过,模型本身不能访问本地项目、实际执行工具、保存长任务状态或验证真实交付。Harness 负责提供并执行工具,把执行结果回传给模型,再根据任务状态与验证结果控制后续循环。
问题一旦从“回答”变成“完成”,通常就会出现一串连续动作:理解目标、制定计划、读取材料、调用工具、检查结果、根据反馈调整,再交付成果。把这些动作稳定地组织起来,需要模型之外的运行环境。
不同 Agent Harness 或开发平台都在解决“怎样让模型完成真实任务”这个问题,但各自关注的场景不同。下图用于概括几类产品的关注方向,不能替代基于统一标准的横向评测。
图注:图中的“+”和“=”仅用于原图的版式分隔,不表示这些产品等价,也不表示它们存在依赖或组合关系。图中的定位只是概括性示意,具体定位以各产品公开说明为准,能力可能随版本变化。
[!TIP]
记住核心判断:模型不等于 Agent;Harness 是承载和运行 Agent 的执行环境。模型提供推理与生成能力,Agent 面向目标采取行动,Harness 则把上下文、工具、权限和流程组织成可运行的整体。
Harness、LLM 与 Agent 的关系
三者不是互相替代的产品类别,而是不同层次的职责分工。
| 概念 | 核心职责 | 典型输入 | 典型输出 | 与工具和流程的关系 |
|---|---|---|---|---|
| LLM | 理解、推理与生成 | 提示词和上下文 | 文本、代码或结构化内容 | 提供智能能力,本身不等同于完整执行环境 |
| Agent | 围绕目标观察、判断并采取行动 | 任务目标、当前状态和反馈 | 一组行动及其结果 | 会根据任务决定是否继续调用工具或调整方案 |
| Agent Harness | 承载并运行 Agent | 模型、上下文、工具、权限、预设和工作区 | 任务执行过程与交付物;在支持记录时可追踪 | 负责把各组件接起来,并支持执行、调度与验证 |
一次简单问答通常是“输入一次,模型返回一次”;在 Harness 中,同一个目标可以经历规划、工具调用、结果观察、再执行和验证等循环。是否继续循环,取决于目标是否已经满足以及验证结果,而不是固定多调用几次模型。
可以把关系简化为:Harness 提供运行环境,LLM 提供智能能力,Agent 则在该环境中围绕目标使用模型和工具完成任务。替换模型不等于自动得到新的工作流;增加工具也不等于 Agent 一定会正确使用它。预设、上下文和执行规则共同决定最终行为。
DeepSeek Harness 的定位
DeepSeek Harness,简称 DSH,是由 DeepSeek AI 开发的开源 Agent Harness。它围绕模型构建运行时执行框架,负责加载 Skill、调用工具、管理上下文,并调度 Agent 处理实际任务。它不是另一个大语言模型,也不只是一个聊天窗口。项目代码可在 DeepSeek Harness 官方开源仓库 查看。
从项目定位看,DSH 把输入、上下文、模型、工具、流程和结果组织起来,让 Agent 可以围绕目标持续规划、执行、观察与验证。它还采用插件化架构,使模型、工具、Skill、会话能力、沙箱和界面能够按需要组合。
[!NOTE]
仓库页面和界面截图用于帮助识别结构。截图中的数量、版本或状态只是截取时的画面,不是本章的安装条件,也不构成功能时效承诺。
DSH 提供的核心能力
DSH 的价值不在于增加一个输入框,而在于为任务执行补齐以下能力。
| 核心能力 | 解决的问题 | 使用时应关注什么 |
|---|---|---|
| 管理项目 | 以项目为单位组织任务与文件,并支持会话恢复、分支、检索和回放 | 当前工作区是否正确,历史会话是否属于同一项目 |
| 长任务协作 | 通过计划、目标与工作流推进耗时较长的多步骤任务 | 目标和完成标准是否明确,任务能否分阶段检查 |
| 多 Agent 编排 | 调度子 Agent,让多个 Agent 分工处理复杂需求 | 分工边界是否清楚,最终由谁汇总和验证 |
| 上下文管理 | 注入与压缩上下文,并记录提示词、工具调用和结果等过程信息 | 关键约束是否保留,过期信息是否干扰当前判断 |
| 搜索 | 提供文件搜索与联网搜索能力 | 数据来源、联网权限以及搜索结果是否需要复核 |
| Skill | 以插件形式封装可复用的专业工作流 | Skill 是否适合当前任务,所需工具和权限是否齐备 |
表格负责比较六类能力,截图用于识别它们在界面或材料中的名称。以“修复一个失败的代码测试”为例:项目管理先锁定仓库和会话,搜索帮助定位相关代码与测试,上下文管理保留需求和已完成的修改,计划与目标推动“修改—运行测试—检查结果”的多步过程。任务需要分工时,还可以由子 Agent 分别检查代码或测试结果;合适的 Skill 则封装其中可复用的工作流。
Skill 与 Agent 预设承担不同职责:Skill 封装工作流,Agent 预设负责组合当前会话使用的插件。某项能力是否可用,还取决于实际安装、插件配置和权限设置。
四种 Agent 预设模式
预设可以理解为一个会话所运行的插件组合。它会影响 Agent 可使用的工具、提示词与能力范围。选择预设的本质,是为当前任务选择一套合适的运行配置。
第一张截图用于识别预设选择入口,第二张用于识别四种预设卡片;具体差异和选择依据由下表集中比较。
| 预设模式 | 能力特点 | 适合的任务 |
|---|---|---|
| 标准模式 | 提供完整的编码 Agent 能力,包括 Shell、文件与网页检索、Skill、计划、目标、子 Agent 和工作流 | 需要读写文件、搜索、规划或协作的常规复杂任务 |
| PTC 模式 | 具备标准模式的全部能力,并通过 Code Mode SDK 使用工具,以 TypeScript 程序组合多步骤操作 | 希望以程序化方式编排多步工具操作的任务 |
| 极简模式 | 只保留少量必要工具,缩小 Agent 的能力范围 | 任务边界清晰、希望减少可用工具的编码场景 |
| 创造模式 | 具备标准模式能力,并提供运行时检查、插件实验和预设创建指导 | 创建或调整自定义 Agent 预设 |
例如,只修改一个明确文件且所需工具很少时,可以先判断极简模式是否足够。需要搜索、计划或子 Agent 协作时,标准模式更合适。希望用 TypeScript 程序组合多步工具操作时,可选择 PTC 模式。准备创建自定义预设时,再使用创造模式。
预设不是“智能高低”的排行。标准模式能力更全面,但简单任务未必需要全部工具;极简模式能力更少,却可能更容易控制范围。若要自定义,较稳妥的起点是复制接近需求的既有预设,再逐项调整,而不是一次加入所有插件。
为什么说“一切皆插件”
DSH 采用插件开放架构构建 Agent。许多能力不是固化在不可拆分的程序中,而是由插件组合而成,因此可以按任务更换、重组或扩展。
读图提示:截图中的 llm、session、api-gateway 分别提示模型接入、会话处理和 API 网关或程序化访问入口等能力。它们只是已安装插件的实例,不是完整分类,也不是必须全部启用的清单。
| 插件类型 | 主要作用 | 示例 |
|---|---|---|
| 模型插件 | 连接提供推理能力的模型 | DeepSeek、Claude、GPT 等模型 |
| 工具插件 | 让 Agent 对外采取动作 | 文件读写、命令执行、API 调用 |
| Skill 插件 | 封装可复用的工作流 | 面向特定任务的 Skill |
| 会话插件 | 扩展会话中的内容能力 | 配图、图表等会话能力 |
| 沙箱插件 | 提供隔离的执行环境 | 限制任务对宿主环境的影响范围 |
| 界面/运行入口插件 | 提供交互式或无界面的运行入口 | Web、TUI 是交互入口,Headless 是无界面运行入口 |
“一切皆插件”不表示所有插件都应启用,也不表示插件天然拥有无限权限。插件决定“能接入什么能力”,预设决定“本次会话组合哪些能力”,权限与沙箱进一步约束“这些能力可以影响到哪里”。
[!WARNING]
文件写入、命令执行、API 调用和联网搜索都可能影响外部环境。开始任务前先确认工作区和权限范围;遇到不熟悉的插件,先理解用途,再决定是否启用。
DSH 适合完成哪些任务
当任务需要跨越一次回答,DSH 的组织能力才会真正体现出来。DSH 的典型用途可以归纳为三个方向。
- 编码任务自动化:理解需求,读取并修改代码,运行测试,根据结果继续修正,最后交付变更与验证结论。
- 组装专业 Agent:按业务需要组合模型、Skill 与工具。例如,数据分析 Agent 可以读取表格或 CSV,运行 Python 分析、查询数据库、生成图表并输出报告。
- 多 Agent 协作:主 Agent 拆分任务,代码 Agent、测试 Agent 和文档 Agent 分工处理,再汇总为统一交付物。
并非所有问题都需要 Harness。解释一个术语、润色一句话或生成一个短摘要,通常可以直接调用模型;需要访问工作区、调用多个工具、保持多步状态并验证结果时,Harness 更合适。