开篇:什么是AI Agent?它和我的"人工智障"音箱有啥区别?🎤
朋友们,先想象一下:
-
你的智能音箱 🗣️ -> 🤖 -> ❓:"Hey Siri,帮我订一份披萨,不要芝士。"
-
Siri 🗣️ -> 🤖 -> 🍕:"好的,已为您搜索'不要芝士的披萨'的图片,共有5,430,000张结果。"
我: 😤 (怒摔手机)
这就是传统的AI,一个命令式的傻瓜------你问,它答,答非所问是常态。
而现在我们要造的 AI Agent,是这样的:
-
你 🗣️ -> 🤖 -> 🧠:"Hey Agent,我饿了,想吃点健康的,预算50块,搞定它。"
-
Agent 🧠 -> 🤔 -> 🕵️ -> 📱 -> ✅:"已调用'健康食品API'搜索附近餐厅,用'比价插件'筛选出评分最高且优惠的'轻食沙拉',并通过'支付接口'完成下单。订单号666,预计20分钟后送达。记得给好评哦亲!"
我: 🥗 -> 😋 -> 😎 (优雅地刷起了B站,等待外卖)
看出区别了吗?Agent有大脑、会思考、能调用工具、可以自主完成一连串任务 !它不再是单纯的"应答机",而是一个能自主行动的智能体!
一、🧱 打造一个Agent需要哪些"零件"?
把一个Agent拆开,里面大概长这样:

