大模型装上“手脚“:Agent智能体实战指南,轻松搞定复杂任务!
本文介绍了大模型Agent的概念及其优势,Agent通过结合大模型、思考决策逻辑和外部工具集,能够自主判断、选择工具并分步完成复杂任务。文章详细解析了ReAct架构Agent的四大核心模块:大模型、自定义工具集、工具装饰器和ReAct调度器,并通过实例展示了Agent的完整执行流程,包括接收用户输入、大模型推理、执行动作和结果回传等步骤。最后,提供了基于LangChain和DeepSeek大模型的Agent实战代码,帮助读者理解和应用Agent技术。
什么是大模型 Agent
单纯的大模型,只会基于自身知识生成文本,存在两个明显短板:
- 知识有截止时间,无法获取实时信息;
- 不能操作外部环境,没法读写文件、执行计算、调用接口。
而 Agent(智能体),就是给大模型装上「手脚」和「思考决策能力」。
简单总结:
Agent = 大模型 + 思考决策逻辑 + 外部工具集
它不再是被动问答,而是可以自主判断、自主选择工具、分步完成复杂任务。
我们本次实战的代码,就是最经典的 ReAct 架构 Agent,也是目前工业界使用最广的智能体模式。
技术栈说明及使用环境
LangChain:1.3.2
LangGraph:1.2.2
模型:DeepSeek 通用大模型
整体架构拆解(四大核心模块)
先看整体结构,我们的 Agent 一共由 4 个部分组成,缺一不可:
- 大模型 LLM:负责思考、判断、生成调用指令
- 自定义 Tools 工具集:外部可执行能力(文件、计算、查询等)
- @tool 装饰器:LangChain 标准工具封装方式
- ReAct Agent 调度器:串联「思考→调用工具→汇总结果」全流程
大模型 LLM
apikey=
"sk-xxxxxxx"
baseurl=
"https://api.deepseek.com/v1"
llm = ChatOpenAI(
model="deepseek-chat",
temperature=0.5,
api_key=apikey,
base_url=baseurl
)
Tool 工具(Agent 的手脚)
工具是 Agent 能落地业务的关键。
LangChain 统一使用 @tool 装饰器 来定义工具,这是官方标准写法。
@tool
def 工具名(入参: 类型) -> 字符串:
""" 工具描述(非常重要!模型靠这段文字理解工具用途)
:param 参数名: 参数说明 """
# 业务逻辑
return "执行结果"
ReAct 调度器(核心执行逻辑)
# 所有定义工具加入tools数组
tools = [write_to_file,write_file,list_files,delete_file,calculate,get_weather]
# 绑定agent
agent = create_react_agent(llm, tools)
这一行代码,背后就是整个 Agent 的决策循环逻辑。
**ReAct = Reason(推理思考) + Act(执行动作)**也是整个智能体最核心的运行机制。
ReAct Agent 完整执行流程
示例:命令 今天的深圳天气怎么样,帮信息存在weather.txt
步骤 1:接收用户输入
用户提问被封装为消息格式,送入 Agent:
{"messages": [("user", "今天的深圳天气怎么样,帮信息存在weather.txt")]}
步骤 2:大模型「推理 Reason」
模型收到三类信息:
- 用户原始问题
- 所有工具的名称、功能描述、入参要求
- 历史执行记录
模型自主判断:
这个任务无法直接回答,需要调用工具 → 选择
delete_file工具 → 提取参数file_name="poem.txt"
然后输出工具调用指令,而非自然语言回答。
步骤 3:执行动作 Act(调用工具)
Agent 调度器解析模型的调用指令,找到对应工具函数,传入参数并本地执行代码:
- 校验文件路径是否在安全目录
- 判断文件是否存在
- 执行删除逻辑
- 返回工具执行结果(成功 / 失败信息)
步骤 4:结果回传给大模型,二次汇总
工具执行结果再次发回大模型。模型拿到执行状态后,不再调用新工具,整理信息,生成最终自然语言回答返回给用户。

