AI 应用工程篇: 五个工程的前置认知铺垫

Prompt → Context → Harness → Loop → Graph:AI 应用的工程重心,正在从“怎么问模型”逐渐转向“怎么构建让模型稳定工作的系统”。

Prompt Engineering → Context Engineering → Harness Engineering → Loop Engineering → Graph Engineering

一、开篇

今天我想分享一个今年在 AI Agent 领域比较有意思的话题。

这几个词大家可能都听过:

  • Prompt Engineering
  • Context Engineering
  • Harness Engineering
  • Loop Engineering
  • Graph Engineering

如果单独看,每一个词似乎都不难理解。

Prompt Engineering:提示词工程。

Context Engineering:上下文工程。

Harness Engineering:Harness 工程。

Loop Engineering:循环工程。

Graph Engineering:图工程。

但是把这五个词放在一起,就会发现它们其实描述的是一个非常有意思的变化:

AI 应用开发的工程重心,正在不断向更高层次移动。

最开始,我们研究的是:

怎么把 Prompt 写好?

后来发现:

Prompt 写得再好,如果模型没有足够的信息,也没有用。

于是开始研究:

模型这一轮到底应该看到什么?

再后来,模型已经不只是回答问题,而是开始调用工具、修改文件、执行代码、访问数据库。

这时候问题又变成:

怎么给模型提供一个可靠的运行环境?

再往后,如果 Agent 要自己运行几十轮、几百轮:

什么时候运行?什么时候继续?什么时候重试?什么时候停止?

最后,当一个 Agent 已经不够,我们需要多个 Agent、工具、验证器、人工节点协同:

这些节点应该怎么连接?

于是就形成了今天这五个关键词:

Prompt
   ↓
Context
   ↓
Harness
   ↓
Loop
   ↓
Graph

今天我们就按照这个顺序来理解。


二、Prompt Engineering:我应该怎么告诉模型?

先从最熟悉的 Prompt Engineering 开始。

Prompt Engineering,本质上是在研究:

如何设计给模型的指令,让模型产生更加符合预期的输出。

比如我们直接告诉模型:

帮我写一个登录接口。

模型当然可以写。

但是如果我们把要求写得更加明确:

你是一名 Java 后端工程师。

请使用 Spring Boot 3 + MyBatis Plus 实现用户登录接口。

要求:

1. 使用 RESTful API
2. 密码使用 BCrypt 加密
3. 登录成功返回 JWT
4. 参数使用 Bean Validation 校验
5. 统一使用 Result<T> 返回
6. 给出 Controller、Service、Mapper 和 DTO

通常得到的结果会更加稳定。

这就是 Prompt Engineering。

它关注的是:

Instruction
Role
Constraint
Example
Output Format

也就是:

我要怎么说,模型才能更好地理解我的意图?


Prompt Engineering 的局限

但是问题很快就出现了。

假设我告诉 AI:

帮我修复这个项目中的登录 Bug。

Prompt 写得再漂亮,如果 AI 根本不知道:

  • 项目的目录结构
  • 数据库表结构
  • 登录流程
  • Redis 配置
  • JWT 生成方式
  • 项目的编码规范
  • 之前已经尝试过什么
  • 测试怎么运行

它还是很难真正解决问题。

所以我们发现:

模型的问题,有时候不是“不知道怎么做”,而是“根本不知道相关信息”。

这时候,工程重心就开始从 Prompt 转向 Context。


三、Context Engineering:这一轮到底应该让模型看到什么?

Anthropic 对 Context Engineering 的一个核心描述是:

Prompt Engineering 关注如何编写指令,而 Context Engineering 更关注如何在模型推理时,动态组织和维护它所需要的信息。([Anthropic][1])

简单来说:

Prompt 是“我告诉你什么”,Context 是“你现在知道什么”。

例如我们开发一个 AI 客服。

用户说:

我上次买的那双鞋什么时候发货?

如果只看 Prompt:

