摘要:

最近“DeepSeek Harness”成为Agent圈的高频词。

很多讨论停留在“是不是国产Claude Code”“能不能自动写代码”。

但从工程角度看,Harness真正解决的不是一个单点功能,而是一整套Agent执行层。

它负责把模型的理解与推理,变成可以规划、执行、验证、恢复、审计的真实任务。

本文从Coding Agent、插件系统、工具调用、上下文管理、多模型路由、Checkpoint、Verifier和安全边界几个方向,拆开“Model + Harness = Agent”背后的工程逻辑。

FACT-001|先说明“官方能确认到哪一步”

DeepSeek官方目前明确公开的是DeepSeek V4 Pro / Flash的Agentic Coding能力,以及awesome-deepseek-agent生态。

官方仓库已经提供Claude Code、Cline、Codex、OpenCode、Pi、Qwen Code、WorkBuddy / CodeBuddy等Agent和Coding Assistant的接入指南。

官方贡献规范还明确要求当前示例使用deepseek-v4-pro与deepseek-v4-flash,并注明V4支持最高100万Token上下文。

目前没有在DeepSeek官方GitHub组织中找到一个独立名为“DeepSeek Harness”的产品仓库,因此本文把它作为围绕DeepSeek V4形成的Harness / Agent Runtime热点来讨论,不把第三方项目信息写成官方事实。

1. DeepSeek Harness到底能干嘛?

如果只用一句话解释:

Harness让大模型从“会回答”,升级成“会执行”。

普通聊天模型最典型的交互,是输入一个问题,然后输出一段答案。

Harness驱动的Agent,则会把一个目标变成一条可以持续运行的任务链。

用户目标
  ↓
创建计划
  ↓
读取上下文
  ↓
选择工具
  ↓
执行动作
  ↓
验证结果
  ↓
失败则修正
  ↓
继续执行
  ↓
完成任务

这意味着它能做的事情,远不止“帮你写一段代码”。

2. 第一类能力:直接围绕代码仓库完成连续开发任务

比如你给Agent一个任务:

给这个 FastAPI 项目增加 JWT 鉴权,
补充登录接口,
并为认证流程添加单元测试。

普通模型通常会给出一个代码示例。

Harness则可以继续向下执行。

1. 扫描项目结构
2. 搜索认证相关文件
3. 读取依赖配置
4. 生成修改计划
5. 创建 Patch
6. 执行 pytest
7. 读取失败日志
8. 重新定位问题
9. 修复代码
10. 再次测试
11. 输出最终 Diff

这里模型负责推理。

Harness负责把推理变成文件修改、工具调用、测试和可验证结果。

3. 第二类能力:解决Agent最难的“长任务失忆”

Agent执行3轮和执行30轮,是两个完全不同的问题。

任务越长,越容易出现目标漂移、重复执行和提前宣布完成。

GOAL-101|目标漂移

执行时间变长以后,Agent开始解决支线问题,忘记最初任务。

DONE-202|提前结束

模型看到局部结果不错,就直接宣布完成,但验收条件实际上还没有满足。

LOOP-303|重复循环

同一个错误反复修复、反复执行,Token和时间不断消耗。

所以Harness需要一个独立于Prompt的Task State。

from dataclasses import dataclass, field

@dataclass
class TaskState:
    task_id: str
    goal: str
    plan: list[str] = field(default_factory=list)
    completed: list[str] = field(default_factory=list)
    observations: list[str] = field(default_factory=list)
    current_step: int = 0
    iteration: int = 0
    max_iterations: int = 20

最初目标、当前计划、已完成步骤、工具结果和错误信息,都应该结构化保存。

不能只靠模型“自己记住”。

4. 第三类能力:给Agent不断安装新能力

Harness真正有想象力的地方,是插件化。

模型可以替换。

工具可以替换。

工作流也可以替换。

plugins:
  models:
    - deepseek-v4-pro
    - deepseek-v4-flash

  tools:
    - file_reader
    - browser
    - terminal
    - database
    - document_parser

  workflows:
    - coding
    - office
    - vision
    - research

