Agentic AI 架构入门(三):Agent 的七大组件与 PRAL 循环

Agentic AI 架构入门(三):Agent 的七大组件与 PRAL 循环

课程:《Agentic AI Architectures with Patterns, Frameworks and MCP》笔记整理(第 66--172 页)


1. 组件总览:Agent 的 7 大部件

进入「工程师视角」,Agent 由 7 个可独立设计的部件组成:

# 组件 昵称
1 Foundation Model 🧠 Brain 大脑
2 Perception 👁️ Senses 感官
3 Planning 📐 Blueprint 蓝图/军师
4 Memory 📓 Notebook 笔记本
5 Action 🖐️ Hands 手
6 Learning 🔄 Feedback Loop 反馈环
7 Communication 🗣️ Voice 声音

2. 🧠 组件 1:大脑------基础模型(LLM)

Agent = 一台完整计算机 :LLM 是 CPU ,Memory 是 RAM ,Tools 是外设

  • 基础模型 = 通用模式识别引擎:在海量数据上训练,本职工作是预测下一个 token
  • 我们的目标 :把「预测下一个词」引导成「推理」------让 LLM 不只输出答案,还要输出思考过程System Prompt 就是 Agent 大脑的「操作系统」
  • 两大提示模式:CoT(思维链)ReAct(推理+行动)

CoT 实例(该不该带伞?) :坏(无 CoT):"伦敦该带伞吗?→ 是";好(有 CoT):一步步想------①用户要建议 ②需要知道天气 ③伦敦是"小雨" ④小雨需要带伞 ⑤所以答案是"是"。这段思考过程就是 Plan!

怎么选 LLM 大脑? 架构三难:能力(推理质量)× 成本 × 速度

选项 代表 适用
1. 最大能力 GPT-5、Claude 4 Opus 复杂研究/规划/代码生成(贵、慢)
2. 最快最便宜 Gemini Flash、Llama 3 8B 客服、简单抽取、聊天(复杂多步可能翻车)
3. 最大隐私 本地/开源模型 医疗、金融等敏感数据(自己运维贵)

你选的大脑决定了整个 Agent 的性格。


3. 👁️ 组件 2:感官------感知与输入处理

大脑与世界隔绝就没用------感知模块是 Agent 与现实世界的接口 ,是 Agentic Loop 的第一步:「敲门声」把 Agent「唤醒」

三种触发:直接 (用户聊天消息)、异步 (API 响应、新文件、数据库更新)、定时(计划事件)。

核心挑战 :LLM 只「想」干净的结构化文本,但世界是非结构化、多模态的(错别字文本、图片视频、语音、JSON/XML、PDF/Word)。

解决 :感知模块 = 翻译官 ------把混乱数据转成 LLM 能读的干净文本,这叫 Normalization(归一化)/ 预处理

  • User Chat →(拼写检查)→ 干净文本
  • Image.jpg →(视觉模型)→ 图片的文字描述
  • Report.pdf →(OCR)→ 全文
  • Audio.mp3 →(语音转文字)→ 文字稿
  • API_Response.json →(总结/抽取)→ 摘要

实例(双感官客服 Agent):用户输入"my new shrit has a hole in it"(错别字)+ 上传照片 → 文本处理器清洗 + 视觉处理器分析图片("蓝色 T 恤,左袖有 2 英寸裂口")→ 合成干净文本送 LLM。


4. 📐 组件 3:蓝图------规划与任务分解

只会感知的 Agent 只是传感器 (被动)------还需要「军师」。"帮我订下周去伦敦的全程行程"------这不是一个动作,是一个项目,单次 LLM 调用做不了。

Plan 是什么 :规划模块的输出,不是最终答案,而是一个数据结构------一串要执行的工具调用序列。例:输入"Book my trip" → Plan = ①find_available_flights ②find_hotels ③book_flight ④book_hotel ⑤send_confirmation_email。

