第八章

模型之外,Agent 是怎样真正跑起来的

1. 本章要说的概念

Harness(智能体运行框架)、Runtime(运行时或运行环境)和 Compaction(上下文压缩)。

2. 模拟任务:接盘了一个巨大的项目和它巨大的文件夹

你入职了一家大型餐饮品牌的战略部,刚来就接手一个大项目:盘点上半年 16 个城市、200 多家分店的经营情况。你从公司云盘上下载了一个混乱的文件夹,里面既有 2022—2026 年的历史材料,也有最近一轮盘点收回的分店数据、店员访谈、用户问卷和十几张庞大的数据追踪表。

你希望 Codex 梳理各城市的经营表现、历史变化、门店差异、员工和用户反馈、证据位置与待核问题,最后形成一份覆盖 16 个城市的上半年经营盘点报告。

你向 Codex 布置任务:

  1. 先清点项目文件,不要修改原文件。

  2. 建立 01_文件清单.md,记录每份资料对应的时间、城市、门店、资料类型和读取状态,并按研究价值标为“核心资料、补充资料或背景资料”。

  3. 以城市为单位处理文件。先读取该城市分店数据和追踪表,再结合历史数据、店员访谈和用户问卷解释变化。每提取一条重要结论,就把对应的城市、门店或指标、对比时间、证据原文或数据、文件名和页码写入 02_证据索引.md

  4. 完成一个城市后,生成一份城市简报,例如 03_北京城市简报.md,总结当前经营表现、历史变化、表现突出或异常的门店、员工与用户反馈,以及仍然缺少的证据。

  5. 16 个城市全部处理完后,根据证据索引和各城市简报,生成 04_上半年16城经营盘点报告.md

  6. 报告应包括整体经营概况、城市表现分组、历史变化、突出或异常门店、员工与用户反馈反映的主要原因、待核问题和下一步建议;无法读取或依据不足的内容单独列出,不要猜。

任务开始后,大模型负责理解材料和判断内容;Codex 要把文件交给模型、执行读取和写入、维护任务进度,并在必要时申请权限。任务可能运行在你的电脑上,也可能运行在云端;处理的资料越来越多时,当前上下文还可能需要压缩。Harness、Runtime 和 Compaction 就在这些地方出现

3. Harness(智能体运行框架):大模型之外,谁在组织这项工作

Harness(智能体运行框架)是包在大模型外面、负责组织 Agent 怎样工作的整套软件。大模型负责理解、判断和生成;Harness 决定把哪些资料和要求交给模型、允许它执行哪些动作,以及怎样把任务继续做下去。

不同公司对 Harness 的范围划得不完全一样:

OpenAI 在拆解 Codex 循环时,把 Harness 描述为提供核心 Agent Loop 和执行逻辑的部分。Claude Code 词表强调 Harness 是围绕模型、提供工具、上下文管理和执行环境的软件系统。AWS 的范围还包括沙箱、记忆、身份和可观测性。

但这些定义的共同点都是:Harness 是让模型能够在任务中持续工作的外层系统。

在这个资料整理任务中,Harness 具体承担的事情包括:

Harness 组织的部分 在任务里发生什么 你可能看到什么
装入指令 把“保留原文件、按城市处理、优先读取核心资料”等要求交给模型 Agent 按固定要求输出
准备上下文 把当前城市的分店数据、历史资料、访谈、问卷和已有索引送入本轮任务 Agent 知道当前在研究哪个城市、已经得到什么
调用能力 读取 Word、PDF 和表格,创建清单、索引与城市简报 界面显示正在读取或写入文件
推进循环 处理一份、记录一份,完成一个城市后形成简报,再进入下一个城市 任务可以连续完成多个研究阶段
处理权限和失败 越过允许范围时询问,文件打不开时返回错误或换一种读取方式 出现审批、报错或重试信息

理解 Harness,最直观的方法就是看同一个模型进入不同 Agent 产品后会发生什么。

比如你在 Codex 和 Cursor 中都选择 GPT-5.6 Sol,再让它们完成同一项任务:“把这个项目的经营数据做成一个可以导出数据的 HTML 仪表盘,并运行测试。”结果很有可能大不相同:

使用场景 Agent 软件会为模型准备什么 你可能看到的差别
GPT 用在 Codex 中 Codex 当前打开的工作区、项目规则、Skills,以及它自己的文件操作、命令执行和审批方式 Codex 按自己的方式查找文件、执行命令、申请批准并交付修改结果
GPT 用在 Cursor 中 Cursor 编辑器里的代码库、当前文件、Cursor Rules,以及 Cursor 自己的搜索、编辑、终端和检查点能力 Cursor 按编辑器中的上下文推进任务,并在编辑器里展示修改和检查点

底层模型虽然相同,两个 Agent 软件送给模型的资料、规则和可执行动作并不相同,所以它们可能读取不同文件、采用不同步骤,也会用不同方式让你审查结果。