你是一个电商客服,请帮助用户解决问题。

模型根本不知道:

用户是谁?
买了什么?
订单号是什么?
物流状态是什么?

所以系统需要动态构建 Context:

System Prompt
      +
用户信息
      +
历史对话
      +
订单信息
      +
物流信息
      +
商品信息
      +
相关知识库
      ↓
最终 Context
      ↓
LLM

这就是 Context Engineering。


Context Engineering 到底在工程什么?

可以把它拆成几个问题。

1. Retrieve:拿什么?

从数据库、RAG、API、搜索引擎中找到相关信息。

2. Select:选什么?

不是所有信息都应该塞进去。

3. Compress:压缩什么?

历史对话越来越长,需要摘要、压缩。

4. Structure:怎么组织?

同样的信息,不同的结构可能产生不同的效果。

例如:

用户:
张三

订单:
订单号:10086
商品:Nike Air Max
状态:运输中

比把所有信息直接拼成一大段文本更加容易被模型正确使用。

5. Isolate:隔离什么?

不同 Agent、不同任务,不应该看到全部上下文。

所以 Context Engineering 本质上是在解决:

有限 Context Window 下,如何让模型在当前时刻获得最有价值的信息。


四、Harness Engineering:不仅给模型信息,还要给它一个“工作环境”

当 AI 从 Chatbot 变成 Agent,问题又发生变化。

以前:

User
 ↓
Prompt
 ↓
LLM
 ↓
Answer

现在:

User
 ↓
Agent
 ↓
LLM
 ↓
Tool
 ↓
Environment
 ↓
Observation
 ↓
LLM
 ↓
Tool
 ↓
...

比如 Coding Agent。

它可能需要:

读取文件
修改代码
执行 Shell
运行测试
查看 Git Diff
搜索代码
访问数据库

这时候单纯 Prompt 和 Context 已经不够。

我们需要一个:

Harness

可以把 Harness 理解成:

围绕模型构建的一整套运行环境和控制机制。

它决定:

模型能看到什么
模型能调用什么
模型能修改什么
模型不能做什么
怎么验证结果
失败之后怎么办
什么时候认为任务完成

Anthropic 对 Agent 的 Context 管理强调了工具、MCP、历史、外部数据等动态状态;而 Harness Engineering 则进一步进入运行环境、权限、工具、验证和反馈等系统层面。([Anthropic][1])


一个 Coding Agent 的 Harness

例如:

                ┌───────────────┐
                │      LLM      │
                └───────┬───────┘
                        │
        ┌───────────────┼───────────────┐
        ↓               ↓               ↓
     文件系统          Terminal        Git
        ↓               ↓               ↓
     Read/Write       Execute        Diff
        │               │               │
        └───────────────┼───────────────┘
                        ↓
                     Tests
                        ↓
                   Verification

这里:

  • File System 是工具
  • Terminal 是工具
  • Git 是工具
  • Test 是验证机制
  • Permission 是约束
  • Sandbox 是运行环境
  • Context Manager 是上下文管理

这些东西共同构成了 Agent 的 Harness。

所以可以记住一句话:

Model 提供智能,Harness 提供可执行、可控制、可验证的工作环境。


五、Loop Engineering:如果 Agent 不只运行一次呢?

现在我们已经有:

Prompt
+
Context
+
Harness

Agent 可以开始干活了。

但真实任务往往不是:

执行一次 → 完成

而是:

执行
 ↓
观察结果
 ↓
发现错误
 ↓
修改
 ↓
再次执行
 ↓
测试
 ↓
继续修改
 ↓
再次测试
 ↓
完成

这就是 Loop。

Loop Engineering 关注的是:

如何设计 Agent 的持续运行循环。

IBM 在 2026 年对 Loop Engineering 的定义,就是设计能够反复引导 Agent 朝目标前进、减少人工干预的 Agentic Workflow。([IBM][2])