LLM 当「分解引擎」:用特定 System Prompt 让 LLM 当规划师------①告诉它目标 ②告诉它可用工具 ③要求"一步步想" ④要求"只产出用这些工具的计划"。

两种规划策略

CoT = 静态规划 ReAct = 动态规划
方式 动手前先生成完整多步计划 一次只计划一步:执行→感知结果→再计划下一步
适用 简单、可预测的工作流 复杂、不可预测的环境

ReAct 动态规划实例(订伦敦行程)

  • 循环1:(计划)先调 find_flights →(行动)执行→(感知)返回 {TK-123, 300美元}
  • 循环2:(再计划)状态变了,给用户看选项 →(行动)ask_user→(感知)用户选 TK-123
  • 循环3:(再计划)状态又变了,下一步 book_flight('TK-123')

「想」与「做」分离 = 核心设计原则 :规划模块只负责生成计划,不执行 ------输出是 {"tool_to_call": "find_flights", "parameters": {...}},交给下一个组件(行动模块)。


5. 📓 组件 4:笔记本------记忆架构

「土拨鼠之日」问题:没有记忆,每次感知都是全新无上下文的事件;5 步计划做完第 1 步就忘了结果。

短期记忆 STM(工作记忆) 长期记忆 LTM(持久记忆)
类比 清醒意识 / 电脑 RAM 知道的全部事实 / 电脑硬盘
特点 极快,但小、易失、贵 海量、永久、便宜但慢
  • STM = LLM 的上下文窗口 :装着 System Prompt、当前对话历史、当前计划、最近工具调用结果。上下文窗口是 Agent 最贵的资源(8k/128k/1M tokens),装不下整个互联网甚至 50 页文档
  • LTM = 外部持久数据库 :存历史对话、用户偏好、大文档、知识图谱------Agent 不用"全记住",只要知道去哪查

STM 与 LTM 协作 = RAG(检索增强生成),6 步循环:①感知用户提问 ②计划:大脑发现需要外部数据 ③行动-检索:搜索 LTM ④LTM 返回一小段相关事实 ⑤增强:事实加载进 STM ⑥生成:LLM 同时"看见"问题与答案。

LTM 的三种架构模式

存储 技术 用途
Key-Value / 文档库 Firestore, MongoDB 结构化事实 + 对话历史
SQL PostgreSQL 高关系型企业数据
向量数据库 Pinecone, ChromaDB 语义/概念相似度(RAG 里的 "R")

向量数据库存储高维向量,向量是数据的数值表示,捕捉语义------按"意思"而非关键词搜索。


6. 🖐️ 组件 5:手------行动与工具调用

工具 = 任何允许 Agent 执行的函数/脚本/API/外部系统。聊天机器人 vs Agent 的分水岭 :聊天机器人告诉你 天气,Agent 去取天气。

机制:函数调用(Function Calling)

  1. 告诉 LLM 有哪些工具:把 schema(函数列表)放进 prompt
  2. LLM 计划一次调用:输出匹配 schema 的结构化 JSON
  3. 我们的系统执行:应用代码收到 JSON,暂停 LLM,跑真实的 Python/API 调用

ReAct 交接详解(6 步) :①大脑计划"我需要天气"→ 生成 JSON {"call": "get_weather", "location": "Paris"} ②行动模块(调度器)接住 JSON ③执行真实函数 ④工具返回 {"temp": "15C", "condition": "Cloudy"} ⑤把结果作为"感知"喂回 LLM ⑥大脑基于结果回答用户。

安全与护栏(本模块最重要主题) 。噩梦场景:目标"清理测试库的旧用户"→ Agent 的"合理"计划是 DELETE /users → 结果误删了生产库

三大护栏:

  1. 最小权限原则:绝不给"万能钥匙"(如 run_python_script);天气 Agent 只该有 get_weather
  2. 读优先 vs 写:强烈倾向读工具;对写工具(send_email、delete_record)极度谨慎
  3. 人类介入确认(HITL):一切写/破坏性操作的终极安全网------Agent 计划发邮件时系统暂停,弹给人类 批准 拒绝