同一个运行时可以因此组装出不同Agent。

STEP 1|编程Agent

加载文件读取、代码编辑、终端、Git、测试和LSP能力。

STEP 2|办公Agent

加载知识库、文档解析、表格、数据分析和审批能力。

STEP 3|视觉Agent

接入视觉模型后,对图片、网页截图和设计稿进行识别与审核。

STEP 4|企业Agent

进一步连接工单、数据库、项目管理和内部系统。

5. 第四类能力:让一个任务内部同时使用Pro和Flash

DeepSeek官方当前示例使用的模型名是deepseek-v4-pro和deepseek-v4-flash。

这给Harness留下了一个非常重要的空间:

不是每一步都必须调用同一个模型。

简单文件摘要
→ deepseek-v4-flash

意图分类
→ deepseek-v4-flash

主任务规划
→ deepseek-v4-pro

复杂 Debug
→ deepseek-v4-pro

验证子任务
→ Pro / Flash
def route_model(task_type: str, complexity: int):
    if task_type in {
        "summary",
        "classification",
        "simple_search",
    }:
        return "deepseek-v4-flash"

    if complexity >= 4:
        return "deepseek-v4-pro"

    return "deepseek-v4-flash"

这也是Harness和普通聊天客户端非常明显的区别。

6. 第五类能力:把工具真正变成“可治理资源”

Agent开始干活以后,真正危险的不是模型生成一句错误答案。

而是模型调用了错误工具。

所以成熟Harness不会只给模型一个无限制Shell。

from dataclasses import dataclass

@dataclass
class ToolPolicy:
    read_only: bool
    network: bool
    writable_paths: tuple[str, ...]
    requires_approval: bool
    timeout_seconds: int

读代码可以自动执行。

写文件需要编辑权限。

访问生产环境则应该进入审批。

TOOL-401|FULL_ACCESS

所有Agent工具拥有相同的文件、网络和执行权限,插件越多,风险越高。

7. 第六类能力:超长上下文不是“全部塞进去”

DeepSeek官方V4 Agent集成资料已经明确要求配置最高100万Token上下文。

但支持1M Context,不代表应该把整个仓库全部塞进去。

真正的Harness需要做Context Engineering。

@dataclass
class ContextItem:
    source: str
    relevance: float
    freshness: float
    token_count: int
    content: str

def score(item):
    return (
        0.7 * item.relevance
        + 0.3 * item.freshness
    )

关键文件进入Context。

不相关文件留在外面。

已经解决的问题压缩成Checkpoint。

CTX-501|WHOLE_REPO_DUMP

因为支持长上下文就把整个项目、全部日志和历史一次性塞给模型,会同时增加噪声、延迟和成本。

8. 第七类能力:Harness会自己判断“这件事到底做完没有”

这其实是Agent真正开始自动化的关键。

代码任务要跑测试。

数据任务要验证Schema。

页面任务要检查结果。

文档任务要核对字段。

async def agent_loop(state):
    while state.iteration < state.max_iterations:
        plan = await planner(state)
        result = await executor(plan)
        passed = await verifier(state, result)

        if passed:
            return {
                "status": "done",
                "result": result,
            }

        state.observations.append(result.error)
        state.iteration += 1

没有Verifier的Agent,本质上只是“会自动连续聊天”。

9. 第八类能力:中途失败以后可以继续跑

真实任务一定会遇到失败。

模型超时。

工具报错。

网络中断。

用户关闭页面。

Harness需要Checkpoint。

@dataclass
class Checkpoint:
    task_id: str
    goal: str
    completed_steps: list[str]
    important_context: list[str]
    unresolved_errors: list[str]
    next_action: str

恢复任务时,不需要重放全部历史。

只恢复继续执行所需要的最小状态。

10. DeepSeek官方现在已经把V4接进哪些Agent?

从DeepSeek官方awesome-deepseek-agent可以看到,V4已经进入大量现成Agent Runtime。

工具 主要用途
Claude Code 终端AI编程助手
Cline VS Code多Provider编程助手
Codex Coding Agent
OpenCode 终端 / Web编程Agent
Pi 可扩展终端Coding Harness
Qwen Code Coding Agent CLI

