乐于分享
好东西不私藏

AI 工程四层范式四次范式跃迁

AI 工程四层范式四次范式跃迁
最近有新提出来的概念Loop Engineering(循环工程),Boris Cherny(Claude Code负责人)— Loop Engineering概念提出者之一,Peter Steinberger(OpenClaw创始人)— Loop Engineering 也是概念提出者之一,我今天简单分享一下智能体工程的四次范式跃迁。

AI Agent 工程方法论在过去四年中经历了四次重大范式转移。这四次转移并非简单的术语更迭,而是一条逐步把人从工作流中抽离的演进路径

2023 ─── PromptEngineering         "怎么问 AI,它才更容易答对"2024-25 ─── ContextEngineering            "给 AI 看什么信息,它才更容易做对"2026 初─── Harness Engineering            "AI 在什么环境里运行,才更安全、更稳定、更可控"2026.6 ─── LoopEngineering            "你不再 Prompt Agent,你设计 Loop,让 Loop 去 Prompt Agent

关键洞察:这四层不是替代关系,而是叠加与包含关系——每一层都在前一层的基础上解决新出现的瓶颈。你不能跳过 Prompt Engineering 直接做 Context Engineering,也不能跳过 Harness 直接做 Loop。

核心公式演变

一条主线:把人逐步从工作流中抽离

Prompt  →  外化了「意图表达」(措辞能力不再靠人反复试探)Context →  外化了「知识获取」(记忆与检索不再靠人塞入每次对话)Harness →  外化了「执行身体」(工具操作与安全约束不再靠人逐条审批)Loop    →  外化了「驱动决策」(自主调度与验收不再靠人主动发起下一轮)
每往上一层,人离具体工作更远一步,而系统的设计难度和影响力则提升一档

四层对比总表

Prompt Engineering —怎么问AI

定义与起源(2023)

Prompt Engineering是最早成熟的AI工程范式。当时模型的上下文窗口只有4K-8K tokens,无法承载大量背景信息,因此"怎么用有限的字数让模型准确理解意图"成为核心技能

核心理念:通过措辞、示例、格式约束和思维引导,让模型在单次调用中产出更准确、更一致的结果

核心技巧

对智能体的影响:单轮精准度决定多轮天花板

在Agent系统中,每一次工具调用的返回结果都会成为下一轮推理的输入。如果单轮Prompt不够精准,错误会在Agentic Loop中逐轮放大,导致Agent偏离轨道

核心原则:单轮Prompt的质量是Agent系统的基础。没有好的Prompt,再复杂的Harness也只是在放大错误。

何时使用

永远使用。Prompt Engineering是所有交互的基础层,不会因为上层范式的出现而过时。但它的角色已从"全部工作"变成了"最底层的一块砖"。
在新范式下,Prompt Engineering更多体现在:
  • 编写高质量的 CLAUDE.md / AGENTS.md 指令
  • 设计 Skill 的触发条件和说明
  • 构造子 Agent 的系统提示词

Claude Code中的体现

在 Claude Code 中,Prompt Engineering 渗透在多个层面:<!-- CLAUDE.md —项目级持久 Prompt -->项目约束- 始终使用TypeScript 严格模式- 拒绝any 类型,必须显式定义接口- 测试覆盖率不低于80%- 不引入超过50KB 的 npm 依赖// settings.json — 系统级指令注入{  "systemPrompt": "你是一位专注于代码质量和安全性的高级工程师。",  "agents": {    "reviewer": {      "prompt": "你是一位挑剔的代码审查者。只标记真实的问题,不要提风格偏好。"

Codex中的体现

Codex 通过层级化的 AGENTS.md 体系实现 Prompt 注入:config.toml[instructions]# 最高优先级:developer_instructions直接在 system message 中developer_instructions= "始终使用 Python 3.12+ 语法。禁止使用已弃用的 API。"#AGENTS.override.md 优先级高于 AGENTS.md#$CODEX_HOME/AGENTS.override.md > $CODEX_HOME/AGENTS.md > GitRoot/AGENTS.md > cwd/AGENTS.md

Context Engineering —给AI看什么

当模型的上下文窗口从 4K 爆炸式增长到 200K、1M tokens,"怎么写 Prompt"不再是最紧迫的问题——"往上下文中放什么信息"才是

四大操作

