git init and first deep agent with langsmith ui
This commit is contained in:
264
README.md
Normal file
264
README.md
Normal file
@@ -0,0 +1,264 @@
|
||||
# Network Search Agent
|
||||
|
||||
一个符合 LangGraph Studio 标准的网络搜索 Agent 项目,使用 DeepAgents 框架和 Tavily 搜索 API。
|
||||
|
||||
## 📁 项目结构
|
||||
|
||||
```
|
||||
NetworkSearchAgent/
|
||||
├── agent.py # ⭐ LangGraph 入口 (定义 agent)
|
||||
├── langgraph.json # ⭐ LangGraph 配置
|
||||
├── pyproject.toml # 依赖管理
|
||||
├── .env.example # 环境变量模板
|
||||
├── README.md # 完整文档
|
||||
└── network_search_agent/ # Agent 包
|
||||
├── __init__.py # 包初始化
|
||||
├── tools.py # 工具: internet_search
|
||||
└── prompts.py # 提示词: SYSTEM_PROMPT
|
||||
```
|
||||
|
||||
## ✨ 功能特性
|
||||
|
||||
### 保留的核心功能
|
||||
- ✅ **网络搜索工具** (`internet_search`) - 使用 Tavily API
|
||||
- ✅ **DeepSeek 模型集成** - 作为推理引擎
|
||||
- ✅ **系统提示词** - 定义 Agent 行为
|
||||
- ✅ **LangGraph Studio 兼容** - 可在 Studio 中可视化调试
|
||||
|
||||
### 移除的功能
|
||||
- ❌ Sub Agent (子代理)
|
||||
- ❌ Think Tool (思考工具)
|
||||
- ❌ 其他高级特性
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 1. 安装依赖
|
||||
|
||||
使用 pip 安装:
|
||||
```bash
|
||||
cd NetworkSearchAgent
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
或使用 uv (推荐):
|
||||
```bash
|
||||
cd NetworkSearchAgent
|
||||
uv pip install -e .
|
||||
```
|
||||
|
||||
### 2. 配置环境变量
|
||||
|
||||
复制环境变量模板:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
编辑 `.env` 文件,填入你的 API 密钥:
|
||||
```env
|
||||
DEEPSEEK_API_KEY=your_deepseek_api_key_here
|
||||
DEEPSEEK_BASE_URL=https://api.deepseek.com
|
||||
TAVILY_API_KEY=your_tavily_api_key_here
|
||||
```
|
||||
|
||||
#### 获取 API 密钥
|
||||
- **DeepSeek**: 访问 [https://www.deepseek.com/](https://www.deepseek.com/)
|
||||
- **Tavily**: 访问 [https://tavily.com/](https://tavily.com/)
|
||||
|
||||
### 3. 使用 LangGraph CLI 运行
|
||||
|
||||
#### 启动开发服务器
|
||||
```bash
|
||||
langgraph dev
|
||||
```
|
||||
|
||||
这将启动 LangGraph Studio 服务器,你可以在浏览器中访问可视化界面。
|
||||
|
||||
#### 测试 Agent
|
||||
```bash
|
||||
langgraph test
|
||||
```
|
||||
|
||||
## 🎯 使用 LangGraph Studio
|
||||
|
||||
### 启动 Studio
|
||||
```bash
|
||||
cd NetworkSearchAgent
|
||||
langgraph dev
|
||||
```
|
||||
|
||||
启动后,访问浏览器打开的 Studio 界面,你可以:
|
||||
- 📊 可视化查看 Agent 的执行流程
|
||||
- 🔍 调试每一步的输入输出
|
||||
- 🧪 交互式测试 Agent 功能
|
||||
- 📝 查看工具调用详情
|
||||
|
||||
### Studio 特性
|
||||
- **实时可视化**: 查看 Agent 的思考过程和工具调用
|
||||
- **断点调试**: 在关键节点暂停并检查状态
|
||||
- **历史记录**: 回顾之前的对话和执行流程
|
||||
- **性能分析**: 查看每步的耗时和资源使用
|
||||
|
||||
## 📝 代码说明
|
||||
|
||||
### 核心文件
|
||||
|
||||
#### 1. `langgraph.json`
|
||||
LangGraph 配置文件,定义 Agent 入口:
|
||||
```json
|
||||
{
|
||||
"dependencies": ["."],
|
||||
"graphs": {
|
||||
"simple_agent": "./agent.py:agent"
|
||||
},
|
||||
"env": ".env"
|
||||
}
|
||||
```
|
||||
|
||||
#### 2. `agent.py`
|
||||
主 Agent 定义文件:
|
||||
```python
|
||||
from langchain.chat_models import init_chat_model
|
||||
from deepagents import create_deep_agent
|
||||
from network_search_agent.prompts import SYSTEM_PROMPT
|
||||
from network_search_agent.tools import internet_search
|
||||
|
||||
# 初始化模型
|
||||
model = init_chat_model(
|
||||
model="deepseek:deepseek-chat",
|
||||
temperature=0.0
|
||||
)
|
||||
|
||||
# 创建 Agent (仅包含基础工具,无 sub-agent)
|
||||
agent = create_deep_agent(
|
||||
model=model,
|
||||
tools=[internet_search],
|
||||
system_prompt=SYSTEM_PROMPT,
|
||||
)
|
||||
```
|
||||
|
||||
#### 3. `network_search_agent/tools.py`
|
||||
工具定义:
|
||||
```python
|
||||
def internet_search(
|
||||
query: str,
|
||||
max_results: int = 5,
|
||||
topic: Literal["general", "news", "finance"] = "general",
|
||||
include_raw_content: bool = False,
|
||||
):
|
||||
"""网络搜索工具"""
|
||||
result = tavily_client.search(...)
|
||||
return result
|
||||
```
|
||||
|
||||
#### 4. `network_search_agent/prompts.py`
|
||||
系统提示词定义:
|
||||
```python
|
||||
SYSTEM_PROMPT = """你是一个智能助手...
|
||||
"""
|
||||
```
|
||||
|
||||
## 🔧 自定义配置
|
||||
|
||||
### 更换模型
|
||||
|
||||
编辑 `agent.py` 中的模型配置:
|
||||
|
||||
```python
|
||||
# 使用 OpenAI
|
||||
model = init_chat_model(
|
||||
model="openai:gpt-4",
|
||||
temperature=0.0
|
||||
)
|
||||
|
||||
# 使用 Anthropic
|
||||
model = init_chat_model(
|
||||
model="anthropic:claude-3-5-sonnet-20241022",
|
||||
temperature=0.0
|
||||
)
|
||||
```
|
||||
|
||||
### 添加新工具
|
||||
|
||||
1. 在 `network_search_agent/tools.py` 中定义新工具:
|
||||
```python
|
||||
def my_new_tool(param: str):
|
||||
"""My new tool description"""
|
||||
# 工具实现
|
||||
return result
|
||||
```
|
||||
|
||||
2. 在 `agent.py` 中添加到工具列表:
|
||||
```python
|
||||
agent = create_deep_agent(
|
||||
model=model,
|
||||
tools=[internet_search, my_new_tool], # 添加新工具
|
||||
system_prompt=SYSTEM_PROMPT,
|
||||
)
|
||||
```
|
||||
|
||||
3. 在 `network_search_agent/__init__.py` 中导出:
|
||||
```python
|
||||
from network_search_agent.tools import internet_search, my_new_tool
|
||||
|
||||
__all__ = ["internet_search", "my_new_tool", ...]
|
||||
```
|
||||
|
||||
### 自定义提示词
|
||||
|
||||
编辑 `network_search_agent/prompts.py`:
|
||||
```python
|
||||
SYSTEM_PROMPT = """你的自定义提示词...
|
||||
"""
|
||||
```
|
||||
|
||||
## 📚 LangGraph Studio 文档
|
||||
|
||||
详细文档请参考:
|
||||
- [LangGraph Studio 官方文档](https://docs.langchain.com/oss/python/langgraph/studio)
|
||||
- [LangGraph CLI 使用指南](https://docs.langchain.com/oss/python/langgraph/cli)
|
||||
|
||||
## 🆚 与完整版的区别
|
||||
|
||||
| 特性 | 简化版 (本项目) | 完整版 |
|
||||
|------|----------------|--------|
|
||||
| 网络搜索 | ✅ | ✅ |
|
||||
| 基础对话 | ✅ | ✅ |
|
||||
| 系统提示词 | ✅ | ✅ |
|
||||
| LangGraph Studio | ✅ | ✅ |
|
||||
| Sub Agent | ❌ | ✅ |
|
||||
| Think Tool | ❌ | ✅ |
|
||||
| 复杂工作流 | ❌ | ✅ |
|
||||
|
||||
## 🐛 常见问题
|
||||
|
||||
### Q: 如何查看 Agent 执行日志?
|
||||
启动时使用 `langgraph dev --verbose` 查看详细日志。
|
||||
|
||||
### Q: 如何在 Studio 中测试?
|
||||
1. 运行 `langgraph dev`
|
||||
2. 打开浏览器访问显示的 URL
|
||||
3. 在界面中输入测试问题
|
||||
|
||||
### Q: 依赖安装失败?
|
||||
确保 Python 版本 >= 3.11,使用 uv 或创建虚拟环境:
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # Linux/Mac
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
### Q: 如何部署到生产环境?
|
||||
参考 [LangGraph Cloud 部署文档](https://docs.langchain.com/oss/python/langgraph/cloud)
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
MIT License
|
||||
|
||||
## 🔄 更新日志
|
||||
|
||||
### v0.1.0 (2025-12-02)
|
||||
- ✅ 初始版本
|
||||
- ✅ 符合 LangGraph Studio 标准结构
|
||||
- ✅ 实现基础 Agent 功能
|
||||
- ✅ 集成网络搜索工具
|
||||
- ✅ 移除 sub-agent 和 think tool
|
||||
Reference in New Issue
Block a user