新人用户知道 Harness,最大的用处就是不再把“模型”和“Agent”混为一谈。选择 Agent 时,除了看它使用什么模型,还要看这套 Agent 软件的 Harness 怎样为模型准备资料和规则、提供哪些执行能力,以及怎样让你检查和控制结果。

4. Runtime(运行时或运行环境):任务究竟在哪里、带着什么条件运行

Runtime(运行时或运行环境)是一次任务真正运行时可以使用的整套条件。除了电脑设备外,还包括运行任务的系统、已经开放的文件、可用软件、网络连接和账号授权等。

每次 Agent 真正执行任务时,都处在某个 Runtime 中。只和模型聊天时,这些条件不太显眼;一旦 Agent 要读取文件、使用软件、连接网络或登录其他服务,Runtime 就会直接决定任务能不能做。

Runtime 中的条件 本次任务中的具体情况
运行位置 Codex 在你的 Windows 电脑上执行本机操作
文件范围 你打开了项目工作副本,Codex 可以读取资料,并在其中写入文件清单、证据索引和城市简报
可用能力 当前环境能够读取 Word、PDF 和表格;扫描版材料还需要文字识别能力
网络与连接 已下载的资料可以直接处理;需要补充云盘文件或网页资料时,还要具备相应连接和授权
操作权限 读取、写入、运行程序或联网,分别按照当前权限设置执行或向你申请批准

你打开工作副本、允许 Codex 读写结果、准备好表格和文字识别能力,并在需要时连接云盘,这些操作就是在为本次任务准备 Runtime。

这里还经常会遇到 Agent 让你安装 **Dependency(依赖)**的情况,就是完成任务时必须借助的其他软件或组件。

例如,这批门店资料中有许多扫描版 PDF。Codex 读取店员访谈时提示无法提取文字,因为扫描页只有图片。你可以让 Codex 安装 OCRmyPDF 和 Tesseract OCR:前者负责处理扫描版 PDF,后者负责识别图片里的文字。安装后 Codex 才能调用它们提取内容。在这项任务里,这两个 PDF 小工具就是依赖。

和在本地作业不同,如果把同一任务交给云端 Runtime,条件就会改变:本机文件需要先上传或通过连接器开放,本机安装的依赖也不会自动出现在云端。所以任务内容没变,但 Runtime 变了,Agent 能看到和能使用的东西也随之改变。

5. Compaction(上下文压缩):上下文快放不下时,怎样接着做

在第二章讲 Context Window(上下文窗口)时,有提到过 Compaction(上下文压缩),在这里细讲一下。Compaction 把过长的对话和任务历史整理成更短的记录,再把这份压缩记录带入后续任务,减少的是当前上下文的占用。

Compaction 之后,大致会发生这样的变化:

压缩前 压缩后
多轮对话、读取结果和中间过程占用大量上下文 任务目标、关键进度和重要结果被整理成更短的任务记录
每个早期细节都可能仍在当前上下文中 部分细节可能被省略,需要重新读取原文件
原始资料和已经生成的文件保存在工作区 原始资料和文件仍然保存在原处,不因上下文压缩而改变

不同 Agent 执行 Compaction 的方式可能有所差异,大体有两种方式:

  • 自动压缩:当对话变长接近上下文上限时,Agent 会自动把之前的内容压缩成摘要,但这种方式存在 Agent 在压缩摘要时丢失核心信息的风险。

  • 手动触发:输入 /compact 命令,手动压缩当前对话上下文。这种方式的好处是,你可以自带指令来规划压缩摘要,比如“/compact,请保留关于某个模块的讨论细节”,告诉它压缩时优先保留什么。

在门店盘点任务里,Agent 处理了几个城市、读过上百份资料后,当前上下文可能已经装着用户要求、文件内容、读取结果、修改意见和多轮对话,处于被挤爆的边缘,不仅造成 Token 浪费,也容易出现 Agent “失忆和降智”的情况。那么就有必要进行一次 Compaction。

但在实际操作中,无论采用哪种上下文压缩方式,Compaction 后都有可能遗漏关键信息。为了减少这种情况,下面再复习两种实用办法:

  • 手动 Compaction 前可以先让 Agent 留下一份看得见的“任务续接摘要”

你可以对 Codex 说:

在执行上下文压缩前,请先把当前任务目标、已经完成的城市、关键结论及来源、尚未处理的资料、待我确认的问题和下一步计划,写入 00_任务续接摘要.md。完成后请进行 Compaction。

压缩完成后,再让 Agent 读取这份摘要,复述当前进度,确认没有漏项后继续。

  • 把“任务续接摘要”写进项目规则文件(AGENTS.md)里。

比如要求 Codex:

每完成一个城市盘点,自动更新一次 00_任务续接摘要.md

这样即使 Agent 在后台自动压缩了,上一次阶段总结也已经保存在文件里,可随时重新读取并接续任务。

6. 一句话释义

  • Harness 是包在大模型外面、负责组织 Agent 怎样工作的整套软件

  • Runtime 是一次任务真正运行时可以使用的整套条件

  • Compaction 是把过长的对话和任务历史整理成更短的记录,再把这份记录带入后续任务