创建时间: 2026-03-29最后更新: 2026-04-23

1. 先看一个最小的 LangChain 例子

这一章正式进入 LangChain 前面我们已经把边界说清楚了:这一章只讨论一件事,单个 Agent 怎样在一轮请求里调用多个工具,把事情做完。

先不要急着记概念,先看一个最小例子。还是用「AI 电子伴侣」这个场景。

用户发来一句话:

NOTE

我明天下午三点要开会,帮我记一下。顺便查一下上海明天会不会下雨。

如果我们希望这个 Agent 能处理这句话,它至少要会两件事:

  • 写提醒
  • 查天气

用 LangChain.js v1,可以先这样写:

index.ts
01
import * as z from 'zod'
02
import { createAgent, initChatModel, tool } from 'langchain'
03
04
const model = await initChatModel('gpt-4.1-mini', {
05
modelProvider: 'openai',
06
})
07
08
const createReminder = tool(
09
async ({ title, time }) => {
10
return `提醒已创建:${time} ${title}`
11
},
12
{
13
name: 'create_reminder',
14
description: '创建提醒事项',
15
schema: z.object({
16
title: z.string().describe('提醒内容'),
17
time: z.string().describe('提醒时间'),
18
}),
19
}
20
)
21
22
const getWeather = tool(
23
async ({ city }) => {
24
return `${city} 明天有小雨,出门记得带伞`
25
},
26
{
27
name: 'get_weather',
28
description: '查询城市天气',
29
schema: z.object({
30
city: z.string().describe('要查询天气的城市'),
31
}),
32
}
33
)
34
35
const agent = createAgent({
36
model,
37
tools: [createReminder, getWeather],
38
systemPrompt: '你是一名细心、自然的生活助手。',
39
})
40
41
const result = await agent.invoke({
42
messages: [
43
{
44
role: 'user',
45
content: '我明天下午三点要开会,帮我记一下。顺便查一下上海明天会不会下雨。',
46
},
47
],
48
})
49
50
console.log(result.messages.at(-1)?.content)

这段代码已经把这一章最重要的几样东西都摆出来了:

  • initChatModel():先把模型接进来
  • tool():把外部能力包装成工具
  • createAgent():把模型、工具和系统设定组装成一个 Agent
  • agent.invoke():把一轮消息交给 Agent 处理

后面整章内容,基本都会围绕这四件事展开。

订阅后可阅读剩余内容
AI 电子伴侣企业级项目实战
已发布165计划发布120目标已完成138%