本站
从 DeepSeek Harness 说起:Agent 的 Runtime 到底运行什么?
看到 DeepSeek Harness 的介绍时,一个词很容易让人停下来:Runtime,运行时。
Java 有运行时,Node.js 也是运行时。现在 AI Agent 又需要一套运行时,它到底在运行什么?模型不是已经可以回答问题了吗?
从一个具体任务看,这个区别就清楚了。把报错贴给模型,它可以给出修改建议;让它直接修好一个项目,还需要有人把项目文件交给它、执行修改、运行测试,再把结果送回来。Agent 的运行时,主要承接的就是这段从“提出动作”到“实际执行”的过程。
同一个词,用在了不同层次
Runtime 首先可以指“运行期”,也就是程序执行的阶段。“运行时错误”说的是错误发生的时机,并不是某个软件的名字。
它也可以指支持程序执行的一套系统。Java 程序通常先编译成字节码,再由 JVM(Java 虚拟机)执行;JVM 负责字节码执行、运行时内存等机制,Java 标准类库则是运行环境中的另一部分。把这几层统称为“Java 的运行环境”可以帮助入门,但类库并不等于 JVM 本身。Java 虚拟机规范
Node.js 提供的是 JavaScript 在浏览器之外运行的环境。它使用 V8 执行 JavaScript,并提供文件、网络等能力。同一门语言放在浏览器和 Node.js 中,可调用的环境接口会不同:网页里的 document 并不是 JavaScript 语言自身保证到处都有的东西。Node.js 官方介绍
所以,遇到 Runtime 时,最有用的追问是:它支撑什么对象运行,又提供哪些能力? 仅仅知道它叫运行时,还不能判断它和另一个运行时是否属于同一类工具。
Agent 需要持续接住工具的结果
假设我们给一个编程 Agent 的任务是:“用户提交空标题时,接口报错,请修复它。”
模型需要先看到接口代码,才能决定在哪里改;改完以后,需要运行相关测试;如果测试失败,又要根据失败信息继续判断。这个过程可以简化成:
任务与当前上下文 → 模型选择下一步
↓
请求读取、修改或测试
↓
工具实际执行并返回结果
↓
更新上下文 → 再次调用模型
这里,模型生成一个“读取文件”的请求,与文件真的被读取,是两个步骤。工具需要在某个环境中运行,执行结果也需要以模型能使用的形式交回来。
一次任务还会遇到一些普通聊天不必处理的问题:命令尚未结束时怎么继续等待?用户中途修改要求,哪些工作应该停下?工具失败后,是换一种方法还是向用户说明?任务结束的依据是什么?
不同系统对这些事情的分工不完全一样。通常所说的 Agent Harness,是包围在模型外面的执行与协调软件;Agent Runtime 则更强调任务实际运行时的环境与过程。两者在产品介绍中经常重叠,不宜把它们当成全行业已经严格统一的分类。
还要区分另一种“运行”:模型推理服务负责根据输入计算输出,Harness 负责把一次次模型调用与外部动作组织起来。模型可以运行在远端,执行文件操作的工具可以运行在本机,两者并不要求处于同一个进程。
DeepSeek Harness 做的是哪一层
本文讨论的是 deepseek-ai/deepseek-harness。该仓库明确由 DeepSeek AI 开发,DeepSeek 官网也链接到它。截至 2026 年 9 月 27 日查阅时,项目仍标注为开发者预览版,并提示接口可能发生不兼容变更。
它不是一个新模型,也不是用来替代 Node.js 的语言运行时。它属于围绕模型组织 Agent 能力的软件:模型接口、工具、会话和执行循环,都在这一层组合。项目自身仍然需要底层的软件环境来运行。
官网提出的核心设计是“Everything is a plugin”,即“一切都是插件”。这里有具体含义:模型、工具、会话、沙箱、存储、循环、调度和界面等能力都作为插件提供,由 Cordis 管理插件的装卸与依赖关系。官方架构介绍
对使用者来说,这种设计值得关注的地方是可替换性。例如,一个团队想换模型提供方,另一个团队想换工具执行方式,如果相关接口已经被拆开,就有机会保留其余部分,只替换对应组件。
不过,可组合不等于任意组合都会正常工作。插件之间仍然需要满足接口和依赖约定。这是模块化设计带来的工程问题,并不是看见“插件化”三个字就能省掉的工作。
有工具以后,更需要分清“做了什么”
我更关心的不是一个 Agent 配了多少工具,而是它能否清楚交代任务如何结束。
回到空标题报错的例子:修改文件只能证明改动已经写入;测试通过,说明这些测试覆盖的情况满足了断言;线上用户的问题是否解决,还需要与实际部署和触发条件对应起来。这些结果不能相互代替。
同样,Runtime 提供执行能力,也不等于模型天然有权使用所有能力。允许它读取项目文件,与允许它修改线上数据库,是不同的授权范围。具体能执行什么,取决于工具暴露方式、环境配置和用户授权。
因此,我会用几个朴素的问题理解一个 Harness:它把什么信息送给模型?模型可以调用什么工具?结果怎样回到下一轮?遇到失败或中断时,哪些事实能被保留下来?
弄清这些,再看 Runtime 这个词,就不需要把它理解成 AI 领域的新魔法。模型给出下一步的判断,周围的软件让这一步成为可执行、可观察的动作。一个 Agent 能走多远,往往也取决于这部分工作做得怎样。