第40章:Agent智能体架构
学习目标
- 理解Agent的核心定义:自主规划与执行的AI系统
- 掌握ReAct循环:思考→行动→观察→反思
- 了解Agent的架构组成:规划器、执行器、记忆系统
- 学会从测试视角评估Agent质量
前置要求
- 已完成第36-39章MCP和Skills的学习
- 理解LLM的推理和工具调用能力
- 有基本的软件架构概念
一句话定义
Agent(智能体)
Agent是具有自主规划、决策和执行能力的AI系统——它不只是回答问题,而是能分解任务、选择工具、执行操作、处理异常,最终完成复杂目标。
生活类比:智能助理
为什么叫Agent?
普通AI像一个"知识渊博的顾问"——你问它答,但不动手。Agent像一个"全能助理"——你给它目标,它会自己规划、查资料、打电话、写文档、直到任务完成。
例如:"帮我准备明天的项目汇报"
- 普通AI:生成汇报模板和内容建议
- Agent:自动拉取项目数据→生成PPT→发送给团队→预定会议室→创建提醒事项
Agent vs Chatbot vs Skill
| 能力类型 | 交互模式 | 自主程度 | 典型应用 |
|---|---|---|---|
| Chatbot | 问答式:用户提问,AI回答 | 被动响应,无自主行动 | 客服咨询、知识问答 |
| Skill | 任务式:用户触发,执行固定流程 | 半自主:按预设流程执行 | 生成报告、发送通知 |
| Agent | 目标式:用户给目标,Agent自主完成 | 高自主:规划、决策、执行、调整 | 自动化测试、数据分析、项目管理 |
ReAct循环:Agent的核心机制
ReAct(Reasoning + Acting)是Agent的核心执行模式——思考、行动、观察、反思的循环:
ReAct循环示意
┌──────────────────────────────────────────────────────────────────┐
│ ReAct 循环 │
│ │
│ 用户目标:执行回归测试并生成报告 │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Step 1: Reasoning(思考) │ │
│ │ ───────────────── │ │
│ │ "我需要先查询当前版本,找出变更的模块, │ │
│ │ 选择对应的测试用例,执行测试,分析结果,生成报告" │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Step 2: Acting(行动) │ │
│ │ ───────────────── │ │
│ │ 调用工具:query_version_diff() │ │
│ │ 输入:{ current: "v2.1", previous: "v2.0" } │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Step 3: Observation(观察) │ │
│ │ ───────────────── │ │
│ │ 结果:变更模块:[payment, user, search] │ │
│ │ 影响范围:支付流程、用户认证、搜索功能 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Step 4: Reflection(反思) │ │
│ │ ───────────────── │ │
│ │ "支付模块变更最大,需要重点测试。 │ │
│ │ 继续下一步:选择支付相关测试用例" │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 循环继续:选择测试用例 → 执行测试 → 观察结果 → 反思 → ... │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 最终输出: │ │
│ │ - 执行15个回归测试用例 │ │
│ │ - 通过率:93.3% │ │
│ │ - 发现2个缺陷 │ │
│ │ - HTML报告已生成并发送 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘
Agent架构组成
| 组件 | 职责 | 关键技术 | 测试关注点 |
|---|---|---|---|
| 规划器(Planner) | 分解目标、制定执行计划 | 任务分解算法、优先级排序 | 计划合理性、覆盖完整性 |
| 执行器(Executor) | 调用工具、执行具体操作 | Tool调用、MCP集成 | 执行成功率、异常处理 |
| 观察器(Observer) | 收集执行结果、反馈信息 | 结果解析、状态监控 | 信息完整性、准确性 |
| 反思器(Reflector) | 分析结果、调整策略 | 结果评估、计划修正 | 反思有效性、调整正确性 |
| 记忆系统(Memory) | 存储执行历史、上下文信息 | 短期记忆、长期存储 | 记忆准确性、检索效率 |
| 工具库(Toolbox) | 提供可调用的工具集 | MCP Servers、Skills | 工具可用性、参数正确性 |
Agent的典型工作流程
Agent工作流程
Agent 完整工作流程:
输入:用户目标(如:"执行回归测试并报告结果")
┌────────────────────────────────────────────────────────────┐
│ Phase 1: 目标理解 │
│ ────────────────────────────────────────────────────── │
│ 1.1 解析用户意图 │
│ 1.2 提取关键信息(项目、范围、时间等) │
│ 1.3 确定成功标准 │
└────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────┐
│ Phase 2: 任务规划 │
│ ────────────────────────────────────────────────────── │
│ 2.1 分解为子任务 │
│ 任务1:识别变更范围 │
│ 任务2:选择测试用例 │
│ 任务3:执行测试 │
│ 任务4:分析结果 │
│ 任务5:生成报告 │
│ 2.2 确定任务顺序和依赖 │
│ 2.3 估算所需资源和时间 │
└────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────┐
│ Phase 3: 循环执行 │
│ ────────────────────────────────────────────────────── │
│ For each task: │
│ 3.1 选择合适的工具 │
│ 3.2 准备调用参数 │
│ 3.3 执行并收集结果 │
│ 3.4 评估执行效果 │
│ 3.5 如失败:尝试替代方案或调整计划 │
│ 3.6 更新记忆系统 │
└────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────────────┐
│ Phase 4: 结果整合 │
│ ────────────────────────────────────────────────────── │
│ 4.1 汇总各任务结果 │
│ 4.2 验证目标达成情况 │
│ 4.3 生成最终输出 │
│ 4.4 报告执行过程和发现 │
└────────────────────────────────────────────────────────────┘
输出:完整报告 + 执行过程记录 + 发现的问题
企业测试Agent应用场景
| 场景 | Agent任务 | 调用的工具链 |
|---|---|---|
| 自动化回归测试 | 分析变更→选测试用例→执行→分析→报告 | 版本比对工具、用例管理工具、执行引擎、报告生成 |
| 缺陷根因分析 | 读取缺陷→分析日志→定位代码→生成修复建议 | 缺陷系统、日志分析工具、代码检索、知识库 |
| 测试数据准备 | 分析需求→生成测试数据→验证数据质量→导入系统 | 需求解析、数据生成工具、数据校验、数据库操作 |
| 性能测试执行 | 设计场景→配置环境→执行压测→分析瓶颈→优化建议 | 场景设计工具、配置管理、压测工具、性能分析 |
| 测试报告自动化 | 收集数据→统计分析→生成图表→格式化报告→分发 | 数据采集工具、统计分析、图表生成、邮件发送 |
测试视角:Agent质量评估维度
| 评估维度 | 关键指标 | 测试方法 |
|---|---|---|
| 规划能力 | 任务分解合理性、计划覆盖率 | 给复杂目标,评估分解的子任务是否完整合理 |
| 执行成功率 | 工具调用成功率、任务完成率 | 统计成功完成的任务比例 |
| 异常处理 | 失败恢复能力、替代方案有效性 | 模拟工具失败,观察Agent如何应对 |
| 目标达成率 | 最终结果是否满足用户目标 | 端到端测试,验证输出是否符合预期 |
| 效率表现 | 执行耗时、资源消耗 | 测量完成任务的耗时和调用次数 |
| 稳定性 | 多次执行的一致性 | 重复执行相同任务,验证结果一致性 |
本章小结
- Agent是具有自主规划、决策、执行能力的AI系统——不只是回答问题,而是完成目标
- ReAct循环是Agent核心:思考→行动→观察→反思的迭代过程
- Agent架构包含规划器、执行器、观察器、反思器、记忆系统、工具库六大组件
- Agent工作流程:目标理解→任务规划→循环执行→结果整合
- 企业测试场景:回归测试、缺陷分析、数据准备、性能测试、报告自动化
- Agent质量评估:规划能力、执行成功率、异常处理、目标达成率、效率、稳定性
扩展阅读
- 第41章:Agent开发实战 - 构建测试执行Agent
- 第42章:Harness框架 - Agent的执行框架