一个最简单的 Agent Loop

        ┌──────────────┐
        │     Goal     │
        └──────┬───────┘
               ↓
        ┌──────────────┐
        │    Think     │
        └──────┬───────┘
               ↓
        ┌──────────────┐
        │     Act      │
        └──────┬───────┘
               ↓
        ┌──────────────┐
        │   Observe    │
        └──────┬───────┘
               ↓
        ┌──────────────┐
        │   Verify     │
        └──────┬───────┘
               ↓
          Done?
         /     \
       No       Yes
       ↓         ↓
     Retry      Stop
       │
       └──────────→

这里最重要的其实不是“循环”。

而是三个东西:

1. Goal

到底什么叫完成?

比如:

让所有测试通过

比:

把代码优化得更好

更加适合作为 Agent Goal。

2. Verification

不能让 Agent 自己说:

我觉得已经完成了。

而应该:

mvn test
npm test
pytest
typecheck
lint

用确定性的工具验证。

3. Stop Condition

必须告诉 Agent:

什么时候停止?

例如:

测试全部通过

或者:

连续 3 次失败

或者:

达到 Token / Cost Budget

或者:

需要人工审批

Loop Engineering 的核心,就是把:

“我再给 AI 发一句 Prompt”

变成:

“我设计一个可以自己运行、验证、重试、停止的系统。”

这也是 2026 年 Loop Engineering 这个术语快速出现的核心背景。([Loop Engineering][3])


六、Graph Engineering:一个 Loop 不够了怎么办?

到这里,我们有一个 Agent Loop。

但是复杂任务可能是:

需求分析
   ↓
代码实现
   ↓
测试
   ↓
Code Review
   ↓
安全检查
   ↓
部署

而且其中还可能出现:

测试失败
   ↓
返回开发 Agent

安全检查失败
   ↓
返回安全 Agent

高风险操作
   ↓
人工审批

这已经不是简单的 Loop。

它更像一个:

Graph。

Graph Engineering 就是在关注:

如何把多个 Agent、工具、任务、验证器、人工节点组织成一个可观察、可控制、可恢复的任务图。

不过这里必须强调:

Graph Engineering 目前仍然是一个正在形成中的架构标签,并不是像 HTTP、TCP 这样的标准化技术名词。 不同资料对它的边界也存在差异。([GitHub][4])

所以分享的时候不要把它说成“行业已经统一定义的标准”。


一个 Agent Graph

例如一个 AI 软件开发系统:

                 ┌──────────────┐
                 │ Requirement  │
                 └──────┬───────┘
                        ↓
                 ┌──────────────┐
                 │   Planner    │
                 └──────┬───────┘
                        ↓
                 ┌──────────────┐
                 │  Developer   │
                 └──────┬───────┘
                        ↓
                 ┌──────────────┐
                 │    Test      │
                 └──────┬───────┘
                    Pass│Fail
                   ┌────┴────┐
                   ↓         ↓
                Review    Developer
                   ↓
              Security
                   ↓
             Human Approval
                   ↓
                Deploy

这时候每一个节点都可能拥有自己的:

Prompt
Context
Tools
Harness
Loop

而 Graph 负责:

节点之间怎么连接
什么时候进入下一个节点
什么时候回退
什么时候分支
什么时候并行
什么时候需要人工介入

所以可以把它理解成:

Loop 解决“一个 Agent 怎么持续工作”,Graph 解决“多个工作节点怎么协同”。


七、五个概念到底是什么关系?

现在把五个概念放在一起。

Engineering核心问题关注对象
Prompt Engineering我应该怎么告诉模型?指令
Context Engineering模型这一刻应该知道什么?信息
Harness Engineering模型应该在什么环境里工作?工具、权限、验证、运行环境
Loop Engineering模型应该如何持续工作?循环、状态、重试、停止
Graph Engineering多个 Agent / 工具如何协同?工作流、节点、边、分支

可以用一句话记忆:

Prompt
= 怎么说

Context
= 给什么信息

