Agent、Harness、Loop 核心理解

Agent、Harness、Loop 核心理解

——AI行业三大核心概念的全面深入解析

一句话理解:Agent是"能自主行动的AI",Harness是"Agent的工具箱和操作系统",Loop是"Agent思考和行动的循环机制"。三者合在一起,构成了现代AI应用的核心架构。

适用读者:零基础,无AI开发背景要求。本文从最基础的概念讲起,逐步构建完整的知识体系。


在这里插入图片描述

目录


第一篇:全景篇——为什么这三个概念如此重要


第1章 AI概念的演进脉络

1.1 从ChatGPT到Agent的演进

2022年底:ChatGPT发布
  → 人们发现AI可以对话了
  → 但只能问答,不能做事

2023年:提示词工程(Prompt Engineering)
  → 人们发现"怎么问"比"问什么"更重要
  → 通过精心设计提示词来引导AI输出更好的结果
  → 局限:仍然是一问一答,不能自主行动

2024年:Agent概念爆发
  → 人们发现AI可以"自己做事"了
  → 不只是回答问题,而是自主规划、执行、反思
  → 关键突破:AI从"被动回答"变成"主动执行"

2025年:Harness Engineering + Agent Loop
  → 人们发现光有Agent不够,还需要"操作系统"和"工作流程"
  → Harness:给Agent提供工具、上下文、约束
  → Loop:定义Agent如何思考-行动-观察的循环
  → 三者合一,构成完整的AI应用架构

1.2 概念关系图

┌─────────────────────────────────────────────────────────┐
│                   AI应用的完整架构                         │
│                                                         │
│  ┌──────────────────────────────────────────────────┐  │
│  │                    Agent(智能体)                  │  │
│  │  · 能理解任务                                      │  │
│  │  · 能自主规划                                      │  │
│  │  · 能调用工具                                      │  │
│  │  · 能反思改进                                      │  │
│  └──────────────────────┬───────────────────────────┘  │
│                         │                               │
│                         │ 运行在                         │
│                         ▼                               │
│  ┌──────────────────────────────────────────────────┐  │
│  │                  Harness(工具箱)                  │  │
│  │  · 工具注册(搜索、代码执行、API调用...)            │  │
│  │  · 上下文管理(记忆、历史、文件...)                 │  │
│  │  · 权限控制(安全边界、沙箱...)                     │  │
│  │  · 环境交互(文件系统、终端、浏览器...)              │  │
│  └──────────────────────┬───────────────────────────┘  │
│                         │                               │
│                         │ 通过                          │
│                         ▼                               │
│  ┌──────────────────────────────────────────────────┐  │
│  │               Agent Loop(执行循环)                │  │
│  │  · 思考(Think)→ 规划下一步                        │  │
│  │  · 行动(Act)→ 调用工具执行                        │  │
│  │  · 观察(Observe)→ 获取结果                        │  │
│  │  · 判断(Judge)→ 是否完成/需要继续                  │  │
│  └──────────────────────────────────────────────────┘  │
│                                                         │
└─────────────────────────────────────────────────────────┘

1.3 相关概念速查

概念英文一句话解释与Agent的关系
AgentAgent能自主行动的AI核心主体
HarnessHarnessAgent的工具箱和运行环境Agent的基础设施
LoopAgent LoopAgent思考-行动-观察的循环Agent的执行机制
ToolToolAgent可以调用的具体功能Harness中的组件
SkillSkill预定义的任务能力模块Agent的可复用能力
ContextContextAgent可用的上下文信息Harness管理的内容
PromptPrompt给AI的指令/提示Agent的输入
OrchestrationOrchestration多Agent的协调编排Agent的协作机制
GroundingGrounding让AI输出基于事实Agent的可靠性保障

第2章 Agent、Harness、Loop一句话定义

2.1 Agent(智能体)

Agent = 一个能自主理解任务、规划步骤、调用工具、执行行动、反思改进的AI系统

关键词:自主、规划、工具、执行、反思

与传统AI的区别:
  传统AI:你问一句,它答一句(被动)
  Agent:你给一个目标,它自己想办法完成(主动)

2.2 Harness(工具箱/运行环境)

Harness = 为Agent提供工具、上下文、权限、环境的基础设施层

关键词:工具注册、上下文管理、权限控制、环境交互

类比:
  如果Agent是一个工人,Harness就是他的工具间+工作台+操作手册

2.3 Loop(执行循环)

Agent Loop = Agent执行任务时"思考→行动→观察→判断"的循环过程

关键词:思考(Think)、行动(Act)、观察(Observe)、判断(Judge)

类比:
  如果Agent是一个厨师,Loop就是他做菜的流程:
  看菜谱(Think) → 切菜炒菜(Act) → 尝味道(Observe) → 判断是否做好(Judge)
  → 没好就继续调整 → 好了就上菜

第3章 三者的关系:一个类比搞懂

3.1 外科手术的类比

想象一个外科手术室:

Agent = 外科医生
  · 有专业知识(医学知识 = AI的预训练知识)
  · 能理解手术目标("切除肿瘤" = 用户指令)
  · 能规划手术步骤(先切开、再分离、再切除...)
  · 能执行具体操作(用手术刀切、用钳子夹...)

Harness = 手术室 + 器械护士
  · 提供手术器械(手术刀、钳子、缝合针 = 工具Tools)
  · 提供患者信息(病历、影像、化验结果 = 上下文Context)
  · 控制手术环境(无菌环境、监护仪、麻醉 = 权限/环境控制)
  · 传递器械(护士把器械递给医生 = 工具调用机制)

Loop = 手术流程
  · 评估患者状态(Think)
  · 执行手术操作(Act)
  · 观察手术效果(Observe)
  · 判断是否继续(Judge:出血量、肿瘤是否切净...)
  · 循环直到手术完成

3.2 编程世界的类比

Agent = 程序员
Harness = IDE(集成开发环境)+ 终端 + 文件系统 + API
Loop = 编程工作流(写代码→运行→看结果→修改→再运行)

具体来说:
  一个AI编程Agent的工作方式:
  
  用户:"帮我写一个贪吃蛇游戏"
  
  Agent Loop第1轮:
    Think:需要创建HTML+CSS+JavaScript文件
    Act:调用write_file工具,写入index.html
    Observe:文件创建成功
    Judge:主文件创建完成,还需要JS逻辑
    
  Agent Loop第2轮:
    Think:需要写游戏逻辑
    Act:调用write_file工具,写入game.js
    Observe:文件创建成功
    Judge:代码写完了,需要测试
    
  Agent Loop第3轮:
    Think:打开浏览器测试
    Act:调用browser工具,打开index.html
    Observe:游戏界面出现了,但蛇不能移动
    Judge:有bug,需要修复键盘事件
    
  Agent Loop第4轮:
    Think:键盘事件监听代码有误
    Act:调用edit_file工具,修复代码
    Observe:重新加载,蛇可以移动了
    Judge:游戏功能正常,任务完成

3.3 三者的本质关系

Agent是"谁"——主体、角色、智能体
Harness是"用什么"——工具、环境、资源
Loop是"怎么做"——流程、循环、工作机制

三者缺一不可:
  · 没有Agent:只有工具和流程,但没有智能来决策和规划
  · 没有Harness:Agent有智能但没有工具可用,"巧妇难为无米之炊"
  · 没有Loop:Agent有工具但不知道如何系统地工作,可能一步做完就停了

第二篇:Agent篇——能自主行动的AI


第4章 什么是Agent

4.1 Agent的正式定义

AI Agent(人工智能智能体)= 一个能够感知环境、自主决策、采取行动以达成目标的AI系统。

核心特征:
  1. 自主性(Autonomy):不需要人类逐步指导,能自己决定下一步做什么
  2. 目标导向(Goal-oriented):有明确的任务目标,并为之努力
  3. 环境感知(Perception):能感知外部环境的状态(通过工具获取信息)
  4. 行动能力(Action):能采取行动改变环境(通过工具执行操作)
  5. 适应性(Adaptability):能根据反馈调整策略

4.2 Agent vs 普通AI应用

维度普通AI应用(如ChatGPT)Agent
交互模式一问一答自主执行多步任务
工具使用无或有限可调用多种外部工具
规划能力无(每次独立响应)有(能制定多步计划)
记忆仅限对话上下文可有长期记忆
执行能力只输出文本可执行代码、操作文件、调用API
反思能力能从错误中学习和调整
典型任务“写一首诗”“帮我搭建一个网站,包含首页、关于页面和联系方式”

4.3 Agent的核心组成

一个完整的Agent包含:

┌─────────────────────────────────────────┐
│               Agent                      │
│                                         │
│  ┌─────────────┐  ┌─────────────────┐  │
│  │   大脑       │  │   感知系统       │  │
│  │  (LLM)      │  │  (输入处理)      │  │
│  │  · 理解任务  │  │  · 文本输入      │  │
│  │  · 推理规划  │  │  · 图像输入      │  │
│  │  · 决策判断  │  │  · 文件输入      │  │
│  └──────┬──────┘  └────────┬────────┘  │
│         │                  │            │
│         ▼                  ▼            │
│  ┌─────────────────────────────────┐   │
│  │         规划与决策模块            │   │
│  │  · 任务分解                       │   │
│  │  · 策略选择                       │   │
│  │  · 工具选择                       │   │
│  └──────────────┬──────────────────┘   │
│                 │                       │
│                 ▼                       │
│  ┌─────────────────────────────────┐   │
│  │         行动执行模块              │   │
│  │  · 调用工具(Tools)             │   │
│  │  · 生成代码                      │   │
│  │  · 操作环境                      │   │
│  └──────────────┬──────────────────┘   │
│                 │                       │
│                 ▼                       │
│  ┌─────────────────────────────────┐   │
│  │         记忆与反思模块            │   │
│  │  · 短期记忆(当前对话)           │   │
│  │  · 长期记忆(历史经验)           │   │
│  │  · 反思与学习                    │   │
│  └─────────────────────────────────┘   │
│                                         │
└─────────────────────────────────────────┘

