AI Agent 开发

Agent开发常用框架:

  • LangChain
  • LlamaIndex
  • Vercel AI SDK

LangChain:一站式 LLM 应用开发框架

一句话总结
LangChain 把「模型调用 + 外部数据 + 工具 + 记忆 + 流程编排」全部标准化,让你像搭积木一样快速组合出聊天机器人、RAG、Agent 等大模型应用。


1. 为什么会出现 LangChain?

痛点LangChain 解法
Prompt 难复用、难管理提供 PromptTemplate、FewShotTemplate
各家 LLM API 风格各异统一 ChatModel 接口,一行代码切换 OpenAI、Claude、DeepSeek
想实现检索/记忆/工具调用要写大量胶水代码内置「链(Chain)」「代理(Agent)」模板
调试、监控无从下手LangSmith 可视化追踪每一次 LLM 调用

2. 技术全景图

┌────────────┐     ┌────────────┐     ┌────────────┐
│ LangSmith  │     │ LangGraph  │     │ LangServe  │
│ 调试&监控  │     │ 图状流程   │     │ REST 部署  │
└────────────┘     └────────────┘     └────────────┘▲                  ▲                  ▲└──────────────────┼──────────────────┘LangChain Core
┌────────────────────────────────────────────────┐
│  组件层                                        │
│  • Models:LLM、Chat、Embedding               │
│  • Prompts:模板、少样本示例、输出解析器       │
│  • Memory:Buffer、Summary、VectorStoreRetriever│
│  • Indexes:文档加载器、分割器、向量库          │
│  • Chains:LLMChain、RetrievalQA、SQL Chain   │
│  • Agents:ReAct、OpenAI Functions、Plan&Execute│
└────────────────────────────────────────────────┘

3. 快速上手(Python)

① 安装

pip install langchain langchain-openai langchain-chroma streamlit

② 30 行 RAG 问答 Demo

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_chroma import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import TextLoader
from langchain.chains import RetrievalQA# 1) 加载 & 切片
docs   = TextLoader("faq.txt").load()
texts  = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50).split_documents(docs)# 2) 向量化 & 建索引
db     = Chroma.from_documents(texts, OpenAIEmbeddings(), persist_directory="./chroma_db")# 3) 检索 + 生成
qa = RetrievalQA.from_chain_type(llm=ChatOpenAI(model="gpt-3.5-turbo", temperature=0),retriever=db.as_retriever(search_kwargs={"k": 3}))
print(qa.invoke("如何申请年假?"))

4. 典型使用场景

场景关键组件参考模板
RAG 知识库问答RetrievalQA + VectorStoreRetriever[Docs QA]
SQL 自然语言查询SQLDatabaseChain[NL2SQL]
多工具 AgentReAct Agent + Tool[WebSearch+Calculator]
多轮对话机器人ConversationChain + Memory[ChatBot]

5. 生产落地路线图

