[AI/Agent/概念辨析] AI Agent 演进范式:Prompt 工程 => Context 工程 => Agent Loop 工程 => Hardness 工程
1 AI Agent 演进范式:Prompt 工程 => Context 工程 => Hardness 工程
概念概述与引入背景
-
在 AI Agent 架构演进的过程中,针对如何提升大语言模型(LLM)执行复杂任务的能力,业界经历了从提示词调优(Prompting)到上下文治理(Context Window Management),再到确定性控制与硬化(Agent Hardness Standard & Engineering)的三代技术范式的迭代。
-
Prompt 工程(1.0 时代):侧重于“如何用更好的文本表达”来激活大模型潜能。
提示词工程(Prompt Engineering): 通过设计输入给模型的“任务、目标、约束、示例与行为规则”,把人的意图转换成模型可执行指令的工程。
- Context 工程(2.0 时代):侧重于“如何在有限且动态的上下文窗口中”进行记忆、工具状态与多轮对话的精准调度。
Context Engingnnering/上下文工程,就是在 AI Agent 每一次决策/行动之前,动态构造一份“足以让模型做出正确决策”的最小信息环境。
Context Engineering = 为 AI Agent 的每一次推理,动态构造“正确的信息环境”。
其解决的核心问题:在【模型】有限的【认知带宽】下,让 AI Agent 在正确的时间获得正确的信息,并避免错误、过时、冲突和冗余的信息干扰决策。这比“【管理 Prompt】”要本质得多。业界目前也基本从 Prompt Engineering 转向了对整个模型输入状态的工程化管理:系统指令(System Prompt)、任务(Task)、历史(History)、记忆(Memory)、知识(Knowledge)、工具(Tool)、工具结果(Tool Result)、运行状态(Running Status)等,都属于上下文的一部分。
- Hardness 工程(3.0 时代):侧重于“如何将不可控的概率性 LLM”封装为具备工业级可靠性(Reliability)、鲁棒性(Robustness)和确定性(Determinism)的硬核 Agent 框架。
- 定义:
Hardness 工程是针对 AI Agent 系统的不确定性进行“工业级防摔与可靠性约束”的系统工程。
它通过显式状态机(FSM/DAG)、确定性代码控制、强类型校验(Guardrails)、异常熔断与人机协作(HITL),将概率性的大语言模型(LLM)“包裹”并硬化为具备 SLA(服务级别协议)保障、可确定、可中断、可恢复 的生产级软件系统。
- 定位:
系统的防护骨骼:如果 Prompt 是 Agent 的“语言表达”,Context 是 Agent 的“动态记忆”,那么 Hardness 工程就是 Agent 走出实验室 Sandbox、进入生产环境所必需的“防护外骨骼”。
概率与确定性的桥梁:它是连接“不可控的 LLM 概率推理”与“高容错要求的工业级业务系统”之间的确定性控制层。
核心维度对比分析
| 对比维度 | Prompt 工程 (Prompt Engineering) | Context Engineering (上下文工程) | Hardness Engineering (硬化工程) |
|---|---|---|---|
| 提出时间/代表组织 | 2022-2024 (OpenAI / Anthropic / 学术界) | 2025 (LangChain / LlamaIndex / AutoGPT 社区) | 2026-(微软 AutoGen / CrewAI / 工业界落地团队) |
| 提出背景 | 从 Zero-Shot 到 Few-Shot,研究者发现输入文本的结构对 LLM 输出质量影响巨大 | Agent 引入 Tool Use 和多轮对话后,Token 消耗剧增、长上下文引发“中间失忆(Lost in the Middle)” | Agent 走出 Sandbox 进军生产环境,遇到死循环、Tool 调用不稳定性、幻觉导致的不可控风险 |
| 解决的核心问题 | 教模型怎么做:解决 LLM 对意图理解不精准、零样本输出不稳定问题 (【指令意图】) |
给模型看什么:解决记忆保留、长文本检索(RAG)、Tool schema 注入与动态剪枝问题 (【有限窗口下,对输入信息集合的聚焦】) |
系统出错了怎么办:解决 AI Agent 系统在工业落地时的不可靠、无法中断、不可重试、状态不透明问题 (【运行时异常与边界(可靠性、鲁棒性、确定性)】) |
| 解决的域 | 语义理解、输出约束 | 信息供给、窗口管理 | 故障、对抗、边界、工具失败、失控风险 |
| 产出物 | 角色设定、Few‑shot、CoT 指令、输出格式模板 | RAG 策略、记忆策略、上下文截断 / 排序 / 过滤规则、... | 参数校验、重试降级、死循环检测、输入防御、结果校验、异常兜底逻辑 |
| 核心优势 | 轻量化、零代码/低代码、迭代成本极低 | 大幅拓展 Agent 复杂推理能力与外部知识检索能力 | 赋予 Agent 工业级确定性、SLA 保障、自我纠错与长生命周期运行能力 |
| 局限性与风险 | 极易受模型更新影响(提示词敏感)、上限较低 | 上下文噪声干扰(Context Pollution)、Token 成本高昂、延迟增加 | 架构复杂度极高、过度硬化可能抑制 Agent 的泛化推理能力(Over-engineering) |
| 适用场景 | 单次任务、简单分类、客服草稿生成、简单 SQL 生成 | 复杂的多轮对话系统、基于文档的 Knowledge QA、工作流初级编排 | 金融交易 Agent、自动化 DevOps、医疗诊断辅助、复杂 RPA 替代等高风险生产场景 |
架构演进与演进拓扑
这三个工程范式并非互斥关系,而是层层递进、向下包含的栈式架构:
本质区别与关联 + 关系图 (必读)
- 关系图
-
关联关系:Prompt 是 Context 中的基本构成单元;Context 为 Prompt 提供了历史与状态容器;Hardness 则是围绕 Prompt 和 Context 构建的防摔保护壳与自动化运行保障框架。
-
本质区别:
-
Prompt 工程本质是 NLP 领域的文本工程;
-
Context 工程本质是 内存/缓存管理工程(AI 界的虚拟内存管理);
-
Hardness 工程本质是 传统系统工程(Systems Engineering)与可靠性工程(SRE) 在 AI 领域的延伸。
最佳实践指南
1. Prompt 工程最佳实践
- 模块化、模板化:分离 System Prompt(角色、全局约束、输出格式)和 User Prompt(用户实际 query);
- 模块化、模板化:采用 XML 标签或 JSON 结构分隔指令(如
<instructions>,<context>,<constraints>)。
- 复杂任务强制 CoT 思维链,必要时 Few‑shot 提供正确 + 错误样例;
- 思维链引导:引入 CoT(Chain-of-Thought)或 ReAct(Reason + Act)结构,强制模型在输出 final answer 前给出思考过程。
- 强约束输出 Schema,优先使用结构化输出(JSON 模式),减少自由文本解析;
- Prompt 做版本管理,配套评测集,不凭感觉写 Prompt;
- 不要把大量业务原始数据塞进 Prompt 本体,业务数据交给 Context 层处理。
2. Context 工程最佳实践
- 分层管理上下文:系统固定上下文、RAG 检索上下文、会话短期记忆、长期向量记忆,区分不同生命周期;
分层化、结构化 Context 压栈:将环境状态、可用工具描述(JSON Schema)与运行时变量分层隔离,避免上下文污染。
- 做上下文预处理:过滤无关片段、重排、去重、压缩(摘要),不要无脑把全部检索结果塞窗口;
滑动窗口与摘要归档:使用 Rolling Window 策略保存最新 N 轮对话,结合后台异步 LLM 对长历史进行 Summary 归档。
-
长上下文策略:摘要压缩、滑动窗口、重要性打分裁剪,避免窗口溢出;
-
工具返回结果必须做清洗之后再放回上下文,不要直接把工具的原始脏输出喂给 LLM;
-
控制信息顺序:高优先级事实靠前,减少位置偏见。
3. Hardness 工程最佳实践
- 确定性状态机(FSM)结合:不全权依赖 LLM 做下一步路由,使用
DAG或有限状态机约束 Agent 转移逻辑(如 LangGraph 范式)。 - Agent 状态层:循环检测,限制最大迭代轮次,防止死循环;状态持久化,失败可恢复;
- 工具层:入参校验,禁止直接把 LLM 输出当参数调用;工具异常捕获,重试、降级、超时控制;
- 输入防御层:用户输入做风险过滤,防止 Prompt 注入、越权诱导;
- 输出校验层:对 Agent 输出、工具调用计划做后置校验,不符合规则直接拦截兜底;
Guardrails 与 Circuit Breakers(熔断机制):设置死循环拦截器、最大 Token/Step 阈值以及输出 Schema 校验器(如 Pydantic/Instructor),校验失败触发自动重试或 fallback机制。
- 边界 case 构造测试集:异常 query、工具报错、缺失信息、对抗输入做专项测试;
- 可观测:记录 Agent 决策链路、失败原因,便于定位是 Prompt 问题、Context 噪声还是 Hardness 缺失。
小结:整体组合最佳实践流程
用户 Query
→ 输入防御 (Hardness)
→ Context 组装 (检索、记忆、过滤、压缩)
→ Prompt 组装 (指令 + Schema)
→ LLM 调用
→ 解析 Agent 计划
→ 参数校验 (Hardness)
→ 工具执行
→ 结果清洗回写 Context;
循环受最大轮次限制;任意环节异常触发降级兜底 (Hardness)。
发展趋势
- 代码即控制层(Code-as-Architecture):从 Prompt 式的自然语言控制,全面转向利用严格类型检查的代码(TypeScript/Python)定义 Agent 工作流。
- Context 自动化剪枝与 KV-Cache 优化:硬件级与引擎级(如 vLLM)对长上下文进行 Chunk 优化,结合 Agent 级别的注意力遮蔽,实现百万 Token 级 Context 的高效调度。
- Human-in-the-loop (HITL) 标准化:Hardness 工程将进一步推进“人机协作中断点”的标准规范化,高风险操作默认请求人工审批(Approval Gate)。
Z FAQ for 进阶篇
Q: 在设计 AI Agent 时,为什么只做 Prompt 工程无法满足生产落地要求?
- Prompt 工程仅解决了模型“单次输出质量”的问题。但在生产环境中,AI Agent 需要面对复杂工具交互、长历史多轮对话以及异常情况。
- 没有 Context 工程会导致模型因上下文超限或失忆而失效;
- 没有 Hardness 工程会导致模型陷入【死循环】、产生【非法 API 调用】或【无法实现状态恢复与事务一致性】。
Q: 什么是上下文污染(Context Pollution)?如何解决?
- 上下文污染指将不相关、冗余或冲突的信息注入 Context 窗口,导致 LLM 注意力分散、推理能力下降或产生幻觉。
- 解决方法包括:使用 Vector DB 精准检索(RAG)、建立工具调用的过滤与剪枝机制、定期对历史对话进行【语义压缩】(
Summarization)。
Q: Hardness 工程中的“熔断与重试(Circuit Breaking & Retry)”策略是如何设计的?
- 当 Agent 连续调用工具失败或输出格式不符合 JSON Schema 时,Hardness 机制会捕获该异常,拼接具体的 Error Log 重新注入 Context 进行自我纠错;若重试达到上限(如 3 次),熔断器触发,切断当前 Agent 路径并回滚状态,降级由备用 Agent 执行或推送到
Human-in-the-loop(HITL) 人工干预队列。
Q: 请简述 ReAct 模式在 Prompt 与 Context 工程中的不同侧重点。
- 在 Prompt 工程中,ReAct 侧重于系统提示词的设计(如要求模型按
Thought -> Action -> Observation的格式流式输出); - 在 Context 工程中,ReAct 侧重于将 Observation 的返回结果结构化追加回 Context Window,并及时清理陈旧的观察结果以节省 Token。
Q: 如何评价 LangChain 与 LangGraph 在 Hardness 工程上的差异?
- 早期 LangChain 基于无状态/简单链式调用,控制权主要交给 LLM,容错能力较弱(Hardness 低);
- 而 LangGraph 引入了显式图结构(DAG/FSM)与持久化 Checkpoint 机制,允许 AI Agent 状态挂起、分支回溯与状态恢复,是 Hardness 工程的具体落地。
Q: Context Engineering 和传统 RAG 的关系是什么?
- RAG 是 Context Engineering 的一个子集。
- Context Engineering 不仅包含从外部数据库检索知识(RAG),还包括对话历史管理、内存级 Cache 调优、Tool/Function Schema 的动态构建与剪枝、以及 Working Memory 的更新策略。
Q: Hardness 工程如何保障 Agent 调用外部系统的安全性?
- 采用双层 Guardrails:
- 输入层校验 Agent 产生的 API 参数(如 SQL 注入防御、敏感词过滤);
- 运行层使用【容器隔离】(Docker/Wasm)执行代码,并针对涉及【系统修改】(如删除文件、发起支付)的步骤,通过 Hardness 框架【强行阻断】、并【等待人类确认】。
Q: 什么是“Lost in the Middle”现象?在 Context 工程中如何应对?
-
Lost in the Middle: 指 LLM 在处理超长上下文时,倾向于关注开头和结尾的信息,容易忽略位于长上下文【中间】的关键事实。、 -
应对方案包括:
- 重排(Rerank)检索到的上下文,将最关键的信息放在紧邻 Prompt 末尾(User Query 之前)或开头位置;
- 剔除无关段落。
Q: 在构建 Agent 时,如何权衡 Agent 的灵活性(Flexibility)与硬度(Hardness)?*
- 遵循“关键路径硬化,泛化推理自由”原则。
在涉及业务逻辑边界、安全安全风控、多系统协同的状态转移节点使用硬编码/状态机(高 Hardness);
在具体的子任务解析、文本生成、灵活格式转换时给予 LLM 充足的 Reasoning 空间(高 Flexibility)。
Q: 未来 Agent 框架的发展会淘汰 Prompt 工程吗?
- 不会淘汰,但 Prompt 工程的重要性会向底层下沉(从应用开发演变为系统基础设施中的 Prompt 模版优化)。上层开发者将越来越少直接撰写复杂的 Prompt,而是通过 Hardness 框架声明 Workflow 和 Tool Set,框架会自动拼装最佳的 Context 与系统 Prompt。
Y 推荐文献 *
- [AI/Agent/提示词/上下文] Prompt 工程 - 博客园/数据知音
- [AI/Agent] Context Engineering/上下文工程 - 博客园/数据知音
- [AI/Agent/工程化] Agent Loop 工程 :从"循环机制"到"循环工程"——一整套AI Agent关于【继续/停止/重试/收敛/反馈】的【工程决策体系】 - 博客园/数据知音
- [AI/Agent/工程化] Harness 工程:把大模型能力驯化为稳定生产力的 AI Agent 系统底座 - 博客园/数据知音
浙公网安备 33010602011771号