LlamaIndex 官方示例全指南:从 Agents 到向量存储的五大实战模块
【免费下载链接】llama_indexLlamaIndex is the leading document agent and OCR platform项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index
本文以 LlamaIndex 仓库中的 docs/examples/index.md 为骨架,系统梳理官方示例集的全貌:Agent 能力、Agentic Workflows 事件驱动工作流、LLM 集成、Embedding 模型与向量存储五大模块。读完本文,你将清楚每个模块对应哪些可运行的 notebook、底层由哪些核心类支撑(如
AgentWorkflow、FunctionAgent),并能快速定位到合适示例作为自己项目的起点。
一、示例集概览:一份可运行的"动手目录"
LlamaIndex 在docs/examples/目录下维护了一套极为丰富的示例集,覆盖不同的使用场景、第三方集成与功能特性。索引页 docs/examples/index.md 承担"总目录"职责,左侧导航中还挂载了大量按组件(llms、embeddings、vector_stores、tools、retrievers 等)分类的 notebook,方便按需检索。
从目录结构看,示例集与仓库的模块划分一一对应:
| 示例分类 | 仓库目录 | 核心主题 |
|---|---|---|
| Agents | docs/examples/agent | 函数调用 Agent、ReAct、CodeAct、多 Agent 工作流 |
| Agentic Workflows | docs/examples/workflow | 事件驱动的工作流编排、Text-to-SQL、RAG 流水线 |
| LLM Integrations | docs/examples/llm | 数十家 LLM 提供商的接入与配置 |
| Embedding Models | docs/examples/embeddings | 各厂商 embedding 模型的使用 |
| Vector Stores | docs/examples/vector_stores | 各类向量数据库的索引构建与检索 |
所有示例均以 Jupyter Notebook(.ipynb)形式提供,可直接在本地用jupyter notebook或jupyter lab打开运行,也可用nbstripout等工具剥离输出后做版本管理。下文逐模块展开。
二、Agents:用 LlamaIndex 构建智能体
Agent 是 LlamaIndex 的核心能力之一,示例集提供了从入门到进阶的完整路径:
- Function Calling Agent —— 学习函数调用 Agent 与
AgentWorkflow的基础用法,这是当前推荐的主流入门方式; - React Agent —— 使用 ReAct(Reasoning and Acting,推理与行动交替)模式驱动 Agent;
- Code Act Agent —— 能够编写并执行代码的 Agent,适合代码生成、数据分析类任务;
- Multi-Agent Workflow —— 用
AgentWorkflow编排多个各司其职的 Agent 协作完成复杂任务。
如果你对 Agent 的通用概念(工具绑定、状态管理、流式输出、结构化输出等)还不熟悉,官方框架文档 understanding/agent/index.mdx 提供了更系统的介绍,其中还包含 multi_agent.md、tools.md、state.md 等子专题。
2.1 源码视角:AgentWorkflow 的构造约束
示例中的AgentWorkflow对应核心源码 multi_agent_workflow.py 中的同名类,它同时继承Workflow与PromptMixin,本质上是"事件驱动的 Agent 编排器"。从构造函数(multi_agent_workflow.py)可以看到几个关键入参:
agents:BaseWorkflowAgent列表,至少提供一个 Agent,否则抛ValueError;root_agent:指定根 Agent 名称;单 Agent 场景下会自动把唯一 Agent 设为根;initial_state:Agent 间共享的初始状态字典;handoff_prompt/handoff_output_prompt/state_prompt:Agent 交接(handoff)与状态同步所用的提示词模板,均可自定义字符串;timeout:单次运行超时;early_stopping_method:取值"force"或"generate",默认"force",决定停止生成时的收尾方式。
实现上还做了一系列防御性校验(multi_agent_workflow.py):多 Agent 场景下每个 Agent 必须有非默认的name与description(交接时靠它们路由),且AgentWorkflow不支持在单个 Agent 上设置initial_state。这些约束提示我们在写示例时,务必为每个子 Agent 取好名字、写好描述——这是多 Agent 协作能否正确交接的前提。
2.2 源码视角:三类内置 Agent 的差异
与AgentWorkflow配套的 Agent 实现位于llama-index-core/llama_index/core/agent/workflow/目录下,三者继承自BaseWorkflowAgent:
- function_agent.py 中的
FunctionAgent:面向支持函数调用(tool calling)的 LLM。其字段allow_parallel_tool_calls(默认True)决定是否并行调用多个工具;initial_tool_choice可强制首轮先调用某个工具,用于引导 Agent 的初始行为。请求发送走achat_with_tools/astream_chat_with_tools(function_agent.py); - react_agent.py 中的
ReActAgent:采用 ReAct 模式,不依赖 LLM 的原生函数调用能力,兼容面更广; - codeact_agent.py 中的
CodeActAgent:面向"写代码并执行"的场景。
三、Agentic Workflows:用 Workflows 编排智能体系统
除了直接用 Agent,LlamaIndex 还提供 Workflows 事件驱动框架来构建 agentic 系统,相关示例集中在 docs/examples/workflow:
- Function Calling Agent from Scratch —— 不依赖高层封装,从零实现一个函数调用 Agent,适合理解事件流转细节;
- React Agent —— 用 Workflows 手动搭建 ReAct 循环;
- CodeAct Agent from Scratch —— 从零构建 CodeAct Agent(该 notebook 位于 agent 目录下,主题与 Agentic Workflows 一致);
- Basic RAG —— 最简 RAG 工作流实现,演示"加载-索引-检索-合成"的事件流水线;
- Advanced Text-to-SQL —— 让 LlamaIndex 生成 SQL 查询并执行,打通"自然语言 → SQL → 查询结果"的完整链路。
此外 docs/examples/workflow 还包含parallel_execution.ipynb(并行执行)、human_in_the_loop_story_crafting.ipynb(人在回路)、reflection.ipynb(反思式工作流)、multi_strategy_workflow.ipynb(多策略路由)等进阶示例,值得逐一阅读。
四、LLM Integrations:接入主流大模型提供商
LlamaIndex 通过统一接口抽象屏蔽了不同 LLM 提供商的差异,docs/examples/llm/目录下提供了近百个 notebook,覆盖几乎所有主流服务商。索引页重点推荐:
- OpenAI —— GPT-3.5 / GPT-4 等系列模型;
- Anthropic —— Claude 系列模型;
- Bedrock —— 基于 AWS Bedrock Converse API,可调用 Meta Llama 3 等模型;
- Gemini / Vertex —— Google Gemini 与 Vertex AI 模型;
- Mistral —— Mistral AI 模型;
- Ollama —— 本地运行 Ollama 模型。
除了索引页点名的这些,目录里还有deepseek.ipynb、groq.ipynb、dashscope.ipynb、zhipuai(对应llama-index-llms-zhipuai集成)、vllm.ipynb、llama_cpp.ipynb等大量选择,足以覆盖云端 API、本地推理、自托管推理服务等多种部署形态。
在仓库的集成包层面,每个提供商都有独立的 pip 包,例如llama-index-integrations/llms/下的llama-index-llms-openai、llama-index-llms-anthropic、llama-index-llms-ollama等,安装后即可在代码中通过统一的from llama_index.llms.xxx import Xxx方式使用。对 LLM 抽象的整体理解可参考框架文档 understanding/using_llms.mdx。
五、Embedding Models:选择合适的向量化模型
Embedding 模型决定检索质量的底座,docs/examples/embeddings 提供了各主流方案的 notebook:
- OpenAI Embeddings —— OpenAI 文本向量模型(如 text-embedding 系列);
- Cohere Embeddings —— Cohere 向量模型;
- HuggingFace Embeddings —— 在本地使用 HuggingFace 开源向量模型,数据不出本地,适合隐私敏感场景;
- Jina Embeddings —— Jina AI 向量模型;
- Ollama Embeddings —— 通过 Ollama 本地运行向量模型;
- VoyageAI Embeddings —— VoyageAI 向量模型。
目录中还包含fastembed.ipynb、nomic.ipynb、mixedbreadai.ipynb、bge相关等社区常用选择。所有 embedding 集成同样以独立 pip 包形式发布在llama-index-integrations/embeddings/下,安装对应包后即可用统一 API 调用。
六、Vector Stores:持久化与检索向量
向量存储是 RAG 落地的关键一环,docs/examples/vector_stores 是仓库中 notebook 数量最多的目录之一,覆盖主流向量数据库:
- Pinecone —— 全托管向量数据库;
- Chroma —— 轻量级开源向量存储;
- Weaviate —— 支持混合检索的向量数据库;
- Qdrant —— 高性能向量数据库,目录下还有
Qdrant_hybrid.ipynb、qdrant_bm42.ipynb等进阶用法; - MongoDB Atlas —— MongoDB Atlas Vector Search;
- Redis —— Redis 向量检索;
- Milvus —— 分布式向量数据库,另有
MilvusHybridIndexDemo.ipynb、MilvusAsyncAPIDemo.ipynb; - Azure AI Search —— 微软云向量检索服务。
这些示例多数遵循同一套使用模式:创建向量存储客户端 → 用对应VectorStore类包装 → 构建VectorStoreIndex→ 查询。对应集成包位于llama-index-integrations/vector_stores/(如llama-index-vector-stores-pinecone、llama-index-vector-stores-qdrant等)。若想系统理解"向量存储 + 检索"在 RAG 中的位置,可阅读框架文档 understanding/rag/index.mdx。
七、如何挑选并运行示例
挑选示例时可按三条线索定位:
- 按组件:看左侧导航按组件组织的 notebook(llms、embeddings、vector_stores、tools、retrievers、query_engine 等);
- 按场景:如果目标是搭建 Agent,从 docs/examples/agent 和 docs/examples/workflow 入手;如果目标是 RAG,从 embeddings 与 vector_stores 入手;
- 按提供商:若已确定使用某家云服务或某款开源模型,直接在对应目录中搜索其 notebook。
运行方式上,所有示例都是标准 Jupyter Notebook,建议为每个集成包建立独立的虚拟环境(仓库根目录提供pyproject.toml与uv.lock,可参考其依赖管理方式),先安装对应集成包(如llama-index-llms-openai、llama-index-vector-stores-qdrant),再按 notebook 中的提示配置 API Key 或本地服务地址即可复现。
八、小结
docs/examples/index.md是进入 LlamaIndex 世界的"示例地图":Agent 与 Agentic Workflows 教会你构建智能体系统(底层由 AgentWorkflow 与 FunctionAgent 等类支撑),LLM 与 Embedding 集成解决"模型从哪来"的问题,向量存储解决"知识放哪里"的问题。建议按"先跑通 Basic RAG → 再上手 Function Calling Agent → 最后尝试 Multi-Agent 协作"的路径循序渐进,配合 docs/examples/index.md 持续按需查阅,即可快速把 LlamaIndex 用到自己的项目中。
【免费下载链接】llama_indexLlamaIndex is the leading document agent and OCR platform项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考