-
🧠 大脑 (Brain) : 通常是一个大语言模型 (LLM),比如GPT-4。负责思考、做决策、规划步骤。它是团队的CEO。
-
🛠️ 工具 (Tools) : 是Agent的"瑞士军刀"。比如:计算器、搜索引擎、API接口、数据库等等。CEO手下干活的工具人。
-
📝 记忆 (Memory): 分为短期记忆(记住当前对话的上下文)和长期记忆(从过去的交互中学习)。防止它变成"金鱼脑",只有7秒记忆。🐠
-
🧩 规划器 (Planner) : 把大任务拆解成一步步可执行的小任务。项目的项目经理。
二、🚀 手把手教你造一个"摸鱼"Agent
项目目标:打造一个"职场摸鱼小助手"Agent。它能在你工作时自动监控股票市场,一旦你买的股票涨跌超过5%,就立刻发邮件提醒你!📈📉(老板看了想打人)
第1步:准备"大脑"和"工具"🔧
我们将使用强大的 LangChain 框架,它把造Agent的复杂度从"造火箭"降到了"拼乐高"。
安装"乐高零件":
pip install langchain-openai langchain-agents python-dotenv requests
第2步:编写代码,注入灵魂💻
创建一个Python文件,比如 moyu_agent.py
python
import os
from langchain.agents import AgentType, initialize_agent, load_tools
from langchain_openai import OpenAI
from langchain.agents import Tool
from langchain import SerpAPIWrapper
from dotenv import load_dotenv
import smtplib
from email.mime.text import MIMEText
# 加载环境变量(把你的API Key都放进去)
load_dotenv()
# -------------------- 工具1: 股票查询工具 (模拟一个) --------------------
def stock_checker(stock_code):
"""一个模拟的股票查询工具,现实中请接入真正的API!"""
# 假装我们查到了股价
mock_price = {
"AAPL": 180 + (ord(stock_code[-1]) % 10) - 5, # 用一个伪随机数模拟股价波动
"TSLA": 250 + (ord(stock_code[-1]) % 10) - 5,
"00700": 350 + (ord(stock_code[-1]) % 10) - 5, # 腾讯港股
}
price = mock_price.get(stock_code, 100)
change = (price - 100) / 100 * 100 # 模拟涨跌幅
return f"{stock_code} 当前价格: ${price}; 涨跌幅: {change:.2f}%"
# 把函数包装成LangChain可用的Tool
stock_tool = Tool(
name="Stock Checker",
func=stock_checker,
description="用于查询指定股票代码的当前价格和涨跌幅。输入应为股票代码,如'AAPL'。"
)
# -------------------- 工具2: 邮件发送工具 --------------------
def email_sender(input_text):
"""一个模拟的发送邮件的工具"""
# 这里应该是你的邮件逻辑,为了演示我们简化了
print(f"🤖 [Agent日志] 正在尝试发送邮件...")
print(f"📧 邮件内容: {input_text}")
# 模拟成功发送
return "邮件发送成功!老板绝对发现不了!"
email_tool = Tool(
name="Email Sender",
func=email_sender,
description="输入邮件正文内容,即可发送邮件。"
)
# -------------------- 组装Agent! --------------------
# 1. 初始化大脑LLM
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0) # 用个便宜点的模型
# 2. 加载工具列表
tools = [stock_tool, email_tool]
# 3. 初始化Agent!
# ZERO_SHOT_REACT_DESCRIPTION 是一种简单的Agent类型,适合单一任务
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True, # 开启废话模式,方便看Agent是怎么思考的
handle_parsing_errors=True # 防止它偶尔解析错摆烂
)
# -------------------- 释放Agent! --------------------
# 给它一个任务!
prompt = """
帮我监控一下股票AAPL(苹果),如果它的涨跌幅超过了5%,就立刻发邮件提醒我!
邮件内容要说:"您的股票波动剧烈,快去看看!别被老板抓到了!!"
"""
if __name__ == "__main__":
print("🚀 摸鱼Agent启动啦!")
result = agent.run(prompt)
print(f"最终结果: {result}")
第3步:运行它,看结果!🎬
在终端运行:
python
python moyu_agent.py
你会看到类似这样的大型思考现场 (verbose=True
的功劳):
python
🚀 摸鱼Agent启动啦!
> Entering new AgentExecutor chain...
I need to check the stock price of AAPL and see if the change is more than 5%. Then, if it is, I need to send an email.
Action: Stock Checker
Action Input: AAPL
Observation: AAPL 当前价格: $177; 涨跌幅: 77.00%
Thought: The change is 77%, which is definitely more than 5%. I need to send an email now.
Action: Email Sender
Action Input: 您的股票波动剧烈,快去看看!别被老板抓到了!!
Observation: 邮件发送成功!老板绝对发现不了!
Thought: I have successfully sent the email as requested.
> Finished chain.
最终结果: 邮件发送成功!老板绝对发现不了!
解读一下Agent的内心戏:
-
Thought: "我得先查查AAPL的股价..." 🤔
-
Action : 它选择了
Stock Checker
这个工具。 -
Observation : 工具返回结果 "涨跌幅: 77%" (这股价坐火箭了?🚀)
-
Thought: "卧槽77%!这还不冲?!" 😲
-
Action : 它立刻选择了
Email Sender
工具。 -
Observation: 邮件发送成功!
-
任务完成! 🎉
三、🌗 总结与展望:未来是Agent的天下!
恭喜你!你已经成功制造了一个初级"摸鱼"Agent!虽然它现在还有点简陋(比如用了模拟数据),但你已经掌握了核心科技!
阶段 | 特点 | emoji |
---|---|---|
过去 | 单轮问答,像个复读机 | 🤖 ➡️ ❓ |
现在 | 多轮思考,会用工具,自主完成任务 | 🤖 ➡️ 🧠 ➡️ 🛠️ ➡️ ✅ |
未来 | 多个Agent协作!比如一个Agent负责调研,一个负责写代码,一个负责测试,它们自己就能开公司了! | 👨💻👩💻🤖🧠🤖🧠 🤝 |
所以,未来的工作模式可能是:
你 :"Agent小队,去给我开发一个下一代元宇宙App,预算5个比特币。"
Agent们 :"收到,CEO!" (然后它们自己就开始分工协作了...)
你:😎 (躺在沙滩上,喝着椰汁)
互动环节:💬
Q1 : 我的Agent只会报错怎么办?
A1 : 正常!99%的时间都在调bug!检查API Key、网络、库版本。记住,程序员的核心技能是谷歌 和复制粘贴。 Stack Overflow is your God! 🙏
Q2 : 有什么现成的Agent平台可以用吗?
A2 : 有!AutoGPT , LangChain , LlamaIndex , Microsoft AutoGen 都是非常火的框架和平台,让你"拼乐高"式造Agent。
Q3 : 我真的会因为造出Agent而失业吗?
A3 : 兄弟,想开点。是你用Agent让别人失业啊!(手动狗头) 🐶
代码和人生一样,总有bug,但不要慌,慢慢调。
祝大家都能造出让自己准时下班的Agent!我们下期再见! 👋
(本篇博客由人类撰写,但未来可能由Agent代笔)