创建时间: 2026-08-12最后更新: 2026-08-12作者: yangbo(445bdcbd2)
1. 什么是 AI Agent
我们常说的 Agent 是对于大模型(LLM)对话能力的封装。
Agent 的复杂度,会按照如下几个方向,进行演变
- 从单次对话,到多次对话、
- 从短期对话,到长期对话、
- 从有回应,到有更好的回应
- 从单角色,到多角色对话、
而我们的速成学习法,也是围绕这个方向进行展开。因此,这一章,我们要要掌握的,就是我们最熟悉的最常见的一种场景:跟 LLM 单次对话
单次对话
如下案例所示,我这里实现了一个最简单 Agent. 在此 Agent 中,我没有做任何处理,直接跟大语言模型进行对话,通俗来说就是直接调用大语言模型的 API,我的第一个需求是:「明天出门我应该带什么?」
出行规划 AgentLangChain + DeepSeek
agent.ts
chat-demo.tsx
01import { readRequiredActiveLlmConfig } from '@keepzml/llm-runtime/client'02import { createChatModel } from '@keepzml/llm-runtime/model'0304export interface AgentReplyChunk {05content: string06model: string07}0809export interface AgentMessage {10role: 'user' | 'assistant'11content: string12}1314export async function* runTravelAgent(15messages: readonly AgentMessage[],16abortSignal?: AbortSignal,17): AsyncGenerator<AgentReplyChunk> {18const config = await readRequiredActiveLlmConfig()19const model = await createChatModel(config, {20temperature: config.temperature ?? 0,21thinkingIntensity: 'off',22})2324const stream = await model.stream([25[26'system',27`你是一个谨慎的出行规划 Agent。你的目标是根据用户的目的地、行程、天气和个人习惯,给出可靠的出行准备建议`,28],29...messages.map(message => ({30role: message.role,31content: message.content,32})),33], { signal: abortSignal })3435let hasContent = false3637for await (const chunk of stream) {38const content = readTextContent(chunk.content)39if (!content) continue4041hasContent = true42yield {43content,44model: config.model,45}46}4748if (!hasContent) throw new Error('模型没有返回可显示的文字内容')49}5051function readTextContent(content: unknown) {52if (typeof content === 'string') return content53if (!Array.isArray(content)) return ''5455const text = content56.map((part) => {57if (typeof part === 'string') return part58if (59part60&& typeof part === 'object'61&& 'text' in part62&& typeof part.text === 'string'63) {64return part.text65}66return ''67})68.filter(Boolean)69.join('\n')7071return text72}73
目前为止,从回复中,我们可以看到。此时 LLM 并无法给我们准确答案,它给出的答案,更像是一种通用建议,而非针对性的建议。
这个回答并不算错,但它没有真正解决问题。
因为「应该带什么」并不是一个固定清单,而是取决于很多事情:明天去哪里,要待多久,天气怎么样,中间有没有特殊安排,身上有没有已经习惯携带的物品。
如果明天只是下楼取个快递,带上手机和钥匙就够了;如果要坐高铁去外地出差,身份证、充电器、电脑和药品也许更重要。问题本身没有变,答案却会随着场景变化。
这就是我们学习开发 AI Agent 时非常重要的第一个观察:用户说出来的通常只是一个结果愿望,而不是一份完整需求。
并且,用户大概率并不会主动告诉我们所有背景。他只会说自己此刻最先想到的那句话
因此,当用户期望我们的 Agent 变得更加强大,能够给出更加精准的答案时,我们就需要帮助用户低成本的补充缺失的信息,例如,常见的前置信息有
- 用户的目的地
- 用户的出行方式
- 用户的出行时间
- 天气怎么样
- 用户的出行习惯
- 用户的出行特殊需求
- 用户出行的陪同人员
- ...
当我们开始尝试去补全这些前置信息时,我们的 Agent 就会逐渐变得更加复杂,相对应的一系列我们需要学习的知识点,也会随之出现
首先第一个需要学习的知识点是:意图识别
订阅后可阅读剩余内容
AI 电子伴侣企业级项目实战
已发布239节计划发布120节目标已完成199%