Agent 的组成可以从 架构分层 和 核心模块 两个维度来理解:
一、分层架构视角
plain
┌─────────────────────────────────────┐
│ 交互层 (Interface) │ ← 用户对话、多模态输入输出
├─────────────────────────────────────┤
│ 推理层 (Reasoning) │ ← 任务规划、决策、反思
├─────────────────────────────────────┤
│ 记忆层 (Memory) │ ← 短期/长期记忆、知识存储
├─────────────────────────────────────┤
│ 工具层 (Tools/MCP) │ ← 调用外部API、数据库、文件等
├─────────────────────────────────────┤
│ 安全层 (Guardrails) │ ← 权限控制、内容审核、防幻觉
└─────────────────────────────────────┘
二、核心模块详解
1. 大脑:LLM(核心推理引擎)
-
作用:理解意图、生成计划、推理决策
-
关键能力:
-
Chain-of-Thought(思维链)
-
ReAct(推理+行动循环)
-
函数调用(Function Calling)
-
-
选型:GPT-4、Claude、Llama、Qwen 等
2. 记忆系统(Memory)
| 类型 | 功能 | 实现方式 |
|---|---|---|
| 短期记忆 | 当前对话上下文 | 滑动窗口、Token 限制管理 |
| 工作记忆 | 任务中间状态、变量 | 键值存储、临时缓存 |
| 长期记忆 | 用户偏好、历史知识 | 向量数据库(RAG)、知识图谱 |
| ** episodic 记忆** | 过往任务经验 | 案例库、示例学习 |
3. 规划与任务管理(Planning)
plain
任务分解示例:
"写一份行业分析报告"
→ 1. 搜索最新行业数据
→ 2. 整理关键指标
→ 3. 分析趋势
→ 4. 生成图表
→ 5. 撰写总结
-
技术方案:
-
单路径规划:Chain-of-Thought、ToT(思维树)
-
多路径规划:ReAct、Plan-and-Solve、LATS
-
动态调整:根据工具返回结果,实时修正计划
-
4. 工具调用系统(Tool Use)
| 组件 | 说明 |
|---|---|
| 工具注册表 | 维护可用工具列表(名称、描述、参数Schema) |
| 意图识别 | 判断是否需要调用工具,选哪个工具 |
| 参数填充 | 从上下文提取/生成工具所需参数 |
| 结果解析 | 将工具返回的原始数据转为可理解的格式 |
| 错误处理 | 超时、失败重试、降级策略 |
这就是 MCP Server 接入的位置——工具层的具体实现
5. 行动执行循环(Action Loop)
经典 ReAct 模式:
plain
Thought(思考)→ Action(行动)→ Observation(观察)→ ... → Answer(答案)
plain
示例:
Thought: 用户问北京天气,我需要调用天气API
Action: 调用 weather_tool(location="北京")
Observation: {"temp": 25, "condition": "晴"}
Thought: 已获得数据,可以组织语言回复
Answer: 北京今天晴天,25度,适合出门...
6. 安全与管控(Guardrails)
| 层面 | 功能 |
|---|---|
| 输入安全 | 提示词注入检测、敏感信息过滤 |
| 输出安全 | 内容审核、事实核查(防幻觉) |
| 权限控制 | 工具访问权限、数据范围限制 |
| 审计日志 | 记录决策路径,便于追溯 |
三、典型 Agent 框架对比
| 框架 | 特点 | 适用场景 |
|---|---|---|
| LangChain | 模块化、生态丰富 | 快速原型、复杂流程 |
| AutoGPT | 全自动、目标驱动 | 长期自主任务 |
| MetaGPT | 多Agent协作、SOP化 | 软件开发、团队协作 |
| Dify/Coze | 低代码、可视化 | 业务快速落地 |
| Claude Code | 深度编码能力 | 编程辅助、代码生成 |
四、最小可用 Agent 的代码结构
Python
class SimpleAgent:
def __init__(self):
self.llm = LLM() # 大脑
self.memory = Memory() # 记忆
self.tools = ToolRegistry() # 工具注册表(含MCP Server)
self.planner = Planner() # 规划器
def run(self, user_input):
# 1. 加载上下文
context = self.memory.load()
# 2. 推理决策
thought = self.llm.think(user_input, context)
# 3. 循环执行
while not task_complete:
action = self.llm.decide_action(thought)
if action.is_tool_call:
result = self.tools.execute(action)
observation = self.llm.observe(result)
thought = self.llm.update_thought(observation)
# 4. 更新记忆 & 返回
self.memory.save(thought)
return thought.final_answer
总结:Agent = LLM + 记忆 + 规划 + 工具 + 循环
| 模块 | 核心问题 |
|---|---|
| LLM | 怎么思考? |
| 记忆 | 记得什么? |
| 规划 | 怎么做? |
| 工具 | 用什么做?(MCP Server在这里) |
| 循环 | 如何持续改进? |
MCP Server 只是 工具层 的一种标准化实现方式,而 Agent 是完整的 智能决策系统。
本文荟萃自,只做学术交流学习使用,不做为临床指导,本文观点不代表数字重症 ICU.CN立场。
微信扫一扫