阿里云大模型高级工程师ACP-C3笔记

阿里云大模型ACP认证 · C3 构建Agent系统 知识点总结

在这里插入图片描述
课程地址:ACP认证教程C3_构建Agent系统
最近笔者也是以94分通过了阿里云大模型ACP认证,分享一下备考时自己做的一些笔记


目录

  1. Agent概述与课程体系
  2. Agent基础与工具调用
  3. Agent规划与执行
  4. 多Agent团队协作
  5. Agent记忆系统
  6. Skill技能封装
  7. Agent评测驱动开发
  8. Qwen Code实践
  9. Harness Engineering与Loop Engineering
  10. 考试重点与权重分布

1. Agent概述与课程体系

1.1 从LLM到Agent的跃迁

LLM的四大天花板:

局限说明
只会说不会做能告诉你"可以去天气App查",但自己不会查
没有记忆上下文窗口一满就"失忆",跨会话什么都没留下
知识截止训练数据有截止日期,实时信息不知道
不会规划让做"竞品分析",只会线性回答,不会自己拆解步骤

Agent的定义: Agent = LLM + 工具 + 记忆 + 规划,在循环中自主完成目标。

LLM vs Agent 的本质区别:

  • LLM:告诉你怎么做(建议)
  • Agent:直接帮你做完(执行)

1.2 Agent的完整四模块

模块角色职责
LLM(大脑)理解意图、推理判断核心决策引擎
规划模块任务拆解、步骤排序把大目标拆成小步骤
记忆模块短期上下文 + 长期知识存储跨会话记忆
工具模块调用外部API、数据库、代码执行器Agent的"手和脚"

1.3 Agent vs Workflow

维度WorkflowAgent
控制者代码/开发者LLM
Token消耗低(约1x)高(约4-8x)
可预测性
灵活性
适合任务固定流程开放式目标
调试难度容易困难

生产最佳实践: 大多数系统采用 Workflow + Agent 混合架构——Workflow提供稳定骨架,Agent负责处理异常和复杂情况。

1.4 课程结构

课时标题核心知识点
3.1Agent基础与工具调用Function Calling、ReAct、MCP
3.2让Agent学会规划与执行反思(Reflection)、工作流、自主规划
3.3用多Agent实现团队协作分层规划(Leader-Worker)、共创协作(Blackboard)
3.4用Memory让Agent积累经验短期/长期记忆、主动记忆管理
3.5用Skill将能力固化为可复用流程渐进性披露、Skill结构
3.6用评测驱动Agent开发端到端评测、白盒化评测
3.7Qwen Code实践Coding Agent工作方式
3.8Harness & Loop Engineering标准、验证、记录、写回闭环

2. Agent基础与工具调用

2.1 Function Calling(函数调用)

核心思想: 让LLM输出结构化JSON指令(而非自然语言),指定要调用的函数名和参数。

四步流程:

Step 1: 定义工具 → 用JSON Schema描述工具名称、参数
Step 2: LLM判断 → 判断是否需要调用工具,输出tool_calls
Step 3: 执行工具 → 应用解析tool_calls,执行真实函数
Step 4: 反馈生成 → 将工具结果传回LLM,生成最终回答

工具定义示例(OpenAI兼容格式):

{
  "type": "function",
  "function": {
    "name": "get_current_weather",
    "description": "查询指定城市的当前天气",
    "parameters": {
      "type": "object",
      "properties": {
        "location": {"type": "string", "description": "城市名"}
      },
      "required": ["location"]
    }
  }
}

支持Function Calling的模型: OpenAI GPT系列、Claude 3、阿里Qwen-Max/Plus、GLM-4、DeepSeek-V2

优势与局限:

优势局限
高精度,结构化输出避免解析歧义依赖模型原生支持
低延迟,单次调用即可完成决策灵活性有限,难以处理多跳任务
工程友好,易于集成不支持复杂规划,无法自动拆解子任务
安全性高,参数强类型校验调试困难,黑盒决策

2.2 ReAct架构(推理+行动)

核心思想: 模拟人类"思考→行动→观察→反思"的认知循环。

标准格式:

Thought: 我需要先搜索"通义千问最新版本"来获取信息。
Action: search("通义千问最新版本")
Observation: Qwen3-Max-Preview 于2025年9月发布...
Thought: 现在我知道最新版本是Qwen3-Max-Preview。
Action: Finish("通义千问最新版本是Qwen3-Max-Preview...")

ReAct与Function Calling的对比:

对比维度Function CallingReAct
输出格式结构化JSON自然语言+格式化文本
推理过程隐含在模型内部显式输出Thought
可调试性黑盒高度透明,可追踪
适用场景单步、明确的任务多步推理、复杂场景
实现复杂度低(原生支持)高(需框架支持)