Prompt Caching(提示缓存)

核心原理:将不变内容(系统指令、工具定义、项目文档)放在 Prompt 前缀,模型服务端会对前缀做精确匹配缓存。缓存命中时,处理成本降低 90%

实际效果:
  • 无缓存的推理成本随对话长度呈二次增长
  • 有缓存后降至线性增长
  • 这就是为什么 CLAUDE.md 和 AGENTS.md 必须放在 Prompt 最前面
缓存破坏操作(需要避免频繁变动):
  • 更改工具定义
  • 切换目标模型
  • 修改沙箱/审批/CWD 配置

对智能体的影响:决定Agent "知道什么"

Context Engineering直接决定了Agent的信息视野:
  • 信息太少 → Agent 做出天真的决定
  • 信息太多 → Agent 在噪音中迷失(Lost in the Middle)
  • 信息组织混乱 → Agent 误解优先级

何时使用

当任务复杂度超过单轮对话的承载能力时必须引入
具体信号包括:
  • Agent 反复询问已经回答过的问题
  • Agent 遗漏关键项目约束
  • 单次对话的上下文经常被打满
  • 团队协作需要共享规则和背景

Claude Code实现详解

CLAUDE.md:持久锚点CLAUDE.mdCLAUDE.md 是整个Context Engineering 体系中最关键的单个文件。它不会随对话压缩而丢失——每个 turn 都从磁盘重新读取。## 设计原则1. 手写60 行 远胜机器生成 600 行2. "What NOTto do" 比 "What to do" 更有价值3. 每条规则都应追溯到一次具体的失败经历(Ratchet 原则)4. 不要把CLAUDE.md 写成百科全书——写地图,不是写词典

Progressive Disclosure(渐进披露)

用户输入 "帮我部署到 AWS"        ↓Skills 元数据常驻(~1%上下文消耗)├── aws-deploy:"安全部署到 AWS ECS Fargate"├── k8s-deploy:"部署到 Kubernetes 集群"├── vercel-deploy:"一键部署到 Vercel"        ↓Claude 匹配到aws-deploy → 加载完整 Skill 正文        ↓执行部署流程

Compact四级压缩

子Agent上下文隔离

父 Agent(完整项目上下文)├── Fork Agent 1(继承父上下文)→ 处理前端任务├── Fork Agent 2(继承父上下文)→ 处理后端任务└── CoordinatorAgent(零继承) → 综合两个结果

Codex实现详解

AGENTS.md层级覆盖

$CODEX_HOME/AGENTS.override.md     ← 最高优先级(用户全局覆盖)$CODEX_HOME/AGENTS.md              ← 用户全局默认<GitRoot>/AGENTS.md               ← 仓库级<GitRoot>/docs/AGENTS.md          ← 文档级<cwd>/AGENTS.md                    ← 当前目录级
Codex从最高优先级向最低优先级遍历,合并所有AGENTS.md,加上32 KiB默认限制。

输入组装顺序(最大化Prompt Cache命中)

1. Sandbox 描述(developerrole)—— 仅用于 Codex 内置 shell 工具2.developer_instructions(用户配置)3.AGENTS.override.md → AGENTS.md → project_doc_fallback4. Skills 元数据和使用说明5. 环境上下文(工作目录、用户 shell)6. 用户实际消息← 最后放,是唯一的变量

设计原则:静态内容(1-5)前置,变量内容(6)后置——确保前缀完全一致,Prompt Cache持续命中

auto_compact与/responses/compact

当token数超过auto_compact_limit时,Codex调用专门的/responses/compact端点。返回的压缩结果包含type=compaction项和加密的encrypted_content——保留了模型的潜在理解,而不是简单的文本截断

无状态设计(ZDR合规)

Codex刻意不使用previous_response_id参数,每次请求完全自包含。这意味着:
  • 支持 Zero Data Retention(零数据保留)
  • 简化了多 Provider 实现
  • 但也意味着 Loop 能力需要外部调度来弥补

Harness Engineering — AI在哪安全运行

定义与核心公式

Agent = Model + Harness模型决定了
Agent的上限,但Harness决定了Agent的实际表现。
Harness(挽具/外骨骼)是除模型本身外的一切——工具、工作环境、记忆系统、安全护栏、监控、反馈回路。它像为模型穿上了一套外骨骼,让模型能7×24小时干活而不崩溃。"Agents aren't hard; the Harness is hard."* — OpenAI工程师Ryan Lopopolo

