# AI 导航
这里沉淀 AI Agent 设计模式、LangChain 工程实践、工程问题、面试题和 Claude Code 源码学习笔记。
# AI Agent 设计模式
| 文章 | 说明 |
|---|---|
| Agent 设计模式地图:从 Google 12 模式到 claude-learn 与 Claude Code 源码 | 对照 Google Agent 设计模式、claude-learn 教学项目和 Claude Code 源码,梳理 ReAct、Loop、Coordinator、Swarm 等模式。 |
# LangChain
目录页:LangChain
# 基础入门
| 文章 | 说明 |
|---|---|
| 为什么选择 LangChain:从 LLM 调用到可维护的 AI 应用工程 | 理解 LangChain 的定位、安装方式和文档阅读路径。 |
| LangChain 安装与文档阅读路线:从环境配置到工程上手 | 理解 LangChain 的定位、安装方式和文档阅读路径。 |
# Prompt、模型与解析
| 文章 | 说明 |
|---|---|
| LangChain Prompt 组件实践:模板、消息占位符与提示词工程化 | 整理 Prompt、Model、OutputParser 的核心用法和工程边界。 |
| LangChain Model 组件实践:模型初始化、消息协议与生产调用技巧 | 整理 Prompt、Model、OutputParser 的核心用法和工程边界。 |
| LangChain OutputParser 组件实践:从模型文本到可靠业务数据 | 整理 Prompt、Model、OutputParser 的核心用法和工程边界。 |
# LCEL 与 Runnable
| 文章 | 说明 |
|---|---|
| LangChain LCEL 与 Runnable 实践:把 LLM 应用链路写成可组合协议 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain 两个 Runnable 核心类:RunnableParallel 与 RunnablePassthrough | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain 回调与可观测性实践:让链路执行过程透明可追踪 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain RunnableWithMessageHistory 实践:让 LCEL 链自动管理聊天历史 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain Runnable 运行时参数绑定:bind、configurable_fields 与生产配置 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain Runnable 配置运行时链内部:configurable_fields 与生产级参数治理 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain Runnable 动态替换运行组件:configurable_alternatives 与生产级路由 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain Runnable 重试与回退机制:with_retry、with_fallbacks 与生产级容错 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain Runnable 生命周期监听器:with_listeners、with_alisteners 与生产观测 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
| LangChain 基于 Runnable 封装记忆链:从手写自动管理到新版生产实践 | 围绕 Runnable 协议、LCEL 编排、运行时配置、回调、重试和记忆封装展开。 |
# 记忆模块
| 文章 | 说明 |
|---|---|
| LangChain ChatMessageHistory 实践:聊天记录、短期记忆与生产持久化 | 梳理聊天历史、短期记忆、摘要记忆、实体记忆和持久化方案。 |
| LangChain Memory 运行流程与分类:从旧版组件到当前记忆架构 | 梳理聊天历史、短期记忆、摘要记忆、实体记忆和持久化方案。 |
| LangChain 缓冲记忆实践:从 ConversationBufferMemory 到新版短期记忆 | 梳理聊天历史、短期记忆、摘要记忆、实体记忆和持久化方案。 |
| LangChain 摘要记忆实践:长对话压缩、短期记忆与生产治理 | 梳理聊天历史、短期记忆、摘要记忆、实体记忆和持久化方案。 |
| LangChain 实体记忆实践:从 ConversationEntityMemory 到长期记忆 Store | 梳理聊天历史、短期记忆、摘要记忆、实体记忆和持久化方案。 |
| LangChain 记忆持久化与第三方集成:从 ChatMessageHistory 到 Checkpointer 和 Store | 梳理聊天历史、短期记忆、摘要记忆、实体记忆和持久化方案。 |
# Embedding
| 文章 | 说明 |
|---|---|
| LangChain CacheBackedEmbeddings 实践:Embedding 缓存、版本治理与生产落地 | 整理 Embedding 缓存、模型选型和生产治理。 |
| LangChain 其他 Embedding 模型实践:Hugging Face、本地模型、云厂商与生产选型 | 整理 Embedding 缓存、模型选型和生产治理。 |
# 函数调用基础
| 文章 | 说明 |
|---|---|
| 大语言模型函数调用与 Agent 开发导览 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
| LLM 函数调用使用技巧与应用场景 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
| ChatModel 使用函数调用的技巧与流程 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
| 不支持函数调用的大语言模型解决技巧 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
| 函数调用快速提取结构化数据使用技巧 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
| 函数调用出错处理提升程序健壮性 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
| 多模态 LLM 执行函数调用的技巧 | 围绕函数调用、工具 schema、结构化输出、错误处理和多模态调用展开。 |
# 工具与联网插件
| 文章 | 说明 |
|---|---|
| LangChain 中的工具与工具包 | 整理 LangChain 工具、工具包、自定义工具以及天气/搜索类联网插件实现。 |
| 创建自定义工具的 3 种技巧与使用场景 | 整理 LangChain 工具、工具包、自定义工具以及天气/搜索类联网插件实现。 |
| 高德天气预报查询插件的集成与编写 | 整理 LangChain 工具、工具包、自定义工具以及天气/搜索类联网插件实现。 |
| 谷歌实时信息搜索插件的集成与编写 | 整理 LangChain 工具、工具包、自定义工具以及天气/搜索类联网插件实现。 |
# Agent 实践
| 文章 | 说明 |
|---|---|
| 基于 ReACT 架构的 Agent 智能体设计与实现 | 梳理 ReACT、tool-calling Agent、内置 Agent 类型和 AgentExecutor 边界。 |
| 基于工具调用的智能体设计与实现 | 梳理 ReACT、tool-calling Agent、内置 Agent 类型和 AgentExecutor 边界。 |
| 内置的其他 Agent 类型介绍与上手 | 梳理 ReACT、tool-calling Agent、内置 Agent 类型和 AgentExecutor 边界。 |
| AgentExecutor 源码解析与 Agent 组件缺陷 | 梳理 ReACT、tool-calling Agent、内置 Agent 类型和 AgentExecutor 边界。 |
| 大语言模型函数调用与 Agent 开发总结 | 梳理 ReACT、tool-calling Agent、内置 Agent 类型和 AgentExecutor 边界。 |
# LangGraph 工作流
| 文章 | 说明 |
|---|---|
| LangGraph 与 LCEL 构建大型复杂应用导览 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LCEL 链表达式的缺点与扩展 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 介绍与基础组件上手 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| 条件边与循环流程实现工具调用 Agent | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 实现 ReACT 架构 Agent | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| 图结构应用程序删除消息的使用技巧 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 检查点实现持久化记忆功能 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| 图结构断点实现 Agent 与人进行交互 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 子图架构实现 AI 工作流 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| 需求转换图架构的技巧:CRAG 实现 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| 利用图优化 LLMOps 聊天机器人架构 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 两种基础流式响应技巧 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 总结与注意事项 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
| LangGraph 与 LCEL 构建大型复杂应用总结 | 从 LCEL 局限出发,整理 LangGraph 节点、边、循环、检查点、断点、子图、流式响应和架构优化。 |
# RAG 基础
| 文章 | 说明 |
|---|---|
| 大语言模型幻觉的原因与缓解方案 | 从事实性幻觉、忠实性幻觉出发,梳理数据、训练、推理、应用链路中的幻觉来源,并给出 RAG、拒答、引用、评估和监控方案。 |
| RAG 基础架构与手动模拟 | 解释 RAG 为什么能缓解知识过期和领域知识缺失,并用手动流程拆解 query、retrieval、context、prompt、generation 的关系。 |
| 向量数据库是什么:从语义搜索到 AI 应用存储 | 用语义空间解释向量数据库的作用,梳理向量、相似度、索引、元数据和 AI 应用场景。 |
| 传统数据库与向量数据库的使用差异 | 对比传统数据库和向量数据库在数据模型、查询方式、索引、排序、更新、过滤和业务边界上的差异。 |
| Embedding 文本嵌入模型介绍与使用 | 解释 Embedding 如何把文本映射到向量空间,并说明相似度、维度、归一化、多语言和选型注意事项。 |
| OpenAI Embedding 接口使用实践 | 介绍使用 Embedding 接口的基本流程、批量处理、向量相似度计算、成本控制和生产封装建议。 |
| CacheBackEmbedding 的使用与注意事项 | 解释 Embedding 缓存的必要性、缓存命中逻辑、持久化存储、失效策略和模型版本管理。 |
| 其他 Embedding 嵌入模型的配置与使用 | 梳理 Hugging Face、本地模型、云厂商模型和 OpenAI 兼容接口的使用差异与选型思路。 |
| Faiss 向量数据库的配置与使用 | 介绍 Faiss 的定位、索引类型、相似度搜索、LangChain 集成、持久化和适用边界。 |
| Pinecone 向量数据库的配置与使用 | 介绍 Pinecone 的托管向量库能力、index、namespace、metadata filter、LangChain 集成和生产注意事项。 |
| TCVectorDB 向量数据库的配置与使用 | 介绍腾讯云 TCVectorDB 的定位、外部 Embedding、元数据过滤、LangChain 对接和国内部署选型。 |
| Weaviate 向量数据库的配置与使用 | 介绍 Weaviate 的开源与云部署方式、Collection、向量化模块、GraphQL/REST/gRPC、metadata filter 和 LangChain 集成。 |
| 对接自定义向量数据库的配置与使用 | 说明如何把自研或暂未被框架支持的向量数据库封装成统一接口,并接入 RAG 应用。 |
| 构建第一个 LangChain RAG 应用 | 从服务拆分角度构建一个最小 RAG 应用:加载文档、切分、Embedding、向量库、Retriever、Prompt、LLM 和返回引用。 |
| RAG 基础总结 | 串联幻觉、RAG、向量数据库、Embedding、缓存、多向量库选型和第一个 LangChain RAG 应用,形成完整知识地图。 |
# RAG 深入
| 文章 | 说明 |
|---|---|
| RAG 深入路线:从文档处理到检索器工程 | 把 RAG 深入部分拆成 Document、Loader、Blob、Transformer、TextSplitter、VectorStore 和 Retriever 七条主线。 |
| LangChain Document 与文档加载器:RAG 数据入口设计 | 讲清 Document 的 page_content、metadata、id,以及文档加载器在 RAG 链路中的定位。 |
| LangChain 内置文档加载器使用技巧 | 梳理内置 Loader 的选择原则、加载粒度、metadata 设计和常见踩坑。 |
| 自定义 LangChain 文档加载器:把业务数据接进 RAG | 说明什么时候需要自定义 Loader,以及如何实现 lazy_load、load 和 metadata 规范。 |
| Blob 与 BlobParser:替代传统文档加载器的解析模型 | 解释 Blob、BlobLoader、BlobParser 的分工,以及为什么新架构更适合复杂文件解析。 |
| 文档转换器与文本分割器:RAG 入库前的关键加工 | 讲清 DocumentTransformer 和 TextSplitter 的关系,以及为什么切分前清洗会影响检索质量。 |
| 递归字符文本分割器:运行流程与参数设计 | 解释 RecursiveCharacterTextSplitter 如何按分隔符递归切分文本,以及 chunk_size、overlap 的工程取舍。 |
| 语义文档分割器与其他分割器:从字符边界到语义边界 | 介绍语义分割、HTML/Markdown/代码分割等策略,以及它们和普通字符分割的边界。 |
| 自定义 LangChain 文档分割器:面向业务结构切 Chunk | 讲解如何根据条款、问答、日志、工单等业务格式自定义文本分割器。 |
| 非分割类型文档转换器:清洗、过滤、翻译与压缩 | 介绍不改变或不主要依赖切分的 DocumentTransformer,例如清洗、过滤、翻译、摘要、字段标准化。 |
| VectorStore 深入:相似度检索、得分与过滤 | 深入理解 VectorStore 的 add、delete、similarity_search、score、MMR 和 metadata filter。 |
| Retriever 深入:从 VectorStore 到可组合检索能力 | 解释 Retriever 的职责、invoke 接口、VectorStoreRetriever、检索参数和 RAG 链路集成。 |
| 内置检索器与自定义检索器:把检索策略工程化 | 梳理内置 Retriever 的使用边界,并说明如何实现自定义 Retriever 适配业务检索服务。 |
| RAG 深入知识地图:文档处理、切分、向量库与检索器 | 串联 RAG 深入阶段的关键组件和工程主线,形成从数据入口到检索输出的完整地图。 |
# RAG 优化策略分析
这一组文章按 RAG 优化的六个阶段分类:查询转换、路由、查询构建、索引、检索和生成。
# 查询转换
| 文章 | 说明 |
|---|---|
| 多查询改写:提升 RAG 召回准确率 | 把一个用户问题改写成多个检索 query,扩大召回覆盖面。 |
| RAG 多查询融合策略:RRF 与结果合并 | 使用 RRF 对多路检索结果进行融合排序,减少单一路径偏差。 |
| 问题拆解:用子问题提升复杂问答准确率 | 把复杂问题拆成可检索、可回答、可合并的子问题。 |
| Step-Back Prompting:扩大问题理解范围 | 先生成更抽象的后退问题,再用抽象问题辅助检索和回答。 |
| HyDE 假设性文档:实现 doc-doc 对称检索 | 先生成假设性答案文档,再用文档到文档的相似性提高召回。 |
| 混合检索:组合多种检索算法提升召回 | 组合向量、关键词、多查询、RRF、HyDE 等策略构建更稳的召回链路。 |
# 路由
| 文章 | 说明 |
|---|---|
| 逻辑路由:使用查询分析限定检索范围 | 通过结构化查询分析识别范围、类型和条件,再路由到合适检索链路。 |
| 语义路由:为不同问题选择 Prompt 模板 | 根据问题语义选择不同 Prompt、模型或处理链路。 |
# 查询构建
| 文章 | 说明 |
|---|---|
| Self-Query:基于查询分析实现动态元数据过滤 | 从自然语言问题中抽取过滤条件,动态构造 metadata filter。 |
# 索引
| 文章 | 说明 |
|---|---|
| RAG 开发 6 个阶段优化策略分析 | 把 RAG 优化拆成查询转换、路由、查询构建、索引、检索和生成六个阶段。 |
| RAPTOR 递归文档树:实施高级 RAG 优化策略 | 通过递归聚类、摘要和树状检索,让长文档具备多层级语义入口。 |
| 父文档检索器:平衡小块检索与大块上下文 | 小 chunk 用于精准召回,父文档用于提供完整上下文。 |
| MultiVector:多向量检索同一文档 | 为同一文档建立多个语义入口,再回到原文文档生成答案。 |
# 检索
| 文章 | 说明 |
|---|---|
| ReRank:重排提升 RAG 系统效果 | 在初召回后使用重排模型重新排序候选证据,提高上下文质量。 |
# 生成
| 文章 | 说明 |
|---|---|
| CRAG:纠错式检索增强生成优化策略 | 对召回文档进行可信度判断,不足时改写查询、补充检索或降级处理。 |
| LangGraph 实现 CRAG:从链到图的检索纠错 | 用图结构表达 CRAG 的判断、重写、检索、生成和回退分支。 |
| Self-RAG:让模型反思检索与生成质量 | 让模型对是否需要检索、证据是否相关、答案是否充分进行自检。 |
| RAG 优化策略知识地图 | 串联六个阶段的优化策略,形成从查询到生成的完整排查路径。 |
# LLM 记忆模块
| 文章 | 说明 |
|---|---|
| LLM 记忆系统设计:从上下文窗口到可治理的长期记忆 | 梳理短期记忆、长期记忆、semantic/episodic/procedural memory、记忆读写、召回、冲突检测、隐私、成本和生产架构。 |
| MetaGPT 记忆模块解读:多智能体协作里的消息记忆、角色上下文与长期记忆 | 从 MetaGPT 的 Memory、RoleContext、msg_buffer、watch、LongTermMemory 和 MemoryStorage 出发,分析多智能体协作中的消息记忆、观察过滤、长期恢复和生产化改造思路。 |
# AI Agent 问题与优化
| 文章 | 说明 |
|---|---|
| 让 LLM 老实调工具:从提示词到 Agent Harness 的四层防线 | 总结 LLM 工具调用可靠性的四层防线:提示词软约束、JSON Schema 硬约束、校验修复重试闭环、架构层职责分离。 |
| 大模型流式输出:为什么常用 SSE 而不是 WebSocket | 分析大模型流式输出的通信模式,解释 SSE 与 WebSocket 的适用场景、工程取舍和面试回答方式。 |
| 为什么开放式 Agent 和垂类 Agent 不应该采用同一套架构 | 对比开放式 Agent 与垂类业务 Agent 的控制模式,分析 Claude Code、LangGraph、Agent SDK 等框架的适用边界。 |
| Intent、Skill、Business Resolver、Capability Router 和 MCP 到底是什么关系 | 梳理垂类 Agent 中 Intent、Skill、业务状态解析、能力路由和 MCP 工具接入之间的层次关系。 |
| 团队 AI Coding 各玩各的,应该统一工具还是统一交付物 | 分析团队 AI Coding 治理思路:工具可以不同,但项目规则、任务模板、验收命令、review checklist 和 fallback tools 应该沉淀进仓库。 |
| 智能问答 Agent 到底怎么评估效果 | 梳理问答 Agent / RAG Agent 的分层评估体系:检索指标、生成指标、交互指标、Rubric、LLM-as-a-Judge、Golden Set 和业务指标闭环。 |
| Agent 里的 Skill 依赖关系应该怎么设计 | 分析复杂 Agent 中 Skill 依赖治理:显式声明、依赖图、拓扑排序、版本管理、懒加载、沙箱隔离、依赖注入和回归测试。 |
| 大语言模型为什么会幻觉:从原因、检测到 AI Agent 的生产级缓解方案 | 拆解事实性幻觉与忠实性幻觉,分析数据、训练、对齐、推理和应用链路原因,并给出 RAG、工具校验、拒答、guardrails、评估集和线上反馈闭环。 |