Harness
= 给什么工作环境

Loop
= 怎么持续干

Graph
= 多个角色怎么协同

八、为什么会出现这种演进?

我认为核心原因只有一个:

模型能力越来越强之后,瓶颈开始从“模型本身”转移到“模型周围的工程系统”。

以前模型能力不够。

所以大家最关心:

换哪个模型?
模型参数多少?
Prompt 怎么写?

但是当模型已经能够:

写代码
调用工具
搜索信息
修改文件
运行测试
自主规划

问题就变成:

它看到了什么?
它能做什么?
它做错了怎么办?
它怎么知道自己做错了?
它什么时候应该停止?
多个 Agent 怎么协同?

所以工程关注点开始向外扩展。


九、用一个“AI 程序员”把五个概念串起来

假设我要做一个 AI Coding Agent。

用户输入:

帮我给项目增加一个 Redis 缓存。

第一步:Prompt Engineering

告诉模型:

你是一名 Java 后端工程师。

请为项目增加 Redis Cache。

遵循现有项目代码规范。

解决:

怎么说?


第二步:Context Engineering

系统自动给模型:

项目目录
Spring Boot 版本
pom.xml
相关 Service
现有 Redis 配置
数据库结构
代码规范
历史修改记录

解决:

模型需要知道什么?


第三步:Harness Engineering

给模型:

Read File
Write File
Search
Terminal
Git
Maven
Test

同时限制:

不能访问生产数据库
不能直接 push main
不能删除项目

解决:

模型在哪里工作?能做什么?不能做什么?


第四步:Loop Engineering

Agent 开始:

分析
 ↓
修改代码
 ↓
mvn test
 ↓
失败
 ↓
读取错误
 ↓
修改
 ↓
mvn test
 ↓
通过
 ↓
停止

解决:

模型怎么持续完成任务?


第五步:Graph Engineering

进一步拆成:

Planner
   ↓
Developer
   ↓
Tester
   ↓
Reviewer
   ↓
Security
   ↓
Human
   ↓
Deploy

解决:

复杂任务如何组织多个 Agent 和工具?


十、最后总结

所以今天的五个关键词,我认为可以浓缩成一个非常简单的模型:

                AI Engineering
                       │
        ┌──────────────┴──────────────┐
        ↓                             ↓
    单次交互                        Agent System
        │                             │
     Prompt                         Context
                                      │
                                    Harness
                                      │
                                     Loop
                                      │
                                    Graph

或者更简单:

Prompt  →  Context  →  Harness  →  Loop  →  Graph
 怎么说     知道什么     怎么工作      怎么持续     怎么协同

这五个词真正有价值的地方,并不是让我们多记五个 AI 黑话。

而是它们帮助我们理解一个变化:

AI 应用开发正在从“Prompt 开发”,逐渐走向“Agent 系统工程”。

当我们还在研究:

“这个 Prompt 怎么改得更好?”

的时候,也许下一步真正应该问的是:

“模型现在缺什么 Context?”

“它有哪些 Tool?”

“它的 Harness 怎么设计?”

“它怎么验证?”

“什么时候停止?”

“多个 Agent 怎么协同?”

这可能才是未来 AI 应用工程真正有技术含量的地方。

谢谢大家。

2. 博客.md

从 Prompt Engineering 到 Graph Engineering:AI Agent 工程范式的五次跃迁

Prompt Engineering → Context Engineering → Harness Engineering → Loop Engineering → Graph Engineering

最近 AI Agent 领域出现了一组越来越频繁的工程术语:

  • Prompt Engineering
  • Context Engineering
  • Harness Engineering
  • Loop Engineering
  • Graph Engineering

乍一看,它们像是一堆新的 AI 黑话。

但如果把它们放在一起观察,会发现这五个概念其实描述了一条非常清晰的演进路径:

AI 应用开发的工程重心,正在从“如何告诉模型”逐渐转向“如何构建一个让模型稳定完成任务的系统”。

