Agent 工程走过了提示词工程、上下文工程、Harness 工程三级台阶,每级都解决了当时的主要瓶颈。本文先讲清楚两个基础概念——认知与元认知,再回顾三级台阶各自做了什么,最后说明认知工程如何以元认知为核心组装这些成果,以及它如何解决垂直领域的问题。认知结构是手段,解决问题是目的。
1. 什么是认知
认知科学的工作定义:认知是获取、加工、储存、运用信息的全过程,涵盖感知、注意、记忆、思维、决策等子系统。它不是单一的官能,而是一条加工流水线:
外界刺激 → 感知(信号→知觉)→ 注意(选择)→ 工作记忆(意识舞台)
→ 长时记忆(编码 ↔ 提取)→ 思维与决策 → 行动 → 反馈学习
关于这条流水线,有三个经过大量实证的结论,对 Agent 工程直接有用:
- 认知是构造,不是录制。 知觉由"自下而上的信号"与"自上而下的预期"共同合成;记忆的每次提取都是重构而非回放。
- 认知受瓶颈约束。 感觉输入的信息量巨大,意识能同时处理的只有几个"组块"(工作记忆容量约 4 个组块);突破限制的唯一办法是组块化——用知识结构换容量。
- 知识以图式组织。 人靠图式(关于一类事物"长什么样、如何运作"的模板)实现快速理解,图式通过"同化—顺应"循环随经验演化。
把人类认知与当前 Agent 工程并排看,对应关系相当整齐:
| 人类认知 | Agent 工程 |
|---|---|
| 注意与感知 | 输入选择、检索召回 |
| 工作记忆(~4 组块) | 上下文窗口(稀缺资源) |
| 组块化 | 结构化任务状态、分区 |
| 长时记忆(情景/语义/程序性) | 会话日志 / 知识库 / 技能文件 |
| 图式 | 本体 |
| 系统 1 / 系统 2 | 直接生成 / 思维链 |
| 遗忘是功能 | 记忆淘汰对抗噪声 |
对应的原因朴素:两类系统面对同构的约束——容量有限、信息过载、需要抽象复用;约束相同,解法收敛。 但类比是路标不是证明:LLM 没有海马,同构的是问题结构,不是实现。
2. 什么是元认知
元认知(Metacognition)是"对认知的认知"——Flavell 在 1970 年代提出的概念:监测、评估并调节自身认知过程的能力。它不是又一种认知能力,而是站在认知之上的管理层,经典结构分三块:
| 成分 | 内容 | 人类示例 |
|---|---|---|
| 元认知知识 | 对自己认知状况的知识:知道什么、不知道什么、哪类任务擅长 | "我在人名上记性差,要写下来" |
| 元认知体验 | 对当前认知状态的感受:把握感、困惑感、确定性直觉 | "这题我好像会,但没把握" |
| 元认知调节 | 对认知的计划、监控与评估:分配资源、选择策略、决定继续或放弃 | "这题先跳过,回头检查" |
元认知是人类学习者优劣的主要分水岭之一——实证研究表明,元认知能力对学习效果的预测力不亚于智力。它的价值在一个不对称的事实上:在真实环境里,"知道自己不知道"的收益,往往大于"多知道一点"——因为错误的认知配上不自知,会持续产生错误决策;而知道自己不懂,至少可以求证、绕行或求助。
这正是当前 Agent 的核心短板。 模型具备很强的"认知"——理解、生成、推理;但缺少系统化的元认知:
- 不确定性表达缺失——没有把握的答案和有把握的答案以同样的口吻输出(幻觉的温床)
- 努力分配缺失——简单步骤与关键决策消耗同样的推理预算,成本与风险不匹配
- 止损判断缺失——何时继续投入、何时该求助,依赖外部硬编码的轮次与预算上限,而非判断力
对应的工程化形态,就是三条元认知回路:不确定性表达、双过程调度、自主止损(详见第 4 节)。
3. 认知视角下的 Agent 工程:三级台阶各做了什么
两个概念到此立住:认知是加工信息的流水线,元认知是对这条流水线的监测与调节。第 1 节的对应表已经说明:两类系统约束同构,认知科学的结构可以直接作为 Agent 的设计语言。带着"认知流水线 + 元认知"这套镜头回看 Agent 工程的演进,可以看到:每一级台阶都由当时的主要瓶颈定义,也都完整解决了各自的问题——而它们在认知版图上的位置,恰好拼出了下一级的空缺。
3.1 提示词工程:让模型听懂
做了什么:把单次调用的指令结构化——角色、任务、上下文、约束、少样本示例、输出格式;以及思维链(CoT)等推理触发技巧。
解决:模型对意图的理解与遵循。从"能不能答对"到"稳定地按预期答"。
管辖范围:一句话。它优化单次调用的输入质量,不涉及信息供给的系统设计。
3.2 上下文工程:让模型看见该看的
做了什么:把信息供给变成一个系统——RAG 检索、记忆分层、上下文压缩、结构化分区、工具输出治理、Just-in-Time 加载。
解决:模型每次调用看到什么、以什么顺序和形式看到的秩序问题。上下文窗口是稀缺资源,这一级建立了"每条信息都要挣得它的位置"的纪律。
管辖范围:一次调用的输入组装。它不执行动作,也不管理多轮循环。
3.3 Harness 工程:让循环跑稳
做了什么:运转整个循环的机器——主循环(Agent Loop)、工具运行时、分级权限、会话状态与检查点、重试止损、可观测性。
解决:长任务的可靠性。数十轮的工具调用可以稳定完成而不失控。Claude Code、Kimi Code、OpenHands 本质都是 Harness;SWE-agent 的研究表明,同一模型更换"Agent 与计算机的接口",SWE-bench 得分可相差数倍——运行时设计已是主要变量。
管辖范围:运行时。它的目标函数是可靠性——行为稳定、过程可控。
3.4 台阶的共同点与空缺
提示词工程:说什么 —— 认知的施力点
上下文工程:给什么看 —— 认知的工作记忆
Harness 工程:怎么运转 —— 认知的行动系统
三级台阶分别覆盖了认知流水线的输入端、信息供给与执行端——它们都在为"认知"提供条件,但都未把认知本身作为设计对象:没有一个组件负责判断"这个答案有没有把握"(元认知监测)、"这个任务该花多少推理预算"(元认知调节)、"这个领域的知识边界在哪"(世界模型)。这是正常的工程演进节奏:每一级学科只对当时的瓶颈负责。把认知本身作为设计对象,是下一级台阶的任务。
4. 认知工程:以元认知为核心组装完整架构
Agent 认知工程(Agent Cognitive Engineering):以认知科学验证过的结构为设计蓝图,在 Harness 之上组装 Agent 的知识系统与自我管理系统的工程学科。一句话版本:Harness 工程制造可靠的躯壳,认知工程让这台躯壳获得与任务匹配的认知结构——其中元认知居于架构的顶层。
参考架构(七个子系统):
┌──────────────────────────────┐
│ 元认知层(顶层) │
│ 自我监控 · 努力分配 · 止损 │
└──────────────┬───────────────┘
┌────────┬─────────┬────┴─────┬──────────┬────────┐
▼ ▼ ▼ ▼ ▼ ▼
感知注意 工作记忆 长时记忆 世界模型 技能库
(输入选择) (上下文) (情景+语义) (本体/图式) (程序性)
└────────┴─────────┴────┬─────┴──────────┴────────┘
▼
┌──────────────────┐
│ 行动系统 = Harness │ ← 三级台阶的成果直接复用
└────────┬─────────┘
▼ 执行反馈
┌──────────────────┐
│ 巩固系统(任务后) │ ← 情景压缩、教训蒸馏、
│ │ 技能沉淀、图式维护、遗忘
└──────────────────┘
注意它与三级台阶的关系:不是替换,是组装。提示词工程是施力点,上下文工程就是工作记忆,本体是世界模型,Harness 是行动系统——三级台阶的成果全部成为认知架构的部件。
4.1 元认知的实现:三条回路
元认知不能停留在提示词里写"请谨慎"——那是对认知的请求,不是元认知。它需要作为独立组件实现:
回路① 不确定性表达(元认知知识与体验)
- 给模型显式的"我不确定"词汇与合法的弃答出口:"根据现有信息无法确定,需要 X"
- 检索注入上下文时携带置信度与时间戳,让模型知道"这是既往经验,可能过期"
- 置信度要校准:让输出的把握度与实际正确率对齐(可用历史任务持续校验),避免"流畅但错误"的高置信输出
回路② 双过程调度(元认知调节:资源分配)
- 默认走 System 1(直接生成),控制成本
- 满足显式触发条件才升级 System 2(深度推理/验证/搜索):高风险动作、初次失败、元信号异常(连续两次结果相互矛盾)、用户点名
- 效果:推理深度从常数变成变量,成本与风险匹配
回路③ 自主止损(元认知调节:监控与评估)
- 预算感知:知道本次任务已消耗与剩余的资源
- 循环检测:识别"同一策略反复失败",把"我已连续三次用同样方法失败"作为元信号注入
- 求助判断:评估"继续自主投入的期望收益 < 提问/上报的成本"时,主动带着已尝试的路径与结论求助——从 Harness 时代的硬规则(轮次上限)升级为判断力
4.2 元认知不悬空:支撑结构
三条回路不是孤立开关,它们需要下层子系统供血:不确定性表达需要检索置信度(长时记忆);止损判断需要知道试过什么(情景记忆);努力分配需要知道任务结构(世界模型/本体)。这就是元认知位于七子系统顶层、而非单独插件的原因——没有认知结构的元认知是空转,没有元认知的认知结构是盲开。
4.3 本体建模:世界模型,兼全架构的类型系统
七个子系统中,对应"图式"的本体(世界模型)值得单独说明——它的地位比"七分之一"更重,是三层角色的叠加:
内容层:唯一负责"世界形状"的部件。 其他子系统各管一段——入口、当下、过往、自我管理——本体回答最底层的问题:这个世界由什么构成、概念如何关联、什么组合合法。其他子系统的输出质量以它为上限:记忆没有本体挂靠只是自由文本,元认知不知道边界就无从判断"我不知道什么"。
结构层:全架构的接口语言。 各子系统的实现物共用本体这套词汇:长时记忆的挂靠字段(schema_refs)、任务状态的 schema、元认知的失配信号定义、技能的触发条件、巩固产物的落点、输入分诊的分类。它在认知工程中的工序位置类似编程语言的类型系统——不是某个功能,而是让功能之间能对话的契约;缺少它,七个子系统是七个孤岛。
动力层:认知成长的载体。 认知的成长不在参数变大,而在"失配—重构"循环作用到本体上:同类失败反复出现、检索结果与新事实冲突,触发图式重构——即认知科学"同化—顺应"循环的工程化。本体僵化,系统越用越笨;本体漂移,知识资产失去公信力;两者都要靠版本化治理来防。
三条边界同样要说清:本体管结构,不管真值——"选了合法的编码"不等于"选了正确的编码",后者靠检索溯源与人工;它是世界模型的显式部分,不是全部——技能与直觉这些隐式知识装不进本体;建模有成本——"按能力问题建、不为建模而建模"的纪律同样适用。
在高约束的垂直领域,这三层角色都会被放大——这正是下一节的主题。
5. 用认知工程解决垂直领域问题
垂直领域(金融、医疗、法律、保险……)对 Agent 有三重结构性约束:
| 约束 | 内容 |
|---|---|
| 无廉价验证器 | 没有"跑测试"式的 ground truth;对错靠专家评审或延迟暴露 |
| 知识私域化 | 核心知识在内部文档、数据库、法规里,长尾且持续变化 |
| 动作不可逆 | 下单、改病历、执行交易直接作用于系统记录 |
在这些约束下,元认知的价值从"重要"上升为"生死攸关":因为缺少外部验证器,"知道自己不知道"几乎是防住恶性错误的第一道也是最后一道闸——一个会弃答、会转人工的系统,在错误率上远优于一个"什么都敢答"的系统。认知工程在垂直领域的落地方案,围绕这一点展开为四件事:
① 确定性分层,逐级放权。
第 0 层 确定性骨架:状态机 + 本体定义的类型化数据对象
第 1 层 受约束生成区:LLM 输出空间被 schema 锁死
第 2 层 校验闸门:本体一致性推理 + 业务规则 + 置信度门控
第 3 层 受控弹性区:类型化行动空间的 agent 式调查
逃生通道 每层都有确定出口:修复重试 → 模板降级 → 转人工
自下而上放权:先站稳确定性骨架,每上一层吃掉一部分不确定性,上层才有资格要自由度。
② 本体闸门:合成部分验证器。 领域本体(实体 schema、条款结构、监管规则)+ 规则引擎,把每个 LLM 节点从"信任输出"变成"校验输出"。它拦不住"错得漂亮"的输出,但能拦住类型错、规则错、逻辑矛盾的输出——垂直领域的多数恶性事故恰好属于后者。这是在"没有测试套件"的领域人工合成验证信号的方法。
③ 元认知出口作为设计好的工作流。 置信度门控 + 分级转人工(小额自助复核、大额强制人工);"无法确定"是合法输出且必须附缺失信息清单。转人工不是失败兜底,是架构的一等公民。
④ 巩固飞轮。 结案结论经人工确认蒸馏入判例库(带溯源、置信度、命中计数、过期时间),同类案件从此吃到历史经验;失配信号驱动本体版本化演进。飞轮转得慢(结果标签需要人工),但判例库、本体版本史、校准过的置信阈值——这三样积累起来的资产构成垂直 Agent 真正的护城河。
6. Agent 的认知提升与元认知的人工复核
前文讲了认知与元认知的概念与架构。对 Agent 而言,这两样东西如何"提升"?答案与人是同一张图纸:不靠单点变强,靠闭环。
6.1 Agent 的认知提升:方向是减少模型投入
认知成长有一个容易被忽略的箭头方向:不是积累更多,而是思考更少。认知科学的表述是:陈述性知识经过反复成功执行,下沉为程序性记忆——本能与条件反射并不是记忆的对立面,而是记忆的编译产物;System 2 的运算下沉为 System 1 的反射,腾出的认知资源才用于处理新问题。就像学会开车之后,起步换挡不再占用意识,注意力才留给路况。
Agent 的认知提升遵循同一方向。模型参数在部署后冻结,因此提升不发生在训练里,而发生在运行时的工程闭环里——闭环的产出,是把"思考态"逐步编译为"反射态":
| 认知形态 | 工程形态 | 模型投入 |
|---|---|---|
| 思考态(System 2 推理) | LLM 深度推理、多轮探索 | 高 |
| 记忆态(检索复用) | 任务前检索教训/判例,省去重新探索 | 中 |
| 反射态(自动执行) | 命中技能直接执行脚本;判断走本体查表/规则 | 近零 |
两个编译器加一个调度器:
- 本体建模把判断编译成查表。 类型化结构与规则引擎让识别、校验、路由成为非模型计算——第 5 节的确定性分层,本质上就是把尽可能多的决策从"生成"下沉到"查表"
- 技能强化把过程编译成脚本。 成功轨迹去参数化为技能,命中适用条件直接执行;模型只在技能缺席或失效时出场
- 双过程调度是总调度器。 它不只回答"何时升级 System 2",更回答"如何让越来越多的事不再需要 System 2"——把任务路由到规则、模板、技能、缓存这些便宜路径
与第 1 节人的提升杠杆依然一一对应:提取练习 ↔ 任务前检索、睡眠巩固 ↔ 巩固作业、组块化 ↔ 结构化状态、技能的陈述性→程序性转化 ↔ 技能库、复盘三问 ↔ 收尾三问、校准自信 ↔ 置信度校准(见 6.3)。关键差别不变:人的下沉由生理机制自动发生,Agent 的下沉必须显式建组件——巩固系统、技能库、本体,一个都不能少。
反射化有三条边界:只在稳定环境成立——技能须携带适用条件与过期时间,失配监测不能因为"已经会了"而关闭,过时的反射会绕过意识直接产出错误;反射是编译,编译要质检——6.3 的蒸馏质检防的正是"把巧合编译成反射";元认知是唯一不能下沉的部分——判断"熟悉还是新异"是反射化的安全阀。因此认知工程的终点不是消灭思考,而是把思考只留给值得思考的部分:新异的、高风险的、图式覆盖不到的。
6.2 人力投向何处:从复核产出到复核元认知
为什么元认知需要人工复核?一个直觉的回答是"元认知由模型产生、会出错"——但系统里每个环节都出自模型,这个理由推不出"优先复核元认知"。真正的原因是稀缺资源的再分配:认知工程让机器接管越来越多的认知层校验,人工精力因此被释放出来,而回报最高的投放位置,就是元认知复核。
以垂直领域为例:传统做法是对产出做人工复核——每份结论都要人看,因为机器产出不可信。认知工程改变了这个局面:
本体闸门 + 规则引擎 → 接管认知层校验(类型/规则/一致性,由机器判定)
技能反射化 → 接管常规流程执行(命中即执行,产出可预期)
→ 人工"复核产出"的工作量大幅下降
释放出来的人力投向哪里?元认知复核。三个理由:
- 元认知管理的是路由,不是单点产出。 继续、升级、弃答、转人工——路由错误影响的是整个处置策略,它直接管理着系统的错误边界
- 元认知是最难自动校准的层。 认知层有本体闸门充当验证器替代品;而"把握度是否属实"没有机器裁判,目前只有人工闭环能够校准
- 自动化比重越高,风险越向元认知集中。 反射化率上升、闸门增多之后,系统的安全性越来越取决于"路由是否正确"这一个判断——单点责任上移
复核的对象是三类典型失效:
- 置信度失准——过度自信:该转人工的不转,错误直接落地;过度保守:转人工率失控,系统退化为分诊台
- 弃答滥用——"无法确定"是合法输出,但可能成为能力偷懒的出口;也可能该弃不弃,硬答酿错
- 止损误判——过早放弃(任务其实可解),或该停不停(烧完预算才失败)
这类错误比认知错误更隐蔽:它不产生明显的错误答案,只产生错误的"路由",要在事后统计里才显形——因此需要主动的、专门的复核机制,而不是等问题暴露再补救。设计原则一句话:把人力从"复核产出"转向"复核判断"——认知层交给机器校验,元认知层由人校准。
6.3 人工复核的五个机制
把这一原则落到执行层,是五个具体机制:
- 转人工决策抽样——定期审查两类错误:"该转没转"(漏报)与"不该转转了"(误报),统计元认知的路由错误率
- 置信度校准曲线——聚合模型自报把握度与实际正确率的对应关系,发现系统性偏移(高把握低正确,或低把握高正确)时调整门控阈值
- 弃答质检——抽查"无法确定"的输出:是真不确定,还是偷懒;所附缺失信息清单是否准确——这是判断弃答质量的关键证据
- 元认知事件留痕——每次深度升级、止损、弃答记录触发原因与当时信号,路由决策可审计(在受监管领域同时服务合规)
- 渐进放权——复核通过率稳定后,逐步下调人工比例、放宽门控。复核是校准手段而非永久配置,目标是把元认知错误率压进受控区间,而不是让人长期成为系统的一环
复核的结论要回流:修正置信阈值、触发条件与教训库,形成**"模型校准认知、人校准元认知"**的闭环。这与第 1 节的结论同构:人靠外部反馈校准自信,Agent 靠人工复核校准元认知——认知科学的图纸,对人对机器是同一张。
7. 落地与验收
在现有 Harness 上按序落地的最小增量:任务收尾三问(实体/教训/技能落盘)→ 任务开始先检索再规划 → 记忆记录加四字段(溯源/置信/时间/命中)→ 双过程触发条件显式化 → 定期抽查蒸馏质量。不需要换模型,不需要训练。
验收标准相应扩展。Harness 时代度量单次成功率——有效,但检验不出判断力与经验的增长。认知工程补充:二次任务改进率(同类问题第二次的解决成本下降多少)、反射化率(同类任务中由技能/规则/模板等非模型路径完成的占比及其上升曲线——它解释成本为什么下降)、教训召回率(已解决的问题是否还要重新付费解决)、垂直场景再加一条——转人工率曲线(随判例积累下降,且错误率不升)。
8. 结语
提示词工程 —— 说什么 (认知的施力点)
上下文工程 —— 给什么看 (认知的工作记忆)
Harness 工程 —— 怎么跑起来 (认知的行动系统)
认知工程 —— 认知本身的组装:以元认知管理认知,
让下一个问题被更便宜、更可靠地解决
三级台阶各自完整地解决了各自的问题;认知工程把它们的成果组装为完整的认知架构,并补上一直缺位的那一层:知道自己知道什么、不知道什么,以及因此如何分配自己。
判断一个 Agent 系统处于哪个阶段,不需要看它用什么模型,只需要问一个问题:它对自己的把握,有把握吗?
延伸阅读(一手资料)
认知与元认知(第 1–2 节)
- Flavell, "Metacognition and Cognitive Monitoring", American Psychologist, 1979 —— "元认知"概念的原始文献:doi.org/10.1037/000…
- Kahneman, Thinking, Fast and Slow, 2011 —— 系统 1 / 系统 2 双过程理论
- Miller, "The Magical Number Seven, Plus or Minus Two", Psychological Review, 1956 —— 工作记忆容量的经典研究:doi.org/10.1037/h00…
- Cowan, "The Magical Number 4 in Short-Term Memory", 2001 —— 容量修正:www.apa.org/science/abo…
- Kotseruba & Tsotsos, "A Review of 40 Years of Cognitive Architecture Research" —— 经典认知架构全景综述:arxiv.org/abs/1610.08…
三级台阶的原始出处(第 3 节)
- Tobi Lütke 提出 context engineering 一词的推文(X,2025-06-19):x.com/tobi/status…
- Karpathy 的著名回应(X,2025-06-25,"filling the context window with just the right information"):x.com/karpathy/st…
- Anthropic, "Building Effective Agents" —— Harness 工程的实践总结:www.anthropic.com/engineering…
- Anthropic, "Effective Context Engineering for AI Agents" —— 上下文工程的工程化论述:www.anthropic.com/engineering…
- Yang et al., "SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering" —— 运行时接口设计对 Agent 表现的影响:arxiv.org/abs/2405.15…
认知工程的组件先例(第 4–6 节)
- Sumers et al., "Cognitive Architectures for Language Agents"(CoALA, TMLR 2024)—— 语言 Agent 认知架构的统一框架:arxiv.org/abs/2309.02…
- Park et al., "Generative Agents" —— 记忆流与反思机制:arxiv.org/abs/2304.03…
- Shinn et al., "Reflexion" —— 语言化自我反思,元认知回路的先例:arxiv.org/abs/2303.11…
- Wang et al., "Voyager" —— 技能库:把过程编译为可执行技能的原型:arxiv.org/abs/2305.16…
- Packer et al., "MemGPT" —— 分层记忆管理:arxiv.org/abs/2310.08…
- Letta, "Sleep-time Compute" —— 任务后的离线巩固:arxiv.org/abs/2504.13…
- Gutiérrez et al., "HippoRAG" —— 知识图谱驱动的长期记忆检索:arxiv.org/abs/2405.14…