NirDiamant/GenAI_Agents · 上手攻略
- 仓库:NirDiamant/GenAI_Agents
- 链接:https://github.com/NirDiamant/GenAI_Agents
- 分类:ai(agent)
- 作者:Jay
- 更新:2026-07-10
这是什么
NirDiamant/GenAI_Agents 是一个 GenAI Agent 教程与实现集合,由 AI 教育博主 Nir Diamant 维护,当前收录 50+ 教程,覆盖从最简单的对话机器人到复杂多 Agent 系统的全谱系。每一个教程都是一个独立的 Jupyter Notebook,包含完整代码、逐步解释和可直接运行的示例。
这不是一个框架,而是一个学习路径库——帮助开发者在真实代码中理解 Agent 的各种构建方式、框架和设计模式。
核心特点:
- 所有教程均可直接下载 .ipynb 在 Google Colab 或本地 Jupyter 运行
- 覆盖主流 Agent 框架:LangGraph、LangChain、PydanticAI、CrewAI、AutoGen、OpenAI Swarm
- 按难度分级:🌱 Beginner → 🔧 Framework → 💼 Business → 🎨 Creative → 📊 Analysis → 🌟 Advanced
- 作者同步维护多个相关仓库:RAG_Techniques(40+ RAG notebook)、Agents_Towards_Production、Prompt_Engineering、Agent_Memory_Techniques
解决什么问题
构建 AI Agent 的学习曲线很陡,原因在于:
- 框架太多,选择困难:LangGraph、LangChain、CrewAI、PydanticAI……每个都有自己的概念体系和 API,学习成本极高。
- 缺少完整可运行示例:文档往往是 API reference,缺乏"从零到跑通"的端到端例子。
- 最佳实践分散:Memory 如何管理?多 Agent 怎么协作?工具调用怎么做?这些问题的答案散落在各种博客和论文里。
- 生产级架构没人教:大多数教程止步于 Demo,生产环境的错误处理、监控、可观测性很少涉及。
GenAI_Agents 通过 50+ 结构化 Notebooks 解决了这些问题,每个 Notebook 聚焦一个场景,配有中文注释(部分)和详细的逐步说明。
快速安装
本仓库本身不需要"安装"——你需要的是下载感兴趣的 Notebook 并在本地运行。
前置环境(以 LangGraph 教程为例):
# 创建虚拟环境(推荐)
python -m venv genai-agents
source genai-agents/bin/activate # Windows: genai-agents\Scripts\activate
# 核心依赖
pip install langgraph langchain langchain-openai langchain-anthropic
# 按需安装(不同教程可能需要不同包)
pip install langchain-community # LangChain 组件
pip install crewai # CrewAI 教程
pip install pydantic-ai # PydanticAI 教程
pip install autogen-agentchat # AutoGen 教程
pip install jupyter # 如果要本地跑 Notebook
# 环境变量配置(OpenAI API Key 示例)
export OPENAI_API_KEY="sk-..."
在 Google Colab 中打开(最简单方式):
直接在 GitHub 点击 .ipynb 文件,用 "Open in Colab" 按钮直接在浏览器运行,无需本地配置。
核心用法
教程分类一览
仓库将 50+ 教程按用途分为多个类别:
🌱 Beginner(入门)
- simple_conversational_agent.ipynb — 带上下文记忆的对话 Agent(LangChain / PydanticAI 双版本)
- simple_question_answering_agent.ipynb — 简单问答 Agent
- simple_data_analysis_agent_notebook.ipynb — 自然语言数据分析 Agent
🔧 Framework(框架)
- langgraph-tutorial.ipynb — LangGraph 入门:StateGraph 状态管理、节点创建、图编译
- mcp-tutorial.ipynb — Model Context Protocol (MCP):AI 连接外部工具和数据源
💼 Business(商业场景)
- customer_support_agent_langgraph.ipynb — 客服 Agent,含情感分析
- essay_grading_system_langgraph.ipynb — 作文评分系统,多维度评估
- travel_planner_langgraph.ipynb — 个性化旅游行程规划
- HR_AI-Assistant.ipynb — 招聘流程 Agent:JD 生成 + 简历分析
- ClauseAI.ipynb — 合同条款分析与合规检查
📊 Analysis(分析与研究)
- multi_agent_collaboration_system.ipynb — 多 Agent 协作(LangChain)
- self_improving_agent.ipynb — 从交互中自我学习的 Agent
- sales_call_analyzer_agent.ipynb — 销售通话录音分析
- self_healing_code.ipynb — 自动发现并修复代码错误的 Agent
- memory-agent-tutorial.ipynb — 带记忆的邮件分类与回复生成
🎨 Creative(创意)
- gif_animation_generator_langgraph.ipynb — 文本生成 GIF 动画
- music_compositor_agent_langgraph.ipynb — AI 音乐作曲
- murder_mystery_agent_langgraph.ipynb — 剧本生成式悬疑游戏
- art_agent.ipynb — LightRAG + LangGraph 艺术知识图谱导览
🌟 Advanced(高级)
- Controllable-RAG-Agent(外部仓库)— 可控 RAG Agent,复杂问答 + 确定性子图
经典教程示例:LangGraph 入门
核心概念用一段简化的代码表达:
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator
# 1. 定义状态
class AgentState(TypedDict):
messages: Annotated[list, operator.add]
# 2. 定义节点(处理函数)
def process(state: AgentState):
last_msg = state["messages"][-1]["content"]
response = f"Processed: {last_msg}"
return {"messages": [{"role": "assistant", "content": response}]}
# 3. 构建图
graph = StateGraph(AgentState)
graph.add_node("process", process)
graph.set_entry_point("process")
graph.add_edge("process", END)
app = graph.compile()
# 4. 执行
result = app.invoke({
"messages": [{"role": "user", "content": "Hello, tell me about LangGraph"}]
})
print(result["messages"][-1]["content"])
经典教程示例:MCP(Model Context Protocol)
MCP 是让 AI Agent 连接外部世界的开放协议,教程中包含完整的服务器和客户端实现:
# MCP Server 端(简化示例)
from mcp.server import MCPServer
from mcp.types import Tool
server = MCPServer(name="my-data-source")
@server.tool(description="Query the company's database")
def query_db(sql: str) -> str:
# 执行查询并返回结果
return "query result"
# MCP Client 端(LangGraph Agent 中使用)
from langchain_mcp import MCPClient
mcp_client = MCPClient(connection=server)
agent = ... # 将 mcp_client 作为工具接入 Agent
典型适用场景
| 场景 | 推荐教程 |
|---|---|
| 刚学 Agent 开发 | simple_conversational_agent + langgraph-tutorial |
| 构建 RAG + Agent | Controllable-RAG-Agent(外部仓库)+ MCP 教程 |
| 多 Agent 协作 | multi_agent_collaboration_system / research_team_autogen |
| 企业知识库问答 | ATLAS(学术助手)+ Systematic Review |
| 客服/售后场景 | customer_support_agent + memory-agent-tutorial |
| 内容创意生成 | gif_animation_generator / music_compositor |
| 生产级 Agent 架构 | agents-towards-production(配套仓库) |
坑与注意
- Notebook 依赖版本:不同 Notebook 创建时间不同,依赖版本可能冲突。建议每个教程单独建虚拟环境,或使用 Colab 的独立容器。
- API Key 费用:大多数教程使用 OpenAI API,部分高级多 Agent 教程会频繁调用,费用需要注意。建议在
.ipynb开头加tiktoken计费辅助。 - LangChain vs LangGraph:入门者容易混淆。LangChain 是综合框架,LangGraph 是其子项目,专注状态图。教程大多数用 LangGraph,因为更直观。
- PydanticAI 版本:部分 PydanticAI 教程用的是旧版 API,PydanticAI 发展较快,建议同步参考官方文档。
- 外部链接 Notebook:部分教程(如 Controllable-RAG-Agent)链接到外部独立仓库,需要额外 clone。
- 非中文注释:虽然 README 有中文说明,但 Notebook 内代码注释以英文为主,部分复杂概念需要一定英语阅读能力。
- CrewAI 教程:
grocery_management_agents_system.ipynb依赖 CrewAI,CrewAI 版本更新可能导致 API 不兼容。
与同类对比
| 维度 | GenAI_Agents | LangChain 官方教程 | CrewAI 学习资源 | OpenAI Cookbook |
|---|---|---|---|---|
| 内容形式 | Notebook 合集 | 分散的文档 | 官方文档 | Jupyter Notebooks |
| 框架覆盖 | LangGraph/LangChain/PydanticAI/CrewAI/AutoGen | LangChain 为主 | CrewAI 为主 | OpenAI API |
| 难度分级 | ✅ 清晰( Beginner→Advanced) | ❌ 无 | ❌ 无 | 中等 |
| 中文友好度 | 部分 | ❌ 无 | ❌ 无 | ❌ 无 |
| 更新频率 | 活跃(持续新增) | 一般 | 活跃 | 一般 |
| 配套生态 | RAG_Techniques + 生产课程 | LangSmith 文档 | 较少 | 较少 |
一句话结论:GenAI_Agents 是目前最完整的免费 Agent 实战学习库,按难度分级的设计特别适合从零到生产的完整学习路径;唯一的同类替代是花钱购买课程,但这里全免费且代码可直接运行。
推荐结论
无论你是 AI 初学者想理解什么是 Agent,还是有经验的开发者想快速了解 LangGraph/CrewAI/PydanticAI 的实战差异,这个仓库都值得书签。建议学习路径:LangGraph 入门教程 → 选一个贴近你业务场景的 Business 案例跑通 → 看 multi-agent 协作 → 参考 agents-towards-production 走向生产。