护栏不是附加品,是核心设计。


7. 🔄 组件 6:反馈环------学习与适应

现有 Agent 能执行,但是静态的 :计划低效、记忆错误都没法自我改进。解决方案是双循环

  • 循环1 性能环(演员):现有整套 Agent,Perceive→Reason→Act,快、逐轮运转
  • 循环2 学习环(更新者) :更高级的慢循环,观察演员表现,负责改进

两个新组件:

  • Critic(评论家/评估器):观察动作与结果,对比"成功标准",生成反馈信号------"上一步达到子目标了吗?为什么失败(API key 无效)?高效吗(工具太慢)?对整体目标有帮助吗?"
  • Learning Element(学习元素/更新者):接收反馈信号,对演员的组件做技术更新

反馈信号两种来源

  • 显式(人类介入):用户是评论家------邮件"这是垃圾邮件"按钮、👍/👎、用户纠正
  • 隐式(环境):Agent 自己当评论家------象棋 AI 输棋、API 返回错误、销售邮件无人回复

更新机制(由浅入深)

  1. 更新记忆(LTM) :反馈"这个事实错了" → vector_db.delete(fact_id)
  2. 更新规划:反馈"这个 5 步计划失败了" → 在 LTM 存 memo"别再试这个计划"
  3. 更新效用函数(最先进 = 强化学习):反馈"用户讨厌最快但收费的路线" → 给"收费路"调高负权重

垃圾邮件过滤器实例 :演员规则 IF 主题含 "report" THEN 收件箱 → 垃圾邮件"Free Report on Drugs"被放行 → 你标记为垃圾 → 学习元素分析 → 规则更新为 IF ("report") AND NOT ("Drugs") THEN 收件箱


8. 🗣️ 组件 7:声音------Agent 通信

Agent→人类 (A2H) Agent→Agent (A2A)
听众 终端用户 另一个软件 Agent
格式 非结构化自然语言 结构化无歧义数据 (JSON)
目标 有帮助、共情、易懂 精确、机器可读、高效

A2H 深潜 :这是推理循环的最后一步 = 一次「综合(Synthesis) 」调用------内部状态 {"goal": "订巴黎机票", "result": {"id": "TK-123", "status": "CONFIRMED"}} + 综合提示词"你是友好旅行助手..." → 最终声音:"好消息!您的巴黎航班已订好,确认号 TK-123,旅途愉快!"

A2A 深潜------多智能体系统的引擎 :坏例子(用 A2H 方式对 Agent 说话):"嘿 Agent,能帮我查一下纽约的天气吗?"------慢、有歧义、贵、不可机器读取。原则:人类之间用散文(A2H),服务器之间用 API/JSON(A2A)------Agent 之间要像服务器一样说话

解决方案 = 标准协议(如 MCP):

  • 请求:{"agent_id": "travel_agent", "task": "get_weather", "parameters": {"location": "New York"}}
  • 响应:{"status": "success", "data": {"temp": "18C", "condition": "Sunny"}}

9. 🛠️ 实战:搭建 Research Assistant(研究助手)

任务 :自主撰写关于复杂主题的简短事实报告。用户请求:"给我写一份关于巴黎历史的简短报告"。为什么是 Agentic 任务:内部训练数据可能过时------必须计划:①search_for_info ②analyze_results ③write_report。

5 步配方(Lab Plan)------"从零建 Agent"的通用流程:

  1. 定义「灵魂」(System Prompt)
  2. 选「大脑」(LLM)
  3. 定义「手」(web_search 工具)
  4. 架构「记忆」(短期 scratchpad)
  5. 写「循环」(编排代码)

