開篇:什么是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
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 moyu_agent.py
你會看到類似這樣的大型思考現場(verbose=True
?的功勞):
🚀 摸魚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代筆)