iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
AI Engineering

地端 AI 建築學系列 第 4

04 從 LangChain 到 LangGraph (1) 簡單起手式

  • 分享至 

  • xImage
  •  

前三篇談為何要蓋、開源地端模型該怎麼挑、再到 Ollama 這個把「下載模型、跑推論」變成一行指令的好夥伴。地基有了,接下來就是把房子蓋起來,也就是真正寫程式,讓模型變成能做事的 Agent。

這篇起開始一個小系列,會先把 LangChain 用起來,再直接過渡到 LangGraph:

  1. "Hello World!":用 LangChain 建第一個 Agent
  2. 直接用 LangGraph 手刻流程,拿回更細的控制權
  3. 設計模式分享:Workflow 流或 Agent 流

LangChain 在做什麼?

現在的 LangChain 已經不是早期那種「一堆 Chain 疊起來」的寫法了。核心概念很單純:用 create_agent 一次把三樣東西組起來:

  • model:你要用哪個語言模型
  • tools:模型可以呼叫的外部函式(查天氣、查資料庫、爬網頁…都算)
  • system_prompt:定義這個 Agent 的角色與行為

組好之後呼叫 agent.invoke(...),LangChain 會自動處理「模型判斷要不要呼叫工具 → 執行工具 → 把結果丟回模型繼續推理」這整套流程,不用自己手動寫迴圈去接工具呼叫的結果。這也是它比起早期版本好用很多的地方:以前要自己組 Chain、自己處理 Agent 的決策迴圈,現在幾行程式碼就能有一個會用工具的 Agent。


針對地端 Ollama 開發:怎麼接?

官方 Quickstart 裡示範的是雲端 API(OpenAI、Gemini、Claude…),但文件裡其實也直接把 Ollama 列為支援的 provider,接法幾乎一樣,差別在三件事:

(1)Ollama 服務要先跑起來

延續上一篇,ollama serve(或桌面版直接開著)要在背景待命,LangChain 是透過本機的 Ollama API 呼叫,不是打到雲端。

(2)用 ChatOllama 物件指定模型

比起用 "ollama:模型名" 這種字串寫法,更推薦直接建立 ChatOllama 物件,這樣可以順手把 temperaturenum_ctx(context window 長度)等地端常會需要調整的參數一併設定好,做法可以參考最下方的「第一個範例」。

這邊先把套件裝起來:

pip install -U langchain langchain-ollama

(3)沒有雲端限流,吃自己的顯卡記憶體

地端跑 agent 最大的差異在這裡:工具呼叫(tool calling)的穩定度很吃模型本身能力,選一顆有明確標註支援 function calling 的模型會少踩很多雷。


第一個範例:一個會查天氣的地端 Agent

from langchain.agents import create_agent
from langchain_ollama import ChatOllama

def get_weather(city: str) -> str:
    """查詢指定城市的天氣。"""
    return f"{city} 現在總是晴天!"

model = ChatOllama(
    model="qwen3:8b",  # 換成你本機已經 pull 下來的模型
    temperature=0.5,
)

agent = create_agent(
    model=model,
    tools=[get_weather],
    system_prompt="你是一個樂於助人的助理。",
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "台北現在天氣如何?"}]}
)
print(result["messages"][-1].content)

跑起來後,Agent 會判斷這句話需要查天氣、呼叫 get_weather("台北")、再把結果組回自然語言回答你。


上一篇
03 Ollama:自建地端 AI 的好夥伴
下一篇
05 從 LangChain 到 LangGraph (2) 先畫靶再射箭
系列文
地端 AI 建築學14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言