逐步实现

  • Step 1 灵魂:System Prompt------"你是研究助手,必须用 web_search 收集信息,不得凭自己知识回答,必须先搜索→分析→写报告"
  • Step 2 大脑:复杂推理任务 → 选高能力模型(GPT-5/Claude 4/Gemini Advanced)
  • Step 3 手 :Python 函数 web_search(query) + JSON schema 说明书 {"name": "web_search", "description": "Searches the web", "parameters": {"query": "string"}}
  • Step 4 记忆 :短期 = Python list chat_history = [](存用户消息+工具结果);长期 = 外部数据库
  • Step 5 循环 (ReAct 逻辑):循环1 感知"巴黎历史报告"→ 推理"系统提示要求用工具"→ 行动:LLM 返回 {"tool_call": "web_search", "query": "history of Paris"} → 代码执行函数 → 结果存进记忆 → 循环2 推理"该综合成报告"→ 行动:生成自然语言报告

里程碑:你已能识别、架构、构建 Agent 的所有核心组件------从「Agent 用户」升级为「Agent 构建者」。


10. 🔁 PRAL 循环深潜(智能体的「心跳」)

Agentic Loop(PRAL)= 每个 Agent 的「操作系统/心跳」

  1. Perception 感知:「网关」------如何感知世界
  2. Reasoning 推理:「大脑」------如何思考规划
  3. Action 行动:「手」------如何影响世界
  4. Learning 学习:「记忆」------如何自我改进

Phase 1 感知 :触发多样、原始、混乱(用户输入/API 响应/传感器数据)→ 关键过程:归一化 (Image→视觉模型→文本;Audio→语音转文字;JSON→解析器)→ 输出:内部表示(干净文本)= 第一次数据变换

Phase 2 推理 :输入 = 归一化感知 + 记忆中的相关上下文 → 过程:①理解(LLM 解读全部上下文)②计划(目标分解成步骤=CoT)③决策(选下一步行动)→ 关键输出:Action Plan(JSON 结构化对象)= 第二次数据变换

Phase 3 行动 :①解析(非 LLM 的调度器解析 JSON)②执行(调用真实代码)③影响环境 → 关键输出:「闭合循环」 ------工具结果不是终点!它被喂回起点,成为下一轮感知的触发器:感知(API结果)→推理(现在知道状态了)→行动(告诉用户)。

Phase 4 学习(元循环) :可选,架在 PRAL 之上:任务完成后 Critic 复盘完整记录(方案有效吗?高效吗?用户满意吗?)→ 适应:更新记忆 / 更新规划 / 更新效用。Learn 模块向 Reason、Action、Tools、Memory 都有连线------学习结果要能更新其他所有组件

PRAL 旅程总结 :Perceive(原始→文本)→ Reason(文本+记忆→JSON计划)→ Act(JSON→工具结果)→ Loop(工具结果→Perceive)→ Learn(最终结果→更新记忆/计划)。PRAL 流程是一切 Agentic 行为的引擎


11. PRAL 双案例:ChatGPT 与医疗 Agent

案例 1:ChatGPT(数字域)

  • 感知 :你对手机说话"帮我找家好的海鲜餐厅"(音频)→ 语音转文字 → 感知模块丢弃你的语气(讽刺、情绪都不感知,只听内容)→ 干净文本
  • 推理:输入 = 归一化文本 + 记忆上下文("用户住在西雅图")→ 思考:①要高级海鲜 ②记忆说住西雅图 ③需要实时信息(营业时间、评价)我没有 ④计划用 web_search → 输出 JSON 计划
  • 行动 + 闭合循环 :调度器解析 JSON → 执行 web_search → 结果(5 家餐厅 JSON)喂回感知 → 循环2:感知→推理(综合呈现)→ 行动(生成你看到的文字回答)

ChatGPT 内部就是一套完整 PRAL Agent。

