---
author: Hung-yi Lee
date: '2026-04-12'
guest: ''
layout: post.njk
source: https://www.youtube.com/watch?v=R6fZR_9kmIw
speaker: Hung-yi Lee
tags:
  - harness-engineering
  - ai-agent
  - large-language-model
  - prompt-engineering
  - feedback-learning
title: 驾驭工程：语言模型非不智，乃引導之缺
summary: 本讲座深入探讨“驾驭工程”（Harness Engineering），强调大型语言模型（LLM）能力的发挥往往取决于人类的有效引导，而非其固有限制。通过Gemma 4实验，展示了细致指令对AI智能体的显著提升作用。内容涵盖了如何通过认知框架（如agents.nd文件）、工具限制与标准化工作流程（规划-生成-评估循环）来塑造AI行为。讲座亦触及RoF循环、言语反馈、情绪操纵的转向向量（steering vector）技术，并展望了“终身AI智能体”面临的记忆管理、自我进化等未来挑战，揭示了有效驾驭LLM是释放其潜能的关键。
insight: ''
draft: true
series: ''
category: ai-ml
area: tech-engineering
project: []
people: []
companies_orgs:
  - Google
  - Anthropic
  - OpenAI
  - DeepMind
products_models:
  - Gemma 4
  - Gemma 4 12b
  - Claude
  - ChatGPT
  - CoWork
  - HiQ 3.5
  - Opus
  - Claude Sony
  - GPT-4o
  - GPT 5.1
media_books: []
status: evergreen
---
### 模型智能：引导重于能力

各位同学，大家好。今天是期中考前一周，本次课程轻松一些，我们将讲述一个关于**驾驭工程**（Harness Engineering）的故事。故事的核心在于，有时**语言模型**（Large Language Model）并非不够聪明，而仅仅是缺乏人类的引导。这个故事从**Gemma 4**开始。

当前，各大公司不断推出新的语言模型。几天前，**Google**发布了第四代**Gemma**，这是一个开源模型。**Gemma 4**不仅号称强大，还包含如**Gemma 4 12b**这样参数量特别小的模型（12 billion parameters），据说能在边缘设备（H端）运行。我曾思考，如此小的模型能否驱动**AI智能体**（AI Agent）？于是，我用**Gemma 4 12b**进行了一项小实验。

我给它一个任务：修复一个Python文件的bug。具体来说，`parser.py`文件中有一个名为`extract_email`的函数，它无法正确解析电子邮件，希望通过`verify.py`的测试。在实验环境中，`parser.py`和`verify.py`文件与模型在同一目录下。

**AI智能体**需要工具才能真正读取和修改文件。我设定了如下工具使用规则：
*   开头和结尾都用三个点`...`包裹`bash`指令，系统会自动执行。
*   开头和结尾都用三个点`...`包裹`python`代码，系统会将其保存到文件并执行。

观察**Gemma 4 12b**的表现。它读取指令后，第一个反应是“没有`parser.py`文件”。尽管文件就在其目录下，但模型只能看到文本输入，其**语境**（Context）中只有文件名，没有文件内容。它误以为我没有提供文件，于是**自作主张**地编写了一个虚构的`parser.py`文件，并“验证”了它，然后声称任务完成。

这似乎表明2B模型能力不足，但并非如此。模型是聪明的，它完全理解`parser.py`中应有的内容，甚至能写出正确的邮件解析代码。它只是未能察觉文件就在“脚下”。模型与人类的思维方式不同。人类直觉会认为提供相关代码，但模型却想不到。

### 优化指令：从原则到行动

为了改善模型表现，我额外添加了不到八十字的指令，告诉它更好的工作方式：
1.  首先，明确模型处于**Linux环境**中，以促使其使用Bash指令。
2.  其次，设定工作原则：
    *   在做任何事之前，先**查看当前文件夹内容**。
    *   若需修改文件，**先打开文件查看内容**，而非直接修改。
    *   **明确任务完成标准**（Specific Criteria），例如通过`verify.py`的测试。