第5章 Agent的核心能力

5.1 能力一:理解与推理

Agent需要理解用户的意图,并进行推理:

用户:"我的网站加载很慢,帮我优化一下"

Agent的推理过程:
  1. 理解意图:用户想优化网站性能
  2. 分析可能原因:
     - 图片未压缩
     - CSS/JS未合并
     - 没有使用CDN
     - 数据库查询慢
     - ...
  3. 制定计划:
     - 先分析当前性能(用Lighthouse工具)
     - 根据结果逐一优化
     - 验证优化效果

5.2 能力二:规划与分解

Agent能将复杂任务分解为可执行的子任务:

任务:"帮我创建一个Python爬虫,抓取某网站的商品信息并保存为CSV"

Agent的规划:
  Step 1: 分析目标网站的结构
  Step 2: 安装必要的库(requests, beautifulsoup4)
  Step 3: 编写爬虫代码
  Step 4: 测试爬虫
  Step 5: 处理异常和反爬机制
  Step 6: 运行爬虫并保存数据
  Step 7: 验证CSV文件内容

5.3 能力三:工具调用

Agent能调用外部工具来完成任务:

可用工具示例:
  · 代码执行器:运行Python/JavaScript代码
  · 文件操作:读写文件、创建目录
  · 终端命令:执行shell命令
  · 网络搜索:搜索互联网信息
  · API调用:调用第三方服务
  · 浏览器:打开网页、截图
  · 数据库:查询和修改数据

工具调用的格式(通常):
  {
    "tool": "run_code",
    "arguments": {
      "language": "python",
      "code": "print('Hello World')"
    }
  }

5.4 能力四:反思与改进

Agent能从错误中学习和调整:

第1次尝试:运行代码 → 报错:ModuleNotFoundError
反思:缺少依赖包
第2次尝试:安装依赖 → 再次运行 → 报错:IndexError
反思:列表索引越界,需要检查数据长度
第3次尝试:添加边界检查 → 运行成功
判断:任务完成

5.5 能力五:上下文管理

Agent需要管理多轮交互的上下文:

上下文包括:
  · 用户的原始请求
  · Agent的执行历史(做了什么、结果如何)
  · 中间状态(变量、文件、数据)
  · 约束和偏好(用户的限制条件)
  · 长期记忆(之前任务的经验)

第6章 Agent的类型与分类

6.1 按自主程度分类

Level 0:无Agent(传统AI)
  → 一问一答,没有自主性
  → 例子:原始ChatGPT

Level 1:简单Agent
  → 能调用工具,但每步都需要用户确认
  → 例子:ChatGPT + Code Interpreter

Level 2:自主Agent
  → 能自主规划和执行,但可能出错
  → 例子:Devin, Cursor Agent

Level 3:协作Agent
  → 多个Agent协作完成复杂任务
  → 例子:AutoGen, CrewAI

Level 4:完全自主Agent
  → 能独立完成复杂项目,几乎不需要人类干预
  → 目前尚在探索中

6.2 按应用领域分类

类型应用场景代表产品
编程Agent写代码、调试、部署Cursor, Devin, GitHub Copilot
研究Agent搜索信息、分析数据、撰写报告Perplexity, GPT Researcher
操作Agent操作电脑、浏览器、手机Claude Computer Use, Project Mariner
数据Agent数据分析、可视化、报告生成Julius, ChatGPT Data Analysis
客服Agent自动回复客户问题各类客服机器人
工作流Agent自动化业务流程Zapier AI, Make AI

6.3 按架构模式分类

单Agent模式:
  一个Agent独立完成所有工作
  优点:简单、可控
  缺点:能力有限、上下文容易溢出

多Agent模式:
  多个专业Agent协作完成任务
  例子:
    · 规划Agent:负责任务分解
    · 编码Agent:负责写代码
    · 测试Agent:负责测试验证
    · 审查Agent:负责代码审查

层级模式:
  一个主Agent管理多个子Agent
  主Agent负责分配任务和协调
  子Agent负责具体执行

第7章 Agent vs 传统AI应用

7.1 具体对比

场景:用户说"帮我分析这份销售数据,找出最畅销的产品,并生成报告"

传统AI应用(如ChatGPT直接对话):
  用户上传文件 → AI读取数据 → AI在回复中给出分析文本
  局限:
  · 不能自动运行代码来分析数据
  · 不能生成可视化图表文件
  · 不能自动保存报告文件
  · 需要用户手动复制代码并运行

Agent:
  1. 接收文件 → 调用read_file工具读取数据
  2. 分析数据 → 调用run_code工具执行Python分析代码
  3. 生成图表 → 调用run_code工具生成可视化图表
  4. 生成报告 → 调用write_file工具写入报告文件
  5. 返回结果 → 告诉用户报告已生成,附上文件路径
  
  优势:
  · 全自动完成,不需要用户手动操作
  · 能执行代码、操作文件、生成实际产出物
  · 如果中间出错,能自动调试和重试

7.2 为什么Agent是AI的未来

Agent解决了AI的"最后一公里"问题:

传统AI:能说不能做
  → 告诉你怎么做,但不能帮你做

Agent:能说也能做
  → 不仅告诉你怎么做,还帮你做了

这就像:
  传统AI = 一个百科全书(知道所有知识,但不能行动)
  Agent = 一个全能助手(知道所有知识,还能帮你做事)

第三篇:Harness篇——Agent的工具箱与操作系统


第8章 什么是Harness

8.1 Harness的定义

Harness = 为Agent提供运行环境、工具、上下文和约束的基础设施层

"Harness"这个词的原意是"马具/挽具"——套在马身上,让骑手能够控制马匹。
在AI领域,Harness就是"套在LLM身上"的基础设施,让开发者能够控制和增强Agent的能力。

8.2 为什么需要Harness

裸的LLM(如GPT-4 API)只能:
  · 接收文本输入
  · 输出文本回复
  · 不能访问文件系统
  · 不能执行代码
  · 不能调用API
  · 不能上网搜索

Harness赋予LLM"超能力":
  · 工具调用(Tools):让LLM能执行代码、操作文件、调用API
  · 上下文管理(Context):让LLM能记住历史、访问文件、获取实时信息
  · 权限控制(Permissions):限制LLM能做什么、不能做什么
  · 环境交互(Environment):让LLM能与外部世界交互

8.3 Harness在整体架构中的位置

┌──────────────────────────────────────────┐
│               用户                        │
│         (输入任务/指令)                   │
└────────────────┬─────────────────────────┘
                 │
                 ▼
┌──────────────────────────────────────────┐
│               Agent(LLM)                │
│         (理解任务、规划、决策)             │
└────────────────┬─────────────────────────┘
                 │
                 ▼
┌──────────────────────────────────────────┐
│             Harness(基础设施)             │
│                                          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│  │ 工具管理  │ │ 上下文管理│ │ 权限控制  │ │
│  │          │ │          │ │          │ │
│  │ · 代码执行│ │ · 对话历史│ │ · 沙箱   │ │
│  │ · 文件操作│ │ · 文件内容│ │ · 权限   │ │
│  │ · 搜索   │ │ · 系统提示│ │ · 审计   │ │
│  │ · API调用│ │ · 长期记忆│ │ · 限流   │ │
│  └──────────┘ └──────────┘ └──────────┘ │
│                                          │
└────────────────┬─────────────────────────┘
                 │
                 ▼
┌──────────────────────────────────────────┐
│           外部环境                        │
│  · 文件系统 · 终端 · 浏览器 · API · 数据库│
└──────────────────────────────────────────┘

第9章 Harness的核心组件

9.1 组件一:工具管理(Tool Management)

工具管理是Harness最核心的功能——注册、发现、调用工具。

工具注册示例:
{
  "name": "run_python",
  "description": "执行Python代码并返回结果",
  "parameters": {
    "code": {
      "type": "string",
      "description": "要执行的Python代码"
    }
  },
  "returns": {
    "type": "string",
    "description": "代码执行的输出结果"
  }
}

常见工具类型:
  · 代码执行:run_python, run_javascript, run_shell
  · 文件操作:read_file, write_file, edit_file, list_files
  · 网络访问:web_search, fetch_url, browse_web
  · 数据操作:query_database, parse_csv, analyze_data
  · 通信工具:send_email, send_message, make_api_call
  · 系统操作:run_command, check_status, manage_process

9.2 组件二:上下文管理(Context Management)

上下文管理负责维护Agent工作时需要的所有信息。

上下文的组成:
┌─────────────────────────────────────┐
│           上下文(Context)           │
│                                     │
│  ┌─────────────────────────────┐   │
│  │ 系统提示(System Prompt)     │   │
│  │ · Agent的角色定义             │   │
│  │ · 可用工具列表                │   │
│  │ · 行为约束和规则              │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │ 对话历史(Conversation)      │   │
│  │ · 用户的请求                  │   │
│  │ · Agent的回复                 │   │
│  │ · 工具调用和结果              │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │ 工作文件(Working Files)     │   │
│  │ · 当前正在编辑的文件          │   │
│  │ · 生成的中间结果              │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │ 长期记忆(Long-term Memory)  │   │
│  │ · 用户偏好                    │   │
│  │ · 项目知识                    │   │
│  │ · 历史经验                    │   │
│  └─────────────────────────────┘   │
│                                     │
└─────────────────────────────────────┘

