← 返回日报
🌐 机器翻译 · DeepSeek · HF Blog

Harness, Scaffold, and the AI Agent Terms Worth Getting Right


以下是您要求的英文文章的中文翻译,已按照保留原文结构、技术术语不翻译、代码块保持原样等要求进行处理。


驾驭(Harness)、脚手架(Scaffold)以及值得厘清的 AI Agent 术语


回到文章

驾驭(Harness)、脚手架(Scaffold)以及值得厘清的 AI Agent 术语

发布于 2026 年 5 月 25 日 在 GitHub 上更新 点赞 3

Sergio Paniego sergiopaniego 关注

Aritra Roy Gosthipaty ariG23498 关注


目录

当一个领域快速发展时,其词汇往往比人们对它们的共同理解进化得更快。术语开始变得模糊,在不同语境中被重复使用,或者成为从未被充分解释的想法的简写。我们目前正在 AI Agent 领域看到这种情况:概念被混为一谈,有些被重新命名,另一些则被广泛使用几个月后悄然消失。这对新手来说可能令人不知所措,即使是对试图跟上最新发展的从业者也是如此。

在 ICLR 2026 之后,我们中的一位(@ariG23498)提出了一个问题,很好地捕捉了这种困惑:“在 Agent 的语境中,你们所说的‘harness’和‘scaffold’是什么意思?我在 ICLR 听到了很多解释,但我不明白为什么它们没有收敛到一个统一的解释。”

这份术语表是我们试图为那些反复出现但缺乏清晰、一致解释的术语奠定基础。它并非旨在成为该领域每个术语的全面词典。相反,我们专注于那些经常被混淆、以不同方式重复使用,或者被认为显而易见但实际上并非如此的概念。无论你是在构建 Agent、部署 Agent,还是仅仅使用像 Claude Code、Codex 或 Hermes Agent 这样的工具,这些术语中的大多数都会出现。最后一节涵盖了特定于模型训练的概念,如果你从事这方面的工作,这会更相关。

这些术语中的许多还没有普遍接受的定义,不同的框架以不同的方式使用同一个词。这里的目标不是强制执行一种正确的词汇,而是提供一个实用的心智模型,使讨论更容易理解。让我们开始吧。

目录

模型就是 LLM:它接收文本输入并产生文本输出(例如,Claude、Qwen、GPT、Kimi、DeepSeek……)。就其本身而言,它在调用之间没有记忆,也没有循环。模型可以表达调用工具的意图,但它需要一个 harness 来实际执行它。它回答一个提示然后停止。将其包裹在 scaffoldingharness 中,它就变成了一个 Agent。

脚手架(Scaffolding)

模型周围的行为定义层:系统提示、工具描述、模型的响应如何被解析、它在步骤之间记住什么(上下文管理)。它塑造了模型如何看待世界并在其中行动,无论是在训练期间还是在推理期间。

像 Claude Code、Codex 和 Antigravity CLI 这样的产品将整个东西称为 harness。Claude Code 自己的文档直接说明:“Claude Code 充当 Claude 周围的 agentic harness。”这就是广义的用法:harness 意味着除了模型之外的一切。

scaffold/harness 的区别在你需要分别推理它们时最为重要,例如在训练流程中。你还会听到“scaffold”被更广泛地用于涵盖 harness 所依赖的任何基础设施:钩子、运行时配置,甚至目录结构。像 Claude Code 和 Codex 这样的产品与其提供商的模型紧密耦合。其他像 Antigravity CLI 和 Hermes Agent 则允许你插入任何模型。

驾驭(Harness)

Agent 内部的执行层:它调用模型,处理模型的工具调用,并决定何时停止。Harness 是让 Agent 运行起来的东西。上面定义的 scaffolding 是模型工作的基础:它的指令、它的工具、它的格式。

Harness 工程 是设计好这一层的学科:决定 Agent 何时应该停止、错误如何处理、以及哪些护栏使其保持在正轨上。它同时适用于训练和推理。Addy Osmani 的文章和 OpenAI 关于使用 Codex 构建的说明都从推理方面涵盖了这一点。

在评估时,相同的模式表现为 eval harness:它不是收集训练数据,而是在模型检查点运行一组固定的场景,并记录指标而不是更新权重。

Agent

这个术语来自强化学习,其中 Agent 只是一个接收观察并返回动作的函数。环境接收该动作并返回一个新的观察,循环重复。这个循环仍然是 LLM Agent 工作的核心。

在 LLM 世界中,这个术语已经扩展。Agent 是模型加上它周围所有让它能够行动(而不仅仅是响应)的东西。它将原始的文本生成转变为可以在循环中行动的东西:接收信息,决定做什么,并根据结果采取行动。

以一个编码 Agent 作为具体例子。系统提示、工具描述以及模型遵循的输出格式构成了 scaffolding。调用模型、处理其工具调用并决定何时停止的循环就是 harness。在训练时,harness 还并行运行许多这样的循环,并将结果反馈给模型进行更新。

在社区中,通常表述为 Agent = Model + Harness(参考 @Vtrivedy10 和 Will Brown 的推文)。如果你不是模型,你就是 harness

Harnessscaffold 之间细微的差别造成了大部分困惑,上面两节已经对此进行了说明。当人们谈论像 Claude Code、Codex 或 Cursor 这样的产品时,他们指的是构建在特定模型之上的特定 harness,它们被一起设计和优化。两个使用相同底层模型的产品可能感觉完全不同,因为它们的 harness 做出了不同的选择。而在同一个 harness 中更换一个更好的模型也会改变体验。模型、harness 和产品是三个不同的东西。

上下文工程(Context Engineering)

设计进入上下文的内容……


(注:原文在“Context Engineering”处截断,翻译至此结束。后续内容如需继续翻译,请提供完整原文。)

📖 阅读原文 →