需要提前说明的是:Prompt Engineering、Context Engineering、Harness Engineering 已经形成了较清晰的工程语义;Loop Engineering 和 Graph Engineering 则是 2026 年快速兴起的术语,目前不同实践者对边界仍有不同理解。因此,本文把后两者作为一种理解 Agent 系统架构的工程视角,而不是严格的行业标准。([Anthropic][1])


一、五个概念先看懂

如果只想记住最核心的东西,可以直接记下面这张表。

概念核心问题关注对象
Prompt Engineering我应该怎么告诉模型?Instruction
Context Engineering模型这一刻应该知道什么?Context
Harness Engineering模型应该在什么环境里工作?Runtime / Tools / Guardrails
Loop Engineering模型应该如何持续完成任务?Loop / State / Verification
Graph Engineering多个 Agent 如何协同?Graph / Workflow

一句话概括:

Prompt
= 怎么说

Context
= 给什么信息

Harness
= 给什么工作环境

Loop
= 怎么持续干

Graph
= 怎么组织多个角色协同

接下来逐层展开。


二、Prompt Engineering:怎么告诉模型?

2.1 什么是 Prompt Engineering?

Prompt Engineering,也就是提示词工程。

它研究的是:

如何设计给 LLM 的指令,使模型更稳定地产生预期结果。

例如:

帮我写一个 Spring Boot 登录接口。

这属于非常简单的 Prompt。

进一步增加约束:

你是一名 Java 后端工程师。

使用 Spring Boot 3 + MyBatis Plus 实现用户登录。

要求:

1. 使用 RESTful API
2. 使用 Bean Validation 校验参数
3. 密码使用 BCrypt
4. 登录成功返回 JWT
5. 使用统一 Result<T> 返回
6. 给出 Controller、Service、Mapper、DTO

模型得到的任务边界明显更加清晰。

Prompt Engineering 主要关注:

Role
Instruction
Constraint
Example
Output Format

也就是:

如何把人的意图转换成模型更容易执行的指令。


三、Prompt Engineering 为什么不够?

假设现在任务变成:

帮我修复这个项目的登录 Bug。

即使 Prompt 写得非常漂亮,模型还是可能不知道:

项目使用什么框架?
登录代码在哪里?
数据库表是什么?
Redis 怎么配置?
JWT 怎么生成?
之前修改过什么?
项目应该如何测试?

这就出现了一个非常关键的问题:

模型不是不知道怎么做,而是不知道足够的信息。

因此工程问题从:

怎么写 Prompt?

逐渐转变为:

这一轮到底应该把什么信息给模型?

这就是 Context Engineering。


四、Context Engineering:模型应该知道什么?

Anthropic 将 Context Engineering 描述为:不仅设计 Prompt,而是管理模型推理时所获得的完整上下文,包括系统指令、工具、MCP、外部数据、消息历史等。([Anthropic][1])

因此可以简单理解:

Prompt 是你对模型说的话,Context 是模型在当前时刻所拥有的工作信息。


4.1 一个 AI 客服的例子

用户:

我上次买的鞋什么时候发货?

System Prompt:

你是一名电商客服。

显然不够。

系统可能需要动态获取:

用户信息
+
订单信息
+
商品信息
+
物流信息
+
历史对话
+
售后政策

最终:

                    ┌──────────────┐
                    │ System Prompt│
                    └──────┬───────┘
                           │
用户 ───────→ Context Builder
                           │
              ┌────────────┼────────────┐
              ↓            ↓            ↓
           Order DB       RAG        History
              │            │            │
              └────────────┼────────────┘
                           ↓
                      Final Context
                           ↓
                          LLM

这就是 Context Engineering。


4.2 Context Engineering 的几个核心动作

Retrieve

从数据库、RAG、API、搜索引擎中找到相关信息。

Select

不是检索出来的所有内容都需要给模型。

Compress

历史越来越长,需要摘要、压缩。

Structure

把信息组织成模型容易理解的结构。