9.3 组件三:权限控制(Permission Control)

权限控制确保Agent在安全边界内工作。

权限维度:
  · 工具权限:哪些工具可以使用,哪些禁止
  · 文件权限:可以读写哪些目录,哪些文件只读
  · 网络权限:可以访问哪些URL,是否允许外网
  · 执行权限:可以执行哪些命令,是否需要确认
  · 资源限制:最大执行时间、内存限制、Token限制

安全机制:
  · 沙箱(Sandbox):在隔离环境中执行代码
  · 确认机制(Confirmation):危险操作前需要用户确认
  · 审计日志(Audit Log):记录所有操作以便追溯
  · 限流(Rate Limiting):防止Agent过度消耗资源

9.4 组件四:环境交互(Environment Interaction)

环境交互让Agent能与外部世界交互。

交互方式:
  · 文件系统:读写本地文件
  · 终端/Shell:执行命令行命令
  · 浏览器:打开网页、截图、填表
  · API:调用第三方服务(GitHub, Slack, 数据库等)
  · 操作系统:窗口管理、键盘鼠标操作

环境抽象层:
  Agent不需要知道底层实现细节
  通过统一的工具接口与环境交互
  不同环境(本地/云端/容器)提供相同的工具接口

第10章 Harness的关键机制

10.1 工具描述(Tool Description)

好的工具描述是Agent正确使用工具的关键。

差的工具描述:
  {
    "name": "search",
    "description": "搜索"
  }
  → Agent不知道搜什么、怎么搜、返回什么

好的工具描述:
  {
    "name": "web_search",
    "description": "在互联网上搜索信息。输入搜索关键词,返回搜索结果列表。每个结果包含标题、URL和摘要。适用于需要查找最新信息、验证事实、获取参考资料的场景。",
    "parameters": {
      "query": {
        "type": "string",
        "description": "搜索关键词,建议使用简洁明确的关键词",
        "required": true
      },
      "num_results": {
        "type": "integer",
        "description": "返回结果数量,默认5,最大10",
        "required": false,
        "default": 5
      }
    }
  }
  → Agent清楚地知道这个工具能做什么、怎么用、返回什么

10.2 上下文窗口管理

LLM有上下文窗口限制(如128K token),Harness需要管理上下文不超限。

管理策略:
  1. 滑动窗口:保留最近的N轮对话,丢弃早期的
  2. 摘要压缩:将早期对话压缩为摘要
  3. 重要性排序:保留重要的上下文,丢弃不重要的
  4. 外部存储:将不常用的上下文存储到外部(如数据库),按需加载

示例:
  原始对话历史:50轮,约100K token
  → 滑动窗口保留最近10轮:约20K token
  → 早期40轮压缩为摘要:约2K token
  → 总上下文:约22K token(在限制内)

10.3 系统提示设计

系统提示(System Prompt)定义了Agent的角色、能力和行为规范。

示例系统提示:
┌──────────────────────────────────────────────────┐
│ 你是一个专业的软件开发助手。                        │
│                                                  │
│ 能力:                                            │
│ · 你可以读写文件、执行代码、搜索信息                │
│ · 你可以分析需求、设计方案、编写代码                │
│ · 你可以调试程序、运行测试、部署应用                │
│                                                  │
│ 规则:                                            │
│ · 在修改文件前,先读取当前内容                      │
│ · 在执行可能有副作用的操作前,先向用户确认           │
│ · 如果遇到错误,先分析原因再尝试修复                │
│ · 代码要写注释,保持良好的代码风格                  │
│ · 完成任务后,总结做了什么                          │
│                                                  │
│ 可用工具:                                         │
│ [工具列表会在运行时动态注入]                         │
└──────────────────────────────────────────────────┘

第11章 Harness的工程实践

11.1 模块化设计

好的Harness应该是模块化的,各组件可插拔:

┌─────────────────────────────────────┐
│            Harness 框架              │
│                                     │
│  ┌─────────────────────────────┐   │
│  │      Tool Registry           │   │
│  │  · 注册工具                   │   │
│  │  · 发现工具                   │   │
│  │  · 调用工具                   │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │      Context Manager         │   │
│  │  · 管理对话历史               │   │
│  │  · 管理文件上下文             │   │
│  │  · 管理长期记忆               │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │      Permission Manager      │   │
│  │  · 权限检查                   │   │
│  │  · 沙箱管理                   │   │
│  │  · 审计日志                   │   │
│  └─────────────────────────────┘   │
│                                     │
│  ┌─────────────────────────────┐   │
│  │      Environment Adapter     │   │
│  │  · 文件系统适配               │   │
│  │  · 终端适配                   │   │
│  │  · 浏览器适配                 │   │
│  │  · API适配                    │   │
│  └─────────────────────────────┘   │
│                                     │
└─────────────────────────────────────┘

11.2 Harness Engineering(工具箱工程)

Harness Engineering = 设计和构建Agent运行环境的工程实践

核心工作:
  1. 工具设计:定义Agent可以使用哪些工具,每个工具的接口是什么
  2. 上下文设计:决定哪些信息应该放入Agent的上下文
  3. 权限设计:确定Agent的安全边界
  4. 提示设计:设计系统提示,引导Agent的行为
  5. 错误处理:设计工具调用失败时的处理策略
  6. 性能优化:减少不必要的工具调用,优化上下文大小

关键原则:
  · 工具描述要清晰:Agent通过描述来理解工具的用途
  · 工具数量要适中:太少限制能力,太多增加选择难度
  · 上下文要精简:只放必要信息,避免噪声干扰
  · 权限要最小化:只给Agent完成任务所需的最小权限
  · 错误要友好:工具失败时返回清晰的错误信息

第四篇:Loop篇——Agent思考和行动的循环


第12章 什么是Agent Loop

12.1 Agent Loop的定义

Agent Loop = Agent执行任务时不断重复的"思考→行动→观察→判断"循环

核心思想:
  Agent不是一次性完成任务的
  而是通过多轮循环,逐步逼近目标
  每一轮循环,Agent都会:
    1. 思考当前状态和下一步计划
    2. 采取一个具体行动
    3. 观察行动的结果
    4. 判断是否完成目标
    5. 如果没有完成,回到第1步继续

12.2 为什么需要Loop

为什么Agent不能一次性完成所有事情?

1. 信息不完整:Agent一开始不知道所有信息,需要通过行动获取
   例如:不知道文件内容,需要先读取才能编辑

2. 任务复杂:复杂任务需要多步完成
   例如:创建网站需要创建多个文件、安装依赖、测试运行

3. 需要验证:行动的结果需要检验
   例如:写了代码需要运行看看是否正确

4. 可能出错:第一次尝试可能失败,需要调整策略
   例如:代码有bug需要调试修复

Loop让Agent能够:
  · 渐进式地完成任务
  · 从错误中恢复
  · 根据中间结果调整策略
  · 在每一步都做出最优决策

12.3 Agent Loop的生命周期

一个完整的Agent Loop生命周期:

  开始
    │
    ▼
  ┌──────────────┐
  │ 接收用户任务   │
  └──────┬───────┘
         │
         ▼
  ┌──────────────┐
  │ 理解任务意图   │ ← LLM分析用户需求
  └──────┬───────┘
         │
         ▼
  ┌──────────────┐
  │ 制定执行计划   │ ← LLM规划步骤
  └──────┬───────┘
         │
         ▼
  ┌──────────────────────────────────────┐
  │           Agent Loop 循环             │
  │                                      │
  │  ┌─────────┐                         │
  │  │  Think   │ ← 思考当前状态和下一步  │
  │  └────┬────┘                         │
  │       │                              │
  │       ▼                              │
  │  ┌─────────┐                         │
  │  │   Act    │ ← 调用工具执行行动      │
  │  └────┬────┘                         │
  │       │                              │
  │       ▼                              │
  │  ┌─────────┐                         │
  │  │ Observe  │ ← 获取行动结果          │
  │  └────┬────┘                         │
  │       │                              │
  │       ▼                              │
  │  ┌─────────┐    是                   │
  │  │  Judge   │ ─────────→ 任务完成    │
  │  │ 完成?   │                         │
  │  └────┬────┘                         │
  │       │否                            │
  │       └────→ 回到 Think ────────────┘│
  │                                      │
  └──────────────────────────────────────┘
         │
         ▼
  ┌──────────────┐
  │ 返回结果给用户 │
  └──────────────┘

第13章 Loop的详细流程

13.1 Think(思考)

Think阶段:Agent分析当前状态,决定下一步做什么。

Agent的思考过程(由LLM完成):
  · 回顾:我做了什么?结果如何?
  · 分析:当前状态是什么?有什么问题?
  · 规划:下一步应该做什么?用什么工具?
  · 决策:选择最优的行动方案

思考的输出:
  · 内部推理文本(Chain of Thought)
  · 选择的工具和参数

示例:
  当前状态:用户要求创建一个网页,我已经创建了HTML文件
  分析:HTML文件已创建,但还没有CSS样式
  规划:下一步创建CSS文件来美化页面
  决策:调用write_file工具,写入style.css

13.2 Act(行动)

Act阶段:Agent执行具体的行动,通常是调用一个工具。

行动的格式:
  {
    "thought": "需要创建CSS文件来美化页面",
    "action": "write_file",
    "action_input": {
      "path": "style.css",
      "content": "body { font-family: Arial; margin: 0; padding: 20px; }"
    }
  }

行动的特点:
  · 每次行动通常只调用一个工具(原子操作)
  · 行动的参数由Think阶段的决策决定
  · 行动会产一个具体的结果