2.3 MCP协议(Model Context Protocol)

MCP的定义: 一个开放标准协议,规定AI应用和外部工具、资源之间如何通信。

三层关系:

层级作用类比
Function Calling模型"怎么描述我要调用哪个函数"说出意图
MCP工具"怎么标准化暴露给AI应用"统一接口
Agent系统"怎么围绕目标自主选择、调用、检查这些工具"自主执行

MCP的核心价值:

  • 标准化工具调用接口
  • 工具可被不同AI客户端发现和复用
  • 内置安全机制(权限控制、审计)

3. Agent规划与执行

3.1 反思模式(Reflection)

核心思想: 让模型自己检查自己的工作,循环改进。

生成初稿 → 送审 → 发现问题 → 修正 → 再送审 → 输出

为什么有效: LLM在"审视已有输出"时,比"直接生成正确输出"表现更好。因为审查时认知负荷大幅降低。

三种实现方式:

  • 同一模型反思:用一个system prompt生成,另一个system prompt审查
  • 不同模型审查:生成用GPT-4,审查用Claude(不同模型发现不同问题)
  • 多层反思:表层(格式语法)→ 逻辑层(推理过程)→ 结果层(目标达成度)

3.2 三种规划范式

范式说明适用场景
Plan-and-Execute一次性制定完整计划,然后逐步执行任务明确、步骤可预测
ReAct边思考边行动,每步交替推理和行动需要动态调整的复杂任务
自主规划(Self-Plan)Agent自主规划执行路径,不预设流程开放式、不确定任务

CoT(思维链):让LLM把中间推理步骤显式写出来,是赋予规划能力的基础方法。

3.3 Andrew Ng的四种Agent设计模式

模式说明
Reflection(反思)让模型自我审视和改进输出
Tool Use(工具调用)让模型学会使用外部工具
Planning(规划)让模型先制定计划再执行
Multi-Agent(多智能体协作)让多个AI角色协作

4. 多Agent团队协作

4.1 两种主流协作模式

模式一:分层规划(Leader-Worker)
项目经理(Leader) → 分配任务 → Worker1 (写代码)
                   分配任务 → Worker2 (写测试)
                   分配任务 → Worker3 (写文档)
                   汇总结果 → 最终输出
  • 实现方式:handoff(任务交接)
  • 适用场景:任务可明确拆分为独立子任务
  • 类比:项目经理带团队
模式二:共创协作(Blackboard)
                 ┌── Worker1 (写作) ──┐
                 │                     │
 用户需求 → 共享白板 ── Worker2 (设计) ──→ 集成输出
                 │                     │
                 └── Worker3 (审查) ──┘
  • 实现方式:MsgHub(消息总线)
  • 适用场景:需要多方协作、迭代优化的任务
  • 类比:头脑风暴团队围绕白板协作

4.2 多Agent的成本意识

  • Token消耗是单Agent的3-5倍
  • 根据任务复杂度选择合适模式
  • 简单任务不要使用多Agent架构

4.3 从人类团队协作中提炼Agent架构

人类团队角色Agent对应角色职责
项目经理Leader Agent任务分解、分配、汇总
开发工程师Worker Agent执行具体任务
测试工程师Reviewer Agent检查输出质量
产品经理Orchestrator理解需求、制定目标

5. Agent记忆系统

5.1 记忆的层次

短期记忆(对话上下文)
     ↓ 上下文过长时
滚动摘要(压缩历史)
     ↓ 跨会话时
长期记忆(向量化存储)

5.2 三种记忆管理策略

策略说明优点缺点
上下文截断超过窗口长度时丢弃最早消息简单直接丢失早期重要信息
滚动摘要定期对历史对话进行摘要压缩保留核心信息摘要可能遗漏细节
向量化召回将历史信息向量化存储,按需检索精准召回实现复杂,需向量数据库

5.3 主动记忆管理

从被动到主动:Agent自主决定何时记、何时读。

  • 写记忆:Agent判断当前信息是否重要,主动写入记忆库
  • 读记忆:Agent判断当前任务需要哪些历史信息,主动检索

5.4 混合记忆系统架构

用户输入
    │
    ▼
┌─────────────────────┐
│  短期记忆(上下文)   │ ← 当前对话窗口
│  Token限制管理        │
└─────────┬───────────┘
          │ 超出窗口 → 摘要压缩
          ▼
┌─────────────────────┐
│  中期记忆(滚动摘要)  │ ← 压缩后的对话历史
└─────────┬───────────┘
          │ 跨会话 → 向量化存储
          ▼
┌─────────────────────┐
│  长期记忆(向量数据库)│ ← 持久化知识
│  按需检索              │
└─────────────────────┘

6. Skill技能封装

6.1 为什么需要Skill