Isolate

不同任务、不同 Agent 不一定需要看到全部信息。

因此 Context Engineering 真正解决的是:

有限 Context Window 下,如何让模型在当前时刻获得最有价值的信息。

Google Cloud 也将 Context Engineering 描述为从简单 Prompt 转向构建结构化数据和信息环境的过程。([Google Cloud][5])


五、Harness Engineering:模型开始“干活”了

如果说:

Prompt = 告诉模型做什么

Context = 告诉模型它需要知道什么

那么 Harness Engineering 关注的是:

给模型什么样的运行环境,让它真正能够完成任务。

这是从 Chatbot 走向 Agent 的关键一步。


六、从 Chatbot 到 Agent

传统 Chatbot:

User
 ↓
Prompt
 ↓
LLM
 ↓
Answer

Agent:

User
 ↓
Agent
 ↓
LLM
 ↓
Tool
 ↓
Environment
 ↓
Observation
 ↓
LLM
 ↓
Tool
 ↓
...

比如一个 Coding Agent 可能需要:

File System
Terminal
Git
Search
Database
Browser
Test Runner

模型本身并不会天然拥有这些能力。

我们需要在模型周围搭建一层系统。

这就是 Harness。


七、Harness 到底包含什么?

可以粗略理解成:

                 ┌─────────────┐
                 │     LLM     │
                 └──────┬──────┘
                        │
       ┌────────────────┼────────────────┐
       ↓                ↓                ↓
     Tools           Context          State
       ↓                ↓                ↓
  File / Git        Memory / RAG      Task State
       │
       ↓
   Environment
       │
       ↓
 Verification
       │
       ↓
 Guardrails

典型组件包括:

  • Tool Calling
  • File System
  • Terminal
  • Sandbox
  • Permissions
  • Memory
  • Context Management
  • Verification
  • Observability
  • Guardrails

2026 年关于 AI Harness Engineering 的研究也开始把任务规格、上下文选择、工具访问、状态、可观测性、验证、权限等视为 Harness 的重要职责。([arXiv][6])

因此:

Model 提供智能,Harness 提供运行环境。


八、Loop Engineering:让 Agent 自己不断推进

有了 Harness,Agent 可以执行任务。

但是一个复杂任务通常不是:

执行一次
↓
完成

而是:

Plan
 ↓
Act
 ↓
Observe
 ↓
Verify
 ↓
Retry
 ↓
Observe
 ↓
Verify
 ↓
Done

这就是 Loop。

IBM 对 Loop Engineering 的定义,就是设计能够反复引导 Agent 朝目标推进、减少人工逐步干预的 Agentic Workflow。([IBM][2])


九、一个最基本的 Agent Loop

              ┌───────────┐
              │    Goal   │
              └─────┬─────┘
                    ↓
              ┌───────────┐
              │   Think   │
              └─────┬─────┘
                    ↓
              ┌───────────┐
              │    Act    │
              └─────┬─────┘
                    ↓
              ┌───────────┐
              │  Observe  │
              └─────┬─────┘
                    ↓
              ┌───────────┐
              │  Verify   │
              └─────┬─────┘
                    ↓
                  Done?
                /       \
              No         Yes
              ↓           ↓
           Retry         Stop
              │
              └───────────→

这里真正重要的不是“循环”两个字,而是:

Goal

必须明确什么叫完成。

例如:

让全部测试通过

比:

优化代码

更适合作为 Agent 的目标。

Verification

不要让 Agent 自己判断:

应该已经好了。

而应该:

mvn test
pytest
npm test
npm run typecheck

用确定性工具验证。

Stop Condition

必须明确:

什么时候停止?

例如:

测试全部通过
连续 3 次失败
超过 Token Budget
超过时间限制
触发高风险操作
需要人工审批

因此 Loop Engineering 的核心思想可以概括成:

不要不断手动给 Agent 发下一条 Prompt,而是设计一个能够自己推进、验证、重试和停止的循环。