13.3 Observe(观察)

Observe阶段:Agent获取行动的结果。

观察的内容:
  · 工具调用的返回值
  · 执行是否成功
  · 任何错误信息
  · 环境的变化

示例:
  工具调用:write_file("style.css", "body { ... }")
  观察结果:
    {
      "status": "success",
      "message": "文件 style.css 已创建",
      "path": "/project/style.css"
    }

  或者失败情况:
    {
      "status": "error",
      "message": "权限不足,无法写入 /protected/style.css"
    }

13.4 Judge(判断)

Judge阶段:Agent评估当前状态,决定是继续还是结束。

判断依据:
  · 原始任务是否已完成?
  · 是否遇到了无法解决的问题?
  · 是否需要用户输入更多信息?
  · 是否达到了最大循环次数?

判断结果:
  · 继续(Continue):回到Think阶段继续
  · 完成(Done):任务已完成,返回结果
  · 失败(Failed):无法完成任务,返回错误说明
  · 需要输入(Need Input):需要用户提供更多信息

示例:
  任务:"创建一个包含首页和关于页面的网站"
  已完成:创建了index.html和style.css
  未完成:还没有创建about.html
  判断:继续 → 回到Think阶段创建about.html

第14章 Loop中的关键设计

14.1 循环终止条件

必须设置终止条件,防止Agent无限循环:

终止条件:
  1. 任务完成:Agent判断任务已完成
  2. 最大循环次数:如最多50轮循环
  3. 最大Token消耗:如最多消耗100K token
  4. 最大时间:如最多运行10分钟
  5. 连续失败:如连续3次行动失败
  6. 用户中断:用户手动停止

示例代码:
  max_iterations = 50
  iteration = 0
  
  while iteration < max_iterations:
      thought = agent.think(context)
      action = agent.decide_action(thought)
      result = execute_tool(action)
      observation = agent.observe(result)
      
      if agent.judge_complete(observation):
          return agent.get_final_result()
      
      context.update(thought, action, result, observation)
      iteration += 1
  
  return "任务未能在限定循环次数内完成"

14.2 错误处理与重试

Loop中的错误处理策略:

策略一:直接重试
  工具调用失败 → 稍微修改参数 → 重新调用
  适用于:临时性错误(如网络超时)

策略二:换一种方法
  方法A失败 → Think阶段分析原因 → 选择方法B
  适用于:方法选择错误(如用错了工具)

策略三:请求帮助
  自己解决不了 → 向用户请求更多信息或指导
  适用于:信息不足或权限不够

策略四:优雅降级
  完美方案做不到 → 退而求其次
  适用于:资源或能力限制

示例:
  Loop 1: 读取文件 → 失败(文件不存在)
  Think: 文件不存在,可能路径有误
  Loop 2: 列出目录文件 → 成功,发现文件名不同
  Think: 找到了正确的文件名
  Loop 3: 读取正确文件 → 成功

14.3 上下文更新

每轮循环后,需要更新Agent的上下文:

上下文更新内容:
  · 添加本轮的思考过程
  · 添加本轮的工具调用和结果
  · 更新当前状态
  · 更新任务进度

上下文压缩(防止溢出):
  · 保留最近N轮的完整记录
  · 将更早的记录压缩为摘要
  · 保留关键信息(错误、重要结果)
  · 丢弃冗余信息(重复的中间状态)

14.4 单步 vs 多步执行

单步执行模式:
  Think → Act(工具A) → Observe → Judge
  Think → Act(工具B) → Observe → Judge
  Think → Act(工具C) → Observe → Judge
  
  每轮只执行一个工具调用
  优点:简单、可控
  缺点:轮次多、慢

多步执行模式:
  Think → Act(工具A) → Act(工具B) → Act(工具C) → Observe → Judge
  
  一轮中连续执行多个工具调用
  优点:快、效率高
  缺点:错误处理复杂

实际中通常使用单步模式,因为:
  · 每步的结果可能影响下一步的决策
  · 单步模式更容易调试和理解
  · 错误更容易定位和处理

第15章 Loop的高级模式

15.1 ReAct模式(Reasoning + Acting)

ReAct = 推理(Reasoning) + 行动(Acting)

最经典的Agent Loop模式,由论文"ReAct: Synergizing Reasoning and Acting in Language Models"提出。

核心思想:
  在每一步行动前,先进行显式的推理
  推理和行动交替进行

流程:
  Thought: 我需要找到Python的版本
  Action: run_command("python --version")
  Observation: Python 3.10.12
  Thought: 确认Python版本是3.10,可以使用match语句
  Action: write_file("main.py", "match ...")
  Observation: 文件创建成功
  Thought: 代码已写好,需要测试
  Action: run_command("python main.py")
  Observation: 输出正确
  Thought: 任务完成
  Final Answer: 已创建main.py文件并测试通过

15.2 Plan-and-Execute模式

先制定完整计划,然后逐步执行。

流程:
  Step 1: Plan(规划)
    Agent制定完整的任务计划:
    1. 创建项目目录
    2. 创建HTML文件
    3. 创建CSS文件
    4. 创建JS文件
    5. 测试运行
    
  Step 2: Execute(执行)
    按照计划逐步执行,每步一个Loop
    
  Step 3: Re-plan(重新规划,可选)
    如果某步失败或发现新信息,可能需要修改计划

优点:
  · 有全局视野,不会迷失方向
  · 用户可以在执行前审核计划
  · 更适合复杂任务

缺点:
  · 初始计划可能不准确
  · 灵活性不如ReAct

15.3 Reflection模式

在行动后增加反思环节,从经验中学习。

流程:
  Think → Act → Observe → Reflect → Judge
                        ↑
                   反思环节
                   · 这步做得对吗?
                   · 有没有更好的方法?
                   · 学到了什么经验?

反思的作用:
  · 避免重复犯同样的错误
  · 发现更好的解决方案
  · 积累任务特定的经验

示例:
  Loop 1: 尝试用requests库爬取网页 → 返回403
  Reflect: 网站有反爬机制,需要添加User-Agent
  
  Loop 2: 添加User-Agent头 → 成功获取数据
  Reflect: 爬虫需要模拟浏览器行为
  (这个经验可用于后续爬虫任务)

15.4 Multi-Agent Loop

多个Agent协作,每个Agent有自己的Loop。

模式一:顺序协作
  Agent A完成 → 结果传给Agent B → Agent B完成 → 结果传给Agent C

模式二:并行协作
  Agent A和Agent B同时执行不同子任务 → 合并结果

模式三:层级协作
  主Agent分解任务 → 分配给子Agent → 子Agent执行 → 汇报给主Agent

示例(代码审查场景):
  主Agent:接收代码审查请求,分配任务
  编码Agent:分析代码逻辑
  安全Agent:检查安全漏洞
  性能Agent:分析性能问题
  主Agent:汇总各Agent的发现,生成审查报告

第五篇:融合篇——Agent+Harness+Loop的完整架构


第16章 完整架构详解

16.1 完整架构图

┌─────────────────────────────────────────────────────────────┐
│                        用户界面                              │
│                  (Web/CLI/API/Mobile)                       │
└──────────────────────────┬──────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────┐
│                    Agent(智能体)                             │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              LLM(大语言模型)                         │   │
│  │              · 理解、推理、规划、决策                   │   │
│  └──────────────────────┬──────────────────────────────┘   │
│                         │                                   │
│  ┌──────────────────────▼──────────────────────────────┐   │
│  │              Agent Loop(执行循环)                    │   │
│  │              · Think → Act → Observe → Judge          │   │
│  │              · 循环控制、错误处理、终止条件             │   │
│  └──────────────────────┬──────────────────────────────┘   │
│                         │                                   │
└─────────────────────────┼───────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                   Harness(基础设施)                          │
│                                                             │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐        │
│  │  Tool Registry│ │Context Manager│ │Permission Mgr │        │
│  │              │ │              │ │              │        │
│  │ · 代码执行   │ │ · 系统提示   │ │ · 沙箱       │        │
│  │ · 文件操作   │ │ · 对话历史   │ │ · 权限检查   │        │
│  │ · 网络搜索   │ │ · 文件上下文 │ │ · 审计日志   │        │
│  │ · API调用    │ │ · 长期记忆   │ │ · 限流       │        │
│  │ · 浏览器     │ │ · 压缩管理   │ │ · 确认机制   │        │
│  └──────┬───────┘ └──────┬───────┘ └──────┬───────┘        │
│         │                │                │                 │
│         └────────────────┼────────────────┘                 │
│                          │                                  │
│  ┌───────────────────────▼──────────────────────────────┐  │
│  │              Environment Adapter(环境适配器)         │  │
│  │  · 文件系统 · 终端 · 浏览器 · API · 数据库           │  │
│  └──────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

16.2 一次完整的Agent执行流程

用户:"帮我创建一个TODO应用,支持添加、删除和标记完成功能"

═══════════════════════════════════════════════════
Agent Loop 第1轮
═══════════════════════════════════════════════════

Think:
  用户要一个TODO应用,需要添加、删除、标记完成。
  我应该创建一个简单的Web应用,使用HTML+CSS+JavaScript。
  计划:
  1. 创建index.html(主页面)
  2. 创建style.css(样式)
  3. 创建app.js(逻辑)
  4. 测试运行
  
  先创建HTML文件。

Act: 调用 write_file 工具
  path: "todo/index.html"
  content: "<!DOCTYPE html>..."

Observe: 文件创建成功

Judge: HTML文件创建完成,继续

═══════════════════════════════════════════════════
Agent Loop 第2轮
═══════════════════════════════════════════════════