传统Prompt的三大痛点:

痛点说明
上下文膨胀项目越复杂,Prompt越长,关键信息被稀释
耦合严重领域知识与具体项目深度绑定,难以复用
复用性低相同逻辑在不同项目中反复描述

Skill的核心理念:渐进性披露(Progressive Disclosure)

  • 不再一次性灌入所有知识
  • 只有Agent真正需要时,才加载对应Skill
  • 用最小上下文成本换取最大知识覆盖

6.2 Skill vs Tool vs Prompt

概念本质类比
Prompt一次性提示词/指令口头交代任务
Tool原子能力(函数接口)锤子、锯子
Skill可复用能力包(SOP+知识+工具)木工完全指南
Agent规划执行的主体工匠

6.3 Skill的标准结构

skill_name/
├── SKILL.md          # 唯一入口:名称、描述、触发条件
├── scripts/          # 可执行脚本
├── references/       # 参考文档
└── assets/           # 资源文件

SKILL.md的核心内容:

# Skill: [技能名称]

## Description
[简述:这个技能是干嘛的?什么时候用?]

## Steps (SOP)
1. [步骤1]
2. [步骤2]
   - 注意:[关键细节]
3. [步骤3]

## Constraints
- [红线1]
- [红线2]

## Examples (Few-shot)
User: [用户指令]
Assistant: [AI应该怎么做]

6.4 Skill vs Workflow

对比维度SkillWorkflow
能力粒度功能级原子能力业务级流程组合
调用方式被Agent、其他Skill调用独立执行、定时触发
执行灵活性支持内部条件分支执行路径相对固定

6.5 Skill工程化最佳实践

  • 工具隔离与权限最小化:每个Skill只访问所需资源
  • 脚本化确定性计算:突破LLM能力边界,将确定性步骤用脚本实现
  • 参数传递的快照机制:记录Skill执行时的上下文快照
  • 测试维度:功能测试、边界测试、异常测试

7. Agent评测驱动开发

7.1 为什么Agent评测不能只看最终答案

Agent出问题往往不在最终答案,而在:

  • 工具路径走错了
  • Token超支了
  • 某个中间步骤格式不对导致后续全崩

核心原则: 过程同样重要,不能只看结果。

7.2 端到端评测(Task + Metric框架)

# 定义评测任务和指标
task = AgentTask("编写课程文档")
metrics = [
    TaskCompletionMetric(),  # 任务完成率
    ToolCallAccuracyMetric(), # 工具调用准确率
    TokenEfficiencyMetric(),  # Token效率
    ResponseLatencyMetric(),  # 响应延迟
]

7.3 白盒化评测(检查工具调用序列)

核心思想: 将Agent的内部过程暴露出来,逐项检查。

理想工具路径:
[search] → [read_file] → [write_draft] → [review] → [finish]

实际工具路径:
[search] → [search] → [read_file] → [write_draft] → [search] → [finish]

问题诊断:
- 两次search → 检索效率低,可能需要优化检索策略
- 缺少review步骤 → 输出质量可能不达标

检查维度:

  • 工具调用顺序是否正确
  • 是否有不必要的重复调用
  • 是否遗漏了关键步骤
  • 工具参数是否正确

7.4 评测-诊断-优化闭环

评测 → 发现问题 → 诊断根因 → 优化 → 再评测

常见问题诊断:

现象可能原因优化方向
工具路径错误提示词不清晰优化System Prompt
反复调用同一工具检索结果不准确优化检索策略
跳过关键步骤规划能力不足使用Plan-and-Execute
输出格式错误缺少格式约束添加输出格式规范

8. Qwen Code实践

8.1 Qwen Code概述

Qwen Code是通义千问团队开源的终端AI智能体(Coding Agent),将工具调用、规划、记忆、外部工具连接和Skill整合到一个成熟工具中。

核心工作流:

先理解 → 再计划 → 再编码 → 再提交

8.2 Qwen Code的核心能力

能力说明
代码理解分析项目结构、代码逻辑
自主规划拆解任务、制定执行计划
工具编排文件读写、命令执行、代码搜索
上下文管理压缩或清理会话,控制窗口大小
Skill扩展加载自定义技能包
外部工具连接集成MCP Server等外部工具

8.3 配置管理

项目配置文件(AGENTS.md / CLAUDE.md):

  • 面向Agent的配置文档
  • 包含技术选型、编码规范、项目结构
  • 每次会话自动加载,Agent直接进入高效协作模式

8.4 能力边界与反模式

Coding Agent的边界:

  • 不能完全替代人工审查
  • 复杂架构决策仍需人类判断
  • 长项目需注意上下文管理

常见反模式:

  • 一次性要求完成过多任务
  • 不提供项目背景直接要求编码
  • 忽略上下文窗口限制