十、Harness 和 Loop 有什么区别?

这是非常容易混淆的地方。

可以这样理解:

Harness
=
一个 Agent 怎么工作

Loop
=
这个 Agent 怎么持续工作

例如:

Harness:

LLM
+
Tools
+
Context
+
Permissions
+
Sandbox
+
Verification

而 Loop:

while (!done) {

    context = buildContext();

    result = agent.run(context);

    verify(result);

    if (success) {
        break;
    }

    retry();
}

所以:

Harness 是运行环境,Loop 是控制循环。


十一、Graph Engineering:一个 Agent 不够了

再往上走。

假设我们要让 AI 自动完成一个软件开发任务:

需求分析
 ↓
代码实现
 ↓
测试
 ↓
Code Review
 ↓
安全检查
 ↓
部署

显然一个 Agent 全包并不是唯一方案。

我们可以把任务拆成多个节点:

             Requirement
                  ↓
               Planner
                  ↓
              Developer
                  ↓
                Test
              /      \
           Pass       Fail
            ↓           ↓
         Review      Developer
            ↓
         Security
            ↓
      Human Approval
            ↓
          Deploy

这就是 Graph。


十二、什么是 Graph Engineering?

Graph Engineering 可以理解为:

设计多个 Agent、工具、验证节点、人工节点之间的关系,以及它们之间的信息和控制流。

它解决的问题已经从:

一个 Agent 怎么工作?

升级到了:

多个 Agent 怎么协同工作?

需要设计:

  • Node
  • Edge
  • Branch
  • Parallel
  • State
  • Checkpoint
  • Human Gate
  • Retry
  • Failure Route

例如:

Planner
   │
   ├────→ Developer
   │          │
   │          ↓
   │        Tester
   │        /   \
   │      Pass  Fail
   │       │      │
   │       ↓      └──→ Developer
   │     Reviewer
   │       │
   │       ↓
   │    Security
   │       │
   │       ↓
   └──→ Human

需要强调的是:

Graph Engineering 目前仍是一个正在形成中的工程术语,不同资料对它的定义并不完全一致。

一些实践将它理解为多 Agent / 工具 / 检查点的显式工作图,也有实践将它进一步扩展到任务图、信息流和状态拓扑。([GitHub][4])

因此,更适合把它理解成一种:

Agent 系统的架构设计视角。

而不是一个已经标准化的技术规范。


十三、五个 Engineering 到底是什么关系?

现在重新看这五个概念:

Prompt Engineering
        ↓
Context Engineering
        ↓
Harness Engineering
        ↓
Loop Engineering
        ↓
Graph Engineering

它们实际上是在不断扩大“工程对象”。


第一层:Prompt

工程对象:

一句 Prompt

问题:

怎么说?

第二层:Context

工程对象:

模型当前看到的信息

问题:

模型应该知道什么?

第三层:Harness

工程对象:

模型周围的运行环境

问题:

模型能做什么?
在哪里做?
怎么约束?
怎么验证?

第四层:Loop

工程对象:

Agent 的持续执行过程

问题:

怎么继续?
怎么重试?
怎么验证?
什么时候停止?

第五层:Graph

工程对象:

多个 Agent / Tool / Human Node 的协作关系

问题:

复杂任务怎么拆?
节点怎么连接?
什么时候分支?
什么时候回退?
什么时候人工介入?

十四、用 AI Coding Agent 串起来

假设我要做一个 AI 程序员。

用户输入:

帮我给这个 Spring Boot 项目增加 Redis 缓存。

Prompt Engineering

设计:

你是一名 Java 后端工程师。

请给当前项目增加 Redis Cache。

遵循现有代码规范。

解决:

怎么告诉模型?


Context Engineering

自动提供:

项目结构
pom.xml
Spring Boot Version
Service
Controller
Redis Config
数据库结构
相关代码
历史修改记录

解决:

模型应该知道什么?


Harness Engineering