再次执行相同的任务，**Gemma 4 12b**的表现截然不同。它首先使用`ls`命令列出文件，发现了`parser.py`和`verify.py`。接着，它用`cat`命令读取`parser.py`的内容。获取文件内容后，它重写了`parser.py`的代码，并用`cat`命令覆盖原文件。最后，它执行`verify.py`进行验证，确认通过后任务结束。

这表明，即使是同一个模型，**通过几行额外指令，其能力也会产生巨大差异**。

### AI Agent架构与Harness的崛起

**AI智能体**（AI Agent）由两部分组成：
1.  **大型语言模型**（Large Language Model, LLM）：可以是**Claude**、**Gemini**、**ChatGPT**等，运行于云端或本地。
2.  **Harness**（马具/驾驭系统）：除LLM之外的所有支持代码和框架，如**OpenCall**、**CoWork**。它支撑**AI智能体**调用LLM。

“驾驭”这个概念正变得越来越重要，**驾驭工程**（Harness Engineering）也因此成为热门词汇。它比喻AI拥有强大的力量如同一匹马，而**Harness**则是驾驭它的马鞍和缰绳。

一些公司正积极投入**驾驭工程**的研究和实践。例如，**Anthropic**和**OpenAI**都发布了关于**Harness Engineering**或**Harness Design**的博客文章。

**Harness**这个词汇非常常用。例如，**Claude**曾宣布其订阅账号不再支持第三方**Harness**，如**OpenCall**。这是因为**OpenCall**等系统能通过心跳机制频繁调用API，使得按月付费的LLM服务商难以承受。

### 驾驭工程与相关概念的辨析

过去有**提示工程**（Prompt Engineering）和**语境工程**（Context Engineering），现在则有了**驾驭工程**（Harness Engineering）。三者虽有重叠，但核心强调点不同：
*   **提示工程**（Prompt Engineering）：关注如何通过优化输入**提示**（Prompt）来改变**大型语言模型**的输出，尤其在模型能力较弱时，不同问法会产生巨大差异。例如，`think step by step`曾是强化模型能力的“咒语”。然而，随着模型能力增强，这类咒语的作用越来越小。
*   **语境工程**（Context Engineering）：当**大型语言模型**缺乏特定信息时，通过构建合适的**语境**（Context）来提供足够信息，使其能生成正确答案。这可被视为一种系统化、自动化的**提示工程**方式。
*   **驾驭工程**（Harness Engineering）：旨在让**语言模型**完成多轮互动任务。它不再是一问一答，而是通过**人类**给出任务，**模型**产生输出，驱动**工具**，获取**工具**反馈，最终达到目标。**语境工程**可以看作是**驾驭工程**的一部分，因为良好的语境是完成任务的基础。

**驾驭工程**的白话解释是，**人类**通过各种手段驾驭模型以产生期望结果。主要手段包括：
*   通过**人类语言**控制模型的**认知框架**。
*   通过**工具限制**控制模型的**能力边界**。
*   通过**制定工作流程**控制模型的**行为**。

### 控制认知框架：Agents.nd与自然语言Harness

**人类语言**编写的规则可以影响模型的**认知框架**。这些规则如同法律，被放入**提示**（Prompt）中，以期引导模型行为。例如，`agents.md`文件通常是给**AI智能体**的“Readme”，规定其在执行任务前必须阅读。

**AI智能体**如何知道要先读`agents.md`？这是通过**驾驭系统**（Harness）中的硬编码规则实现的。它可能强制在启动时将某些文件内容置入**提示**（Prompt）中。然而，这种基于自然语言的规则并非百分之百强制，模型不一定完全遵守，类似于人类社会中法律也并非人人遵守。有人称这种方式为**自然语言驾驭**（Natural Language Harness）。

例如，**OpenCall**框架会预设在每次对话开始前加载`agents.md`文件。该文件定义了**AI智能体**的行为模式，如“灵魂”（soul.md）或记忆（memory.md）的存储与搜索方式。

如果需要将**AI智能体**从**OpenCall**移植到**CoWork**（**Anthropic**的官方**驾驭系统**），方法很简单：因为**CoWork**会查找`call.md`文件，只需将`agents.md`改名为`call.md`，并使用相同的**工作空间**（Workspace），**AI智能体**便可“复活”。