阶段工具关键动作
开发LangChain + LCEL用 `
调试LangSmith追踪 Token 用量、延迟、失败链路
部署LangServepip install "langserve[server]" 一键转 FastAPI
运维LangGraph Platform可视化 DAG、灰度发布、A/B Prompt

6. 避坑 & 最佳实践

  1. 版本管理:2024 年起官方拆分为 langchain-core + langchain-community + 独立集成包(如 langchain-openai),务必对齐版本。
  2. Prompt 版本:使用 langsmith 的 Prompt Hub 做版本控制与灰度实验。
  3. 检索质量
    • 先用 MultiQueryRetriever 自动生成多查询提升召回;
    • 再用 Cross-encoder(如 bge-reranker)做重排。
  4. 流式输出:所有链/Agent 都实现 Runnable 接口,直接 chain.stream(...) 逐字返回。
  5. Token 成本控制:为长文档启用「父文档检索」或「上下文压缩」模式。

7. 一条命令体验官方模板

pip install langchain-cli
langchain app new my-rag --template rag-chroma
cd my-rag
langchain serve   # 本地 http://127.0.0.1:8000/docs

8. 延伸阅读

  • 官方中文文档:https://docs.langchain.com.cn
  • 互动课程:《LangChain 从 0 到 1》FOSDEM 2024 幻灯片
  • 实战电子书:《大模型应用开发:RAG 实战课》

一句话:把 LangChain 当作「LLM 界的 Spring Boot」即可——帮你屏蔽底层差异,专注业务逻辑。

LlamaIndex 全景速览:从 0 到生产级知识助手

一句话定义
LlamaIndex 是一个面向企业私有数据的端到端 RAG(Retrieval-Augmented Generation)框架:把任何格式的文档、数据库、API → 拆块 → 向量化 → 建索引 → 问答/摘要/代理,开箱即用,且天然支持多代理和云原生部署。


1. 设计哲学:以“数据→索引→查询”为核心

阶段核心概念常用类/方法
数据摄取Loader → DocumentSimpleDirectoryReader, LlamaHub 连接器
切块/节点Document → NodeSentenceSplitter, TokenTextSplitter, 可自定义 chunk_size/overlap
向量化Node → EmbeddingOpenAIEmbeddings, bge-large, nvolveqa_40k
索引构建Embedding → IndexVectorStoreIndex, TreeIndex, KeywordTableIndex
查询引擎Index → QueryEngineindex.as_query_engine(), RetrieverQueryEngine
聊天/代理QueryEngine → ChatEngineCondenseQuestionChatEngine, ReActAgent

2. 30 行代码跑通一个本地知识问答

# pip install llama-index
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader# 1) 数据加载
documents = SimpleDirectoryReader("data").load_data()   # 支持 pdf, md, docx, 图片等# 2) 建索引(默认 embedding=text-embedding-ada-002)
index = VectorStoreIndex.from_documents(documents)# 3) 问答
query_engine = index.as_query_engine()
answer = query_engine.query("作者在大学做了什么?")
print(answer)
  • 第一次运行后执行 index.storage_context.persist("storage") 即可把索引落盘,下次秒加载。

3. 进阶功能速查表

需求做法关键 API/组件
混合检索(稠密+稀疏)BM25Retriever + VectorIndexRetrieverRetrieverRouter
重排序LLMRerank, CohereRerank 节点后处理器
流式回答query_engine.query_stream("...")
多轮对话CondensePlusContextChatEngine.from_defaults()
多代理协作AgentRunner + AgentWorker(异步优先、事件驱动)
复杂文档解析LlamaParse(表格/图表 OCR)、Excel 智能体(RL 结构理解)
云端托管LlamaCloud:一行代码 LlamaCloudIndex("my_index")

4. 数据连接器(LlamaHub)一览

from llama_index import download_loaderGoogleDocsReader = download_loader("GoogleDocsReader")
NotionPageReader   = download_loader("NotionPageReader")
SlackReader        = download_loader("SlackReader")
  • 支持 100+ 源:SharePoint、S3、Confluence、Discord、Apify…

5. 典型企业场景

场景LlamaIndex 组件组合
内部知识库问答SimpleDirectoryReaderVectorStoreIndexChatEngine
合同风险审查LlamaParse 提取条款 → TreeIndex 做层级检索 → ReActAgent 调用外部法规 API
财务报表分析Excel 智能体 → Pydantic 数据模型 → RetrieverQueryEngine
多文档比对SubQuestionQueryEngine:把大问题拆成子问题并行检索

6. 生产落地 checklist

  1. 性能

    • 节点大小:512-1024 token;overlap 50-100;重排 Top-k=5
    • asyncio + AgentRunner 实现高并发异步查询
  2. 安全合规

    • 本地部署:Ollama、Llamafile;或 LlamaCloud 私网 VPC
    • 权限控制:在 Document.metadata 打标签,检索时过滤
  3. 可观测性

    • 启用回调:CallbackManager 对接 LangSmith / Arize
    • 追踪 token 用量、延迟、用户反馈

7. 学习资源

  • 官方文档(中文):https://llama-index.readthedocs.io/zh/latest
  • 交互式教程:LlamaIndex Notebook Examples(Google Colab 可直接跑)
  • 社区仓库:LlamaHub https://llamahub.ai
  • 企业级白皮书:LlamaCloud & LlamaParse 官方博客

一句话总结
LlamaIndex = 「数据连接器 + 分块器 + 向量索引 + 查询引擎 + 多代理」全家桶,面向企业私有知识,3 分钟原型,3 天可投产。

Vercel AI SDK 速查表(2025-07 版)

一句话:
Vercel AI SDK 是「TypeScript 版 LangChain」,但专为前端/全栈打造——统一 20+ LLM 的调用方式,提供流式 UI 钩子Server Actions,让你在 Next.js、Vue、Svelte 中 5 分钟上线聊天机器人或生成式应用。


1. 模块速览

模块作用入口
AI SDK Core统一 LLM 调用(文本、结构化对象、工具)import { generateText, streamText, generateObject } from 'ai'
AI SDK UIReact/Vue/Svelte 流式 Hooksimport { useChat, useCompletion } from 'ai/react'
AI SDK RSCNext.js Server Actions 流式返回import { createStreamableValue, streamUI } from 'ai/rsc'

2. 30 秒上手(Next.js 14)

① 安装

npm i ai @ai-sdk/openai

② 服务端路由(零配置流式)

// app/api/chat/route.ts
import { openai } from '@ai-sdk/openai';
import { StreamingTextResponse, streamText } from 'ai';export async function POST(req: Request) {const { messages } = await req.json();const result = await streamText({model: openai('gpt-4o'),messages,});return new StreamingTextResponse(result.textStream);
}

③ 客户端组件

'use client';
import { useChat } from 'ai/react';export default function Chat() {const { messages, input, handleInputChange, handleSubmit } = useChat();return (<form onSubmit={handleSubmit}><input value={input} onChange={handleInputChange} />{messages.map(m => <p key={m.id}>{m.role}: {m.content}</p>)}</form>);
}

npm run dev 即可体验打字机效果。


3. 高级功能

需求代码片段
结构化输出generateObject({ schema: z.object({ name: z.string() }), prompt })
切换模型openai('gpt-4o') 换成 anthropic('claude-3-7-sonnet') 即可
缓存响应onCompletion: (text) => await kv.set(key, text, { ex: 3600 })
Server Actions 流式使用 createStreamableValue 直接返回 ReadableStream

4. 一键模板

npx create-next-app@latest my-ai-app --template vercel/ai

官方模板已集成:

  • Chat UI(ShadcnUI)
  • 模型切换 (OpenAI / Anthropic / Mistral)
  • 流式 + 缓存 + 结构化输出

5. 生态对比

特性Vercel AI SDKLangChain (Python)
语言TypeScript 优先Python 优先
UI 流式内置 Hooks & RSC需自行封装
框架Next.js/React/Vue/Svelte任意 Python 后端
模型切换两行代码需改 provider 实例
部署Vercel Edge Functions / 任意 NodeFastAPI / Flask

总结
把 Vercel AI SDK 当作「前端界的 LangChain」即可:

  • 前端开发者 5 分钟上线流式聊天;
  • 全栈团队用 Server Actions 无需手写 API;
  • 支持 20+ 模型,两行代码切换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89301.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【水动力学】04 二维洪水淹没模型Pypims安装

模型介绍 HiPIMS&#xff08;High-Performance Integrated hydrodynamic Modelling System&#xff09;使用最先进的数值方案&#xff08;Godunov型有限体积法&#xff09;来求解二维浅水方程以进行洪水模拟。为了支持高分辨率洪水模拟&#xff0c;使用CUDA/C 语言在多个GPU上…

ARC 03 从Github Action job 到 runner pod

Github Action job 分配到集群 背景 job 是 Github Action 的基本单位&#xff0c;每个 job 单独分配一个 runner。workflow 由一个或者多个 job 组成。如果用户触发runs-on字段为arc-runner-set的 job&#xff0c;那么 Github Action 服务器将 job 分配给 listener pod。 源码…

ubuntu 22.04 anaconda comfyui安装

背景&#xff1a; 戴尔R740服务器&#xff0c;安装了proxmox操作系统&#xff0c;配置了显卡直通。创建了一个ubuntu 22.04 VM虚拟机实例&#xff0c;并安装了显卡驱动与cuda等相关配置&#xff1a; 接下来准备搭建一套comfyui的环境&#xff0c;前段时间B站&#xff0c;抖音各…

每日面试题04:volatile字段的原理

在之前面试题02ConcurrentHashMap的底层原理中提到了volatile修饰符&#xff0c;在多线程编程的世界里&#xff0c;数据同步是一道绕不开的坎。当多个线程同时操作共享变量时&#xff0c;“看不见对方的修改”或“代码顺序错乱”往往会导致程序行为异常。而 volatile作为 Java …

【云原生网络】Istio基础篇

文章目录概述基础知识技术架构概述数据平面核心组件网络代理Envoy控制平面核心组件xDS协议Pilot组件其他概述参考博客&#x1f60a;点此到文末惊喜↩︎ 概述 基础知识 背景知识 服务网格&#xff08;Service Mesh&#xff09;&#xff1a;独立于应用程序的基础设施层&#x…

PySpark Standalone 集群

一、PySpark Standalone 集群概述PySpark Standalone 集群是 Apache Spark 的一种部署模式&#xff0c;它不依赖于其他资源管理系统&#xff08;如 YARN 或 Mesos&#xff09;&#xff0c;而是使用 Spark 自身的集群管理器。这种模式适合快速部署和测试&#xff0c;尤其在开发和…

图像质量评价(Image Quality Assessment,IQA)

文章目录图像质量评价&#xff08;Image Quality Assessment&#xff0c;IQA&#xff09;一、评估方式&#xff1a;主观评估 客观评估1.1、主观评估方式1.2、客观评估方式&#xff1a;全参考 半参考 无参考&#xff08;1&#xff09;全参考的方法对比&#xff08;Full-Refer…

【跟我学YOLO】(2)YOLO12 环境配置与基本应用

欢迎关注『跟我学 YOLO』系列 【跟我学YOLO】&#xff08;1&#xff09;YOLO12&#xff1a;以注意力为中心的物体检测 【跟我学YOLO】&#xff08;2&#xff09;YOLO12 环境配置与基本应用 【跟我学YOLO】&#xff08;3&#xff09;YOLO12 用于诊断视网膜病变 【跟我学YOLO】&a…

Python爬虫实战:研究openpyxl库相关技术

1. 引言 在当今数字化时代,互联网上蕴含着海量有价值的数据。如何高效地获取这些数据并进行分析处理,成为数据科学领域的重要研究方向。网络爬虫作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 openpyxl 作为 Python 中处理 Excel 文件的优秀库,能…

Redis学习其一

文章目录1.NoSQL概述1.1概述1.2Nosql的四大分类2.Redis入门2.1概述2.2基础知识2.2.1基础命令/语法2.2.2Redis为什么单线程还这么快2.3性能测试3.五大数据类型3.1Redis-key3.2String(字符串)3.3List(列表)3.4Set(集合)3.5Hash&#xff08;哈希&#xff09;3.6Zset&#xff08;有…

高性能架构模式——高性能缓存架构

目录 一、引入前提二、缓存架构的设计要点2.1、缓存穿透2.1.1、缓存穿透第一种情况:存储数据不存在2.1.2、缓存穿透第二种情况:缓存数据生成耗费大量时间或者资源2.2、缓存雪崩2.2.1、解决缓存雪崩的第一种方法:更新锁机制2.2.2、解决缓存雪崩的第二种方法:后台更新机制2.3…

ubuntu+windows双系统恢复

文章目录前言一、恢复windows1.直接在grub命令行输入exit退出2.手动查找windows引导文件先ls列出所有磁盘和分区查找各个分区是否包含引导文件设置引导分区以及引导文件路径启动windows二、在windows系统下删除Ubuntu残留引导文件三、准备ubuntu系统引导盘四、安装ubuntu系统五…

使用Dify构建HR智能助理,深度集成大模型应用,赋能HR招聘管理全流程,dify相关工作流全开源。

HR智能助理系统 &#x1f4cb; 项目概述 HR智能助理系统是一个基于AI技术的人力资源管理平台&#xff0c;旨在通过智能化工具提升招聘效率&#xff0c;优化候选人评估流程&#xff0c;并提供专业的面试方案生成服务。 &#x1f3af; 核心价值 提升招聘效率60%&#xff1a;自动化…

PowerBI实现仅在需要图表时显示图表

PowerBI实现仅在需要图表时显示图表实现效果点击维度前&#xff1a;点击维度后&#xff1a;实现步骤第一步&#xff0c;先创建一个矩阵表和一个柱形图第二步&#xff0c;添加一个新卡片图第三步&#xff0c;创建文本度量值Text "⭠ 选择一个地区"第四步&#xff0c;创…

信息收集知识总结

信息收集 在信息收集中&#xff0c;需要收集的信息&#xff1a;目标主机的DNS信息、目标IP地址、子域名、旁站和C段、CMS类型、敏感目录、端口信息、操作系统版本、网站架构、漏洞信息、服务器与中间件信息、邮箱、人员、地址等。 域名信息收集 拿到公司名或者一个域名&…

工作第一步建立连接——ssh

照本宣科 SSH&#xff08;Secure Shell&#xff0c;安全外壳协议&#xff09;是一种用于在不安全网络上进行安全远程登录和实现其他安全网络服务的协议.功能主要是远程登陆和文件传输&#xff08;使用scp&#xff09; 为了建立 SSH 远程连接&#xff0c;需要两个组件&#xf…

Markdown变身Word,解锁格式转换新姿势

目录一、引言二、在线转换工具使用法2.1 工具推荐2.2 操作步骤2.3 优缺点分析三、文本编辑器的内置功能或插件3.1 适用编辑器列举3.2 以 Visual Studio Code 为例的操作流程3.3 优势说明四、使用专门的转换软件4.1 Pandoc 软件介绍4.2 安装步骤4.3 命令行转换操作五、编程脚本实…

MR 处于 WIP 状态的WIP是什么

WIP是什么 在MR&#xff08;Merge Request 或代码合并请求&#xff09;中&#xff0c;WIP 是"Work In Progress" 的缩写&#xff0c;意思是“正在进行中”或“在制品”。当一个MR 被标记为WIP&#xff0c;通常表示它尚未准备好被合并&#xff0c;可能还在开发中&…

机器学习-线性回归模型和梯度算法

1. 线性回归模型1.1 线性回归模型线性回归模型&#xff1a;将数据拟合成一条直线。作用&#xff1a;预测数字作为输出。例子&#xff1a;房子的大小与房价的估计&#xff08;图表&#xff09;&#xff08;数据表&#xff09;1.2 训练集训练集&#xff1a;用于训练模型的数据集训…

时序预测 | Matlab代码实现VMD-TCN-GRU-MATT变分模态分解时间卷积门控循环单元多头注意力多变量时序预测

预测效果代码功能 代码主要功能 该代码实现了一个变分模态分解时间卷积门控循环单元多头注意力多变量时间序列预测模型&#xff0c;核心功能为&#xff1a; 使用VMD&#xff08;变分模态分解&#xff09;将原始信号分解为多个IMF分量对每个IMF分量构建TCN-GRU-MATT混合神经网络…