Think: HTML已创建,接下来创建CSS样式文件。

Act: 调用 write_file 工具
  path: "todo/style.css"
  content: "body { font-family: Arial; }..."

Observe: 文件创建成功

Judge: CSS文件创建完成,继续

═══════════════════════════════════════════════════
Agent Loop 第3轮
═══════════════════════════════════════════════════

Think: CSS已创建,接下来创建JavaScript逻辑文件。

Act: 调用 write_file 工具
  path: "todo/app.js"
  content: "function addTodo() { ... }..."

Observe: 文件创建成功

Judge: JS文件创建完成,需要测试

═══════════════════════════════════════════════════
Agent Loop 第4轮
═══════════════════════════════════════════════════

Think: 代码已写完,打开浏览器测试。

Act: 调用 open_browser 工具
  url: "todo/index.html"

Observe: 页面打开了,可以添加TODO,但删除按钮不工作

Judge: 发现bug,需要修复

═══════════════════════════════════════════════════
Agent Loop 第5轮
═══════════════════════════════════════════════════

Think: 删除按钮不工作,可能是事件绑定问题。检查app.js中的deleteTodo函数。

Act: 调用 read_file 工具
  path: "todo/app.js"

Observe: 发现deleteTodo函数中的选择器写错了

Think: 找到问题,修复选择器。

Act: 调用 edit_file 工具
  path: "todo/app.js"
  old: "querySelector('.wrong-class')"
  new: "querySelector('.delete-btn')"

Observe: 代码修改成功

Judge: 修复完成,需要重新测试

═══════════════════════════════════════════════════
Agent Loop 第6轮
═══════════════════════════════════════════════════

Think: 重新测试应用。

Act: 调用 open_browser 工具
  url: "todo/index.html"

Observe: 应用正常工作,添加、删除、标记完成都正常

Judge: 任务完成!

═══════════════════════════════════════════════════
返回结果
═══════════════════════════════════════════════════

"TODO应用已创建完成,包含以下文件:
 - todo/index.html(主页面)
 - todo/style.css(样式文件)
 - todo/app.js(逻辑文件)
功能:添加TODO、删除TODO、标记完成
中间修复了一个删除按钮的bug。"

第17章 经典框架对比

17.1 主流Agent框架

框架开发者特点AgentHarnessLoop
LangChainLangChain最流行的Agent框架
LangGraphLangChain基于图的Agent编排
AutoGenMicrosoft多Agent对话框架
CrewAICrewAI角色扮演多Agent
Claude CodeAnthropicCLI编程Agent
CursorCursorIDE编程Agent
DevinCognition自主编程Agent
OpenAI Agents SDKOpenAIOpenAI官方Agent框架

17.2 LangChain Agent

LangChain是最流行的Agent开发框架。

核心组件:
  · LLM:大语言模型(如GPT-4, Claude)
  · Tools:工具列表(搜索、计算、API等)
  · Agent:决策器(决定用什么工具)
  · AgentExecutor:执行器(管理Agent Loop)

代码示例:
  from langchain.agents import AgentExecutor, create_react_agent
  from langchain_openai import ChatOpenAI
  from langchain.tools import Tool
  
  # 定义工具
  tools = [
      Tool(name="Search", func=search_func, description="搜索互联网"),
      Tool(name="Calculator", func=calc_func, description="数学计算"),
  ]
  
  # 创建Agent
  llm = ChatOpenAI(model="gpt-4")
  agent = create_react_agent(llm, tools, prompt)
  
  # 创建执行器(包含Agent Loop)
  executor = AgentExecutor(agent=agent, tools=tools, max_iterations=10)
  
  # 运行
  result = executor.invoke({"input": "北京今天天气怎么样?"})

17.3 Claude Code(Anthropic的编程Agent)

Claude Code是一个命令行编程Agent。

架构特点:
  · Agent:Claude(Anthropic的LLM)
  · Harness:命令行环境 + 文件系统 + 终端
  · Loop:Think → Act(工具调用) → Observe → 循环

可用工具:
  · read_file:读取文件
  · write_file:写入文件
  · edit_file:编辑文件
  · run_command:执行终端命令
  · search_files:搜索文件内容
  · list_files:列出目录文件

Loop流程:
  用户输入任务 → Claude思考 → 调用工具 → 获取结果 → 继续思考 → ...
  直到任务完成或达到限制

17.4 OpenAI Agents SDK

OpenAI官方的Agent开发框架。

核心概念:
  · Agent:智能体,配置LLM + 工具 + 指令
  · Tool:工具,Agent可以调用的功能
  · Handoff:交接,Agent之间的任务传递
  · Guardrail:护栏,输入输出的安全检查
  · Runner:运行器,管理Agent Loop

代码示例:
  from openai import Agent, Tool, Runner
  
  agent = Agent(
      name="Assistant",
      instructions="你是一个有帮助的助手",
      model="gpt-4",
      tools=[
          Tool(function=search_web),
          Tool(function=run_code),
      ]
  )
  
  result = Runner.run(agent, "帮我分析这份数据")

第18章 实战案例

18.1 案例一:数据分析Agent

任务:"分析sales.csv数据,找出最畅销的产品,生成可视化图表"

Agent Loop流程:

第1轮(理解任务):
  Think: 需要读取CSV文件,分析数据,生成图表
  Act: read_file("sales.csv")
  Observe: 文件内容(前几行数据)

第2轮(数据探索):
  Think: 数据包含product_name, quantity, price列
  Act: run_code("import pandas as pd; df = pd.read_csv('sales.csv'); print(df.describe())")
  Observe: 数据统计摘要

第3轮(分析计算):
  Think: 需要按产品汇总销量
  Act: run_code("top_products = df.groupby('product_name')['quantity'].sum().sort_values(ascending=False).head(10)")
  Observe: 最畅销的10个产品

第4轮(生成图表):
  Think: 用matplotlib生成柱状图
  Act: run_code("import matplotlib.pyplot as plt; ... plt.savefig('top_products.png')")
  Observe: 图表已保存

第5轮(生成报告):
  Think: 写一份分析报告
  Act: write_file("report.md", "# 销售数据分析报告\n...")
  Observe: 报告已生成

Judge: 任务完成

18.2 案例二:网站开发Agent

任务:"创建一个个人博客网站,包含首页、文章列表和关于页面"

Plan阶段:
  Agent制定计划:
  1. 创建项目结构
  2. 创建首页(index.html)
  3. 创建文章列表页(articles.html)
  4. 创建关于页面(about.html)
  5. 创建CSS样式
  6. 创建JavaScript交互
  7. 测试运行

Execute阶段(每步一个Loop):
  Loop 1-7: 逐步创建各文件
  Loop 8: 测试运行,发现问题
  Loop 9-10: 修复问题
  Loop 11: 最终验证

输出:
  完整的博客网站代码,包含所有页面和样式

第六篇:AI Coding深度篇——Harness Engineering在AI编程中的实践

本篇是整份文档的核心补充。AI Coding是Agent+Harness+Loop最成熟的应用场景,Harness Engineering在这个领域有最深入的实践和最清晰的方法论。


第21章 AI Coding的演进:从补全到Agent

21.1 AI Coding的四个阶段

阶段一:代码补全(2021-2022)
  代表:GitHub Copilot(基于Codex)
  能力:根据上下文预测下一行代码
  交互:Tab键接受建议
  局限:只能补全,不能理解意图

阶段二:代码对话(2023)
  代表:ChatGPT + Code Interpreter, Cursor Chat
  能力:用自然语言描述需求,AI生成代码片段
  交互:对话式,一问一答
  局限:需要人工复制粘贴代码,不能自主执行

阶段三:代码Agent(2024)
  代表:Cursor Agent, Claude Code, Windsurf
  能力:自主规划、编写、测试、调试代码
  交互:给一个目标,Agent自主完成
  突破:从"写代码"变成"完成项目"

阶段四:自主开发(2025+)
  代表:Devin, OpenHands, Claude Code with MCP
  能力:端到端完成软件开发任务
  交互:描述需求 → Agent完成全部工作
  目标:替代初级开发者的工作

21.2 AI Coding Agent的核心能力

一个完整的AI Coding Agent需要:

1. 理解需求
   · 理解自然语言描述的功能需求
   · 理解已有代码的结构和逻辑
   · 理解项目的技术栈和约束

2. 代码生成
   · 生成符合项目风格的代码
   · 处理多文件联动修改
   · 生成测试用例

3. 代码执行
   · 运行代码验证正确性
   · 执行测试套件
   · 启动开发服务器

4. 调试修复
   · 分析错误信息
   · 定位问题根源
   · 自动修复bug

5. 环境操作
   · 安装依赖包
   · 配置环境变量
   · 操作文件系统
   · 使用Git进行版本控制

6. 持续迭代
   · 根据反馈修改代码
   · 优化性能
   · 重构代码

第22章 Harness Engineering:AI Coding的核心方法论

22.1 什么是Harness Engineering

Harness Engineering = 设计和构建AI Coding Agent运行环境的工程实践

核心问题:
  给定一个LLM(如Claude, GPT-4),如何构建一个环境,
  让它能够像一个真正的开发者一样工作?

这个环境(Harness)需要解决:
  · Agent能看到什么?(上下文:代码库、文件、终端输出)
  · Agent能做什么?(工具:读写文件、执行命令、搜索代码)
  · Agent的安全边界在哪?(权限:哪些目录可写、哪些命令可执行)
  · Agent的行为如何引导?(系统提示:角色定义、编码规范、工作流程)

22.2 Harness Engineering的五大支柱

