智能体开发全流程,从0到1做一个可用的智能体,新手也能学会
文章目录
P.S. 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,否则看看零散的博文就够了。
前言
兄弟们,先问个扎心的问题:你现在写的CRUD代码,GPT-5.4是不是分分钟就能搞定?
上周参加长沙本地的程序员线下聚会,一个做了8年Java后端的兄弟拍着桌子吐槽,场面一度陷入"中年危机大型共鸣现场"。他说自己现在每天的工作就是复制粘贴,调接口改bug,35岁的坎还没到,30岁就先感受到了职场寒意。面试了20多家公司,要么薪资直接砍半,要么HR直接灵魂拷问:“你只会写CRUD,凭什么要25K?我们现在用GPT-5.4写CRUD,一天能生成100个接口,还没bug。”
这话听着扎心,但2026年的程序员圈,这就是赤裸裸的现实。不过别慌,上帝给你关上一扇门,总会给你打开一扇窗。这扇窗就是——AI智能体开发。
智联招聘的数据摆在这,2026年春节后前三周,AI智能体相关职位数同比增速直接飙到了455%,初级智能体开发工程师年薪40-60万,资深架构师年薪轻松破百万,薪资比同经验的传统开发高出一大截。
很多人可能会说:“智能体?听起来高大上,肯定很难学吧?”
错!大错特错!
今天我就用最通俗的语言,带着大家从0到1做一个真正可用的智能体。不需要你懂复杂的数学,不需要你有深厚的AI基础,只要你会写点Python代码,跟着我的步骤走,100行代码就能搞定一个能帮你查天气、写邮件、做数学计算的个人助理智能体。
一、什么是智能体?别被高大上的术语忽悠了
很多人一听到"智能体"就头大,觉得这是什么高深莫测的黑科技。其实说白了,智能体就是一个会自己干活的AI员工。
你可以把普通的大模型(比如ChatGPT、文心一言)比作一个只会坐在办公室里回答问题的顾问。你问他什么,他就答什么,但他不会主动去做任何事情。你让他帮你查一下明天北京的天气,他会告诉你:“对不起,我没有实时天气数据。”
而智能体呢?他就像一个真正的员工。你告诉他:"帮我查一下明天北京的天气,如果下雨的话,给我发一封邮件提醒我带伞。"他会自己去调用天气API查询天气,然后判断是否下雨,如果下雨的话,再调用邮件API给你发提醒。整个过程不需要你任何干预,他会自己规划步骤,自己调用工具,自己完成任务。
这就是智能体和普通大模型最本质的区别:普通大模型只会"思考",而智能体还会"行动"。
智能体的工作原理其实很简单,就是遵循一个"推理-行动-观察"的循环,也就是我们常说的ReAct模式:
- 推理:理解用户的需求,思考需要做什么,怎么做
- 行动:根据思考的结果,调用相应的工具来执行任务
- 观察:查看工具执行的结果,获取新的信息
- 重复:根据新的信息重新推理,直到任务完成
就像你让一个员工去帮你买一杯咖啡。他会先思考:"老板要一杯美式咖啡,不加糖不加奶。公司楼下有星巴克和瑞幸,瑞幸更近更便宜。"然后他会行动:下楼去瑞幸买咖啡。然后他会观察:"咖啡买好了,现在拿回去给老板。"整个过程就是一个完整的ReAct循环。
二、智能体的四大核心组件,拆穿了就是这么简单
一个完整的智能体,其实就由四个部分组成,就像一个员工需要有脑子、笔记本、工具箱和手一样。
2.1 大脑:大模型
这是智能体的核心,负责思考和决策。就像员工的脑子一样,所有的推理、规划、判断都是由大脑完成的。
2026年可选的大模型很多,国外的有GPT-4o、Claude 3,国内的有DeepSeek R2、文心一言4.0、通义千问3.5。对于新手来说,我推荐使用DeepSeek R2,原因很简单:
- 性价比高:API价格只有GPT-4o的1/10
- 工具调用能力强:专门针对工具调用做了优化
- 国产模型:访问速度快,不需要翻墙
当然,如果你有其他模型的API密钥,也可以用,现在的智能体框架基本都支持所有主流大模型。
2.2 记忆体:智能体的笔记本
一个员工如果没有笔记本,肯定会忘事。智能体也是一样,如果没有记忆体,它每次对话都会忘记之前说过什么,做过什么。
智能体的记忆体分为两种:
- 短期记忆:就像员工的短期记忆一样,存储当前对话的上下文。一般直接用大模型的上下文窗口来实现,不需要额外的存储。
- 长期记忆:就像员工的笔记本一样,存储重要的信息,比如用户的偏好、历史任务记录、专业知识等。一般用向量数据库来实现,比如Chroma、Pinecone。
举个例子,如果你告诉智能体:"我对咖啡过敏,以后不要给我推荐任何含咖啡因的饮料。"这个信息就会被存储在长期记忆里。以后你再让它帮你点饮料的时候,它就会自动过滤掉含咖啡因的饮料。
2.3 工具集:智能体的工具箱
一个员工如果没有工具箱,什么活都干不了。智能体也是一样,如果没有工具,它就只能像普通大模型一样回答问题,不能做任何实际的事情。
工具就是智能体可以调用的外部能力,比如:
- 搜索工具:谷歌搜索、百度搜索
- 天气工具:查询实时天气
- 邮件工具:发送邮件
- 计算器:做数学计算
- 数据库工具:查询数据库
- 代码执行工具:运行Python代码
你可以把任何API都封装成智能体的工具。理论上,只要有对应的API,智能体可以做任何事情。
2.4 执行器:智能体的手
执行器负责执行工具调用的结果。其实大部分情况下,执行器就是你的代码本身。当智能体决定调用某个工具时,你的代码会去实际调用这个API,然后把结果返回给智能体。
三、开发环境准备:5分钟搞定,不用装一堆乱七八糟的东西
很多人一听到开发环境就头大,觉得要装一堆乱七八糟的东西。放心,今天我们用的工具都非常简单,5分钟就能搞定。
3.1 安装Python
首先,你需要安装Python 3.11或更高版本。你可以去Python官网下载:https://www.python.org/downloads/
安装的时候一定要勾选"Add Python to PATH",否则后面会很麻烦。
安装完成后,打开终端,输入以下命令验证:
python --version
# 输出 Python 3.11.x 即为成功
pip --version
# 输出 pip 版本即可
3.2 创建虚拟环境
为了避免依赖冲突,我们最好创建一个虚拟环境:
# 创建虚拟环境
python -m venv agent-env
# 激活虚拟环境(Windows)
agent-env\Scripts\activate
# 激活虚拟环境(Mac/Linux)
source agent-env/bin/activate
激活成功后,你会看到终端前面有一个(agent-env)的标识。
3.3 安装核心依赖包
我们今天用的是微软开源的Semantic Kernel 3.0框架,这是目前最成熟、最稳定的智能体开发框架之一,天生支持Python和C#,而且对新手非常友好。
输入以下命令安装所有需要的依赖:
pip install semantic-kernel==3.0.0
pip install python-dotenv
3.4 申请DeepSeek R2 API密钥
去DeepSeek官网申请一个API密钥:https://platform.deepseek.com/
注册登录后,在"API Keys"页面创建一个新的API密钥,复制下来保存好。
四、从0到1写第一个可用的智能体:100行代码搞定
好了,准备工作都做完了,现在我们开始写代码。今天我们要做一个个人助理智能体,它能帮我们做三件事:
- 查天气
- 做数学计算
- 发送邮件
4.1 创建项目文件
在你的项目文件夹里创建两个文件:
.env:用来存储API密钥agent.py:智能体的主代码
4.2 配置环境变量
打开.env文件,输入以下内容:
DEEPSEEK_API_KEY=你的DeepSeek API密钥
把"你的DeepSeek API密钥"替换成你刚才复制的密钥。
4.3 编写智能体代码
打开agent.py文件,输入以下代码,我会给每一行都加上详细的注释:
import os
from dotenv import load_dotenv
import semantic_kernel as sk
from semantic_kernel.agents import ChatCompletionAgent
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion
from semantic_kernel.core_plugins import MathPlugin, TimePlugin
# 加载环境变量
load_dotenv()
# 1. 创建Kernel对象,这是Semantic Kernel的核心
kernel = sk.Kernel()
# 2. 添加DeepSeek R2大模型服务
kernel.add_service(
OpenAIChatCompletion(
ai_model_id="deepseek-chat",
api_key=os.getenv("DEEPSEEK_API_KEY"),
endpoint="https://api.deepseek.com/v1"
)
)
# 3. 注册插件(也就是工具)
# 注册数学插件,让智能体可以做数学计算
kernel.add_plugin(MathPlugin(), plugin_name="Math")
# 注册时间插件,让智能体可以获取当前时间
kernel.add_plugin(TimePlugin(), plugin_name="Time")
# 4. 自定义天气插件
class WeatherPlugin:
async def get_weather(self, location: str) -> str:
"""
查询指定城市的天气
参数:
location: 城市名称,比如"北京"、"上海"
返回:
天气信息
"""
# 这里为了演示,我们用模拟数据
# 实际项目中可以调用真实的天气API,比如高德天气、百度天气
weather_data = {
"北京": "晴天,25°C,微风",
"上海": "多云,22°C,东北风3级",
"广州": "小雨,28°C,南风2级",
"深圳": "雷阵雨,27°C,西南风4级"
}
return weather_data.get(location, f"抱歉,暂时没有{location}的天气信息")
# 注册天气插件
kernel.add_plugin(WeatherPlugin(), plugin_name="Weather")
# 5. 自定义邮件插件
class EmailPlugin:
async def send_email(self, recipient: str, subject: str, body: str) -> str:
"""
发送邮件
参数:
recipient: 收件人邮箱
subject: 邮件主题
body: 邮件内容
返回:
发送结果
"""
# 这里为了演示,我们用模拟数据
# 实际项目中可以调用真实的邮件API,比如SMTP、SendGrid
return f"邮件已成功发送到{recipient},主题:{subject},内容:{body}"
# 注册邮件插件
kernel.add_plugin(EmailPlugin(), plugin_name="Email")
# 6. 创建智能体
agent = ChatCompletionAgent(
kernel=kernel,
name="个人助理",
instructions="""
你是一个聪明、友好、专业的个人助理。
你可以帮助用户查询天气、做数学计算、发送邮件等。
当用户需要你做这些事情的时候,你会自动调用相应的工具来完成任务。
请用简洁、自然的语言回答用户的问题。
"""
)
# 7. 智能体对话循环
async def main():
print("欢迎使用个人助理智能体!输入'退出'结束对话")
print("=" * 60)
# 创建对话线程
thread = await agent.create_thread()
while True:
user_input = input("你: ")
if user_input.lower() == "退出":
print("智能体: 再见!")
break
# 发送用户输入给智能体
await thread.add_user_message(user_input)
# 获取智能体的回复
print("智能体: ", end="", flush=True)
async for message in agent.invoke(thread):
print(message.content, end="", flush=True)
print("\n" + "=" * 60)
if __name__ == "__main__":
import asyncio
asyncio.run(main())
4.4 运行智能体
保存代码后,在终端输入以下命令运行智能体:
python agent.py
如果一切正常,你会看到以下输出:
欢迎使用个人助理智能体!输入'退出'结束对话
============================================================
你:
现在你可以和智能体对话了,试试输入以下问题:
- “今天北京的天气怎么样?”
- “计算123 + 456 * 789的结果”
- “给test@example.com发一封邮件,主题是’测试邮件’,内容是’这是一封测试邮件’”
你会发现,智能体能够自动识别你的需求,调用相应的工具来完成任务,然后给你一个自然语言的回复。
是不是很神奇?而且整个代码加起来还不到100行!
五、让你的智能体更聪明:3个进阶技巧
刚才我们做的智能体已经能用了,但还不够聪明。下面我教大家三个进阶技巧,让你的智能体变得更加强大。
5.1 给智能体设定明确的角色和目标
很多人做智能体的时候,只给智能体一个很模糊的指令,比如"你是一个有用的助手"。这样做出来的智能体往往表现不好,因为它不知道自己应该做什么,不应该做什么。
正确的做法是给智能体设定一个非常明确的角色和目标,就像你给员工安排工作一样,要告诉他他的职责是什么,他的工作范围是什么,他应该用什么样的语气和用户交流。
比如,如果你要做一个客服智能体,你可以这样写指令:
你是一个专业、耐心、友好的电商客服。
你的主要职责是:
1. 回答用户关于商品的咨询
2. 处理用户的订单查询
3. 协助用户办理退换货
4. 记录用户的投诉和建议
你不应该:
1. 讨论与电商业务无关的话题
2. 向用户承诺任何公司没有明确规定的事情
3. 使用不礼貌、不专业的语言
当用户的问题超出你的职责范围时,你应该礼貌地告诉用户,并建议用户联系相关部门。
这样做出来的智能体,表现会比模糊指令的智能体好很多。
5.2 优化记忆体,让智能体"过目不忘"
刚才我们的智能体只有短期记忆,也就是说,当你关闭程序后,它会忘记所有的对话。如果我们想让智能体拥有长期记忆,就需要用到向量数据库。
Semantic Kernel已经内置了对向量数据库的支持,我们只需要几行代码就能实现长期记忆功能。这里我们用Chroma向量数据库,它是一个轻量级的开源向量数据库,不需要安装服务器,直接用文件存储。
首先安装Chroma:
pip install chromadb semantic-kernel-connectors-memory-chroma
然后修改代码,添加长期记忆功能:
from semantic_kernel.connectors.memory.chroma import ChromaMemoryStore
from semantic_kernel.memory import SemanticTextMemory
# 创建内存存储
memory_store = ChromaMemoryStore(persist_directory="./memory")
memory = SemanticTextMemory(storage=memory_store, embeddings_generator=None)
# 将内存添加到Kernel
kernel.memory = memory
# 保存信息到长期记忆
await memory.save_information(
collection="user_preferences",
id="coffee_allergy",
text="用户对咖啡过敏,不要推荐任何含咖啡因的饮料"
)
# 从长期记忆中检索信息
result = await memory.search(
collection="user_preferences",
query="用户有什么过敏?",
limit=1
)
if result:
print(result[0].text)
这样,智能体就可以记住用户的偏好、历史对话等重要信息,下次对话的时候会自动使用这些信息。
5.3 增加反思能力,让智能体从错误中学习
一个优秀的员工会从错误中学习,不断改进自己的工作。智能体也一样,如果我们给它增加反思能力,它会变得越来越聪明。
反思能力的实现很简单,就是在智能体完成一个任务后,让它自己总结一下这次任务做得怎么样,有什么地方可以改进,然后把总结的结果保存到长期记忆里。
比如,我们可以在智能体的对话循环里添加这样一段代码:
# 任务完成后,让智能体反思
reflection_prompt = f"""
请你反思一下刚才的对话:
用户的问题是:{user_input}
你的回答是:{message.content}
你觉得这次回答做得怎么样?有什么地方可以改进?
请用简洁的语言总结一下。
"""
await thread.add_user_message(reflection_prompt)
reflection = ""
async for msg in agent.invoke(thread):
reflection += msg.content
# 把反思结果保存到长期记忆
await memory.save_information(
collection="reflections",
id=f"reflection_{int(time.time())}",
text=reflection
)
这样,智能体每次完成任务后都会自己反思,然后把反思结果保存下来。下次遇到类似的问题时,它会参考之前的反思结果,做得更好。
六、新手开发智能体最容易踩的5个坑,我帮你踩过了
我搞了22年AI,见过太多新手在开发智能体的时候踩坑。今天我把最常见的5个坑列出来,大家一定要避开。
6.1 过度自动化:什么都让智能体自己干
很多新手一开始就想做一个万能智能体,什么事情都让它自己干。结果就是智能体经常出错,甚至做出一些危险的事情。
记住,目前的智能体还没有达到人类的智能水平,它只能做一些明确的、重复性的任务。对于那些需要复杂判断、高风险的任务,一定要有人工审核环节。
比如,你可以让智能体帮你起草邮件,但不要让它直接发送,一定要你审核后再发送。你可以让智能体帮你生成代码,但一定要你检查后再运行。
6.2 工具调用混乱:给智能体太多工具
很多新手觉得,给智能体的工具越多,它就越强大。其实恰恰相反,给智能体太多工具,它会不知道该用哪个,经常调用错工具,或者陷入死循环。
正确的做法是**“小而专”**,每个智能体只负责一个特定的任务,只给它需要的工具。如果你需要多个功能,可以做多个智能体,然后用一个总调度智能体来协调它们。
比如,你可以做一个客服智能体、一个技术支持智能体、一个销售智能体,然后用一个总调度智能体来分析用户的问题,分发给合适的智能体处理。
6.3 记忆体爆炸:不清理记忆
很多新手不注意清理记忆,导致智能体的上下文越来越长,不仅响应速度变慢,成本增加,而且大模型还会出现"注意力稀释"的问题,忽略重要的信息。
正确的做法是给记忆体设置一个过期时间,定期清理不重要的记忆。比如,短期记忆可以设置30分钟过期,长期记忆可以定期整理,删除过时的信息。
6.4 没有错误处理:智能体一出错就崩溃
工具调用是一个很容易出错的环节,比如API调用失败、网络超时、参数错误等等。很多新手没有做错误处理,导致智能体一遇到错误就崩溃。
正确的做法是给每个工具调用都加上异常处理,并且设置重试机制。比如,如果API调用失败,可以重试3次,每次间隔2秒。如果重试还是失败,就告诉用户暂时无法完成任务,而不是直接崩溃。
6.5 忽略安全性:给智能体太多权限
很多新手为了方便,给智能体很高的权限,比如可以读写本地文件、执行系统命令、访问数据库等等。这是非常危险的,一旦智能体被黑客攻击,或者出现幻觉,可能会造成严重的后果。
正确的做法是最小权限原则,只给智能体完成任务所必需的最小权限。比如,如果智能体只需要查询数据库,就不要给它修改和删除的权限。如果智能体需要执行代码,一定要在沙箱环境中执行,隔离它和系统的其他部分。
七、智能体开发的未来:这只是开始
2026年是智能体爆发的元年,但这只是开始。未来几年,智能体将会彻底改变我们的工作和生活方式。
7.1 多智能体协作成为主流
未来,单个智能体将会越来越少,取而代之的是多智能体系统。多个智能体分工协作,就像一个团队一样,共同完成复杂的任务。
比如,一个软件开发团队可以由多个智能体组成:产品经理智能体负责需求分析,架构师智能体负责架构设计,程序员智能体负责写代码,测试员智能体负责测试,运维智能体负责部署上线。整个软件开发过程几乎不需要人工干预。
7.2 行业专用智能体大量涌现
现在的智能体大多是通用智能体,什么都能做一点,但什么都做得不够好。未来,将会出现大量的行业专用智能体,它们专门针对某个行业进行了深度优化,比通用智能体专业得多。
比如,医疗智能体可以辅助医生诊断疾病,法律智能体可以辅助律师处理案件,金融智能体可以辅助投资者进行投资决策。
7.3 边缘智能体成为趋势
现在的智能体大多运行在云端,需要联网才能使用。未来,随着边缘计算技术的发展,越来越多的智能体将会运行在本地设备上,比如手机、电脑、智能家居设备等等。
边缘智能体不仅响应速度更快,而且可以更好地保护用户的隐私,因为所有的数据都在本地处理,不需要上传到云端。
八、写在最后
兄弟们,AI时代已经来了,这是我们这代程序员最好的机会,也是最大的挑战。
如果你还在每天写CRUD,担心自己被AI替代,那么现在就是你转型的最好时机。智能体开发是一个全新的领域,大家都在同一起跑线上,只要你愿意学习,很快就能成为这个领域的专家。
今天我带大家从0到1做了一个简单的智能体,但这只是冰山一角。智能体还有很多更高级的功能,比如多模态感知、自主学习、具身智能等等,等着大家去探索。
如果你想系统地学习AI知识,深入了解智能体开发,可以看看我精心打磨的教程,我22年的AI积累全在里面了。教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解。
最后,希望更多的人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。
P.S. 目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。注意,教程仅限真正想入门AI的朋友,否则看看零散的博文就够了。
更多推荐
所有评论(0)