复制成功
请遵守本站许可
REPORT
Chapter_Post // Field_Report

Post_Ref: RL-AI_AGENT

2026.03.21

AI_Agent智能体架构与实践

Echo HaoRan
Echo HaoRan
#技术手册
ANALYSIS

概述#

AI Agent(智能体)是一种能够自主感知环境、做出决策并执行行动的智能系统。与单纯的语言模型不同,Agent 具备规划、记忆、工具使用三大核心能力,能够完成复杂的多步骤任务。

如果说 LLM 是「大脑」,那么 Agent 就是「大脑 + 手脚 + 感官」的完整智能体。Agent 让 AI 从被动响应走向主动行动,从单步回答走向任务闭环。

Agent vs 传统软件#

维度传统软件AI Agent
交互模式规则驱动意图驱动
灵活性低,固定流程高,动态适应
错误处理异常处理预设自我纠错
用户需求需精确描述模糊需求即可
能力边界限于预设功能通过工具扩展
学习方式可从交互中学习

核心架构#

PRTCL // PLAINTEXT
┌─────────────────────────────────────────────────────────┐
│ AI Agent │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────────────┐ │
│ │ 感知 │ │ 认知 │ │ 行动 │ │
│ │ Perception│→ │ Cognition │→ │ Action │ │
│ └───────────┘ └───────────┘ └───────────────────┘ │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────────────┐ │
│ │ 记忆 │ │ 规划 │ │ 工具 │ │
│ │ Memory │ │ Planning │ │ Tools │ │
│ └───────────┘ └───────────┘ └───────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘

感知(Perception)#

Agent 通过多种方式感知外部世界:

感知类型数据来源处理方式
文本感知用户对话、文档内容LLM 直接理解
视觉感知截图、图片、图表多模态模型处理
听觉感知语音输入ASR 转换为文本
工具感知函数返回结果结构化数据解析
环境感知系统状态、API 响应状态解析

认知(Cognition)#

Agent 的核心思维过程:

PRTCL // PLAINTEXT
感知输入 → 理解意图 → 知识检索 → 推理分析 → 决策生成

意图理解(Intent Parsing):

PRTCL // PYTHON
# 从用户模糊表述中提取精确意图
用户:"我想换工作"
→ 意图:职业转换咨询
→ 子意图:简历优化、职位推荐、面试准备

行动(Action)#

Agent 采取的行动类型:

行动类型说明示例
文本生成回答用户问题撰写邮件
工具调用执行外部功能查询天气
代码执行运行计算逻辑数据分析
文件操作读写本地文件生成报告
API 调用访问外部服务发送消息
Agent 协作调用其他 Agent委托子任务

规划(Planning)#

规划是 Agent 将复杂任务分解为可执行步骤的能力。

规划的重要性#

问题无规划有规划
复杂任务容易迷失方向步骤清晰可控
错误恢复无从回退可回退重试
效率频繁试错一次做对

主流规划方法#

方法 1:思维链(Chain of Thought, CoT)

最简单的规划方法,让模型逐步推理:

PRTCL // PLAINTEXT
用户:帮我规划一个成都三日游
Agent 思考:
1. 首先需要了解用户偏好(美食 / 景点 / 购物?)
2. 然后确定游览地点和路线
3. 安排每日时间表
4. 推荐餐厅和住宿
5. 整理成行程单

方法 2:思维树(Tree of Thoughts, ToT)

在关键决策点探索多个分支:

PRTCL // PLAINTEXT
开始规划
┌─────────┼─────────┐
▼ ▼ ▼
美食游 景点游 亲子游
│ │ │
┌───┼───┐ ┌──┴──┐ ┌──┴──┐
▼ ▼ ▼ ▼ ▼ ▼ ▼
方案 A B C D E F G
评估选择最优方案

方法 3:ReAct(Reasoning + Acting)

交替进行推理和行动:

PRTCL // PLAINTEXT
Thought: 我需要查一下明天成都的天气
Action: call_weather_tool(city="成都", date="明天")
Observation: 天气晴朗,25°C
Thought: 天气很好,适合户外活动,可以在行程中加入宽窄巷子
Action: search_attractions(keyword="成都宽窄巷子")
...

方法 4:Plan-and-Execute

先制定完整计划,再按序执行:

PRTCL // PLAINTEXT
阶段 1(规划阶段):
用户需求 → 任务分解 → 执行计划
┌──────────────────────────────────┐
│ 1. 查询成都景点 │
│ 2. 搜索景点门票和开放时间 │
│ 3. 根据位置规划路线 │
│ 4. 推荐附近美食 │
│ 5. 生成行程表 │
└──────────────────────────────────┘
阶段 2(执行阶段):
按计划逐步执行,每步记录结果