┌─────────────────────────────────────────────────────────────┐
│                    Harness Engineering                       │
│                                                             │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐           │
│  │  1.上下文工程 │ │  2.工具工程  │ │  3.提示工程  │           │
│  │  Context     │ │  Tools      │ │  Prompt     │           │
│  │  Engineering │ │  Engineering│ │  Engineering│           │
│  └─────────────┘ └─────────────┘ └─────────────┘           │
│                                                             │
│  ┌─────────────┐ ┌─────────────┐                           │
│  │  4.权限工程  │ │  5.反馈工程  │                           │
│  │  Permission  │ │  Feedback   │                           │
│  │  Engineering │ │  Engineering│                           │
│  └─────────────┘ └─────────────┘                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

22.3 支柱一:上下文工程(Context Engineering)

上下文工程是Harness Engineering中最核心、最被低估的部分。

上下文工程 = 决定"把什么信息放入Agent的上下文窗口"

上下文窗口是Agent的"工作记忆":
  · 太少信息 → Agent不了解项目,做出错误决策
  · 太多信息 → 超出窗口限制,或者噪声干扰推理
  · 错误信息 → Agent被误导,产生幻觉

上下文工程的核心挑战:
  LLM的上下文窗口有限(如200K token)
  但一个代码项目可能有数百万行代码
  如何从海量代码中选出最关键的信息?

上下文的四大来源

来源一:系统提示(System Prompt)
  · Agent的角色定义("你是一个资深Python开发者")
  · 行为规范("修改文件前先读取当前内容")
  · 编码规范("使用TypeScript严格模式")
  · 项目约定("本项目使用pnpm作为包管理器")

来源二:用户输入(User Input)
  · 用户的任务描述
  · 用户的补充说明
  · 用户的反馈和修正

来源三:代码库上下文(Codebase Context)
  · 当前打开的文件
  · 相关的依赖文件
  · 项目结构概览
  · Git历史(最近的提交、变更)

来源四:工具输出(Tool Output)
  · 文件读取的结果
  · 命令执行的输出
  · 搜索的结果
  · 错误信息

上下文选择策略

策略一:基于相关性的选择
  · 分析用户问题涉及哪些文件
  · 只加载相关文件的内容
  · 使用AST(抽象语法树)分析代码依赖关系

策略二:基于层次的选择
  · 第一层:当前文件(完整内容)
  · 第二层:直接依赖文件(完整内容)
  · 第三层:间接依赖文件(只加载函数签名)
  · 第四层:项目结构概览(目录树+文件描述)

策略三:基于时间的选择
  · 最近修改的文件(可能与当前任务相关)
  · 最近查看的文件(用户关注的区域)
  · Git最近的变更(了解项目最新状态)

策略四:基于搜索的选择
  · 用户提到的关键词 → 搜索代码库
  · 错误信息中的文件名 → 加载相关文件
  · 测试失败的堆栈 → 加载相关代码

上下文压缩技术

当上下文超出窗口限制时,需要压缩:

技术一:摘要压缩
  将长文件压缩为关键信息:
  原始:1000行的utils.py
  压缩:"utils.py包含以下函数:
        - formatDate(date): 格式化日期
        - validateEmail(email): 邮箱验证
        - debounce(fn, delay): 防抖函数
        - throttle(fn, limit): 节流函数"

技术二:差异压缩
  只展示修改前后的差异,而非完整文件:
  原始:修改前完整文件 + 修改后完整文件
  压缩:只展示变更的行和上下文

技术三:按需加载
  不预加载所有文件,当Agent需要时再加载:
  Agent: "我需要查看auth.ts的内容"
  Harness: [加载auth.ts并注入上下文]

技术四:层次化摘要
  对于大型代码库,提供多层次的概览:
  Level 0: 项目描述(1段话)
  Level 1: 目录结构(文件夹+文件名)
  Level 2: 模块概述(每个文件的函数列表)
  Level 3: 完整代码(按需加载)

22.4 支柱二:工具工程(Tools Engineering)

工具工程 = 设计Agent可以使用的工具集

AI Coding Agent的典型工具集:

┌─────────────────────────────────────────────────┐
│               AI Coding 工具集                    │
│                                                 │
│  文件操作:                                      │
│  · read_file(path) → 文件内容                    │
│  · write_file(path, content) → 创建/覆盖文件     │
│  · edit_file(path, old, new) → 精确编辑          │
│  · list_files(dir) → 目录结构                    │
│  · search_files(pattern) → 搜索文件内容           │
│                                                 │
│  代码执行:                                      │
│  · run_command(cmd) → 执行终端命令                │
│  · run_test(test_path) → 运行测试                │
│  · start_server(port) → 启动开发服务器            │
│                                                 │
│  代码分析:                                      │
│  · get_definitions(file) → 获取函数/类定义        │
│  · find_references(symbol) → 查找引用             │
│  · get_diagnostics(file) → 获取错误/警告          │
│                                                 │
│  版本控制:                                      │
│  · git_diff() → 查看变更                         │
│  · git_commit(msg) → 提交代码                    │
│  · git_log(n) → 查看提交历史                     │
│                                                 │
│  网络访问:                                      │
│  · web_search(query) → 搜索互联网                │
│  · fetch_url(url) → 获取网页内容                 │
│                                                 │
└─────────────────────────────────────────────────┘

工具设计的关键原则

原则一:原子性
  每个工具只做一件事
  好:read_file, write_file, edit_file(三个工具)
  差:manage_file(action, ...)(一个工具做三件事)

原则二:自描述性
  工具的描述要让Agent清楚知道何时使用
  好:"edit_file: 精确编辑文件中的特定内容。
      适用于修改少量代码行。
      输入:文件路径、要查找的原文、替换的新文。
      注意:原文必须与文件内容完全匹配。"
  差:"edit_file: 编辑文件"

原则三:安全性
  危险操作要有保护机制
  · write_file: 覆盖前检查文件是否已存在
  · run_command: 某些命令(rm -rf)需要确认
  · git_commit: 提交前显示diff

原则四:反馈性
  工具执行后要返回清晰的结果
  成功:"文件已保存到 /src/app.ts"
  失败:"错误:权限不足,无法写入 /etc/config"
  警告:"文件已存在,将被覆盖"

原则五:组合性
  工具可以组合使用完成复杂任务
  例如:search_files找到位置 → read_file读取内容 → edit_file修改代码

22.5 支柱三:提示工程(Prompt Engineering for Coding)

AI Coding的提示工程有其特殊性:

系统提示的结构:
┌──────────────────────────────────────────────┐
│ 角色定义                                      │
│ "你是一个资深的全栈开发者,精通TypeScript、     │
│  React、Node.js。你注重代码质量和最佳实践。"     │
├──────────────────────────────────────────────┤
│ 项目上下文                                     │
│ "这是一个Next.js 14项目,使用App Router。       │
│  数据库是PostgreSQL,ORM使用Prisma。           │
│  包管理器是pnpm。"                             │
├──────────────────────────────────────────────┤
│ 编码规范                                       │
│ "· 使用TypeScript严格模式                       │
│  · 组件使用函数式写法                           │
│  · 异步操作使用async/await                      │
│  · 错误处理使用try-catch                        │
│  · 变量命名使用camelCase                        │
│  · 组件命名使用PascalCase"                      │
├──────────────────────────────────────────────┤
│ 工作流程                                       │
│ "1. 修改文件前,先读取当前内容                   │
│  2. 修改后,运行相关测试验证                     │
│  3. 如果测试失败,分析原因并修复                 │
│  4. 完成后,总结修改内容"                        │
├──────────────────────────────────────────────┤
│ 安全规则                                       │
│ "· 不要删除用户数据                             │
│  · 不要修改.env文件中的敏感信息                 │
│  · 执行rm命令前要确认                           │
│  · 不要提交包含密钥的代码"                      │
└──────────────────────────────────────────────┘

上下文注入的最佳实践

实践一:动态注入工具列表
  不要在系统提示中硬编码工具列表
  而是在每次请求时动态注入当前可用的工具
  
  原因:
  · 工具列表可能变化
  · 不同场景下可用工具不同
  · 减少系统提示的长度

实践二:注入相关代码片段
  当用户提到某个文件或函数时,
  自动将相关代码注入上下文
  
  用户:"修改UserService的login方法"
  → 自动注入:UserService.ts的完整内容

实践三:注入错误信息
  当代码执行失败时,
  将完整的错误信息(包括堆栈)注入上下文
  
  这帮助Agent:
  · 理解错误的类型
  · 定位错误的位置
  · 分析错误的原因

实践四:注入测试结果
  运行测试后,
  将测试结果注入上下文
  
  通过:3个测试通过
  失败:test_login - AssertionError: expected 200, got 401
  → Agent知道需要修复login相关的代码

22.6 支柱四:权限工程(Permission Engineering)

权限工程 = 定义Agent的安全边界

AI Coding Agent的权限矩阵:

┌──────────────┬────────────┬────────────┬────────────┐
│   操作        │   只读目录  │   项目目录  │   系统目录  │
├──────────────┼────────────┼────────────┼────────────┤
│ 读取文件      │     ✅     │     ✅     │     ⚠️     │
│ 写入文件      │     ❌     │     ✅     │     ❌     │
│ 执行命令      │     ⚠️     │     ✅     │     ❌     │
│ 安装依赖      │     ❌     │     ✅     │     ❌     │
│ 删除文件      │     ❌     │     ⚠️     │     ❌     │
│ 网络访问      │     ✅     │     ✅     │     ⚠️     │
└──────────────┴────────────┴────────────┴────────────┘
  ✅ 允许  ⚠️ 需要确认  ❌ 禁止