这说明一个趋势。

模型厂商的竞争,已经不只发生在自己的聊天产品里。

也会发生在各种Harness与Agent Runtime中。

11. 为什么它和500+模型平台关系很大

如果平台只有一个模型,Harness主要解决执行。

当平台里有500+模型以后,Harness还要解决调度。

文本任务用哪个模型。

视觉任务用哪个模型。

视频任务用哪个模型。

简单任务能不能先用低成本模型。

失败以后是否自动升级模型。

当一个平台同时还有智能体、无限画布、AI漫剧和AI PPT以后,Harness会逐渐变成统一任务编排层。

Multi-Model Harness
├── Task Planner
├── Model Registry
├── Model Router
├── Plugin Runtime
├── Tool Registry
├── Context Manager
├── Asset Registry
├── Workflow DAG
├── Checkpoint
├── Quality Gate
└── Audit Log

用户不需要理解500个模型。

只需要告诉系统自己想完成什么。

剩下的模型选择、工具调用和工作流由Harness负责。

12. 一个非常具体的例子:AI漫剧怎么用Harness调度

目标:
生成一段古风AI漫剧

① 文本模型
拆剧情
生成人物设定

② 图像模型
生成角色图
生成场景图

③ Quality Gate
检查角色一致性

④ 视频模型
生成分镜视频

⑤ 音频模型
生成对白 / 环境音

⑥ Final Verifier
核对镜头
输出成片

这里每一步都可以使用不同模型。

上一步生成的结果又会成为下一步输入。

这就是Harness从Coding Agent向通用Agent扩展后的价值。

13. 真正落地时,建议先做这4层

STEP 1|Task State

先解决目标、计划、完成步骤和Checkpoint,保证长任务不会失忆。

STEP 2|Tool Registry

把读取、写入、网络、终端等能力做成受控工具,不要一开始就开放任意Shell。

STEP 3|Verifier

为不同任务定义独立验收条件,确保真正完成以后才能结束。

STEP 4|Model Router

等执行层稳定以后,再让Pro、Flash或第三方模型按照任务类型自动分工。

14. 六个Harness系统最容易踩的坑

STATE-101|目标只存在Prompt里

长任务执行轮次增加以后,模型容易忘记最初任务和已经完成的步骤。

TOOL-202|工具权限全部一样

所有插件拥有相同文件、网络和终端权限,插件越多,安全风险越高。

CTX-303|把整个项目全塞进Context

长上下文不是无限数据库,噪声过多会同时增加成本、延迟和错误率。

DONE-404|模型自己判断完成

没有独立Verifier,最容易出现“看起来完成、实际上不能用”。

LOOP-505|没有预算

Agent失败以后无限重试,没有迭代次数、工具调用、时间和Token上限。

ROUTE-606|所有步骤都用同一个模型

简单子任务和复杂规划使用相同模型,无法发挥Pro / Flash分层价值。

15. 最后:DeepSeek Harness这个热点,真正值得看的不是一个新App

如果只把Harness理解成一个编程助手,会错过它真正的价值。

Harness代表的是Agent产品正在发生的一次变化。

过去我们问:模型到底有多聪明?

以后更重要的问题会变成:它能不能连续工作、使用工具、失败后继续、自动验证结果、和其他模型协作?

模型提供智能。

Harness提供执行能力。

真正的Agent竞争,已经开始从Model能力,进入Harness Engineering。

资料说明:

DeepSeek官方awesome-deepseek-agent仓库明确定位为DeepSeek模型接入主流AI Agent与Coding Assistant的指南合集。

官方仓库当前包含Claude Code、Cline、Codex、OpenCode、Pi、Qwen Code、WorkBuddy / CodeBuddy等多种工具。

DeepSeek官方贡献规范明确要求当前示例使用deepseek-v4-pro与deepseek-v4-flash,并注明V4支持最高100万Token上下文。

本文中的Harness状态机、工具权限、路由、Checkpoint与Verifier代码均为工程设计示例,不代表DeepSeek内部实现。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