方法 5:LLMCompiler

并行执行独立的子任务:

PRTCL // PYTHON
# 识别可并行任务
tasks = [
search("成都景点推荐"), # 任务 1
search("成都美食攻略"), # 任务 2(可并行)
search("成都交通指南"), # 任务 3(可并行)
]
# 并行执行 → 汇总结果 → 生成最终回答

自我反思与纠错#

优秀的 Agent 具备自我反思能力:

PRTCL // PLAINTEXT
执行:send_email(recipient="张三", content="明天下午 3 点开会")
观察:邮件发送成功,但收件人邮箱地址错误(已离职)
反思:
- 发送前应该先验证收件人状态
- 应该查询最新的通讯录
纠错:
- 重新查询通讯录
- 找到正确的收件人
- 重新发送

记忆(Memory)#

Agent 的记忆分为多个层次,实现信息的有效存储和检索。

记忆架构#

PRTCL // PLAINTEXT
┌─────────────────────────────────────┐
│ 感知输入 │
└──────────────┬──────────────────────┘
┌───────┼───────┐
▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐
│感官 │ │工作 │ │长期 │
│记忆 │ │记忆 │ │记忆 │
└──┬───┘ └──┬───┘ └──┬───┘
│ │ │
▼ │ ▼
即时信息 当前会话 持久存储
原始感知 上下文 经验知识

三层记忆详解#

层次容量生命周期存储方式
感官记忆原始数据当前交互原始格式
工作记忆5-7 项当前会话LLM 上下文
长期记忆无限跨会话向量 DB/ 结构化存储

长期记忆实现#

向量数据库存储:

PRTCL // PYTHON
# 将重要信息编码为向量存入向量数据库
memory_embedding = embed_text("用户偏好:喜欢川菜,不吃辣")
vector_db.add(memory_embedding, metadata={
"content": "用户偏好:喜欢川菜,不吃辣",
"timestamp": "2026-03-21",
"source": "conversation"
})
# 检索时,用当前上下文找到相关记忆
query_embedding = embed_text("推荐一家成都餐厅")
relevant_memories = vector_db.search(query_embedding, top_k=3)

知识图谱存储:

PRTCL // PLAINTEXT
节点:用户、偏好、成都、川菜、不辣
边:用户-喜欢-> 川菜、用户-不喜欢-> 辣

记忆的优先级管理#

不是所有信息都同等重要:

信息类型重要性处理策略
用户明确要求最高立即存储,长期保留
任务关键信息任务期间活跃,任务后可压缩
上下文线索临时使用后可遗忘
闲聊内容可选择性遗忘

工具使用(Tools)#

工具是 Agent 能力的延伸,使其能够影响外部世界。

工具类型全景#

类别工具示例能力
搜索Google、Bing、DuckDuckGo实时信息获取
知识库Wikipedia、企业知识库结构化知识
计算Python、计算器精确计算
代码Python/Shell 执行器编程能力
文件读、写、搜索文件文档处理
API天气、地图、邮件第三方服务
数据库SQL 查询数据访问
MCP 服务器文件系统、Git 等协议标准化工具

工具调用机制#

PRTCL // PLAINTEXT
用户:成都今天天气怎么样?
Step 1: LLM 分析请求,判断需要天气信息
Step 2: LLM 生成工具调用
{
"tool": "weather_api",
"parameters": {"city": "成都"}
}
Step 3: 执行工具,获取结果
Step 4: 将结果注入上下文
Step 5: LLM 生成自然语言回答

工具描述规范#

工具描述的质量直接影响 Agent 的工具选择:

PRTCL // PYTHON
# 不好的描述
tool = {
"name": "search",
"description": "搜索"
}
# 好的描述
tool = {
"name": "web_search",
"description": "在互联网上搜索实时信息、新闻或知识点",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "搜索关键词,建议简洁明确,中文优先"
},
"max_results": {
"type": "integer",
"description": "最多返回结果数,默认 5 条",
"default": 5
}
},
"required": ["query"]
}
}

工具调用策略#

串行调用:结果依赖,顺序执行

PRTCL // PLAINTEXT
search("成都景点") → read_review(id) → generate_itinerary()

并行调用:结果独立,同时执行

PRTCL // PLAINTEXT
search("成都景点"), search("成都美食"), search("成都交通") → 汇总

条件调用:根据结果决定下一步

PRTCL // PLAINTEXT
search() → 结果数量 =0? → 扩大搜索范围 → search()

工作流程#

完整生命周期#

