今天在 GitHub Trending 上看到一个正在持续更新的优质项目:ai-agents-from-zero,目标是打造"地表最强"的 AI Agent 教程,覆盖系统教程、可跑源码、面试题库和企业级实战项目,为大模型应用开发提供一条龙学习路线。
一、项目概述
ai-agents-from-zero 是一个面向 AI 大模型应用开发的系统性教程项目,聚焦 Python 生态中的智能体开发路线。项目核心理念是"教程 + 源码 + 实战项目 + 面试题库"四位一体,帮助学习者从零基础成长为能独立交付 AI Agent 应用的工程师。
核心特性
- 系统化学习路线:从大模型基础、提示词工程,到低代码平台(Coze/Dify)、开发框架(LangChain/LangGraph)、企业级 RAG/Agent、微调实践,形成完整知识闭环
- 可运行案例:每个案例都以"能跑起来"为标准,提供完整源码、环境说明和常见问题排查
- 企业级实战项目:包含电商问数、深度研搜、掌柜智库、电商小二等真实场景项目,串起意图解析、多源知识库、转人工、复盘与监控等工程化能力
- 面试题库:按岗位能力域组织问法与答法,整理自大厂真实面试题和公开面经
- 持续更新:跟随 AI 大模型技术栈持续进化,2026 年仍在活跃更新
二、技术原理
架构设计
项目采用分层架构设计,从底层大模型能力到顶层企业应用逐层递进:
┌─────────────────────────────────────────────┐
│ 企业级应用层(RAG/Agent) │
│ 掌柜智库 | 电商小二 | 电商问数 | 深度研搜 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 开发框架层 │
│ LangChain | LangGraph | MCP | A2A │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 低代码平台层 │
│ Coze(扣子)| Dify AI │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 大模型基础能力层 │
│ LLM | Transformer | 提示词工程 | Tool Calling│
└─────────────────────────────────────────────┘
核心技术栈
| 类别 | 技术/平台 | 说明 |
|---|---|---|
| 大模型与基础 | LLM、Transformer、MoE | LLaMA/Qwen/GPT、多模态、预训练/微调/推理 |
| 提示与编排 | 提示词工程、Tool Calling | 多轮对话、消息模板、结构化输出、工具调用 |
| 低代码平台 | Coze、Dify | 工作流、Agent、知识库、插件、Python 调用 |
| 开发框架 | LangChain、LangGraph | Model I/O、Runnable/LCEL、Memory、Tools、Agents |
| 协议与通信 | MCP、A2A | Function Calling、服务解耦、跨 Agent 协作 |
| RAG 与检索 | 向量数据库、BGE-Rerank | 多路召回、重排序、知识图谱、RAGAS 评估 |
| 微调与训练 | PEFT、LoRA、QLoRA | DeepSpeed、Llama-Factory |
关键设计模式
LangGraph 图式工作流
项目使用 LangGraph 实现状态驱动的 Agent 工作流,以电商问数项目为例:
from langgraph.graph import StateGraph, END
# 定义状态
class AgentState(TypedDict):
question: str
sql_query: str
query_result: str
answer: str
# 构建图
workflow = StateGraph(AgentState)
workflow.add_node("parse_intent", parse_intent_node)
workflow.add_node("generate_sql", generate_sql_node)
workflow.add_node("execute_sql", execute_sql_node)
workflow.add_node("generate_answer", generate_answer_node)
# 定义边
workflow.add_edge("parse_intent", "generate_sql")
workflow.add_edge("generate_sql", "execute_sql")
workflow.add_edge("execute_sql", "generate_answer")
workflow.add_edge("generate_answer", END)
MCP 工具调用
基于 Model Context Protocol 实现外部工具接入:
from mcp import FastMCP
mcp = FastMCP("weather-tools")
@mcp.tool()
def get_weather(city: str) -> str:
"""获取指定城市的天气信息"""
# 工具实现逻辑
return f"{city} 今天天气晴朗,温度 25°C"
RAG 多路召回
掌柜智库项目实现向量+稀疏+Neo4j 的多路召回策略:
# 向量检索
vector_results = qdrant_store.similarity_search(query, k=10)
# 稀疏检索(Elasticsearch)
sparse_results = es_client.search(index="knowledge", body=query_body)
# 知识图谱查询
graph_results = neo4j_client.execute_query(cypher_query)
# 多路召回合并与重排序
all_docs = merge_and_rerank(vector_results, sparse_results, graph_results)
数据流分析
以深度研搜项目为例,主智能体调度流程:
用户问题 → 主智能体(意图解析)
↓
├─ 子智能体 A:网络搜索
├─ 子智能体 B:知识库检索(RAGFlow)
├─ 子智能体 C:数据库查询(MySQL)
└─ 子智能体 D:文件读取生成
↓
结果汇总 → 文件生成交付 → WebSocket 实时进度回传
三、安装与快速开始
环境要求
- Python 3.10–3.13(推荐 3.10,3.14 尚未完全兼容)
- 虚拟环境管理工具(venv 或 conda)
- Git
安装步骤
- 克隆仓库
git clone https://github.com/didilili/ai-agents-from-zero.git
cd ai-agents-from-zero
- 创建虚拟环境
# macOS/Linux
python3.10 -m venv .venv
source .venv/bin/activate
# Windows CMD
py -3.10 -m venv .venv
.venv\Scripts\activate.bat
# Windows PowerShell
py -3.10 -m venv .venv
.venv\Scripts\Activate.ps1
- 安装依赖
pip install -r requirements.txt
- 配置 API Key
# 复制配置模板
cp .env-example .env
# 编辑 .env 文件,填入你的 API Key
# 支持的变量名:aliQwen-api、QWEN_API_KEY、deepseek-api 等
最简运行示例
在项目根目录运行第一个案例:
python 案例与源码-2-LangChain框架/01-helloworld/StandardDesc.py
注意:必须在项目根目录执行,否则 .env 文件无法被正确加载。
四、使用方法与实战
基础用法:LangChain 快速入门
1. Model I/O 基础
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
# 初始化模型
model = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
# 创建提示词模板
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个专业的技术顾问。"),
("user", "{input}")
])
# 创建输出解析器
parser = StrOutputParser()
# 构建 LCEL 链
chain = prompt | model | parser
# 执行
response = chain.invoke({"input": "什么是 RAG?"})
print(response)
2. 记忆管理
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
# 创建对话记忆
memory = ConversationBufferMemory()
# 创建对话链
conversation = ConversationChain(
llm=model,
memory=memory,
verbose=True
)
# 多轮对话
conversation.predict(input="你好,我是小明。")
conversation.predict(input="你还记得我的名字吗?")
进阶用法:LangGraph 状态管理
持久化记忆
from langgraph.checkpoint.sqlite import SqliteSaver
from langgraph.graph import StateGraph
# 创建 SQLite 检查点
checkpointer = SqliteSaver.from_conn_string("checkpoints.db")
# 构建带持久化的 Agent
app = workflow.compile(checkpointer=checkpointer)
# 使用线程 ID 保持对话上下文
config = {"configurable": {"thread_id": "user-123"}}
response = app.invoke({"input": "继续我们的对话"}, config=config)
流式输出
async for event in app.astream_events({"input": "分析数据"}, version="v1"):
if event["event"] == "on_chain_start":
print(f"开始执行节点: {event['name']}")
elif event["event"] == "on_chain_end":
print(f"节点执行完成: {event['name']}")
elif event["event"] == "on_llm_stream":
print(event["data"]["chunk"].content, end="", flush=True)
实际项目示例:电商问数
项目地址:shopkeeper-agent
核心功能:自然语言查询电商数据,自动生成 SQL 并执行
# 用户问数示例
question = "上个月销售额最高的前 5 个商品是什么?"
# LangGraph 工作流处理
result = agent.invoke({
"question": question,
"database_schema": schema_info
})
# 输出
print(f"SQL: {result['sql_query']}")
print(f"结果: {result['query_result']}")
print(f"答案: {result['answer']}")
技术栈串联:
- MySQL 数仓存储电商数据
- Qdrant 向量检索元数据知识库
- Elasticsearch 字段值检索
- LangGraph 协调整个流程
- FastAPI SSE 实现实时反馈
五、常见问题与解决方案
安装失败
问题 1:ModuleNotFoundError: No module named 'langchain'
解决方案:
# 确保虚拟环境已激活
source .venv/bin/activate
# 重新安装依赖
pip install -r requirements.txt
问题 2:Python 版本不兼容
解决方案:
# 检查 Python 版本
python --version
# 如果版本 > 3.13,使用 pyenv 或 conda 创建 3.10 环境
conda create -n agent python=3.10
conda activate agent
运行时错误
问题 1:找不到 .env 文件
解决方案:
- 必须在项目根目录执行 Python 命令
- 检查
.env文件是否存在:ls -la .env - 如果不存在,复制模板:
cp .env-example .env
问题 2:API Key 报错
解决方案:
# 检查环境变量是否正确设置
cat .env
# 确保 Key 格式正确(无多余空格或引号)
# 正确格式:
# QWEN_API_KEY=sk-xxxxxxxxxxxxxxxx
# 错误格式:
# QWEN_API_KEY="sk-xxxxxxxxxxxxxxxx"
问题 3:Redis 连接失败
解决方案:
# 启动 Redis 服务
redis-server
# 或使用 Docker
docker run -d -p 6379:6379 redis:latest
# 检查连接
redis-cli ping
性能问题
问题 1:向量检索速度慢
解决方案:
- 使用批量插入而非逐条插入
- 调整
k值(召回数量),通常 k=10-20 足够 - 启用混合检索(向量+稀疏)提升召回质量
问题 2:LLM 响应超时
解决方案:
# 增加超时时间
model = ChatOpenAI(
model="gpt-4o-mini",
request_timeout=60, # 60 秒
max_retries=3 # 重试 3 次
)
# 或使用流式输出避免超时
async for chunk in model.astream([HumanMessage(content="长问题")]):
print(chunk.content, end="", flush=True)
兼容性
问题 1:langchain-redis 不支持 Python 3.14
解决方案:使用 Python 3.10–3.13
问题 2:不同模型 API 格式差异
解决方案:
# 通义千问
from langchain_community.chat_models import ChatTongyi
model = ChatTongyi(model="qwen-plus")
# DeepSeek
from langchain_deepseek import ChatDeepSeek
model = ChatDeepSeek(model="deepseek-chat")
# Ollama 本地模型(无需 Key)
from langchain_ollama import ChatOllama
model = ChatOllama(model="llama3.1")
六、总结
ai-agents-from-zero 是目前 GitHub 上少见的系统性 AI 智能体教程项目,其核心价值在于:
- 完整性:从大模型基础到企业级项目,覆盖完整开发链路
- 实用性:每个案例都可实际运行,提供完整源码和问题排查
- 时效性:2026 年持续更新,跟随技术栈演进
- 就业导向:面试题库对标大厂 JD,项目案例可作为简历素材
对于想要系统学习 AI 大模型应用开发的工程师,这是一个值得 Star 并持续关注的优质开源项目。项目作者承诺"AI 不停,更新不止",这种长期维护的态度在开源社区尤为珍贵。
项目链接:
- GitHub:https://github.com/didilili/ai-agents-from-zero
- 在线文档:https://didilili.github.io/ai-agents-from-zero/
- 电商问数源码:https://github.com/didilili/shopkeeper-agent
- 深度研搜源码:https://github.com/didilili/deepsearch-agents