9. Harness Engineering与Loop Engineering

9.1 AI工程化的四次跃迁

阶段时期核心关注类比
Prompt Engineering2022-2023怎么问对马喊话
Context Engineering2024-2025喂什么给马地图
Harness Engineering2025-2026如何确保单次可靠给马套缰绳
Loop Engineering2026-如何持续循环修赛道

9.2 Harness Engineering(驾驭工程)

定义: 围绕LLM构建一套完整的工程系统,让模型的能力可以被稳定、重复地驾驭。

核心公式: Agent = Model + Harness

LLM的四大结构性缺陷及Harness的解法:

缺陷Harness解法
无状态记忆系统(上下文管理、向量存储)
无法操作外部世界工具调用(Function Calling、MCP)
输出概率性规则约束、验证器、Gate门禁
上下文限制上下文管理、滚动摘要、分层加载

Harness的四大支柱:

支柱说明实现
上下文工程结构化、精准投喂信息AGENTS.md、Skill
架构约束硬性规则,不靠AI自觉Linter、CI检查、Gate
反馈循环AI审AIGenerator + Checker模式
循环层解决复杂任务分解多步循环、重试机制

9.3 Loop Engineering(循环工程)

定义: 让Agent根据验证反馈,自己判断下一轮该改什么(作品、Skill、验证器还是标准),形成持续改进的闭环。

Harness vs Loop:

对比Harness EngineeringLoop Engineering
关注点单次跑稳持续循环改进
类比缰绳、马鞍、刹车环形赛道
核心问题怎么保证安全可靠怎么持续自主工作
输出标准、工具、验证、记录反馈、改进、迭代

Loop Engineering的完整闭环:

标准定义 → 工具执行 → 截图验证 → 运行记录
    ↑                            │
    └──────── 反馈改进 ──────────┘
    │
    ├── 改作品(内容问题)
    ├── 改Skill(流程问题)
    ├── 改验证器(检查标准问题)
    └── 改标准(目标问题)

9.4 实践要点

Harness搭建步骤:

  1. 定义标准(什么是"做好")
  2. 配置工具(Agent需要哪些能力)
  3. 建立验证(如何检查输出)
  4. 设置边界(什么不能做)
  5. 记录审计(追踪执行过程)
  6. 设计Reviewer角色(AI审AI)
  7. 配置停止条件(何时结束)

Loop搭建要点:

  • 先搭Harness,再建Loop(底盘不稳,跑得越快翻得越惨)
  • 反馈机制要明确(什么情况该改什么)
  • 停止条件要清晰(避免无限循环)

10. 考试重点与权重分布

10.1 C3章节考点权重

知识点权重核心考点
Agent智能体 + Function Calling16%四步流程、ReAct架构、安全边界
工具调用策略高频Function Calling vs ReAct对比、适用场景
多Agent架构中频分层规划、共创协作、handoff机制
记忆系统中频短期/长期记忆、滚动摘要、向量化召回
Skill体系中频渐进性披露、Skill结构、Skill vs Tool
Harness Engineering新增考点四大支柱、LLM四大缺陷、Gate/Validator
Loop Engineering新增考点闭环改进、反馈机制
Qwen Code新增考点Coding Agent工作流、配置管理

10.2 核心考点速记

Function Calling四步流程:

定义工具 → LLM判断 → 执行工具 → 反馈生成

ReAct标准格式:

Thought → Action → Observation → Thought → ... → Finish

Agent四模块:

LLM(大脑)+ 规划 + 记忆 + 工具

Harness四大支柱:

上下文工程 + 架构约束 + 反馈循环 + 循环层

Skill核心设计理念:

渐进性披露(Progressive Disclosure)—— 按需加载,最小上下文成本

Coding Agent工作流:

先理解 → 再计划 → 再编码 → 再提交

10.3 高频考点真题

Q: Function Calling的核心流程是什么?
A. LLM直接生成最终答案
B. LLM判断需要调用工具,输出结构化指令,执行后返回结果 ✅
C. 用户手动选择工具
D. 随机选择工具执行

Q: ReAct架构中,Thought的作用是什么?
A. 直接输出最终答案
B. 模型的内部推理过程,决定下一步行动 ✅
C. 执行工具调用
D. 格式化输出结果

Q: Skill与Tool的核心区别是什么?
A. Skill是原子能力,Tool是流程组合
B. Tool是原子能力,Skill是流程+知识+SOP ✅
C. 两者没有区别
D. Skill只能用于RAG场景


考试技巧: Function Calling和ReAct的对比是必考题,务必理解各自适用场景。多Agent的两种协作模式(分层规划 vs 共创协作)需要掌握。Harness和Loop是2026年新增考点,注意理解两者的关系(先有Harness再有Loop)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值