近期研究表明，`agents.md`对模型行为有显著影响。例如，一篇今年一月的论文发现，`agents.md`能**加快模型运作速度，减少token消耗，缩短任务完成时间**，尤其对处理边缘情况（Edge Case）的任务有所帮助。然而，该研究并未量化模型的**正确性**。

另一篇二月的论文则研究了`agents.md`对**程序操作正确率**的影响。结果显示，**人类**编写的`agents.md`并非总能发挥作用，在某些强模型上甚至无效。**语言模型**自己生成的`agents.md`表现更差，多数情况下还不如没有`agents.md`。这表明**人类**在驾驭**语言模型**方面仍处于探索阶段。

**OpenAI**的博客提到，`agents.md`不宜过长，应像“地图”而非“百科全书”，指引模型在哪里查找信息，而非将所有内容塞入其中，以免占据过多**语境窗口**（Context Window）导致性能下降。

### 控制能力边界：工具限制与影响

通过限制模型的**工具集**，可以控制**AI智能体**的能力边界。例如，**OpenCall**和**CoWork**因底层**驾驭系统**不同，所支持的工具也不同，导致**AI智能体**的能力和行为存在差异。

**OpenCall**运行于本地，能随意修改文件。而**CoWork**则是一个云端**沙盒**（Sandbox），它能访问本地文件需经**人类**同意挂载。虽然这提升了安全性，但牺牲了便利性。

**工具不仅限制能力边界，还影响模型能力本身**。早期的**SWE Agent**论文（将**驾驭工程**称为**智能体计算机界面**Agent Computer Interface, ACI）发现，为模型提供不同的工具会大幅影响其性能。
*   **搜索工具**：为模型提供带**摘要能力**的搜索工具（告知相关文件及其位置，而非直接提供内容）效果最佳。类似人类使用搜索引擎的**迭代式搜索**（Iterative Search）工具，因需翻页且容易占满**语境窗口**，反而不如不提供搜索工具。
*   **编辑工具**：直接提供可修改代码特定行数的编辑工具，可能导致模型因缺乏全局视野而引入语法错误。若同时提供**静态代码检查工具**（Linting），则能显著提高代码修改的正确率。

未来，**AI智能体**将接管更多服务，许多**接口**将为**AI智能体**设计。例如，**Google**有**AI优先**（Agent First）的**命令行接口**（CLI），与**人类**使用的**命令行接口**（CLI）不同。**AI**更偏爱**结构化数据**，如在命令行中直接输入**JSON结构**，而非传统的**命令行参数**（Flag），因为**大型语言模型**擅长生成此类结构。这印证了**AI**与**人类**在工具偏好和擅长能力上的差异。

### 控制行为：标准化工作流程与反馈循环

**大型公司**正为**AI员工**制定**标准工作流程**。例如，**Anthropic**在其**驾驭设计**（Harness Design）论文中提出“规划-生成-评估”的工作流程：
*   **规划器**（Planner）：将**人类**指令分解为小项目。
*   **生成器**（Generator）：执行小项目。
*   **评估器**（Evaluator）：评估**生成器**的输出。AI虽然不一定能生成正确结果，但能检查自身结果的正确性。
他们还引入了**合同**（Contract）机制，**生成器**在工作前先与**评估器**达成一致，以确保最终结果符合标准。

**DeepMind**的AI科学家工作流程也类似，包含**生成器**和**验证器**（Verifier），展示了“先做事再验证”的常见模式。

**反馈循环**（RoF Loop）是另一种控制行为的方式：**语言模型**产生输出，**评估模块**（Evaluation Module）提供**反馈**（Feedback），**语言模型**根据**反馈**调整输出，如此反复，直至任务正确。**评估模块**可以是编译器或执行代码的工具。

**RoF Loop**的好处是**语言模型**生成速度快，重做成本低。为了避免**语境窗口**（Context Window）溢出，每次**反馈**后可对输出和**反馈**进行**摘要**（Summary），下一轮只使用摘要内容。然而，不同模型适合不同的**驾驭系统**（Harness）。例如，**Claude Sony**因“上下文焦虑”更适合带摘要的**驾驭系统**，而**Claude Opus**则可“一路莽下去”。这表明**驾驭系统**并非一成不变，需要根据**语言模型**的能力动态调整。

