Files
agent-craft/README.md
T

185 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤖 Agent Craft —— 从零构建全栈AI智能体
> ✅ **系统性开源教学项目**,手把手带你用 Python 构建可运行的 AI Agent,涵盖 Prompt、LLM、LangChain、RAG、LangGraph、MCP 到部署发布全流程。
[![Python CI](https://github.com/Annyfee/agent-craft/actions/workflows/ci.yml/badge.svg)](https://github.com/Annyfee/agent-craft/actions/workflows/ci.yml)
## 📘 项目简介
如果你正在学习 AI 智能体开发,却卡在“知道概念但不会动手”或“会调 API 但不懂原理”的阶段——
**Agent Craft 就是为你设计的学习路径。**
我们从最基础的 LLM 调用开始,一步步带你构建完整的 Agent 能力栈:
- 让模型调用外部工具(Function Calling
- 接入私有知识库实现问答(RAG)
- 用 LangGraph 实现带状态、可调试的决策流程
- 整合记忆、工具与检索,打造真正可用的智能体
所有内容围绕两个原则展开:
- 💻 **代码可运行**:每个模块独立、注释清晰、本地一键复现
- 📖 **原理可理解**:配套 CSDN 博客详解设计思路与关键机制
> 💡 **我们不重复造轮子,但也不止于调用框架**——
> 而是在 LangChain、LangGraph 等主流工具中,看清 Agent 是如何思考、决策与行动的。
---
## 🧭 模块总览(16 模块)
> 💡 每个模块对应独立目录(含代码、说明与示例),可独立运行与学习。
> 🔥 已更新至 10 MCP 基础篇,持续更新中!
| 章节 | 模块 | 博客 | 核心关键词 | 难度 |
|:-----------:|:--------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------:|:---------------------------------------------------------|:-----:|
| 🏗️ **基础篇** | [01 Agent 入门 & 环境搭建](https://github.com/Annyfee/agent-craft/tree/main/01_agent_introduction) | [🏠](https://blog.csdn.net/2401_87328929/article/details/153729555) | OpenAI API | ⭐ |
| | [02 LLM 基础调用](https://github.com/Annyfee/agent-craft/tree/main/02_llm_fundamentals) | [🏠](https://blog.csdn.net/2401_87328929/article/details/153735431) | LLM API 调用 · prompt · 上下文记忆 | ⭐ |
| | [03 Function Calling 与工具调用](https://github.com/Annyfee/agent-craft/tree/main/03_function_calling_tools) | [🏠](https://blog.csdn.net/2401_87328929/article/details/153866573) | Function Call · 工具函数封装 | ⭐⭐ |
| ⚙️ **框架篇** | [04 LangChain 基础篇](https://github.com/Annyfee/agent-craft/tree/main/04_langchain_basics) | [🏠](https://blog.csdn.net/2401_87328929/article/details/153978186) | LLM · Prompt · Chain · Memory | ⭐⭐ |
| | [05 LangChain 进阶篇](https://github.com/Annyfee/agent-craft/tree/main/05_langchain_advanced) | [🏠](https://blog.csdn.net/2401_87328929/article/details/154064397) | Agents · 缓存 · 流式输出 | ⭐⭐⭐ |
| | [06 RAG 基础篇](https://github.com/Annyfee/agent-craft/tree/main/06_rag_basics) | [🏠](https://blog.csdn.net/2401_87328929/article/details/154230067) | RAG概念 · Split · Embedding · FAISS · RAG 链 | ⭐⭐ |
| | [07 RAG 进阶篇](https://github.com/Annyfee/agent-craft/tree/main/07_rag_advanced) | [🏠](https://blog.csdn.net/2401_87328929/article/details/154408744) | Chroma · Reranker · RAG工具化 · 集成 | ⭐⭐⭐ |
| | [08 LangGraph 基础篇](https://github.com/Annyfee/agent-craft/tree/main/08_langgraph_basics) | [🏠](https://blog.csdn.net/2401_87328929/article/details/154576812) | Langgraph三要素 · LangSmith · ReAct · 提示词安全注入 | ⭐⭐⭐ |
| | [09 LangGraph 进阶篇](https://github.com/Annyfee/agent-craft/tree/main/09_langgraph_advanced) | [🏠](https://blog.csdn.net/2401_87328929/article/details/154803618) | Human-in-the-Loop · Graph-as-a-Tool · Multi-Agent 多智能体编排 | ⭐⭐⭐⭐ |
| 🧠 **智能篇** | [10 MCP 基础 (Client)](https://github.com/Annyfee/agent-craft/tree/main/m10_mcp_basics) | [🏠](https://blog.csdn.net/2401_87328929/article/details/155316396) | Stdio传输 · Streaming输出 · AsyncExitStack · 连接公共MCP | ⭐⭐⭐⭐ |
| | 11 MCP 进阶 (Server) | 🚧撰写中 | `Streamable HTTP` · `src layout` · 构建私有 MCP | ⭐⭐⭐⭐ |
| | 12 Swarm & Agents SDK | 🚧 | `Swarm` · `Handoff` · “航空公司客服”项目 | ⭐⭐⭐⭐ |
| 🏁 **实战篇** | 13 Streamlit 快速入门 | 🚧 | `st.chat_input` · `st.session_state` · 封装 RAG Agent | ⭐⭐⭐ |
| | 14 综合实战项目 | 🚧 | LangGraph + RAG + MCP + Streamlit + Vercel | ⭐⭐⭐⭐⭐ |
| 🚀 **工程篇** | 15 部署与本地化 | 🚧 | `Ollama` · `LM Studio` · `LangServe` | ⭐⭐⭐ |
| | **16 项目打包与发布** | 🚧 | `pyproject.toml` · `pip build` · `setuptools` · 发布 | ⭐⭐⭐⭐ |
---
## 🧩 当前学习建议(适用于已完成模块)
目前已开放模块:**01 ~ 10**。
建议按顺序学习,每一章都有完整代码示例与注释。
### ✅ 模块 01 — Agent 入门 & 环境搭建
- **目标**:理解 Agent 概念,完成环境配置与首次调用。
- **内容**:环境依赖|API Key 配置|最小可运行 Agent
### ✅ 模块 02 — LLM 基础调用
- **目标**:掌握模型调用逻辑,初步构建智能体能力。
- **内容**:LLM了解与调用|Prompt编写与逻辑构思|多轮对话记忆|独立搭建一个智能体
### ✅ 模块 03 — Function Calling 与工具调用
- **目标**:实现 LLM 调用外部函数,赋予模型“执行力”。
- **内容**Function calling原理|工具函数封装|API接入实践|多轮调用流程|Agent能力扩展
### ✅ 模块 04 — LangChain 基础篇
- **目标**:认识Langchain六大模块,学会用Langchain构建智能体。
- **内容**LLM 调用|Prompt 设计|Chain 构建|Memory 记忆|实战练习
### ✅ 模块 05 — LangChain 进阶篇
- **目标**:掌握Langchain Agents的核心机制,构建能调用工具、持续思考、具备记忆的智能体。
- **内容**Function Calling@tool 工具封装|ReAct 循环|Agent 构建|SQL Agent|记忆+流式|开发优化
### ✅ 模块 06 — Rag 基础篇
- **目标**:理解Rag的概念与整个运行流程,并能够搭建一个可以引用外部知识库获取信息的智能体。
- **内容**:RAG 概念|文本加载与分块 (Load & Split)|向量化 (Embedding)|向量存储 (FAISS)LCEL RAG 链
### ✅ 模块 07 — Rag 进阶篇
- **目标**:学会进阶的Chroma向量数据库,会Reranker精排序,最终将04到07所学的Langchain六大模块完整集成。
- **内容**Chroma 持久化 | Reranker 精排 | RAG 工具化 | Langchain六大模块集成
### ✅ 模块 08 — LangGraph 基础篇
- **目标**:懂得Langgraph的三要素,会使用LangSmith调试当前agent,并能自己写一个简单的Langgraph流程。
- **内容**Langgraph核心三要素|ReAct循环白盒化实现 | LangSmith调试追踪 | 持久化记忆 | 提示词安全注入
### ✅ 模块 09 — LangGraph 进阶篇
- **目标**:学会人工审批机制的添加,子图工具化的封装与多智能体流程编排。最终可以融合这三个知识点做一个复杂Agent出来。
- **内容**Human-in-the-Loop(人工干预)| Graph-as-a-Tool(图即工具)| Multi-Agent 多智能体编排
### ✅ 模块 10 — MCP 基础篇
- **目标**:能够用代码构建一个可连接MCP服务器的本地客户端,并可以流式输出。
- **内容**Stdio传输 | Streaming输出 | Adapter适配器 | AsyncExitStack | JSON-RPC | MCP协议
> 📌 后续模块将陆续开放(Streamlit、Swarm等)
---
## 🧠 Agent Craft 的核心学习路径
> “让每个人都能真正理解 Agent 的底层逻辑,而不仅仅是调用框架。”
我们采用 **渐进式构建** 的教学理念,从最基础的 Prompt 开始,逐步搭建完整的 AI Agent 能力栈:
```mermaid
flowchart LR
A[Prompt 层] --> B[LLM 核心调用]
B --> C[LangChain 工具链]
C --> D[RAG 检索增强生成]
D --> E[LangGraph 流程控制]
E --> F[MCP 扩展能力]
F --> G[多智能体协作与规划]
G --> H[SDK 封装与部署]
```
## 🚀 快速开始
### 1️⃣ 环境准备
> 💡 **环境要求**: Python 3.103.12Node.js v20+
```bash
# 1. 克隆项目
git clone https://github.com/Annyfee/agent-craft.git
cd agent-craft
# 2. 安装依赖
pip install -r requirements.txt
# 3. 以开发者模式安装项目(重要!)
pip install -e .
```
### 2️⃣ API Key 配置
```bash
# 复制环境变量模板
cp .env.example .env
```
`.env` 文件中配置:
```env
OPENAI_API_KEY=your_deepseek_api_key_here
LANGCHAIN_API_KEY=your_langsmith_api_key
AMAP_MAPS_API_KEY=your_gaode_api_key
```
> 💡 **获取API Key**: 访问 [DeepSeek官网](https://platform.deepseek.com/)、[LangSmith官网](https://smith.langchain.com/)、[高德地图官网](https://console.amap.com/dev/key/app)
> 注册并获取API Key
### 3️⃣ 运行示例
一切就绪!运行第一个 Agent 示例:
```bash
python "m01_agent_introduction/Agent-demo.py"
```
---
## 🤝 参与与交流
- 📬 提交 Issue / PR:欢迎提出改进建议或贡献代码!
- 📩 技术交流:微信 a19731567148(备注 Agent
- 📚 博客主页:[CSDN 主页](https://blog.csdn.net/2401_87328929)
🌟 如果这个项目帮到了你,请给我点个 Star ⭐,让更多人看到它!