七大核心组件

对智能体的影响:决定Agent的能力边界与安全底线

Harness解决的典型问题:
  • Agent 陷入"复读机"死循环 → 护栏拦截
  • Agent 越权执行危险操作 → 权限管道拒绝
  • 长任务中上下文膨胀导致模型失焦 → 自动压缩 + 子 Agent 隔离
  • 任务崩溃后无法恢复 → Checkpoint + 快照

何时使用

Agent需要执行长任务、多工具协同、或进入生产环境时必须建立Harness。
信号包括:
  • Agent 开始执行 Shell 命令或写文件
  • 需要多个 Agent 并行协作
  • 需要在 CI/CD 中运行
  • 团队多人共用同一个项目配置

Claude Code Harness六大层面

第一层:Memory(记忆系统)

第二层:Skills(技能库)

Skills是惰性加载的领域知识包。元数据常驻上下文(~1%占用),正文只在被触发时加载:
SKILL.mdfrontmatter---name: aws-deploydescription: 安全部署到AWS ECS Fargatetriggers:  - 部署  - deploy  - AWS  - ECS---# 正文内容(只在触发时加载)

第三层:Tools & Safety(工具与安全)

Claude Code的安全模型是默认拒绝→按需放行:
用户请求执行 Bash 命令        ↓Permission Pipeline检查├── allow 列表匹配?→ 放行├── deny 列表匹配?→ 硬拒绝├── 需要用户确认?→ 弹出权限对话框└── 模式转换(Plan/Approve/Auto)
关键设计原则:权限管道有副作用——它追踪拒绝记录、转换模式、更新状态。模型决定"做什么",另一个代码路径决定"是否允许"。有说服力的模型无法用话术绕过护栏。

第四层:Multi-agent(多智能体)

三种并行模式:
核心洞察:Coordinator 的职责是综合,不是委派理解。它不能把"理解任务"这件事外包给子 Agent

第五层:Lifecycle(生命周期)

{  "hooks": {    "SessionStart": [      {"command": "pythonscripts/check_env.py"}    ],    "PreToolUse": [      {        "matcher": "Bash",        "command":"scripts/bash-guard.sh \"$CLAUDE_TOOL_INPUT\""      }    ],    "PostToolUse": [      {        "matcher":"Write|Edit",        "command": "ruff check--fix \"$CLAUDE_FILE_PATH\" 2>&1 | tail -20 || true"      }    ],    "Stop": [      {        "command": "maketest-fast 2>&1 | tail -30"      }    ]  }}

Hook信任是全有或全无的:Hook 脚本在主流中执行,exit 2 可以直接阻断 Agent 循环。这是 Harness 中最强的确定性强制机制

Codex Harness架构

config.toml全局配置

[model]provider ="openai"model ="gpt-5.5"[approval]mode ="default"  default | never |always[sandbox]mode ="workspace-write"  # read-only| workspace-write | danger-full-access[tools]mcp_servers =["github", "slack", "jira"]

Sandbox三级安全

Symphony:多Agent编排器

Symphony是Codex的开源多Agent编排器,用Elixir/BEAM编写:
  • 持续轮询项目管理看板(Linear/Jira)
  • 将 Issue 映射到专用 Agent 工作区
  • Agent 自主完成完整的 PR 生命周期:编写 → Review → CI → 合并冲突 → Merge
  • 人类只做二元决策(可合并 / 不可合并)
  • 实际效果:团队 PR 落地量提升

Agent-Legible Codebase(Agent可读的代码库结构)

project-root/├── AGENTS.md              ~100 行导航地图(索引,不是百科全书)├──ARCHITECTURE.md         # 顶层领域地图├── docs/│   ├── architecture/LAYERS.md  # 层级结构 + 强制规则│   ├── golden-principles/      # DO/DON'T 模式,每条 30-60 行│   ├── SECURITY.md│   └── design-docs/           # 架构决策记录├──tests/architecture/        # 边界强制测试├──scripts/gc/                # 熵垃圾回收脚本└──.github/workflows/         # CI + 每周GC 扫描

Harness实战12条原则

下一篇继续更新循环工程

我是大橘子爱学习期待你的分享感谢支持

相关学习资料