# lc-agent **Repository Path**: panbb_00/lc-agent ## Basic Information - **Project Name**: lc-agent - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-17 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain Agent 开发学习 Demo 从零到一,用 LangChain + DeepSeek 学习 Agent 开发的动手练习项目。 整体路线和资源清单参考本目录下的 [agent-learning-roadmap.md](../agent-learning-roadmap.md) 和 [agent-learning-resources.md](../agent-learning-resources.md)。 ## 前置条件 - Python 3.10+ - 一个 DeepSeek API Key(兼容 OpenAI API) ## 快速开始 ```bash # 1. 安装依赖 pip install -r requirements.txt # 2. 配置 API Key cp .env.example .env # 编辑 .env 填入你的 DEEPSEEK_API_KEY # 3. 或直接通过环境变量设置 export DEEPSEEK_API_KEY='your-api-key-here' # 4. 开始学习!从 Step 1 到 Step 6 循序渐进 python steps/01_basic_llm_call.py ``` ## 学习路线 | Step | 文件名 | 核心概念 | 难度 | |------|--------|----------|------| | 1 | `01_basic_llm_call.py` | LLM 调用、System Prompt、流式输出、多轮对话 | ⭐ | | 2 | `02_structured_output.py` | Pydantic Schema、with_structured_output、嵌套结构 | ⭐⭐ | | 3 | `03_tool_calling.py` | @tool 装饰器、bind_tools、手动 Tool Calling 循环 | ⭐⭐⭐ | | 4 | `04_simple_agent.py` | ReAct 模式、手写 Agent Loop、多步推理 | ⭐⭐⭐⭐ | | 5 | `05_langgraph_agent.py` | StateGraph、Node/Edge、条件跳转 | ⭐⭐⭐⭐ | | 6 | `06_agent_with_memory.py` | MemorySaver、连续对话、thread_id | ⭐⭐⭐⭐⭐ | ## 每个 Step 覆盖的知识点 ### Step 1: 基础 LLM 调用 - `llm.invoke()` 基本调用 - `SystemMessage` + `HumanMessage` 消息结构 - `llm.stream()` 流式输出 - 手动维护消息列表实现多轮对话 ### Step 2: 结构化输出 - Pydantic `BaseModel` 定义输出 Schema - `llm.with_structured_output()` 让 LLM 输出固定 JSON - `Field(description=...)` 添加字段描述 - `Enum` + 嵌套结构 ### Step 3: 工具调用 - `@tool` 装饰器声明工具 - `llm.bind_tools()` 绑定工具到 LLM - LLM 返回 `tool_calls` 请求 - 手动实现工具调用循环:LLM 决定 -> 代码执行 -> 结果回传 ### Step 4: 手写 Agent Loop - ReAct 模式:System Prompt 引导多步推理 - `SimpleAgent` 类封装完整的 Agent 循环 - 多步调用:搜索 -> 计算 -> 回答 - 迭代次数限制和错误处理 ### Step 5: LangGraph Agent - `StateGraph` 定义状态机 - `agent` Node(LLM 调用)和 `tools` Node(工具执行) - `add_conditional_edges` 条件路由 - 与手写 Agent 对比理解框架的价值 ### Step 6: 带记忆的 Agent - `MemorySaver` 持久化消息历史 - `thread_id` 保持会话上下文 - 连续多轮对话无需重复上下文 - 短期记忆 vs 长期记忆的概念 ## 项目结构 ``` agent-demo/ ├── README.md # 本文件 ├── requirements.txt # Python 依赖 ├── .env.example # 环境变量模板 ├── utils/ │ ├── __init__.py │ └── llm.py # 统一的 DeepSeek LLM 配置 └── steps/ ├── __init__.py ├── 01_basic_llm_call.py ├── 02_structured_output.py ├── 03_tool_calling.py ├── 04_simple_agent.py ├── 05_langgraph_agent.py └── 06_agent_with_memory.py ``` ## 学习建议 1. **按顺序学**:每一步建立在前一步的基础上 2. **运行 + 读代码**:先跑起来看效果,再读代码理解原理 3. **改代码试试**:修改 tool 定义、prompt、参数,观察行为变化 4. **对照资源**:结合 [agent-learning-resources.md](../agent-learning-resources.md) 中的文档链接深入学习 ## 使用的技术栈 - **LangChain**: LLM 调用、Tool Calling、结构化输出 - **LangGraph**: Agent 状态管理和流程编排 - **DeepSeek API**: 底层 LLM(OpenAI 兼容接口) - **Pydantic**: 数据结构和 Schema 定义