PRTCL // PLAINTEXT
┌──────────────────────────────────────────────────────────┐
│ Agent 任务生命周期 │
├──────────────────────────────────────────────────────────┤
│ │
│ 用户请求 │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ 意图理解 │ ← 分析用户真正想要什么 │
│ └────┬─────┘ │
│ ▼ │
│ ┌──────────┐ │
│ │ 规划分解 │ ← 将任务拆解为步骤 │
│ └────┬─────┘ │
│ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ 工具选择 │ ←→ │ 记忆检索 │ ← 历史经验辅助决策 │
│ └────┬─────┘ └──────────┘ │
│ ▼ │
│ ┌──────────┐ │
│ │ 执行操作 │ ← 调用工具 /API │
│ └────┬─────┘ │
│ ▼ │
│ ┌──────────┐ │
│ │ 结果评估 │ ← 检查是否达到目标 │
│ └──┬───┬───┘ │
│ │ │ │
│ 是│ │否 │
│ ▼ ▼ │
│ 结束 回退 / 重试 │
│ │ │
│ └───────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘

循环控制#

Agent 需要在多种情况下进行循环:

情况策略
任务未完成继续下一步
执行失败回退重试(有限次数)
结果不满意反思改进
遇到障碍寻求替代方案
超出能力请求用户澄清

主流 Agent 框架#

框架对比#

框架语言特点适用场景
LangChain / LangGraphPython/JS功能全面,生态丰富生产级应用
AutoGenPython多 Agent 协作团队协作任务
CrewAIPython多 Agent 协作,强调角色团队协作任务
Dify多语言低代码,WebUI快速原型
Coze(扣子)中文国产低代码平台国内用户
AgnoPython轻量,AI Native新兴框架

LangChain Agent 示例#

PRTCL // PYTHON
from langchain.agents import AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI
from langchain.tools import tool
@tool
def calculator(expression: str) -> str:
"""执行数学计算"""
return str(eval(expression))
@tool
def get_weather(city: str) -> str:
"""获取城市天气"""
return f"{city}今天晴天,25°C"
tools = [calculator, get_weather]
agent = create_react_agent(llm, tools)
agent_executor = AgentExecutor(agent=agent, tools=tools)
result = agent_executor.invoke({
"input": "计算 (25 + 17) * 3,然后告诉我成都天气"
})

CrewAI 多 Agent 协作#

PRTCL // PYTHON
from crewai import Agent, Task, Crew
researcher = Agent(
role="研究员",
goal="收集相关信息",
backstory="资深市场研究员",
tools=[web_search]
)
writer = Agent(
role="作家",
goal="撰写报告",
backstory="专业商业作家",
tools=[file_write]
)
task1 = Task(description="研究竞品信息", agent=researcher)
task2 = Task(description="撰写分析报告", agent=writer)
crew = Crew(agents=[researcher, writer], tasks=[task1, task2])
result = crew.kickoff()

应用场景#

场景说明价值
个人助理日程管理、邮件处理、信息检索节省时间
自动化流程RPA 级任务自动化提升效率
代码助手代码生成、调试、审查提升开发效率
研究助手文献综述、数据分析加速研究
智能客服多轮对话、问题解答降本增效
数据分析数据清洗、可视化数据驱动
金融分析市场分析、风险评估投资辅助

与纯 LLM 的关键区别#

维度纯 LLMAI Agent
交互方式一次性响应多轮自主迭代
工具能力可调用多种工具
任务完成回答问题完成任务闭环
执行效率需要规划与验证
适用场景问答 / 生成复杂自动化任务
自主性
错误恢复可回退和重试
记忆持久性仅当前会话跨会话持久

总结#

AI Agent 是 LLM 从”会说话”到”会做事”的关键跨越。理解 Agent 的架构与工作原理,是构建实用 AI 应用的基础。规划、记忆、工具三大能力的协同,决定了 Agent 的智能水平上限。


关于我#

项目内容
编辑echowang
来源echospace
邮箱echohaoran@gmail.com
简介AI 爱好者,专注于大语言模型应用与智能体开发,分享技术与实践心得
社交欢迎交流讨论,共同成长
R P
Rhine Lab Pioneer Division
Auth_Verified: 2026.03.21
// END OF POST

订阅

通过 RSS 订阅本站,新文章发布时第一时间收到通知。

Follow
Classified
Chapter_06
Protocol_Ref: CC-BY-NC-SA-4.0

AI_Agent智能体架构与实践

Author: CHONGXIReleased: 2026.03.21

Licensed under CC BY-NC-SA 4.0

评论

© 2025-2026 EchoSpace
Powered by Astro & echohaoran Non-Collaborative_Entity // Protocol_V.4.21