Python AI Agent 開發入門:用 LangChain 打造你的第一個自動化智能助手
最近這一年,AI Agent 這個詞幾乎是無處不在。從自動回覆客服到幫你寫程式碼、整理資料,AI Agent 正在改變我們與軟體互動的方式。身為 Python 開發者,你其實已經站在最好的起跑點上了——因為目前最成熟的 AI Agent 框架 LangChain,就是以 Python 為主力語言打造的。
這篇文章會帶你從零開始,一步步用 Python 和 LangChain 建立你的第一個 AI Agent。不需要有機器學習的背景,只要你會基本的 Python 語法就能跟上。如果你還在考慮要不要學 Python 自動化,可以先看看我們的Python 自動化完整指南,裡面有更全面的學習路線圖。
什麼是 AI Agent?為什麼它是 2026 年最熱門的技術
簡單來說,AI Agent 就是一個能「自己思考、自己行動」的程式。傳統的聊天機器人只能根據你的輸入給出回應,但 AI Agent 不一樣——它可以拆解任務、決定要用什麼工具、執行操作,甚至在遇到問題時自動調整策略。
舉個例子:你跟一般的 ChatBot 說「幫我查一下台積電今天的股價然後整理成報表」,它只會跟你說它做不到。但一個設計好的 AI Agent,會自己去呼叫股價 API、取得數據、然後用 Python 幫你產出一份整理好的報表。
AI Agent 的核心組成包含三個部分:
- LLM(大型語言模型):負責理解指令和推理,像是 GPT-4 或 Claude
- 工具(Tools):Agent 可以使用的能力,像是搜尋網路、讀取檔案、呼叫 API
- 記憶(Memory):讓 Agent 記住之前的對話內容和執行結果
LangChain 框架快速入門
LangChain 是目前最受歡迎的 AI Agent 開發框架,沒有之一。它把建立 AI Agent 需要的各種零件都包裝好了,讓你可以像組積木一樣快速搭建出功能強大的智能助手。
LangChain 的主要模組包括:
- Models:統一介面來連接各種 LLM(OpenAI、Anthropic、本地模型都支援)
- Prompts:管理和優化提示詞的模板系統
- Chains:將多個步驟串連成一條工作流程
- Agents:讓 LLM 自己決定要呼叫哪些工具來完成任務
- Memory:在對話之間保存上下文
2026 年的 LangChain 已經進化到 v0.3 版本,架構更加模組化,效能也有顯著提升。特別是 langgraph 的加入,讓你可以用圖(Graph)的方式來定義 Agent 的工作流程,對於複雜的多步驟任務來說非常好用。
開發環境建置與套件安裝
在開始寫 code 之前,先確認你的開發環境有以下條件:
- Python 3.10 或以上版本
- 一個 OpenAI API key(或其他 LLM provider 的 key)
- pip 套件管理工具
安裝需要的套件:
pip install langchain langchain-openai langgraph python-dotenv建議使用 .env 檔案來管理你的 API key:
# .env
OPENAI_API_KEY=sk-your-api-key-here然後在 Python 檔案的開頭載入環境變數:
from dotenv import load_dotenv
load_dotenv()打造你的第一個 AI Agent
廢話不多說,直接來寫一個最基本的 AI Agent。這個 Agent 會有一個簡單的工具:計算數學運算。
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.tools import tool
from langchain_core.prompts import ChatPromptTemplate
# 定義一個工具
@tool
def calculator(expression: str) -> str:
"""計算數學表達式,例如 '2 + 3 * 4'"""
try:
result = eval(expression)
return f"計算結果:{result}"
except Exception as e:
return f"計算錯誤:{str(e)}"
# 設定 LLM
llm = ChatOpenAI(model="gpt-4o", temperature=0)
# 建立提示詞模板
prompt = ChatPromptTemplate.from_messages([
("system", "你是一個有幫助的 AI 助手,擅長數學計算。"),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
# 組裝 Agent
agent = create_tool_calling_agent(llm, [calculator], prompt)
agent_executor = AgentExecutor(agent=agent, tools=[calculator], verbose=True)
# 執行
result = agent_executor.invoke({"input": "請幫我算 (15 + 27) * 3 - 42 是多少"})
print(result["output"])執行這段程式碼,你會在 terminal 看到 Agent 的思考過程:它會先分析你的問題,決定要用 calculator 工具,然後把結果回傳給你。
實戰:建立網路搜尋 Agent
光是計算數學太無聊了,讓我們來做一個更實用的東西——一個能搜尋網路的 AI Agent。這在很多場景下都超實用,像是市場研究、競品分析、資料蒐集等等。
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.tools import tool
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.tools.tavily_search import TavilySearchResults
# Tavily 搜尋工具
search_tool = TavilySearchResults(max_results=3)
@tool
def summarize_text(text: str) -> str:
"""將一段長文字摘要成重點"""
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
response = llm.invoke(f"請用繁體中文將以下內容摘要成 3 個重點:\n{text}")
return response.content
tools = [search_tool, summarize_text]
prompt = ChatPromptTemplate.from_messages([
("system", "你是一位專業的研究助手,擅長搜尋和分析資料。請用繁體中文回覆。"),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
llm = ChatOpenAI(model="gpt-4o", temperature=0)
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({
"input": "幫我搜尋 2026 年 Python 最新的發展趨勢,並整理成摘要"
})
print(result["output"])這個 Agent 結合了搜尋和摘要兩個工具,它會自己決定什麼時候要搜尋、什麼時候要做摘要。如果你對網路爬蟲也有興趣,可以搭配Python Selenium 網頁爬蟲教學來打造更強大的資料蒐集系統。
自訂工具讓 Agent 更強大
LangChain 最棒的設計之一就是它的工具系統非常容易擴充。你可以把任何 Python 函式變成 Agent 的工具,只要加上 @tool 裝飾器和清楚的 docstring 就好。
以下是幾個實用的自訂工具範例:
@tool
def read_csv_file(file_path: str) -> str:
"""讀取 CSV 檔案並回傳前 5 筆資料的摘要"""
import pandas as pd
df = pd.read_csv(file_path)
return f"共 {len(df)} 筆資料,欄位:{list(df.columns)}\n前 5 筆:\n{df.head().to_string()}"
@tool
def send_notification(message: str) -> str:
"""發送通知訊息到 Slack 頻道"""
# 實作 Slack webhook 通知
import requests
webhook_url = os.getenv("SLACK_WEBHOOK_URL")
requests.post(webhook_url, json={"text": message})
return "通知已發送成功"
@tool
def query_database(sql: str) -> str:
"""執行 SQL 查詢並回傳結果"""
import sqlite3
conn = sqlite3.connect("data.db")
result = pd.read_sql(sql, conn)
conn.close()
return result.to_string()有了這些自訂工具,你的 Agent 就能讀取 CSV 檔案、發 Slack 通知、甚至查資料庫。想像一下,你可以建一個 Agent 來自動化整個報表流程:查資料、分析、產圖表、發通知,全部一氣呵成。
部署到正式環境的注意事項
在玩夠了之後,你可能會想把 Agent 部署到正式環境。這裡有幾個我自己踩過坑的經驗分享:
- 錯誤處理要完善:Agent 的工具呼叫可能會失敗,一定要用 try-except 包好。設定
handle_parsing_errors=True可以讓 Agent 在遇到解析錯誤時自動重試。 - 設定合理的超時機制:使用
max_iterations參數來限制 Agent 的最大執行次數,避免無限迴圈燒掉你的 API 額度。 - 記錄日誌:開啟 LangChain 的 callback 機制來追蹤每次工具呼叫的輸入輸出,方便 debug。你也可以整合 LangSmith 來做更完整的監控。
- 成本控制:每次 Agent 執行都會消耗 API tokens,建議在開發階段用
gpt-4o-mini,上線後再切換到更強的模型。 - 安全性:千萬不要讓 Agent 直接執行使用者輸入的程式碼,資料庫查詢也要做好 SQL injection 的防護。
如果你打算用 API 的方式提供 Agent 服務,推薦搭配 FastAPI 來建立 REST API,效能好、寫起來也很 Pythonic。
結語與下一步
恭喜你讀到這裡!你已經學會了 AI Agent 的基本概念、LangChain 的核心架構,也實際動手建了兩個 Agent。這只是起點,AI Agent 的世界還有很多可以探索的方向:
- 多 Agent 協作:用 LangGraph 讓多個 Agent 互相合作完成複雜任務
- RAG(檢索增強生成):讓 Agent 能查詢你自己的文件和知識庫
- 長期記憶:整合向量資料庫讓 Agent 記住過去的互動
想要更全面地學習 Python 自動化,別忘了回去看看Python 自動化完整指南,裡面涵蓋了從基礎到進階的所有主題。AI Agent 開發正在以驚人的速度演進,現在開始學絕對不嫌晚。動手寫吧,最好的學習方式就是打開編輯器開始 coding!
繼續閱讀
Python uv 套件管理器完全教學:比 pip 快 100 倍的新選擇
相關文章
Python uv 套件管理器完全教學:比 pip 快 100 倍的新選擇
uv 是 Astral 推出的 Rust 製 Python 套件管理器,速度比 pip 快 100 倍。完整教學 uv init、venv、add、lock、run,一個工具搞定所有 Python 環境管理。
Python asyncio 非同步程式完整教學:從 async/await 到實戰應用一次搞懂
完整解析 Python asyncio 非同步程式設計,從 Event Loop、async/await 語法到 TaskGroup 實戰,幫你寫出高效能的並行程式碼。
你可能也喜歡
探索其他領域的精選好文