确认机制的设计:
  危险操作前暂停,等待用户确认
  
  Agent: "我需要删除 temp/ 目录下的所有文件"
  Harness: "⚠️ 即将执行:rm -rf temp/*
           这将删除以下文件:
           - temp/cache.json
           - temp/debug.log
           确认执行?(y/n)"
  用户: "y"
  Harness: [执行命令]

22.7 支柱五:反馈工程(Feedback Engineering)

反馈工程 = 设计Agent如何获取和利用执行反馈

反馈的类型:

1. 编译/运行反馈
   代码执行后的输出:
   · 成功:程序正常运行,输出结果
   · 失败:编译错误、运行时异常
   · 警告:类型警告、弃用警告

2. 测试反馈
   测试执行后的结果:
   · 通过:所有测试通过
   · 失败:哪些测试失败,失败原因
   · 覆盖率:代码覆盖率报告

3. 静态分析反馈
   Lint和类型检查的结果:
   · ESLint警告/错误
   · TypeScript类型错误
   · 代码风格问题

4. 用户反馈
   用户对Agent工作的评价:
   · "这个实现不对,应该用..."
   · "好的,继续下一步"
   · "这里有个bug"

反馈的利用策略:

策略一:错误驱动的迭代
  错误 → 分析原因 → 修复 → 重新验证
  
  例子:
  TypeError: Cannot read property 'name' of undefined
  → Agent分析:user对象可能是null
  → 修复:添加空值检查 if (user?.name)
  → 重新运行:通过

策略二:测试驱动的开发
  先写测试 → 测试失败 → 写代码使测试通过
  
  例子:
  Agent: 写一个login函数的测试
  测试:expect(login('user', 'pass')).toBe(true)
  运行:失败(login函数不存在)
  Agent: 实现login函数
  运行:通过

策略三:渐进式完善
  先实现基本功能 → 根据反馈逐步完善
  
  例子:
  v1: 实现基本的登录功能
  反馈:缺少错误处理
  v2: 添加try-catch和错误提示
  反馈:没有输入验证
  v3: 添加邮箱格式验证和密码强度检查

第23章 主流AI Coding Agent深度对比

23.1 Cursor

定位:AI-native IDE(AI原生集成开发环境)

架构:
  · 编辑器:基于VS Code
  · Agent:内置AI Coding Agent
  · Harness:VS Code的文件系统 + 终端 + 扩展
  · Loop:Think → Act(工具调用) → Observe

特色功能:
  · Tab补全:类似Copilot的代码补全
  · Chat:对话式代码问答
  · Agent:自主完成编程任务
  · Composer:多文件协同编辑
  · Cmd+K:选中代码后用自然语言修改

Harness特点:
  · 上下文:自动索引整个代码库,支持语义搜索
  · 工具:read_file, write_file, edit_file, terminal, search
  · 权限:写入项目目录,终端命令需确认
  · 模型:支持GPT-4, Claude等多个模型

23.2 Claude Code

定位:命令行AI编程Agent

架构:
  · 界面:命令行CLI
  · Agent:Claude(Anthropic的LLM)
  · Harness:文件系统 + 终端 + MCP协议
  · Loop:Think → Act → Observe → 循环

特色功能:
  · 直接在终端中运行
  · 可以执行任意终端命令
  · 支持MCP(Model Context Protocol)扩展工具
  · 支持多Agent协作

Harness特点:
  · 上下文:自动读取项目文件,支持CLAUDE.md配置文件
  · 工具:read_file, write_file, edit_file, run_command, search
  · 权限:细粒度的权限控制(可配置哪些命令需要确认)
  · MCP:可以通过MCP协议接入外部工具和数据源

23.3 Windsurf (Codeium)

定位:AI编程助手+Agent

架构:
  · 编辑器:基于VS Code
  · Agent:Cascade(Windsurf的AI Agent)
  · Harness:VS Code环境
  · Loop:Flow模式(连续执行多步)

特色功能:
  · Cascade:多步骤自主编程
  · 内联编辑:在代码中直接用自然语言修改
  · 终端集成:可以直接在终端中执行命令
  · 上下文感知:自动理解项目结构

Harness特点:
  · 上下文:代码库索引 + 终端历史 + Git状态
  · 工具:文件操作 + 终端 + 搜索 + Git
  · 权限:可配置的安全边界

23.4 Devin (Cognition)

定位:自主AI软件工程师

架构:
  · 界面:Web界面 + 云环境
  · Agent:自主编程Agent
  · Harness:完整的开发环境(编辑器+终端+浏览器+沙箱)
  · Loop:长时间自主运行

特色功能:
  · 完整的开发环境:不只是代码编辑,还有浏览器、终端
  · 自主规划:可以理解需求并制定开发计划
  · 长时间运行:可以持续工作数小时
  · 环境管理:自动安装依赖、配置环境

Harness特点:
  · 上下文:完整的项目上下文 + 网页搜索
  · 工具:文件操作 + 终端 + 浏览器 + 部署
  · 权限:沙箱环境,安全隔离
  · 持久化:可以记住之前的对话和决策

23.5 对比总结

维度CursorClaude CodeWindsurfDevin
界面IDECLIIDEWeb
自主性最高
工具丰富度最高
上下文能力
价格$20/月按token免费/付费$500/月
适用场景日常开发脚本/自动化日常开发独立项目
学习曲线

第24章 MCP协议:Harness的标准化

24.1 什么是MCP

MCP = Model Context Protocol(模型上下文协议)

由Anthropic提出,目标是标准化AI Agent与外部工具/数据源的交互方式。

类比:
  USB是电脑与外设的标准接口
  MCP是AI Agent与工具/数据的标准接口

MCP解决的问题:
  之前:每个AI应用都要自己实现工具调用的接口
  现在:工具开发者按照MCP标准开发一次,所有支持MCP的Agent都能使用

24.2 MCP的架构

┌─────────────────────────────────────────────┐
│                MCP Host                      │
│          (AI应用,如Claude Code)             │
│                                             │
│  ┌─────────────┐                            │
│  │  MCP Client  │                            │
│  └──────┬──────┘                            │
│         │                                   │
└─────────┼───────────────────────────────────┘
          │  MCP协议
          │
┌─────────▼───────────────────────────────────┐
│              MCP Server                      │
│        (工具/数据源提供者)                    │
│                                             │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│  │   Tools    │ │ Resources │ │  Prompts   │ │
│  │            │ │           │ │            │ │
│  │ · 搜索     │ │ · 数据库   │ │ · 模板     │ │
│  │ · API调用  │ │ · 文件系统 │ │ · 提示词   │ │
│  │ · 数据处理 │ │ · API数据  │ │            │ │
│  └───────────┘ └───────────┘ └───────────┘ │
│                                             │
└─────────────────────────────────────────────┘

24.3 MCP提供的三种能力

1. Tools(工具)
   Agent可以调用的功能
   
   示例:
   {
     "name": "query_database",
     "description": "查询数据库",
     "parameters": {
       "sql": { "type": "string", "description": "SQL查询语句" }
     }
   }

2. Resources(资源)
   Agent可以读取的数据源
   
   示例:
   {
     "uri": "file:///project/README.md",
     "name": "项目说明",
     "mimeType": "text/markdown"
   }

3. Prompts(提示模板)
   预定义的提示词模板
   
   示例:
   {
     "name": "code_review",
     "description": "代码审查模板",
     "arguments": [
       { "name": "code", "description": "要审查的代码" }
     ]
   }

24.4 MCP的实际应用

场景:Claude Code + 数据库MCP Server

1. 安装MCP Server:
   npm install -g @modelcontextprotocol/server-postgres

2. 配置Claude Code:
   claude mcp add postgres -- npx @modelcontextprotocol/server-postgres postgresql://localhost/mydb

3. 使用:
   用户:"查询用户表中最近注册的10个用户"
   
   Agent思考:需要使用数据库查询工具
   Agent行动:调用query_database工具
     SQL: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
   Agent观察:获取到10条用户记录
   Agent回答:"最近注册的10个用户是:..."

效果:
  Agent可以直接访问数据库,无需用户手动复制SQL结果
  Agent可以根据查询结果做进一步分析

第25章 AI Coding的最佳实践

25.1 如何写好系统提示

好的AI Coding系统提示模板:

## 角色
你是一个资深的[技术栈]开发者,专注于[领域]。

## 项目上下文
- 项目名称:[名称]
- 技术栈:[框架、语言、数据库等]
- 包管理器:[npm/pnpm/yarn]
- 代码风格:[ESLint/Prettier配置]

## 编码规范
- [具体的编码规范列表]

## 工作流程
1. 理解任务需求
2. 阅读相关代码
3. 制定修改计划
4. 执行修改
5. 运行测试验证
6. 总结修改内容

## 安全规则
- 不要删除用户数据
- 不要修改配置文件中的敏感信息
- 危险操作前要确认

## 可用工具
[工具列表会在运行时注入]

25.2 CLAUDE.md / .cursorrules 配置

项目级配置文件,定义AI Agent的行为规范:

# CLAUDE.md 示例

## 项目概述
这是一个Next.js 14电商项目,使用TypeScript + Tailwind CSS。

## 技术栈
- 框架:Next.js 14 (App Router)
- 语言:TypeScript (strict mode)
- 样式:Tailwind CSS
- 数据库:PostgreSQL + Prisma
- 包管理:pnpm

## 代码规范
- 组件使用函数式写法 + hooks
- 异步操作使用async/await
- 错误处理使用try-catch
- 变量命名:camelCase
- 组件命名:PascalCase
- 文件命名:kebab-case