案例 2:医疗 Agent(赛博物理域)

  • 感知 :ICU 病人高速混乱数据流------vitals.json (HR:125, BP:80/50)、lab_results.pdf、radiology_image.dcm → 归一化:①过滤 :只在异常数据触发(HR>120)②翻译:专用模型(如 Viz.ai)把影像转成文本 → 输出"4A 床病人生命体征不稳定 (HR:125)。新放射报告:左侧异常"
  • 推理:输入 + 记忆("病人青霉素过敏")→ 目标:患者存活 → 计划:搜 PubMed + 开新的 STAT 血检 → 输出多工具 JSON 计划
  • 行动:执行 search_pubmed + order_test → 结果喂回感知 → 循环2:基于新数据推理 → 形成最终计划(推荐药物 X)
  • 学习/安全最终计划不自动执行!停下来交给**人类介入(医生)**批准 → 医生反馈("正确,批准")作为学习输入改进未来模型

医疗场景中人类是最终决策者(Human-in-the-Loop: Dr verifies)。PRAL 是通用流程:数字域与物理域同样适用。


12. 小结

本段精华:

  1. Agent = 7 部件:🧠大脑 → 👁️感官 → 📐军师 → 📓笔记本 → 🖐️手 → 🔄反馈环 → 🗣️声音,逐个可独立设计
  2. 大脑:LLM = CPU;System Prompt = 操作系统;CoT/ReAct 让"预测下一个词"变成"推理";选型三角 = 能力×成本×速度
  3. 感官:世界混乱多模态,感知模块是"翻译官"------归一化成干净文本(第一次数据变换)
  4. 军师 :复杂目标分解成计划;Plan = 工具调用序列的数据结构;CoT 静态规划 vs ReAct 动态规划;"想"与"做"分离是核心原则
  5. 笔记本 :STM(上下文窗口)最贵最有限;LTM(数据库)解决"土拨鼠之日";RAG = STM↔LTM 的桥;向量库存"语义"
  6. :工具 = 聊天机器人与 Agent 的分水岭;函数调用 = 大脑↔手的桥梁;安全三原则:最小权限、读优先、HITL 确认
  7. 反馈环:双循环(性能环+学习环);Critic 评估 + Learner 更新;从更新记忆→更新计划→强化学习逐级进阶
  8. 声音:A2H 自然语言(综合提示词),A2A 结构化 JSON(协议如 MCP)------对人对 Agent 要说"不同的语言"
  9. Research Assistant 五步配方:灵魂→大脑→手→记忆→循环,就是"从零建 Agent"的通用流程
  10. PRAL = Agent 的心跳 :感知(归一化)→推理(出 JSON 计划)→行动(执行+闭合循环)→学习(复盘改进);ChatGPT 与医疗案例证明它在数字域和物理域同样适用------医疗里最终决策必须 HITL(医生批准)
  11. 下一段预告:多智能体时代------单 Agent 的极限、Agentic AI(工厂)、编排 vs 编舞
相关推荐
weixin_468466851 小时前
目标检测精度上限与影响因素分析
图像处理·人工智能·目标检测·计算机视觉·图像分类·coco·检测精度
宋哥转AI1 小时前
深入理解 AI Agent · MCP 子系列 #01:MCP 协议全解—从消息格式到传输层的完整拆解
人工智能·agent·mcp
看山先生1 小时前
凌晨两点,我把一块开发板接进了自己的世界
人工智能·agent
阿源聊AI1 小时前
Claude Code 跨会话消息:并行开发终于有了信息通道
人工智能
aircrushin1 小时前
Claude 5 之后,上下文工程该做减法了
前端·人工智能·后端
Tangyuewei1 小时前
Meta Muse Code 发布:低价杀入编程
人工智能
武子康1 小时前
全双工语音 Agent 如何评测:从首音延迟到事件级验收
人工智能·llm·agent
孙启超1 小时前
Token太贵自己写了一个mac版开源AI编程工具
人工智能·macos·开源·llm·agent·ai编程·ai应用开发
YuePeng1 小时前
Java 开发者的 Django Admin,终于来了
后端·架构·github