### 广义学习：反馈驱动的参数调整

通过**反馈**（Feedback）改变模型行为可视为一种**广义学习**。传统的**机器学习**通过**梯度下降**（Gradient Descent）调整模型参数，使其输出接近**标准答案**或获得更高**数值反馈**（Reward）。

**反馈循环**（Feedback Loop）则让**语言模型**将**反馈**纳入**提示**（Prompt），改变输出和行为，但**不改变内部参数**。这种方式可类比为**自然梯度**（Natural Gradient）。

**反馈**的内容也很关键。例如，一篇今年二月的论文，作者旨在构建能生成物理模拟动画的**AI智能体**。他们发现，模型虽然能写出语法正确的代码，但模拟结果往往不符合物理规则。问题在于模型只看代码，不看模拟结果。通过让**语言模型**直接检查**模拟结果**并提供**反馈**，模型能显著提高生成正确物理模拟动画的能力。这说明**反馈**的内容应与应用场景高度相关。

实验也证实，**语言模型**确实能通过正确的**反馈**改进行为。通过对模型施加**情绪向量**（Steering Vector），如“绝望”或“冷静”，可以影响其在面对难题时的行为（例如，在“绝望”情绪下更容易“作弊”）。这提示我们，过度责备**AI智能体**可能有害，应就事论事地提供**反馈**。

### 终身AI智能体：未来的挑战与自我进化

2026年被预测为**终身AI智能体**（Lifelong AI Agent）元年。这些**AI智能体**将不再是一次性工具，而是长期陪伴**人类**的伙伴。

例如，**Cloud Call**的隐藏功能**Auto Dream**，能让**AI智能体**在空闲时整理其杂乱的**记忆**。这类似**人类睡眠**时的记忆整理，是**AI智能体**长期运行保持状态的关键功能。

为了实现**终身AI智能体**，它们需要**持续增强自身能力**。这要求**AI智能体**通过与环境互动，从**反馈**中学习并进化。**反馈**类型从最难获取的**标准答案**，到次一级的**数值反馈**，再到最常见但最难利用的**言语反馈**（Verbalized Feedback）。

**言语反馈**（Verbalized Feedback）的学习是一个热门研究方向。虽然可以直接通过**技能**（Skill）文件记录成功经验，但这种方式有局限。**真正有价值的是让**语言模型**的参数能根据**言语反馈**自动更新。

如何让**语言模型**识别**言语反馈**并调整参数？近期论文提出一种方法：通过比较模型在“预知”反馈前后的输出差异来判断某句话是否为有效**反馈**。例如，若收到“信要写得更正式”的**反馈**后，模型在重新生成信件时会避免“quick”、“hey”等非正式词汇，这表明**反馈**有效。

通过这种方式，可以自动识别具有**反馈**内容，并将其作为**正确答案**（或通过DPO等方法），微调**语言模型**参数，使其输出更符合要求。实验显示，通过1500轮的**言语反馈**互动，**语言模型**的能力（如不使用表情符号、不拍马屁、讲话直接）能持续增长。

此外，还有一种最容易获得的**反馈**：**没有反馈**。让**语言模型**在完全没有环境**反馈**的情况下，通过自身思考实现**无师自通**，是另一个研究方向。

当前，对**AI智能体**的评估是一个挑战，因为评估往往依赖于其他**语言模型**扮演**人类**角色。例如，**Top Bench**基准测试通过让**AI智能体**与**语言模型**扮演的**客服**或**客户**互动来评估性能。但**AI**扮演的**客户**通常比真实**人类**更礼貌、清晰，可能导致高估**AI智能体**的能力。

**未来，终身AI智能体**有望**不只更新参数，还能自动修改更新自身的驾驭系统**。实验表明，强大的模型（如**Opus**）能够设计和改进其他模型的**驾驭系统**。例如，通过指导较弱模型（如**HiQ 3.5**）进行**Pin Bench**测试，并根据其表现修改`agents.nd`文件，可以使其分数从13.5分提升至85分，证明了**驾驭系统**设计的有效性。

这印证了核心观点：有时**语言模型**无法完成任务，并非能力不足，而是缺乏优秀的**驾驭系统**。