完整个代码如下
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent
# 1. 加载环境变量
load_dotenv()
# 2. 定义安全工作目录(沙箱隔离)
WORK_DIR = r"safe_files"
os.makedirs(WORK_DIR, exist_ok=True)
# 3. 初始化大模型(Agent 大脑)
api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
base_url = "https://api.deepseek.com/v1"
llm = ChatOpenAI(
model="deepseek-chat",
temperature=0.5,
api_key=api_key,
base_url=base_url
)
# ---------------------- 自定义工具集(Agent 手脚) ----------------------
@tool
def write_to_file(file_name: str, content: str) -> str:
"""将内容写入指定文件,仅允许写入安全目录内的文件"""
file_path = os.path.abspath(os.path.join(WORK_DIR, file_name))
if not file_path.startswith(os.path.abspath(WORK_DIR)):
return "❌ 错误:禁止写入安全目录外的文件!"
try:
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
return f"✅ 成功写入文件:{file_path}"
except Exception as e:
return f"❌ 写入失败:{str(e)}"
@tool
def list_files() -> str:
"""列出安全目录下所有文件"""
try:
files = os.listdir(WORK_DIR)
return "当前目录文件:\n" + "\n".join(files)
except Exception as e:
return f"列出失败: {str(e)}"
@tool
def delete_file(file_name: str) -> str:
"""删除安全目录内指定文件"""
file_path = os.path.abspath(os.path.join(WORK_DIR, file_name))
if not file_path.startswith(os.path.abspath(WORK_DIR)):
return "错误:禁止删除安全目录外的文件"
if not os.path.exists(file_path):
return "错误:文件不存在"
try:
os.remove(file_path)
return f"已成功删除文件: {file_name}"
except Exception as e:
return f"删除失败: {str(e)}"
@tool
def calculate(expression: str) -> str:
"""计算数学表达式,示例:(10+20)*5"""
try:
result = eval(expression, {"__builtins__": None}, {})
return f"计算结果: {expression} = {result}"
except Exception as e:
return f"计算失败: {str(e)}"
@tool
def get_weather(city: str) -> str:
"""查询指定城市天气"""
data = {
"北京": "晴天 25℃,湿度40%",
"上海": "多云 27℃,湿度65%",
"广州": "小雨 30℃,湿度85%",
"深圳": "晴转多云 28℃,湿度70%"
}
return data.get(city, f"{city} 暂无天气数据")
# 注册所有工具
tools = [write_to_file, list_files, delete_file, calculate, get_weather]
# 4. 创建 ReAct 智能体(调度核心)
agent = create_react_agent(llm, tools)
# 5. 启动测试
if __name__ == "__main__":
print("Agent 已启动,请等待任务执行...")
# 可自行修改测试指令
user_input = "帮删除 safe_files 中的 poem.txt"
response = agent.invoke({
"messages": [("user", user_input)]
})
print("\n==== 最终回答 ====")
print(response["messages"][-1].content)
结语:抓住大模型时代的职业机遇
AI大模型的发展不是“替代人类”,而是“重塑职业价值”——它淘汰的是重复性、低附加值的工作,却催生了更多需要“技术+业务”交叉能力的高端岗位。对于求职者而言,想要在这波浪潮中立足,不仅需要掌握Python、TensorFlow/PyTorch等技术工具,更要深入理解目标行业的业务逻辑(如金融的风险控制、医疗的临床需求),成为“懂技术、懂业务”的复合型人才。
无论是技术研发岗(如算法工程师、研究员),还是业务落地岗(如产品经理、应用工程师),大模型都为不同背景的职场人提供了广阔的发展空间。只要保持学习热情,紧跟技术趋势,就能在AI大模型时代找到属于自己的职业新蓝海。
最近两年大模型发展很迅速,在理论研究方面得到很大的拓展,基础模型的能力也取得重大突破,大模型现在正在积极探索落地的方向,如果与各行各业结合起来是未来落地的一个重大研究方向
大模型应用工程师年包50w+属于中等水平,如果想要入门大模型,那现在正是最佳时机
2025年Agent的元年,2026年将会百花齐放,相应的应用将覆盖文本,视频,语音,图像等全模态
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
扫描下方csdn官方合作二维码获取哦!

给大家推荐一个大模型应用学习路线
这个学习路线的具体内容如下:
第一节:提示词工程
提示词是用于与AI模型沟通交流的,这一部分主要介绍基本概念和相应的实践,高级的提示词工程来实现模型最佳效果,以现实案例为基础进行案例讲解,在企业中除了微调之外,最喜欢的就是用提示词工程技术来实现模型性能的提升

第二节:检索增强生成(RAG)
可能大家经常会看见RAG这个名词,这个就是将向量数据库与大模型结合的技术,通过外部知识来增强改进提升大模型的回答结果,这一部分主要介绍RAG架构与组件,从零开始搭建RAG系统,生成部署RAG,性能优化等

第三节:微调
预训练之后的模型想要在具体任务上进行适配,那就需要通过微调来提升模型的性能,能满足定制化的需求,这一部分主要介绍微调的基础,模型适配技术,最佳实践的案例,以及资源优化等内容

第四节:模型部署
想要把预训练或者微调之后的模型应用于生产实践,那就需要部署,模型部署分为云端部署和本地部署,部署的过程中需要考虑硬件支持,服务器性能,以及对性能进行优化,使用过程中的监控维护等

第五节:人工智能系统和项目
这一部分主要介绍自主人工智能系统,包括代理框架,决策框架,多智能体系统,以及实际应用,然后通过实践项目应用前面学习到的知识,包括端到端的实现,行业相关情景等

学完上面的大模型应用技术,就可以去做一些开源的项目,大模型领域现在非常注重项目的落地,后续可以学习一些Agent框架等内容
上面的资料做了一些整理,有需要的同学可以下方添加二维码获取(仅供学习使用)

更多推荐



所有评论(0)