给模型:

Read
Write
Search
Terminal
Git
Maven
Test

同时限制:

禁止访问生产数据库
禁止删除项目
禁止直接 push main

解决:

模型在哪里工作?能够做什么?


Loop Engineering

Agent:

分析代码
 ↓
修改代码
 ↓
mvn test
 ↓
失败
 ↓
读取错误
 ↓
修复
 ↓
mvn test
 ↓
通过
 ↓
结束

解决:

模型如何持续完成任务?


Graph Engineering

进一步拆分:

Planner
   ↓
Developer
   ↓
Tester
   ↓
Reviewer
   ↓
Security
   ↓
Human
   ↓
Deploy

解决:

多个 Agent 和工具如何协同?


十五、为什么这些概念现在突然流行?

本质上是因为:

LLM 的能力越来越强,系统的瓶颈开始从模型本身向模型周围的工程基础设施转移。

早期我们经常讨论:

哪个模型更强?
GPT 还是 Claude?
Prompt 怎么写?

但当模型已经可以:

写代码
搜索资料
调用 API
操作文件
运行程序
修改代码
运行测试

真正的问题开始变成:

它应该看到什么?

它能调用哪些工具?

它拥有哪些权限?

它怎么知道自己错了?

失败以后怎么恢复?

怎么防止无限循环?

怎么控制成本?

多个 Agent 怎么协作?

什么时候必须人工介入?

这也是为什么 Context Engineering 被 Anthropic 描述为 Prompt Engineering 在 Agent 时代的自然延伸,而 Harness Engineering、Loop Engineering 等概念进一步把问题扩大到运行环境和持续执行机制。([Anthropic][1])


十六、最终总结

可以用一张图记住这五个概念:

┌─────────────────────────────────────────────┐
│               Graph Engineering             │
│       多 Agent / Tool / Human 如何协同       │
│                                             │
│   ┌─────────────────────────────────────┐   │
│   │          Loop Engineering           │   │
│   │      Agent 如何持续执行与验证        │   │
│   │                                     │   │
│   │   ┌─────────────────────────────┐   │   │
│   │   │      Harness Engineering    │   │   │
│   │   │     Agent 在什么环境工作      │   │   │
│   │   │                             │   │   │
│   │   │   ┌─────────────────────┐   │   │   │
│   │   │   │ Context Engineering │   │   │   │
│   │   │   │ 模型应该知道什么      │   │   │   │
│   │   │   │                     │   │   │   │
│   │   │   │ Prompt Engineering  │   │   │   │
│   │   │   │ 我应该怎么告诉模型    │   │   │   │
│   │   │   └─────────────────────┘   │   │   │
│   │   └─────────────────────────────┘   │   │
│   └─────────────────────────────────────┘   │
└─────────────────────────────────────────────┘

也可以直接记成:

Prompt
    ↓
怎么说?

Context
    ↓
知道什么?

Harness
    ↓
怎么工作?

Loop
    ↓
怎么持续?

Graph
    ↓
怎么协同?

这五个概念真正值得关注的地方,并不是多了五个 AI 名词。

而是它们体现了一个非常明显的趋势:

AI Engineering 正在从 Prompt Engineering 逐渐走向 Agent System Engineering。

过去我们把模型当成一个“回答问题的函数”。

现在越来越多的系统开始把模型当成一个:

Reasoning Engine
+
Tools
+
Context
+
Memory
+
Runtime
+
Verification
+
Loop
+
Workflow

最终形成真正能够完成工作的 Agent System。

所以,当你下一次开发 AI 应用时,与其只问:

“我的 Prompt 写得够好吗?”

不如继续问:

模型现在缺什么 Context?

它拥有哪些 Tools?

Harness 怎么设计?

结果如何 Verification?

Loop 如何 Retry?

什么时候 Stop?

多个 Agent 如何 Graph 化?

这可能才是从“会调用大模型”走向“真正做 AI 应用工程”的关键一步。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值