
让AI不再是“聊天框”,而是能干活、会规划的自主实体
概念 | 比喻 | 说明 |
|---|---|---|
大模型(LLM) | 大脑 | 能思考、推理、生成文字 |
智能体(Agent) | 完整的人 | 大脑 + 眼睛(感知)+ 手脚(工具)+ 记忆 + 规划能力 |
智能体 = 大模型 + 工具调用 + 记忆系统 + 自主规划
# 伪代码:最简Agent循环
class SimpleAgent:
def __init__(self, llm, tools):
self.llm = llm # 大脑
self.tools = tools # 工具箱
def run(self, user_query):
# ReAct循环:思考 → 行动 → 观察 → 思考 ...
while not finished:
thought = self.llm.think(user_query, self.context) # 思考
action = self.llm.decide_action(thought, self.tools) # 决策
observation = self.execute(action) # 执行
self.context.append(observation) # 观察
return self.llm.generate_answer(self.context)关键区别:普通LLM是“输入→输出”,Agent是“输入→循环思考→调用工具→再思考→最终输出”。
在企业级项目中,我们通常把Agent拆成以下四层:
Agent如何“看到”世界?
陪跑提醒:新手常犯的错误是让Agent一次性感知太多信息,导致上下文爆炸。正确做法是按需检索——需要什么信息,再去取什么信息。
这是Agent最核心的能力,目前主流有三种实现模式:
模式 | 原理 | 适用场景 | 复杂度 |
|---|---|---|---|
ReAct | 思考→行动→观察循环 | 简单任务,单轮工具调用 | ⭐⭐ |
Plan-and-Execute | 先制定完整计划,再逐步执行 | 复杂多步任务(如“订机票+酒店+行程”) | ⭐⭐⭐ |
Reflexion | 执行失败后自我反思、修正 | 需要高质量输出的场景(代码生成、写作) | ⭐⭐⭐⭐ |
ReAct的Prompt模板(可直接用):
你是一个能使用工具的智能助手。
你的工作流程:
1. 思考(Thought):分析当前状态,决定下一步做什么
2. 行动(Action):从工具列表中选择一个工具,并给出参数
3. 观察(Observation):工具执行后返回的结果
可用工具:
- search(query): 搜索互联网
- calculate(expression): 执行数学计算
- get_weather(city): 查询天气
用户问题:{{.UserQuery}}
开始!
Thought: ...工具是Agent能力的边界。企业级Agent的工具设计遵循 “三化原则” :
1. 标准化(Standardized)
每个工具必须有统一的接口描述:
# 工具的标准定义格式
{
"name": "get_order_status",
"description": "查询订单的当前状态,需要提供订单号",
"parameters": {
"order_id": {
"type": "string",
"description": "订单编号,格式如 ORD-2026-001"
}
},
"returns": "订单状态(待支付/已支付/已发货/已完成)"
}2. 可观测化(Observable)
每次工具调用都要记录:
3. 安全化(Secure)
工具执行前做权限校验——Agent不能随便调用删除数据的API。
智能体的记忆不是简单的聊天历史,而是分层设计:
记忆类型 | 存储内容 | 存储方式 | 生命周期 |
|---|---|---|---|
短期记忆 | 当前会话的对话历史 | 内存(滑动窗口) | 单次会话 |
长期记忆 | 用户偏好、历史行为、知识图谱 | 向量数据库(如Milvus) | 永久 |
工作记忆 | 当前任务的状态、中间结果 | Redis | 任务周期 |
程序记忆 | 成功执行过的任务方案(Skill) | 文件/数据库 | 永久 |
企业级经验:记忆系统的设计直接决定了Agent的“智商”水平。没有长期记忆的Agent,每次都是“第一次见你”。
框架 | 特点 | 适合谁 | 上手难度 |
|---|---|---|---|
LangChain | 生态最全,组件丰富,但抽象层级多 | 需要灵活定制的团队 | ⭐⭐⭐ |
LangGraph | 基于图的状态机,支持复杂流程控制 | 需要精细控制Agent流程的场景 | ⭐⭐⭐⭐ |
AutoGen(微软) | 多Agent协作,对话式编程 | 需要多个Agent分工的场景 | ⭐⭐⭐ |
CrewAI | 角色扮演,团队协作风格 | 初创团队快速搭建 | ⭐⭐ |
Dify | 低代码,可视化编排 | 产品/运营人员快速验证 | ⭐ |
自研轻量框架 | 只用HTTP调用LLM,代码可控 | 对延迟/成本极度敏感的场景 | ⭐⭐⭐⭐⭐ |
我的建议:
Step 1:定义工具(3个)
tools = [
{
"name": "get_weather",
"description": "查询某个城市的实时天气",
"parameters": {"city": "城市名称"},
"execute": lambda city: f"{city}今日天气:晴,25°C"
},
{
"name": "calculate",
"description": "执行数学计算",
"parameters": {"expression": "数学表达式"},
"execute": lambda expr: eval(expr) # 仅用于演示,生产环境需沙箱
},
{
"name": "search",
"description": "搜索互联网信息",
"parameters": {"query": "搜索关键词"},
"execute": lambda query: f"搜索结果:关于{query}的最新信息..."
}
]Step 2:编写System Prompt(告诉Agent如何思考和调用工具)
用前面给的ReAct模板,把工具列表动态注入。
Step 3:实现主循环(核心代码不到50行)
def agent_loop(user_query, max_steps=5):
messages = [{"role": "system", "content": system_prompt}, {"role": "user", "content": user_query}]
for step in range(max_steps):
response = call_llm(messages) # 调用大模型API
messages.append({"role": "assistant", "content": response})
# 解析LLM输出,判断是否有工具调用
if "Action:" in response:
tool_name, params = parse_action(response)
result = execute_tool(tool_name, params)
messages.append({"role": "user", "content": f"Observation: {result}"})
else:
# 没有工具调用,说明已得出最终答案
return response
return "任务执行超时,请简化您的请求"用户输入:“北京今天天气怎么样?顺便帮我算一下 123 × 456 等于多少。”
Agent执行轨迹:
Thought: 用户问了两个独立问题,我需要分别调用天气工具和计算工具。
Action: get_weather(city="北京")
Observation: 北京今日天气:晴,25°C
Thought: 天气已获取,现在处理数学计算。
Action: calculate(expression="123*456")
Observation: 56088
Thought: 两个任务都完成了,我可以整合答案回复用户。
Final Answer: 北京今天天气晴朗,气温25°C。另外,123 × 456 = 56088。阶段 | 核心任务 | 关键产出 |
|---|---|---|
Week 1 | 用Dify/CrewAI搭建第一个Agent原型 | 跑通“工具调用”闭环 |
Week 2-3 | 自研轻量Agent框架,替换掉第三方依赖 | 可控的Agent核心代码 |
Week 4-5 | 接入企业真实API(CRM/ERP/数据库) | 能处理真实业务的Agent |
Week 6-8 | 引入记忆系统(向量库 + Redis) | Agent能“记住”用户 |
Week 9-12 | 多Agent协作 + 可观测性 + 成本优化 | 生产级Agent系统 |
现在,打开你的AI对话工具(DeepSeek/ChatGPT),输入下面的Prompt,让AI辅助你完成第一个Agent:
“我想用Python写一个简单的Agent,它能够调用两个工具:‘获取当前时间’和‘查询城市天气’。请帮我生成一份完整可运行的代码,要求:1)使用OpenAI兼容的API接口;2)实现ReAct循环;3)不需要引入LangChain等重量级框架。请给出代码和详细注释。”
等你跑通后,告诉我:
我会根据你的反馈,给你下一阶段的 “多Agent协作系统” 或 “Agent + RAG + 工作流编排” 的深度陪跑方案。
回顾你这一路的探索:
你掌握的技能 | 在Agent中的位置 |
|---|---|
Vibe Coding | 快速生成Agent原型代码 |
ComfyUI工作流 | 理解“节点编排”思想,迁移到Agent流程设计 |
Go运维开发 | 编写高并发、高可用的Tools层 |
手写大模型 | 深入理解LLM的推理机制,优化Agent的“思考”质量 |
提示词工程 | 设计Agent的System Prompt,这是Agent智能的天花板 |
每个技能都在Agent这里汇合。Agent是AI工程的集大成者,也是你从“AI使用者”迈向“AI系统架构师”的关键一步。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。