## 项目结构
/src
  /app - Next.js App Router页面
  /components - React组件
  /lib - 工具函数和配置
  /types - TypeScript类型定义
/prisma - 数据库Schema

## 常用命令
- pnpm dev: 启动开发服务器
- pnpm build: 构建生产版本
- pnpm test: 运行测试
- pnpm lint: 代码检查

## 注意事项
- 不要修改/prisma/migrations目录
- API路由放在/app/api目录下
- 环境变量使用.env.local

25.3 有效使用AI Coding Agent的技巧

技巧一:提供足够的上下文
  差:"帮我修复这个bug"
  好:"登录页面的表单提交后没有反应。
      文件是src/app/login/page.tsx
      控制台报错:TypeError: Cannot read property 'email' of undefined
      使用的是Next.js 14 App Router"

技巧二:分步骤给任务
  差:"帮我做一个完整的用户管理系统"
  好:"第一步:创建用户的数据库Schema(Prisma)
      第二步:创建用户的API路由(CRUD)
      第三步:创建用户的前端页面"

技巧三:明确期望的输出
  差:"写一个函数处理数据"
  好:"写一个函数:
      - 输入:用户数组 [{id, name, email}]
      - 输出:按注册时间排序的活跃用户列表
      - 要求:过滤掉未验证邮箱的用户"

技巧四:利用Agent的测试能力
  让Agent先写测试,再写实现:
  "请为login函数编写单元测试,然后实现这个函数使测试通过"

技巧五:让Agent解释代码
  不只是让Agent写代码,也让它解释:
  "解释一下这个middleware的作用,以及为什么这样设计"

技巧六:使用Agent进行代码审查
  "审查这段代码,找出潜在的问题和改进建议"

25.4 AI Coding的常见陷阱

陷阱一:过度依赖
  问题:完全依赖AI写代码,自己不理解代码逻辑
  后果:代码出了问题无法调试,无法维护
  建议:始终理解AI生成的代码,必要时让它解释

陷阱二:忽视测试
  问题:AI写了代码但没有测试,直接上线
  后果:线上bug频发
  建议:要求AI同时写测试,或者自己补充测试

陷阱三:不检查安全性
  问题:AI生成的代码可能有安全漏洞
  后果:SQL注入、XSS攻击等安全问题
  建议:让AI检查代码安全性,或者使用安全扫描工具

陷阱四:上下文不足
  问题:没有给AI足够的项目上下文
  后果:AI生成的代码不符合项目规范
  建议:配置好CLAUDE.md或.cursorrules,提供项目上下文

陷阱五:提示词模糊
  问题:任务描述不清晰
  后果:AI理解错误,生成错误的代码
  建议:提供明确的需求、输入输出、约束条件

第26章 AI Coding的未来趋势

26.1 趋势一:从辅助到自主

当前:AI辅助开发者写代码(人是主导)
未来:AI自主完成开发任务(AI是主导,人是监督)

演进路径:
  2023:AI补全代码(Tab键接受)
  2024:AI生成代码片段(对话式)
  2025:AI自主完成单个任务(Agent模式)
  2026:AI自主完成整个项目(自主开发)
  2027+:AI管理软件生命周期(开发+维护+优化)

26.2 趋势二:Harness标准化

当前:每个AI Coding工具自己实现Harness
未来:标准化的Harness协议(如MCP)

标准化的好处:
  · 工具开发者只需实现一次,所有Agent都能用
  · 用户可以在不同Agent之间切换,工具生态共享
  · 降低AI Coding工具的开发成本

26.3 趋势三:多Agent协作开发

当前:单个Agent完成所有工作
未来:多个专业Agent协作

分工示例:
  · 需求Agent:分析用户需求,生成技术方案
  · 架构Agent:设计系统架构,定义接口
  · 编码Agent:编写具体代码
  · 测试Agent:编写和运行测试
  · 审查Agent:代码审查,找出问题
  · 部署Agent:配置环境,部署上线

26.4 趋势四:AI原生开发工具

当前:AI功能嵌入传统IDE(如VS Code + Copilot)
未来:AI原生的开发工具(从底层设计就为AI服务)

AI原生的特点:
  · 代码结构为AI优化(更易理解)
  · 文档为AI生成和维护
  · 测试由AI自动编写
  · 重构由AI自动执行
  · 版本控制由AI管理

第七篇:前沿与展望(原第六篇)


第七篇:前沿与展望


第19章 当前挑战

19.1 可靠性问题

Agent可能犯错,而且错误会在Loop中累积。

问题:
  · LLM可能产生错误的推理
  · 工具调用可能失败
  · 错误的行动可能破坏环境
  · 复杂任务的成功率还不够高

缓解方法:
  · 人在回路(Human-in-the-loop):关键步骤需要人类确认
  · 沙箱执行:在隔离环境中执行,防止破坏
  · 回滚机制:出错时可以恢复到之前的状态
  · 多Agent验证:让一个Agent检查另一个Agent的输出

19.2 效率问题

Agent Loop的每一轮都需要LLM推理,成本高、速度慢。

问题:
  · 每轮Loop消耗一次LLM调用(成本)
  · LLM推理需要时间(延迟)
  · 复杂任务需要很多轮Loop(总成本高)

优化方法:
  · 使用更小更快的模型(如GPT-4o-mini)
  · 减少不必要的Loop轮次
  · 并行执行独立的工具调用
  · 缓存重复的工具调用结果

19.3 安全问题

Agent能执行代码和操作文件,存在安全风险。

问题:
  · 恶意指令可能导致Agent执行危险操作
  · Agent可能泄露敏感信息
  · 工具调用可能被滥用

防护措施:
  · 最小权限原则:只给Agent完成任务所需的最小权限
  · 沙箱隔离:在容器或虚拟机中执行
  · 输入验证:检查Agent的输出是否安全
  · 审计日志:记录所有操作以便追溯

第20章 未来趋势

20.1 趋势一:更自主的Agent

当前:Agent需要人类频繁指导和确认
未来:Agent能独立完成复杂项目

关键进展:
  · 更强的推理能力(减少错误)
  · 更好的规划能力(处理复杂任务)
  · 更可靠的工具使用(减少失败)
  · 更强的自我纠错能力

20.2 趋势二:多Agent协作

当前:主要是单Agent模式
未来:多个专业Agent协作完成任务

就像一个公司:
  · CEO Agent:负责战略规划
  · PM Agent:负责项目管理
  · Dev Agent:负责开发
  · QA Agent:负责测试
  · Ops Agent:负责部署

20.3 趋势三:Agent即服务

当前:Agent需要开发者自己搭建
未来:Agent作为云服务提供

用户只需要:
  · 描述任务
  · Agent自动完成
  · 无需关心底层架构

代表趋势:
  · Claude Code, Cursor等编程Agent
  · 各类垂直领域Agent(法律、医疗、金融...)
  · Agent平台(提供Agent创建和管理服务)

20.4 趋势四:具身Agent

当前:Agent主要在数字世界中工作(写代码、操作文件)
未来:Agent能控制物理设备(机器人、无人机、智能家居)

VLA(Vision-Language-Action)就是这个方向的前沿:
  Agent不仅"想",还能"做"
  从数字世界延伸到物理世界

附录

附录A:核心术语表

术语英文解释
AgentAgent能自主行动的AI智能体
HarnessHarnessAgent的工具箱和运行环境
LoopAgent LoopAgent的思考-行动-观察-判断循环
ToolToolAgent可以调用的具体功能
SkillSkill预定义的任务能力模块
ContextContextAgent可用的上下文信息
System PromptSystem Prompt定义Agent角色和行为的指令
ReActReasoning+Acting推理与行动交替的Agent模式
GroundingGrounding让AI输出基于事实而非幻觉
OrchestrationOrchestration多Agent的协调编排
SandboxSandbox隔离的安全执行环境
HandoffHandoffAgent之间的任务交接
GuardrailGuardrail输入输出的安全护栏
TokenTokenLLM处理的最小文本单元
HallucinationHallucinationAI产生不实信息的现象
Chain of ThoughtCoT让AI展示推理过程的技术
Few-shotFew-shot通过少量示例引导AI
EmbeddingEmbedding将文本/图像转化为向量表示

附录B:推荐学习资源

入门

  1. LangChain官方文档(langchain.com)——最流行的Agent框架
  2. OpenAI Agents SDK文档——OpenAI官方方案
  3. “Building Effective Agents”(Anthropic博客)——Agent设计最佳实践

进阶
4. “ReAct: Synergizing Reasoning and Acting”(论文)——Agent Loop的经典论文
5. “Toolformer: Language Models Can Teach Themselves to Use Tools”(论文)——工具使用
6. LangGraph文档——基于图的Agent编排

前沿
7. “Agent Protocol”(agentprotocol.ai)——Agent通信标准
8. CrewAI文档——多Agent协作框架
9. AutoGen文档——微软的多Agent框架

附录C:推荐学习路径

第一阶段:理解概念(1-2天)

  1. 理解LLM的基本原理
  2. 理解Agent、Harness、Loop的概念和关系
  3. 了解ReAct模式

第二阶段:动手实践(1-2周)
4. 使用LangChain创建第一个Agent
5. 为Agent添加工具(搜索、计算等)
6. 观察Agent Loop的执行过程

第三阶段:深入学习(2-4周)
7. 学习Harness的设计原则
8. 实现自定义工具
9. 学习多Agent协作模式
10. 研究错误处理和安全机制

第四阶段:实战项目(持续)
11. 构建一个完整的Agent应用
12. 优化Agent的性能和可靠性
13. 探索垂直领域Agent
14. 跟踪最新研究进展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值