今天在 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、MoELLaMA/Qwen/GPT、多模态、预训练/微调/推理
提示与编排提示词工程、Tool Calling多轮对话、消息模板、结构化输出、工具调用
低代码平台Coze、Dify工作流、Agent、知识库、插件、Python 调用
开发框架LangChain、LangGraphModel I/O、Runnable/LCEL、Memory、Tools、Agents
协议与通信MCP、A2AFunction Calling、服务解耦、跨 Agent 协作
RAG 与检索向量数据库、BGE-Rerank多路召回、重排序、知识图谱、RAGAS 评估
微调与训练PEFT、LoRA、QLoRADeepSpeed、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

安装步骤

  1. 克隆仓库
git clone https://github.com/didilili/ai-agents-from-zero.git
cd ai-agents-from-zero
  1. 创建虚拟环境
# 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
  1. 安装依赖
pip install -r requirements.txt
  1. 配置 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 智能体教程项目,其核心价值在于:

  1. 完整性:从大模型基础到企业级项目,覆盖完整开发链路
  2. 实用性:每个案例都可实际运行,提供完整源码和问题排查
  3. 时效性:2026 年持续更新,跟随技术栈演进
  4. 就业导向:面试题库对标大厂 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